diff --git a/.github/workflows/calibreapp-image-actions.yml b/.github/workflows/calibreapp-image-actions.yml index 361b68d4c5..50641ac5fb 100644 --- a/.github/workflows/calibreapp-image-actions.yml +++ b/.github/workflows/calibreapp-image-actions.yml @@ -44,6 +44,9 @@ jobs: # For non-Pull Requests, run in compressOnly mode and we'll PR after. compressOnly: ${{ github.event_name != 'pull_request' }} ignorePaths: 'docs/es/**,docs/de/**,docs/fr/**,docs/ru/**,docs/sl/**' + # Avoid progressive degradation of quality + pngQuality: '100' + minPctChange: '30' - name: Create Pull Request # If it's not a Pull Request then commit any changes as a new PR. if: | diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 8174f3f83e..8b7a75b705 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -27,15 +27,15 @@ First install: Run: ```sh -poetry install +poetry install --no-root ``` ### Run the project ```sh -mkdocs serve +poetry run mkdocs serve # Or, for faster reload after changes: -mkdocs serve --dirtyreload +poetry run mkdocs serve --dirtyreload ``` This will run the documentation on http://localhost:8000. diff --git a/README.md b/README.md index 46ad1e6207..0f1d1906bd 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,17 @@ This repository holds [the official documentation](https://wiki.gdevelop.io) for ## Getting Started -| ❔ I want to... | 🚀 What to do | -| -------------------------------------------- | --------------------------------------------------------------------------------- | -| Improve or add articles to the documentation | Head over to [this README](./SYNTAX.md) to understand the syntax of the documentation.| -| Bring improvements to the documentation interface | Head over to [this README](./CONTRIBUTE.md) to understand how this repository works. | \ No newline at end of file +| ❔ I want to... | 🚀 What to do | +| ------------------------------------------------- | -------------------------------------------------------------------------------------- | +| Improve or add articles to the documentation | Head over to [this README](./SYNTAX.md) to understand the syntax of the documentation. | +| Bring improvements to the documentation interface | Head over to [this README](./CONTRIBUTE.md) to understand how this repository works. | + +## Contribute to this repository + +Install [uv](https://github.com/astral-sh/uv) for Python. Then: + +```bash +uv sync +uv run mkdocs serve # To run the documentation locally and see changes. +uv run mkdocs build # To build for deployment on a static hosting. +``` diff --git a/docs/assets/favicon.ico b/docs/assets/favicon.ico index 0b22c9e993..55facded3a 100644 Binary files a/docs/assets/favicon.ico and b/docs/assets/favicon.ico differ diff --git a/docs/assets/logo.svg b/docs/assets/logo.svg index 9bf1661314..c04e23d234 100644 --- a/docs/assets/logo.svg +++ b/docs/assets/logo.svg @@ -1,14 +1,20 @@ - - - - - - - - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/docs/de.png b/docs/de.png deleted file mode 100644 index ac4a977362..0000000000 Binary files a/docs/de.png and /dev/null differ diff --git a/docs/de/gdevelop5/documentation.md b/docs/de/gdevelop5/documentation.md deleted file mode 100644 index aa1c14950a..0000000000 --- a/docs/de/gdevelop5/documentation.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: documentation ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 GDevelop ist ein quelloffener, plattformübergreifende **Spieleentwicklungssoftware**,. Die Verwendung ist für jedermann entwickelt worden – es sind keine Programmierkenntnisse erforderlich, um die Software zu verwenden. Wenn Sie GDevelop noch nie verwendet haben, [versuchen Sie es online](https://editor.gdevelop.io) oder [laden Sie die Desktop-Version herunter](http://gdevelop.io/download)! - -Dieses **Wiki** ist da, um Sie über die Software zu unterrichten und Tutorials zu ihrer Verwendung bereitzustellen: Sie sind herzlich eingeladen, dazu beizutragen! \# Einstieg - -➡️Um mit GDevelop 5 zu beginnen, lesen Sie die [Erste-Schritte-Seite](/gdevelop5/getting_started), die **[grundlegende Konzepte zur Spieleerstellung](/gdevelop5/tutorials/basic-game-making-concepts)** und durchsuchen Sie die [Tutorials](/gdevelop5/Tutorials). - -!!! note - - "Nicht vergessen. Kreativität und Durchhaltevermögen ist sehr wichtig bei der Spieleentwicklung. diff --git a/docs/de/gdevelop5/getting_started.md b/docs/de/gdevelop5/getting_started.md deleted file mode 100644 index b2a3e74f92..0000000000 --- a/docs/de/gdevelop5/getting_started.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Der Start mit GDevelop ---- -# Der Start mit GDevelop - -## Probieren Sie GDevelop online aus oder laden Sie die Desktop-Version herunter - -* Zu Beginn können Sie [GDevelop online testen](https://editor.gdevelop.io). -* Um Ihr eigenes Spiel zu erstellen, speichern und veröffentlichen Sie es unter [Download der Desktop-Version auf der GDevelop-Website](https://gdevelop.io). - -Wenn Sie GDevelop heruntergeladen haben, öffnen Sie das Installationsprogramm und installieren Sie die Software: - -* Verwenden Sie auf Windows-Computern nach dem *Starten des Installationsprogramms* das *GDevelop-Symbol* auf Ihrem Desktop, um es zu starten. Sie können die Installationsdatei (z. B. eine Zip-Datei) auch *dekomprimieren* und die Software in einem beliebigen Ordner ablegen. -* Starten Sie unter MacOS die *DMG-Datei*, ziehen Sie GDevelop in *Applications* und öffnen Sie GDevelop aus dem Ordner Applications. -* *Dekomprimieren* Sie unter Linux das Archiv und starten Sie die ausführbare Datei. - -Nach dem Start der Anwendung wird die Startseite angezeigt. Auf der Startseite können Sie ein vorhandenes Projekt öffnen oder ein neues Projekt erstellen. - -![](/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png) -## Erstelle ein neues Projekt - -Um ein neues Projekt zu erstellen, wählen Sie auf der Startseite "Neues Projekt erstellen". - -Ein neues Fenster wird geöffnet. Es enthält eine Liste von Optionen, mit denen Sie aus Vorlagen/Beispielen auswählen oder ein leeres Projekt erstellen können. Die *Beispiele* zeigen, wie eine bestimmte Funktion verwendet wird, während *Starter* fortgeschrittenere Spiele sind, die Sie ausprobieren, studieren und modifizieren können. - -Wenn Sie ein leeres Projekt auswählen, werden keine Elemente, Ereignisse oder Szenen angezeigt - es ist ein völlig leeres Spiel. - -![](/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png) - -Unten im Fenster können Sie den Ort auswählen, an dem Sie Ihr neues Projekt speichern möchten. -![](/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png) - -Nachdem Sie den Standardspeicherort für Ihr Projekt ausgewählt haben, klicken Sie auf den Namen einer Startvorlage oder eines Beispiels, um das Spiel zu öffnen. - -!!! note - - Neue Spiele, die Sie erstellen, werden standardmäßig in einem Ordner namens "GDevelop Projects" gespeichert, der sich in Ihrem Ordner "Documents" befindet. - - ## Öffnen Sie ein bestehendes Projekt - - Um ein bestehendes Projekt erneut zu öffnen, wählen Sie auf der Startseite "Projekt öffnen". - - Durchsuchen Sie als Nächstes Ihr lokales Dateisystem, um die Projektdatei auszuwählen. GDevelop 5-Projektdateien werden standardmäßig als ".json" -Dateien gespeichert. - - ![](/ gdevelop5/ project-file.png) - - Das Symbol für diese Datei hängt davon ab, ob auf Ihrem Computer eine Standardanwendung zum Bearbeiten von „.json“ -Dateien installiert ist. - - - *Hinweis:* Benutzer von GDevelop 4 können [hier erfahren, wie Sie Ihr Projekt speichern, um es mit GDevelop 5 zu öffnen](/gdevelop5/getting_started/open-gdevelop-4-project). - - ## Nächster Schritt: Beginnen Sie mit Tutorials - - Lesen Sie **[die grundlegenden Konzepte, um zu verstehen, wie man Gdevelop verwendet](/gdevelop5/tutorials/basic-game-making-concepts)**. - - Die Tutorials und die Dokumentation sind die besten Lernmethoden. Es wird dringend empfohlen, dass Sie ein Tutorial [tutorial](/gdevelop5/tutorials) durcharbeiten! - - ## Erfahren Sie mehr über GDevelop - - Weitere Informationen zur Verwendung von GDevelop finden Sie auf den folgenden Seiten, auf denen alles ausführlicher erklärt wird: - - * [interface](/gdevelop5/interface) - * [objects](/gdevelop5/objects) - * [behaviors](/gdevelop5/behaviors) - * [events](/gdevelop5/events) - * [all features](/gdevelop5/all-features) - * [publishing](/gdevelop5/publishing) - - Beachten Sie auch die mit GDevelop mitgelieferten Beispiele! Sie sind eine gute Möglichkeit, die verschiedenen Funktionen der Software kennenzulernen. \ No newline at end of file diff --git a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png b/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png deleted file mode 100644 index f4150fa7a1..0000000000 Binary files a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-11-24.png and /dev/null differ diff --git a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png b/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png deleted file mode 100644 index 5a6e7e7734..0000000000 Binary files a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-24-44.png and /dev/null differ diff --git a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png b/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png deleted file mode 100644 index f4b9c64905..0000000000 Binary files a/docs/de/gdevelop5/getting_started/bildschirmfoto_von_2020-01-05_22-28-28.png and /dev/null differ diff --git a/docs/de/gdevelop5/index.md b/docs/de/gdevelop5/index.md deleted file mode 100644 index 1826fac551..0000000000 --- a/docs/de/gdevelop5/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 Dokumentation - -GDevelop ist ein kostenloses Open-Source, Plattform-übergreifendes **Spiele-Erstellungstool**, dass jeder verwenden kann um Spiele zu erstellen *ohne* jegliche Programmier-Kenntnisse zu haben! Dieses Wiki enthält alles was du wissen musst um mit Gdevelop 5 Spiele zu erstellen — auch wenn du noch nie zuvor Spiele erstellt hast. - -![](/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - -## Nächste Schritte - -* Falls du GDevelop noch nicht installiert hast, dann lese dir die Anleitung [Anfangen](/gdevelop5/​getting_started) durch. -* Wenn du noch nie ein Spiel erstellt hast, lese dir die Anleitung zu den [Grundlegenden Konzepten zur Spielherstellung](/gdevelop5/​tutorials/​basic-game-making-concepts) durch. -* Wenn du bereit bist ein Spiel zu erstellen, dann [lese dir die Tutorials durch](/gdevelop5/​tutorials). diff --git a/docs/de/gdevelop5/publishing/web.md b/docs/de/gdevelop5/publishing/web.md deleted file mode 100644 index 5d8efaf513..0000000000 --- a/docs/de/gdevelop5/publishing/web.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: web ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Publishing your game on the web (upload online) - -Using GDevelop hosting servers, you can export your game for publication on the web. The hosting servers are free. Your game will be available for a few days! - -To upload to the servers, in the File menu, choose Export. Then choose **Web (upload online)**, and then simply click on **Export and upload my game**. - -![](/gdevelop5/publishing/export-online.png) - -The game will be hosted on GDevelop hosting servers. These servers are backed by Amazon's robust services. The games that you upload are available to use to share your game for a few days. There is no charge for this service. - -Note that the link, by default, is **private**. It not shared anywhere. You can share the link to your game according to your needs. Share with a few people or a broader audience. - -## Export to other platforms (iOS, Android, Windows, macOS, Linux) - -See the [other export options](/gdevelop5/publishing) to learn how to publish your game on other platforms! diff --git a/docs/de/gdevelop5/tutorials.md b/docs/de/gdevelop5/tutorials.md deleted file mode 100644 index 338c1c8445..0000000000 --- a/docs/de/gdevelop5/tutorials.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: GDevelop 5 tutorials ---- -# GDevelop 5 tutorials - -Diese Tutorials sind Schritt-für-Schritt-Anleitungen, die erklären, wie Sie ein Spiel von Grund auf neu erstellen: - -!!! note - - Wenn Sie GDevelop zum ersten Mal verwenden, wird empfohlen, mit diesen Tutorials zu beginnen - -- **[Grundlegende Konzepte zum Erstellen von Spielen: Was Sie wissen müssen, um mit GDevelop zu beginnen](/gdevelop5/tutorials/basic-game-making-concepts)** -- **[Erstellen Sie ein Plattformspiel](/gdevelop5/tutorials/platformer/start)** -- **[Geometry Monster: ein komplettes, einfaches Handyspiel](/gdevelop5/tutorials/geometry-monster)** - -Community-Tutorials: - -- [Erstelle ein einfaches Tank Shooter-Spiel](/gdevelop5/tutorials/tank-shooter) -- [Erstelle ein einfaches Endless Runner-Spiel](/gdevelop5/tutorials/endless-runner) -- [Erstelle ein einfaches Breakout-Spiel](/gdevelop5/tutorials/roadrider) - ------------------------------------------------------------------------- - -# GDevelop Kurzanleitungen ("wie") Die folgenden Anleitungen enthalten Erläuterungen zu bestimmten Teilen von GDevelop. Sie zeigen Ihnen auch einige fortgeschrittene Mechanismen zum Entwerfen Ihrer Spiele: - -- [So bewegen Sie Objekte in Ihrem Spiel (all die verschiedenen Lösungen)](/gdevelop5/tutorials/how-to-move-objects) -- [Wie man den Sprung und den Fall eines Charakters in einem Plattformspiel animiert](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) -- [So zeigen Sie einen großen Hintergrund in Ihrem Spiel an](/gdevelop5/tutorials/how-to-display-big-background) -- [So debuggen Sie schlechte Spieleleistungen](/gdevelop5/tutorials/how-to-debug-poor-performance) -- [Speicheraktion erklärt](/gdevelop5/tutorials/storage-action-explained) -- [So reduzieren Sie die Größe Ihres Spiels](/gdevelop5/tutorials/reduce-size-game) -- [Umgang mit komplexer Logik - Die Finite-State-Maschine (FSM)](/gdevelop5/tutorials/finite_state_machine) -- [Verwendung von GDevelop als Team (mehrere Entwickler und Teamkollegen)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team) - ------------------------------------------------------------------------- - -# Andere Anleitung Die folgenden Anleitungen enthalten Erklärungen zur Spieleentwicklung. Sie sind nicht spezifisch für GDevelop. - -* [Veröffentlichen Sie Ihr Spiel auf itch.io.](/gdevelop5/publishing/publishing-to-itch-io) -* [Veröffentlichen Sie Ihr Spiel im Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) -* [Veröffentlichen Sie Ihr Spiel in Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store) -* [Veröffentlichen Sie Ihr Spiel in Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) - ------------------------------------------------------------------------- - -# GDevelop Video-Tutorials - -- Siehe die [Liste der von der Community erstellten Video-Tutorials](/gdevelop5/tutorials/videos) - ------------------------------------------------------------------------- - -#Ressourcen - -Links zu Websites von Drittanbietern, auf denen Sie Sprites, Musik und Soundeffekte für Ihre Spiele und Spielbeispiele, Vorlagen und Software finden, die Sie bei der Spieleentwicklung unterstützen. - -- [Liste der Ressourcen](/gdevelop5/tutorials/resources) diff --git a/docs/de/index.md b/docs/de/index.md deleted file mode 100644 index 0026bc3df1..0000000000 --- a/docs/de/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop Wiki - -GDevelop ist eine Open Source, Cross-Platform Game Engine für Jedermann - Es sind keinerlei Programmierkenntnisse von nöten. Falls ihr GDevelop noch nicht heruntergeladen habt, [tut es jetzt](https://gdevelop.io/download)! - -Dieses Wiki bietet euch Hilfe und Tutorials zum Umgang mit der Software: Ihr seid herzlich Eingeladen mitzumachen! - -## Tutorials und videos - -Lernt GDevelop anhand der **[Tutorials](/de/gdevelop/tutorials)**. - -## Komplette Dokumentation - -Lest die **[GDevelop Dokumentation](/gdevelop/documentation)** für die komplette Referenz. \ No newline at end of file diff --git a/docs/el/gdevelop5/index.md b/docs/el/gdevelop5/index.md deleted file mode 100644 index a21697b58e..0000000000 --- a/docs/el/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 - -Το GDevelop είναι ένας δημιουργός παιχνιδιών ανοιχτής πηγής και πολλαπλών πλατφορμών που έχει σχεδιαστεί για χρήση από όλους - δεν απαιτούνται δεξιότητες προγραμματισμού για τη χρήση του λογισμικού. Εάν δεν έχετε χρησιμοποιήσει ποτέ το GDevelop, δοκιμάστε το online ή κατεβάστε την έκδοση για υπολογιστές, [try it online](https://editor.gdevelop.io) or [download the desktop version](https://gdevelop.io/download)! - -This **Wiki** is here to teach you about the software and provide tutorials on how to use it: you are welcome to contribute! - -# Getting Started - -➡️To get started with GDevelop 5, read the [Getting Started page](/gdevelop5/getting_started), the **[basic Game Making concepts](/gdevelop5/tutorials/basic-game-making-concepts)** and browse the [tutorials](/gdevelop5/tutorials). diff --git a/docs/es.png b/docs/es.png deleted file mode 100644 index c2de2d7111..0000000000 Binary files a/docs/es.png and /dev/null differ diff --git a/docs/es/gdevelop5/2.png b/docs/es/gdevelop5/2.png deleted file mode 100644 index acc7b44382..0000000000 Binary files a/docs/es/gdevelop5/2.png and /dev/null differ diff --git a/docs/es/gdevelop5/all-features/admob.md b/docs/es/gdevelop5/all-features/admob.md deleted file mode 100644 index 0d23d21b24..0000000000 --- a/docs/es/gdevelop5/all-features/admob.md +++ /dev/null @@ -1,126 +0,0 @@ ---- -title: Integrar anuncios usando Google AdMob ---- -# Integrar anuncios usando Google AdMob - -GDevelop soporta la integración de anuncios en su juego usando **Google AdMob**, on *Android* and *iOS*. - -Los anuncios pueden ser mostrados y cargados en cualquier momento. Pueden mostrarse como **banners** arriba o abajo de la pantalla o como **anuncios intersticiales**. Los _anuncios intersticiales_ son aquellos que ocupan toda la pantalla. **Vídeos de recompensa** también pueden ser mostrados. - -Los anuncios tipo banner suelen ser mostrados durante la partida o en el menú. Los anuncios intesticiales suelen mostrarse al iniciar/finalizar una escena o al lograr un objetivo dentro del juego. Los anuncios de recompensa suelen mostrarse a modo opcional si el usuario desea obtener algo a cambio de ver un anuncio (por ejemplo: monedas adicionales o saltar un nivel muy complicado para él) - -## Configurando tu cuenta de Google AdMob - -Para empezar, vaya al [sitio web de AdMob](https://www.google.com/admob/) y cree una cuenta. Una vez hecho esto, deberá crear una app y un nuevo bloque de anuncio. - -Ente en `Apps" y luego haga click en "Añadir App" en el menú de la izquierda". - -![](/gdevelop5/all-features/admob-left-menu-add-app.png) - -Añada sus apps estableciendo el nombre y la plataforma correspondiente. Si su juego es tanto como para Android e IOS, deberá de registrar 2 bloques de anuncio diferentes. - -Una vez creado, su **app id (id de la aplicación)** se mostrará. - -![](/gdevelop5/all-features/admob-app-created.png) - -Posteriormente, elija si el anuncio va a ser un banner, anuncio interstitial o video recompensado. - -![](/gdevelop5/all-features/admob-choose-ads-type.png) - -Establezca un nombre y haga click en "Añadir un nuevo bloque de anuncio" (create ad unit). - -![](/gdevelop5/all-features/admob-banner-setup.png) - -Ahora podrá ver el app id (id de la aplicación) y el ad unit identifier (id del bloque de anuncio). - -![](/gdevelop5/all-features/admob-adunit-id.png) - -!!! note - - El primer identificador es el **app id (id de la aplicación)**. El segundo es el **ad unit identifier (identificador del bloque de anuncio)**. Necesitas saber esto para luego insertarlo en los parámetro del juego y los parámetros de la acción para mostrar los anuncios. Cópielos o deje la ventana abierta. - -## Añadir un método de pago en AdMob - -Antes de que tus anuncios puedan ser mostrados, necestas tener establecido un método de pago en tu cuenta. Vaya a la página de pagos y rellene la información necesaria: - -![](/gdevelop5/all-features/admob-payments-menu.png) - -Cuando tu cuenta esté lista, Admob mostrará que tu cuenta ha sido *aprobada*: - -![](/gdevelop5/all-features/admob-account-approved.png) - -Ahora se podrán mostrar anuncios. - -!!! note - - Puede tomar un día (~h24) o días en mostrarse anuncios por primera vez. Si los anuncios no se muestra, compruebe que ha introducido toda la información necesaria en esta página y que su juego se encuentra configurado correctamente (ver la siguiente sección). - -!!! note - - Una vez tu cuenta está aprobada use el modo prueba para probar los anuncios. Si no usa el modo de prueba, su cuenta podría bloquearse debido a que AdMob prohibe el uso de anuncios en apps locales. Tu teléfono y ordenador no deben estar en la misma red y la cuenta de Google usada para Play sotre no debe ser la misma que la usada para el desarrollo. Generalmente es mejor pedirle a un amigo que pruebe el juego. - -## Configurando tu juego - -Una vez configurada tu cuenta de AdMob y teniendo tu app id y el ad unit identifier (identificador de anuncio), abre las propiedades de tu juego. Abre el **Administrador de proyectos**, y haga click en ajustes del juego y **Propiedades**. - -En la sección AdMob, introduzca su **app id**, uno para Android y otro para iOS (aunque puede que sea el mismo). - -!!! note - - El app id debe de ser introducido *SIN* comillas o espacios al principio/final. - -![20210128-231626.png](/gdevelop5/all-features/admob/pasted/20210128-231626.png) - -!!! note - - No confundir el *app id (identificador de la app)* y el *ad unit identifier (identificador de la unidad de anuncio)*. El app id es un único id para tu app, mientras que el ad unit identifier es diferente para cada anuncio que creas. - -## Cargando y mostrando anuncios Una vez tu juega está configurado con el *app id*, puedes añadir un evento con una acción para mostrar el bloque de anuncio que has creado (ad unit). Todas las acciones pueden encontrarse dentro de la categoría AdMob: - -![20210131-221349.png](/gdevelop5/all-features/admob/pasted/20210131-221349.png) - -Elija las opciones adaptadas a su bloque de anuncio: - - *Si has creado un **banner**, usa las acciones 1) *Configurar el banner* y 2) *Mostrar el banner*. - - * Para **intersticiales** y **vídeos recompenssados**, use la acción para primero cargarlo (durante la partida) y luego la acción para mostrarlo (el jugador ha terminado el nivel, por ejemplo). - -En la acción, pegue el **ad unit id (id del bloque de anuncio)** en los parámetros (uno para android y otro para IOS). Debido a que los parámetros son expresiones de cadena, debe poner los *ad unit identifier (id del bloque de anuncio) entre comillas*. - -![20210131-221724.png](/gdevelop5/all-features/admob/pasted/20210131-221724.png) - -Para mostrar los anuncios tan pronto como estén listos, marque la opción correspondiente. Esto es solo para los anuncios intersticiales y vídeos recompensados. Los banners son cargados y mostrados automáticamente usando la acción *Mostrar banner*. - -Finalmente, si su cuenta no se encuentra totalmente aprobada, es posible consultar el espacio que i¡eocupará su juego con el "**Modo prueba**". Esto creará un banner, intersticial o vídeo de recompensas falsos para ver el espacio que usan. - Esta es una gran forma de comprobar lo realizado. - -Para esto, inserte la acción para habilitar el modo prueba al principio del juego: - -![20210131-221920.png](/gdevelop5/all-features/admob/pasted/20210131-221920.png) - -## Probando y publicando su jueego en Android (o iOS) - -Primero necesita exportar el juego para Android (o iOS) para tener anuncios en su dispositivo. ver **[la página dobre como publicar para Android e iOS](/gdevelop5/publishing/android_and_ios)**. - -![](/gdevelop5/all-features/export-android.png) - -El servicio de exportación en un click para Android incluido con GDevelop es compatible con Admob, por lo tanto no se requieren herramientas o kits de desarrollos adicionales. - -En resumen, antes de lanzar su aplicación con anuncios, debe de: - -- Tener su cuenta de Admob aprobada. -- Comprobar que ha desabilitado el modo prueba (no hay una acción que lo active). -- Comprobar que ha establecido correctamente el **app id (id de la aplicación)** (para Android e iOS), y los **ad unit identifier (identificadores del bloque de anuncio)** (para Android e iOS). - -Espere unas cuantas horas para poder ver los primeros anuncios. - -!!! note - - Recuerde que los anuncios no están visibles en las previsualizaciones de GDevelop, solo en las exportaciones para Android (or iOS) apps. Puede que el servicio de AdMob tome varios días en empezar a mostrar anuncios en su aplicación, especialmente para los vídeos. - -## Ejemplo - -Mire como los anuncios funcionan en un juego abriendo el ejemplo **AdMob**. Remplace los app id (id de la aplicación) e ad unit identifiers (identificadores del bloque de anuncio), en las acciones para probar con su propia cuenta. - -!!! note - - ¡Pruébelo online! **[Click aquí para abrir el ejemplo de Admob](https://editor.gdevelop.io/?project=example://admob)**. Debe exportalo a Android usando el editor de Gdevelop descargado en su pc para probar el ejemplo en un teléfono real. diff --git a/docs/es/gdevelop5/all-features/audio/index.md b/docs/es/gdevelop5/all-features/audio/index.md deleted file mode 100644 index 33e23f8ac5..0000000000 --- a/docs/es/gdevelop5/all-features/audio/index.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Audio ---- -# Audio - -Reproducir música y o sonidos es una parte escencial de un juego. GDevelop le proporciona varias condiciones y acciones para reproducir archivos de audio. - -##Reproducción de un archivo de sonido o de música - -!!! warning - - Antes de que se pueda reproducir un sonido/música, primero debes asegurarte de que el jugador interactuó con tu juego (un simple clic/toque en la pantalla está bien para desbloquear el audio). Esta es una limitación de los navegadores y no se puede solucionar. En tu juego final, se recomienda tener en tu primera escena un mensaje "Presiona cualquier tecla o toca la pantalla para continuar". - -La forma más sencilla de reproducir un archivo de audio es usar la acción "**Reproducir un sonido**" o "**Reproducir un archivo de música**". -Elija el archivo que se reproducirá para el primer parámetro de ambas acciones. - -La diferencia entre sonido y música es que los archivos de música suelen ser archivos de audio cada vez más grandes. Los formatos de archivo de audio compatibles con GDevelop son Waveform Audio Format (wav), MPEG Layer 3 (mp3), Ogg Vorbis (ogg) y Advance Audio Coding (AAC) - -!!! note - - Los archivos Ogg pueden ser contenedores para múltiples tipos de audio, más comúnmente Vorbis y Opus. Los archivos Ogg Vorbis son mucho más compatibles con diferentes navegadores y sistemas operativos, por lo que se recomienda utilizar la codificación Ogg Vorbis si se utilizan archivos ogg. - -Todos estos formatos se pueden utilizar para música o efectos de sonido, aunque se recomienda encarecidamente utilizar mp3 u ogg para música debido al tamaño del archivo wav. Un archivo mp3, ogg o AAC de 320 kbps tendrá una calidad de audio casi idéntica a un archivo wav de máxima calidad, pero ocupará 1/4 del tamaño del archivo. - -Si distribuye su juego vía web, algunos navegadores también admiten otros formatos de archivo. Por ejemplo, `ogg`; `ogg` es una alternativa superior a `mp3` para la música. Desafortunadamente, no todos los navegadores lo admiten [Para más información puede consltar Wikipedia](https://en.wikipedia.org/wiki/HTML5_audio#Supported_audio_coding_formats). - -!!! tip - - Puede utilizar la herramienta de creación de efectos de sonido incorporada llamada jfxr para crear efectos de sonido (esta herramienta solo está disponible para la versión de escritorio) - [Aprenda a usar jfxr aquí](/gdevelop5/ all-features/ audio/ using-jfxr) - -!!! note - - Cuando eliges un archivo de audio, se agrega a los recursos del juego para que se cargue durante el inicio del juego. - Para minimizar el tamaño de su juego, asegúrese de eliminar los archivos de audio que ya no están en uso por las acciones de su juego. - - - - -## Mantén la música y los sonidos reproduciéndose entre escenas - -Cuando comienza una nueva escena, de forma predeterminada, los sonidos y la música se detienen. Si desea que sigan reproduciéndose, abra las propiedades de la escena (haga clic con el botón derecho en la escena, en el editor de escenas) y desmarque la casilla de verificación: -![](/ gdevelop5/ all-features/ scene_properties.png) - - - -## Usando canales - -Cuando se utiliza la acción "Reproducir un sonido" o "Reproducir un archivo de música", los archivos de audio se reproducen inmediatamente. Al finalizar, se eliminan de la memoria. El bucle es una excepción. Cuando configura la acción para repetir el archivo de audio, se reproducirá para siempre (Endless Loop). Debe utilizar una acción para detener todos los sonidos o la música. - -Si desea tener más control sobre los sonidos, utilice la acción "** Reproducir un sonido en un canal **" o "** Reproducir un archivo de música en un canal. **" La acción se usa de la misma manera, excepto que usted tiene que ingresar un número de canal. Este número de canal se puede reutilizar en otras acciones o condiciones. Se puede usar un "número de canal" para verificar si se está reproduciendo un sonido en un canal, o se puede usar para modificar algunas propiedades de la música que se está reproduciendo. Por ejemplo, puede utilizar un "número de canal" para actualizar el volumen de la música de forma dinámica de acuerdo con la presencia de enemigos alrededor del reproductor. - -## Volumen - -Los sonidos y la música se reproducen por defecto con un volumen del 100%, que es el máximo. Al iniciar un nuevo sonido / música, puede ingresar un valor diferente (entre 0 y 100). - -También puedes usar la acción "Volumen global del juego" para cambiar el volumen de audio de todo el juego. Un valor de 0 significa que no se puede escuchar ningún sonido o música. Esta acción es conveniente cuando se permite al jugador silenciar o cambiar el volumen del juego. Por ejemplo, es posible que tenga una pantalla de configuración en su juego que acceda al control de volumen del juego. Los juegos móviles también suelen tener un botón para silenciar los sonidos del juego. - -## Consideraciones de rendimiento - -La primera vez que se reproduce música o sonido, puede haber un retraso mientras se prepara el archivo de audio. Si es esencial evitar cualquier retraso, puede reproducir el archivo de audio o música al comienzo de la escena donde se usa. Establecer el volumen inicial 0; esto obligará al juego a cargar el sonido o la música. El audio se almacenará en la memoria caché. Se cargará rápidamente cuando se llame usando su acción. - -## Más sobre el estado de un sonido / música - -Cuando usas la acción para ** reproducir un sonido o música en un canal **, se pone en el estado ** "reproduciendo" **, incluso si todavía **se carga** en la memoria. - -La condición "Se está reproduciendo un sonido" (en este canal) es entonces verdadera, mientras que "Un sonido está detenido" (en este canal) será falsa, así como "Un sonido está en pausa" (en este canal nuevamente). -Cuando el sonido esté completamente cargado, comenzará a ser realmente played en su dispositivo (para que escuche el audio). - -El sonido se detendrá cuando: - -* Llega a su **final** y no está configurado para bucle. -* Hay **un error durante la carga** (en cuyo caso se considerará que se está reproduciendo durante unos milisegundos, luego se considerará que está detenido porque no se pudo cargar). -* O usó **la acción** para detener un sonido o música en el canal. \ No newline at end of file diff --git a/docs/es/gdevelop5/all-features/audio/using-jfxr.md b/docs/es/gdevelop5/all-features/audio/using-jfxr.md deleted file mode 100644 index 663b60411c..0000000000 --- a/docs/es/gdevelop5/all-features/audio/using-jfxr.md +++ /dev/null @@ -1,82 +0,0 @@ ---- -title: Haciendo efectos de sonido usando jfxr ---- -# Haciendo efectos de sonido usando jfxr - -GDevelop viene equipado con una herramienta llamada [jfxr](https://jfxr.frozenfractal.com/). La cual puede sser usada para crear efectos de sonidos en GDevelop. - -!!! note - - jfxr sólo viene equipado en la versión de escritorio de GDevelop. No podrás usarlo en el editor online. - -# Abriendo jfxr - -Puedes usar jfxr en lugar de introducir un archivo (.wav, etc..) haciendo click en **Crear** al lado del parámetro - -![](/gdevelop5/all-features/audio/usingjfxr0.png) - -También se puede emplear para archivos ya existentes. - -![](/gdevelop5/all-features/audio/usingjfxr10.png) - -# Interfaz - -Cuando haces click en el botón, una interfaz similar a la de abajo aparecerá: - -![](/gdevelop5/all-features/audio/usingjfxr2.png) - -## Generando efectos de sonidos - -Puedes generar efectos de sonido haciendo click en estas opcines:. - -Jfxr te da opciones para el tipo de efecto de sonido a elegir. como por ejemplo, **golpe/dañoo (hit/damage)**, **moneda adquirida (coin collected)**/**potenciador (powerup)**, etc.. - -![](/gdevelop5/all-features/audio/usingjfxr3.png) - -Jfxr Puede algunas veces repetir dos veces un sonido, si quieres que cree un sonido nuevo cada vez, puedes modificar **Create new sound (crear nuevo sonido)**. - -![](/gdevelop5/all-features/audio/usingjfxr4.png) - -## Personalizando el sonido generado - -Puedes cambiar el sonido generado a tu gusto con las múltiples opciones dadas. - -![](/gdevelop5/all-features/audio/usingjfxr5.png) - -Puedes silenciar sonidos usando **mutate** abajo de las opciones de efectos de sonidos. - -Tu también puedes deshacer las acciones usando **undo** dado al lado. - -![](/gdevelop5/all-features/audio/usingjfxr12.png) - -## Reproduciendo los efectos de sonidos - -Puedes reproducir los sonidos haciendo click en **Play**. - -![](/gdevelop5/all-features/audio/usingjfxr6.png) - -Si quieres que el sonido se reproduzca automáticamente después de cada cambio dado, puedes activar **Auto** al lado del botón de play. - -Puedes volver de nuevo a los sonidos creados con anterioridad a través de la lista dad arraba a la izquierda. - -![](/gdevelop5/all-features/audio/usingjfxr.png) - -## Guardando y exportando - -Cuando todo esté listo, puedes exportar el sonido a .wav y darle un nombre. - -Haz click en **save** y tu obra será añadida a la carpeta del proyecto. - -![](/gdevelop5/all-features/audio/usingjfxr9.png) - -Una vez hecho click en guardar y salir, El sondio deberá ser añadido al parámetro de la opción. Puedes usar el sonido creado como cualquier otro en eventos. - -!!! note - - Puede darse algún error diciendo que el archivo no existe. Simplemente abra de nuevo el editor de acciones y deberá de solucionarse - -### Otras opciones - -También puedes guardar los sonidos como archivos ".jfxr" file usando **Save**. El cual puedes abrir luego y continuar trabajando abriéndolo con **Open**. También puedes exportar el sonido de forma externa usando **Export**. También puedes incluso generar un link al sonido - -![](/gdevelop5/all-features/audio/usingjfxr13.png) diff --git a/docs/es/gdevelop5/all-features/collisions.md b/docs/es/gdevelop5/all-features/collisions.md deleted file mode 100644 index 1899dad104..0000000000 --- a/docs/es/gdevelop5/all-features/collisions.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Manejando colisiones en tu juego ---- -# Manejando colisiones en tu juego - -La mayoría de los juegos necesitan detectar y manejar colisiones entre objetos. La detección y el manejo de colisiones se pueden hacer para que los objetos se adhieran a las plataformas, así como para detectar colisiones entre balas y jugadores o balas y otros objetos. - -GDevelop proporciona varias formas diferentes de manejar las colisiones. Puede detectar colisiones usando las acciones y condiciones del editor de eventos o puede usar comportamientos de objetos. - -## Haga objetos sólidos: use la acción "Separar objetos" (bueno para juegos de arriba hacia abajo, RPG ...) - -Puede utilizar la acción "**Objetos separados**" para mover objetos manualmente. La acción "Objetos separados también puede mover objetos con" fuerzas "o estableciendo la posición del objeto. - -"**Objetos separados**". Esta acción toma 2 nombres de objeto como argumento. - -- El primer nombre del objeto es el _objeto en movimiento_ (el jugador, el enemigo, etc ...). -- El segundo nombre de objeto es un _objeto (o un grupo de objetos) que es sólido_. Por ejemplo, estos objetos pueden ser las paredes. - -La acción entonces iterará sobre todos los objetos dados. Se asegurará de que si cualquier objeto del primer tipo choca con el objeto del segundo tipo, el objeto se alejará. Esto se hace usando un algoritmo llamado _SAT algorithm_. - -![](/gdevelop5/all-features/separate-objects-action.png) - -Esta acción será lanzada en cada fotograma. En un evento sin condiciones, la acción ya está haciendo las comprobaciones de colisiones. Evita lanzar esta acción varias veces. Hacerlo podría reducir el rendimiento del juego. - -### Detección de Colisiones (Detect collisions). - -El uso de "Objetos separados" es una buena manera de asegurarse de que sus objetos no puedan moverse a otros objetos sólidos. Esta acción comprueba las colisiones entre objetos. Por ejemplo, si el objeto del juego "jugador" toca una pared, esta acción, cuando se usa con la condición llamada "**Colisión**", provocará daños al jugador. - -**La secuencia es importante. ** - Ejecutar la condición llamada "** Colisión**" - -1. Añadir acciones apropiadas. -2. Añadir la acción "Separar objetos" - -Después de ejecutar la acción "Separar objetos", los objetos se mueven. _Las colisiones entre objetos ya no podrán ser verificadas._ - -Puede encontrar el uso de estas condiciones y acciones en los ejemplos: - -!!! note - - **Véalo en acción!** 🎮 Abre el ejemplo Online: - -[![](/undefined/checkccollisionbetweenobjects.png)](https://editor.gdevelop.io?project=example://bomb-the-crate) - -## Juegos de Plataformas: usa el personaje de Plataformas y los comportamientos de Plataforma. - -Si está creando un juego de plataformas, es una buena idea usar el comportamiento ["Platformer" character](/gdevelop5/ behaviors/ platformer). Es un motor de juego de plataformas ya hecho que es altamente personalizable. El comportamiento del "personaje de Plataformas" maneja las colisiones con las plataformas y la gravedad para usted. - -### ¿Detectar colisiones en un juego de plataformas? - -En un juego de plataformas con el comportamiento del "personaje de Platformer", las colisiones se manejan por ti con plataformas. - -* Aún puedes usar la **Condición de colisión **para verificar las colisiones entre un objeto y otros objetos (por ejemplo, entre el jugador y los enemigos) y reaccionar en consecuencia. * Puede usar la condición "Está en el piso" para verificar si un objeto está en una plataforma. - -![](/gdevelop5/all-features/playerisonfloorevents.png) - -!!! note - - **Véalo en acción!** 🎮 - - Abre los ejemplos Online: - -## ¿Juego con la física? Usa el comportamiento de la física. - -Usa [Physics behavior](/gdevelop5/ behaviors/ physics) para lograr un comportamiento físico realista en tu juego. Adjunta el comportamiento "Física" a tus objetos. Los objetos se comportarán como si estuvieran basados ​​vivos en el mundo del juego. Algunos ejemplos de comportamiento del mundo real son rebotar bolas, caer, saltar, etc. - -Configure las paredes del juego u objetos sólidos que no deberían moverse con un comportamiento "estático". - -### Detectar colisiones con el comportamiento de Física. - -Cuando está utilizando el comportamiento "Física", **no use **la condición "Colisión" que está en la categoría **Características para todos los objetos**. _El motor de física manejará todas las colisiones por sí mismo ._ La condición de colisión no detectará correctamente cuando los objetos se toquen. - -En su lugar, use la Condición de colisión **dentro de la categoría de comportamiento de Física**, que utiliza correctamente el motor de física para escuchar colisiones. - -![](/gdevelop5/all-features/usephysicsbehaviornotcollisioncondition.png) - -!!! note - - **Véalo en acción!** 🎮 Abra el ejemplo Online: - -![](/gdevelop5/behaviors/hingeleverdemo.png) diff --git a/docs/es/gdevelop5/all-features/device-sensors.md b/docs/es/gdevelop5/all-features/device-sensors.md deleted file mode 100644 index 7767389119..0000000000 --- a/docs/es/gdevelop5/all-features/device-sensors.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: Extensión de sensores del dispositivo ---- -# Extensión de sensores del dispositivo - -Esta poderosa extensión le brinda acceso a los sensores que se pueden encontrar en la mayoría de los dispositivos móviles. - -## Sensor de orientación - -El sensor de orientación combina el giroscopio, el acelerómetro y la brújula en un sensor. Esto le permite controlar los objetos del juego girando ligeramente el dispositivo móvil en sus manos. Puede acceder a los datos de ubicación a través de los valores "alfa", "beta" y "gamma" que se explican en la siguiente sección. - -### Ejes explicados - -#### Alfa - -![](/gdevelop5/all-features/orientation_alpha_axis.png) - -El valor "alfa" corresponde al eje que apunta al cielo cuando su teléfono está sobre una mesa con su pantalla apuntando hacia arriba. Puede crear fácilmente una brújula utilizando el valor de rotación "alfa". - -**Rango: **0 a 360 grados - -#### Beta - -![](/gdevelop5/all-features/orientation_beta_axis.png) - -El eje "beta" corre a través del borde estrecho del teléfono. - -**Rango: **-180 a 180 grados - -#### Gamma - -![](/gdevelop5/all-features/orientation_gamma_axis.png) - -El eje "gamma" recorre el borde más largo del teléfono. - -**Rango: **-90 a 90 grados - -### Condiciones - -**Sensor activo** - -Esta condición verifica si el sensor se ha activado todavía y está entregando datos de ubicación. - -**Orientación alfa** - -Esta condición le permite comparar el valor de alfa con un número o variable. - -**Orientación Beta** - -Esta condición le permite comparar el valor de beta con un número o variable. - -**Orientación Gamma** - -Esta condición le permite comparar el valor de gamma con un número o variable. - -### Acciones - -**Activar el sensor de orientación** - -Esta acción activa el sensor de orientación para que comience a entregar valores alfa, beta y gamma. Vuelva a apagarlo cuando ya no necesite el sensor para ahorrar tiempo de procesamiento y la batería del teléfono. - -**Desactivar el sensor de orientación** - -Esta acción desactiva el sensor de orientación para que deje de entregar valores alfa, beta y gamma. - -### Expresiones - -**Es Absoluto** - -Este valor indica que los datos de orientación están en valores absolutos. En referencia a las coordenadas de la Tierra (valor 1) o el uso de un marco arbitrario está determinado por el dispositivo (valor 0). - -**Valor alfa** - -La rotación "alfa". - -**Valor Beta** - -La rotación "beta". - -**Valor gamma** - -La rotación "gamma". - -## Sensor de movimiento - -En contraste con el sensor de orientación que devuelve valores absolutos, el sensor de movimiento entrega valores relativos. Este sensor solo devuelve valores mientras el dispositivo se está moviendo. Si lo mantiene quieto, sin importar su orientación, el sensor devolverá 0. Puede acceder a los datos de movimiento a lo largo de un eje a través de los valores "x", "y", "z" y los datos de rotación alrededor de un eje a través de "alfa", "beta" y "gamma", que se explican en la siguiente sección. - -!!! note - - Los valores de rotación del sensor de movimiento (alfa, beta, gamma) actualmente no son compatibles con los dispositivos móviles. Actualmente sería mejor calcular el valor a partir de los datos de orientación - -### Ejes explicados - -#### Aceleración X - -![](/gdevelop5/all-features/motion_acceleration_x.png) - -Este valor muestra la aceleración a lo largo del eje x. Si mueve su dispositivo a lo largo del borde más largo, el valor de x aumentará. - -#### Aceleración Y - -![](/gdevelop5/all-features/motion_acceleration_y.png) - -Este valor muestra la aceleración a lo largo del eje y. Si mueve su dispositivo a lo largo del borde más pequeño, el valor y aumentará. - -#### Aceleración Z - -![](/gdevelop5/all-features/motion_acceleration_z.png) - -Este valor muestra la aceleración a lo largo del eje z. Si mueve su dispositivo hacia arriba o hacia abajo, el valor z aumentará. - -#### Rotación alfa - -![](/ gdevelop5/ all-features/ motion_alpha.png) - -Este valor muestra la aceleración alrededor del eje z. Si enciende su dispositivo con la pantalla hacia arriba, el valor alfa aumentará. - -#### Rotación beta - -![](/ gdevelop5/ todas las funciones/ motion_beta.png) - -Este valor muestra la aceleración alrededor del eje x. Si sostiene su dispositivo en modo horizontal con una mano en cada lado, puede girar su dispositivo alrededor del eje x y el valor beta aumentará. - -#### Rotación gamma - -![](/ gdevelop5/ todas las funciones/ motion_gamma.png) - -Este valor muestra la aceleración alrededor del eje y. Si sostiene su dispositivo en modo retrato con una mano en cada lado, puede girar su dispositivo alrededor del eje y y el valor beta aumentará. - -### Condiciones - -**Sensor activo** - -Esta condición verifica si el sensor se ha activado todavía y está entregando datos de ubicación. - -**Aceleración X** - -Esta condición le permite comparar el valor de la aceleración x con un número o variable. (m / s²) - -**Aceleración Y** - -Esta condición le permite comparar el valor de la aceleración y con un número o variable. (m / s²) - -**Aceleración Z** - -Esta condición le permite comparar el valor de la aceleración z con un número o variable. (m / s²) - -**Motion Alpha** - -Esta condición le permite comparar el valor de alfa con un número o variable. (m / s²) - -**Motion Beta** - -Esta condición le permite comparar el valor de beta con un número o variable. (m / s²) - -**Motion Gamma** - -Esta condición le permite comparar el valor de gamma con un número o variable. (m / s²) - -### Acciones - -**Activar el sensor de movimiento** - -Esta acción activa el sensor de movimiento para que comience a entregar valores de x, a, z, alfa, beta y gamma. Vuelva a apagarlo cuando ya no necesite el sensor para ahorrar tiempo de procesamiento y la batería del teléfono. - -**Desactivar el sensor de movimiento** - -Esta acción desactiva el sensor de movimiento para que deje de entregar valores de x, a, z, alfa, beta y gamma. - -### Expresiones - -**Aceleración X Valor** - -La aceleración "x". (m / s²) - -**Aceleración Y Valor** - -La "y" aceleración. (m / s²) - -**Aceleración Z Valor** - -La aceleración "z". (m / s²) - -**Valor alfa** - -La rotación "alfa". (m / s²) - -**Valor Beta** - -La rotación "beta". (m / s²) - -**Valor gamma** - -La rotación "gamma". (m / s²) - -![](/gdevelop5/all-features/devicesensorsevents.png) - -## Reference - -All actions, conditions and expressions are listed in [the device sensors reference page](/gdevelop5/all-features/device-sensors/reference/). diff --git a/docs/es/gdevelop5/all-features/device-vibration.md b/docs/es/gdevelop5/all-features/device-vibration.md deleted file mode 100644 index 05b3550a5d..0000000000 --- a/docs/es/gdevelop5/all-features/device-vibration.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Extensión de vibración del dispositivo ---- -# Extensión de vibración del dispositivo - -Esta extensión le da acceso a la funcionalidad de vibración en dispositivos móviles. - -### Acciones - -#### Vibrar - -Esta acción hace vibrar el dispositivo una vez por el valor dado en milisegundos. (valor numérico). - -#### Vibrar por patrón - -Esta acción hace vibrar el dispositivo en un patrón. Cada primer valor representa el tiempo de vibración, cada segundo el tiempo de silencio. Cada valor debe darse en milisegundos como una lista de valores numéricos separados por comas. // ¡No olvides las comillas! // - -!!! note - - **Ejemplo: **"1000,500,1000" - - Un segundo de vibración, seguido de medio segundo de silencio y luego un segundo más de vibración. - -#### Detener la vibración - -Esta acción detiene la vibración después del intervalo de patrón actual. - -![](/gdevelop5/all-features/devicevibrationevents.png) diff --git a/docs/es/gdevelop5/all-features/expressions-reference.md b/docs/es/gdevelop5/all-features/expressions-reference.md deleted file mode 100644 index 35be9520fa..0000000000 --- a/docs/es/gdevelop5/all-features/expressions-reference.md +++ /dev/null @@ -1,1066 +0,0 @@ ---- -title: expressions-reference ---- -FIXME**Esta página no está totalmente traducida, por ahora. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# Referencia de expresiones - -Las expresiones se pueden añadir cuando ves este botón al lado de algún campo de texto: - -![](/gdevelop5/field_expressions.png) - -- El botón de la izquierda indica una "expresión de cadena" (un texto) -- El botón derecho indica una "expresión numérica" (número) - -Esta página es una referencia de todas las expresiones que se pueden usar en GDevelop, agrupadas por la extensión, objeto o comportamiento al que pertenecen también. Cuando se escribe "Objeto", debe ingresar un nobre para el objeto.**[Aprenda más aquí sobre cómo escribir expresiones.](/gdevelop5/all-features/expressions)** - -!!! note - - Las expresiones también son llamadas a veces funciones, como en matemáticas. - -## Funciones para todos los objetos - -Funciones comunes que pueden usarse para todos los objetos [Lea más sobre ello.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/base_object/events) - -| Expresión | Descripción | | -|-------------------|------------------------------------------------------------------|:------:| -| `Count(object)` | Cuenta el número de objetos especificados obtenidos en el evento | | -| ::: | _object_ | Objeto | - -| Expresión | Descripción | | -|--------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:-----------------:| -| `Object.Angle()` | Ángulo actual, en grados, del objeto | | -| `Object.AngleToObject(object)` | Compute the angle between two objects. If you need the angle to an arbitrary position, use AngleToPosition. | | -| ::: | _object_ | Object | -| `Object.AngleToPosition(number, number)` | Compute the angle between the object center and a "target" position. If you need the angle between two objects, use AngleToObject. | | -| ::: | _number_ | Target X position | -| ::: | _number_ | Target Y position | -| `Object.CenterX()` | Return the X position of the center. | | -| `Object.CenterY()` | Return the Y position of the center. | | -| `Object.Distance(object)` | Distance between two objects | | -| ::: | _object_ | Object | -| `Object.DistanceToPosition(number, number)` | Distance between an object and a position | | -| ::: | _number_ | Target X position | -| ::: | _number_ | Target Y position | -| `Object.ForceAngle()` | Angle of the sum of forces | | -| `Object.ForceLength()` | Length of the sum of forces | | -| `Object.ForceX()` | X coordinate of the sum of forces | | -| `Object.ForceY()` | Y coordinate of the sum of forces | | -| `Object.Height()` | Height of the object | | -| `Object.Layer()` | Return the name of the layer the object is on | | -| `Object.ObjectName()` | Return the name of the object | | -| `Object.ObjectTimerElapsedTime(string)` | Value of a timer | | -| ::: | _string_ | Timer's name | -| `Object.SqDistance(object)` | Square distance between two objects | | -| ::: | _object_ | Object | -| `Object.SqDistanceToPosition(number, number)` | Square distance between an object and a position | | -| ::: | _number_ | Target X position | -| ::: | _number_ | Target Y position | -| `Object.Variable(objectvar)` | Value of an object variable | | -| ::: | _objectvar_ | Variable | -| `Object.VariableChildCount(objectvar)` | Number of children of an object variable | | -| ::: | _objectvar_ | Variable | -| `Object.VariableString(objectvar)` | Text of an object variable | | -| ::: | _objectvar_ | Variable | -| `Object.Width()` | Width of the object | | -| `Object.X()` | X position of the object | | -| `Object.XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | | -| ::: | _number_ | Angle, in degrees | -| ::: | _number_ | Distance | -| `Object.Y()` | Y position of the object | | -| `Object.YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | | -| ::: | _number_ | Angle, in degrees | -| ::: | _number_ | Distance | -| `Object.ZOrder()` | Z-order of an object | | - ---- - -## Sprite - -Animated object which can be used for most elements of a game [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/sprite) - -| Expresión | Descripción | | -|------------------------------------|-------------------------------------|:-----------------:| -| `Object.Animation()` | Animation of the object | | -| `Object.AnimationName()` | Name of the animation of the object | | -| `Object.AnimationSpeedScale()` | Animation speed scale | | -| `Object.Direction()` | Direction of the object | | -| `Object.Opacity()` | Opacity | | -| `Object.PointX(objectPointName)` | X position of a point | | -| ::: | _objectPointName_ | Name of the point | -| `Object.PointY(objectPointName)` | Y position of a point | | -| ::: | _objectPointName_ | Name of the point | -| `Object.ScaleX()` | Scale of the width of an object | | -| `Object.ScaleY()` | Scale of the height of an object | | -| `Object.Sprite()` | Animation frame of the object | | - ---- - -## Standard Conversions - -Expressions to convert number, texts and quantities. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/common-conversions) - -| Expresión | Descripción | | -|---------------------------------|-------------------------------------------------------------------------------------|:----------------------------------:| -| `LargeNumberToString(number)` | Convert the result of the expression to text, without using the scientific notation | | -| ::: | _number_ | Expression to be converted to text | -| `ToDeg(number)` | Converts the angle, expressed in radians, into degrees | | -| ::: | _number_ | Angle, in radians | -| `ToNumber(string)` | Convert the text to a number | | -| ::: | _string_ | Text to convert to a number | -| `ToRad(number)` | Converts the angle, expressed in degrees, into radians | | -| ::: | _number_ | Angle, in degrees | -| `ToString(number)` | Convert the result of the expression to text | | -| ::: | _number_ | Expression to be converted to text | - ---- - -## Variable features - -Actions, conditions and expressions to handle variables, from simple variables like the player score, the number of remaining lives to complex variables containing arbitrary data like an inventory or the result of a web request. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/variables) - -| Expresión | Descripción | | -|-----------------------------------------|-----------------------------------------|:---------------------------:| -| `GlobalVariable(globalvar)` | Value of a global variable | | -| ::: | _globalvar_ | Name of the global variable | -| `GlobalVariableChildCount(globalvar)` | Number of children of a global variable | | -| ::: | _globalvar_ | Variable | -| `GlobalVariableString(globalvar)` | Text of a global variable | | -| ::: | _globalvar_ | Variable | -| `Variable(scenevar)` | Value of a scene variable | | -| ::: | _scenevar_ | Variable | -| `VariableChildCount(scenevar)` | Number of children of a scene variable | | -| ::: | _scenevar_ | Variable | -| `VariableString(scenevar)` | Text of a scene variable | | -| ::: | _scenevar_ | Variable | - ---- - -## Mouse and touch - -Conditions and actions to handle either the mouse or touches on touchscreen. By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/mouse-touch) - -| Expresión | Descripción | | -|-----------------------------------|----------------------------------------------------|:-----------------------------------------:| -| `LastEndedTouchId()` | Identifier of the last ended touch | | -| `LastTouchId()` | Identifier of the last touch | | -| `MouseWheelDelta()` | Mouse wheel displacement | | -| `MouseX(layer, number)` | Return the X position of the cursor or of a touch. | | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `MouseY(layer, number)` | Return the Y position of the cursor or of a touch. | | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `TouchX(number, layer, number)` | Return the X position of a specific touch. | | -| ::: | _number_ | Touch identifier | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `TouchY(number, layer, number)` | Return the Y position of a specific touch. | | -| ::: | _number_ | Touch identifier | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | - ---- - -## Keyboard features - -Allows your game to respond to keyboard input. Note that this does not work with on-screen keyboard on touch devices: use instead conditions related to touch when making a game for mobile/touchscreen devices. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/keyboard) - -| Expresión | Descripción | | -|----------------------|--------------------------------------------------------|:---:| -| `LastPressedKey()` | Get the name of the latest key pressed on the keyboard | | - ---- - -## Scene management features - -Actions and conditions to manipulate the scenes during the game. - -| Expresión | Descripción | | -|--------------------------------------------|---------------------------|:-------------:| -| `CurrentSceneName()` | Name of the current scene | | -| `Random(number)` | Random integer | | -| ::: | _number_ | Maximum value | -| `RandomFloat(number)` | Random float | | -| ::: | _number_ | Maximum value | -| `RandomFloatInRange(number, number)` | Random float in range | | -| ::: | _number_ | Minimum value | -| ::: | _number_ | Maximum value | -| `RandomInRange(number, number)` | Random integer in range | | -| ::: | _number_ | Minimum value | -| ::: | _number_ | Maximum value | -| `RandomWithStep(number, number, number)` | Random value in steps | | -| ::: | _number_ | Minimum value | -| ::: | _number_ | Maximum value | -| ::: | _number_ | Step | - ---- - -## Time - -Actions and conditions to run timers, get the current time or modify the time scale (speed at which the game is running - useful for slow motion effects). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/timers) - -| Expresión | Descripción | | -|------------------------------|------------------------------------------------------|:---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------:| -| `Time(string)` | Current time | | -| ::: | _string_ | Hour: hour - Minutes: min - Seconds: sec - Day of month: mday - Months since January: mon - Year since 1900: year - Days since Sunday: wday - Days since Jan 1st: yday - Timestamp (ms): timestamp" | -| `TimeDelta()` | Time elapsed since the last frame rendered on screen | | -| `TimeFromStart()` | Time elapsed since the beginning of the scene | | -| `TimerElapsedTime(string)` | Value of a scene timer | | -| ::: | _string_ | Timer's name | - ---- - -## Mathematical tools - -A set of mathematical functions that can be used in expressions. - -| Expresión | Descripción | | -|--------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|:--------------------------------------:| -| `AngleBetweenPositions(number, number, number, number)` | Compute the angle between two positions. | | -| ::: | _number_ | First point X position | -| ::: | _number_ | First point Y position | -| ::: | _number_ | Second point X position | -| ::: | _number_ | Second point Y position | -| `AngleDifference(number, number)` | Difference between two angles | | -| ::: | _number_ | First angle | -| ::: | _number_ | Second angle | -| `DistanceBetweenPositions(number, number, number, number)` | Compute the distance between two positions. | | -| ::: | _number_ | First point X position | -| ::: | _number_ | First point Y position | -| ::: | _number_ | Second point X position | -| ::: | _number_ | Second point Y position | -| `XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | | -| ::: | _number_ | Angle, in degrees | -| ::: | _number_ | Distance | -| `YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. | | -| ::: | _number_ | Angle, in degrees | -| ::: | _number_ | Distance | -| `abs(number)` | Absolute value | | -| ::: | _number_ | Expression | -| `acos(number)` | Arccosine | | -| ::: | _number_ | Expression | -| `acosh(number)` | Hyperbolic arccosine | | -| ::: | _number_ | Expression | -| `asin(number)` | Arcsine | | -| ::: | _number_ | Expression | -| `asinh(number)` | Arcsine | | -| ::: | _number_ | Expression | -| `atan(number)` | Arctangent | | -| ::: | _number_ | Expression | -| `atan2(number, number)` | 2 argument arctangent (atan2) | | -| ::: | _number_ | Y | -| ::: | _number_ | X | -| `atanh(number)` | Hyperbolic arctangent | | -| ::: | _number_ | Expression | -| `cbrt(number)` | Cube root | | -| ::: | _number_ | Expression | -| `ceil(number)` | Round number up to an integer | | -| ::: | _number_ | Expression | -| `clamp(number, number, number)` | Restrict a value to a given range | | -| ::: | _number_ | Value | -| ::: | _number_ | Min | -| ::: | _number_ | Max | -| `cos(number)` | Cosine of a number | | -| ::: | _number_ | Expression | -| `cosh(number)` | Hyperbolic cosine | | -| ::: | _number_ | Expression | -| `cot(number)` | Cotangent of a number | | -| ::: | _number_ | Expression | -| `csc(number)` | Cosecant of a number | | -| ::: | _number_ | Expression | -| `exp(number)` | Exponential of a number | | -| ::: | _number_ | Expression | -| `floor(number)` | Round number down to an integer | | -| ::: | _number_ | Expression | -| `lerp(number, number, number)` | Linearly interpolate a to b by x | | -| ::: | _number_ | a (in a+(b-a) * x) | -| ::: | _number_ | b (in a+(b-a) * x) | -| ::: | _number_ | x (in a+(b-a) * x) | -| `log(number)` | Logarithm | | -| ::: | _number_ | Expression | -| `log10(number)` | Base-10 logarithm | | -| ::: | _number_ | Expression | -| `log2(number)` | Base 2 Logarithm | | -| ::: | _number_ | Expression | -| `max(number, number)` | Maximum of two numbers | | -| ::: | _number_ | First expression | -| ::: | _number_ | Second expression | -| `min(number, number)` | Minimum of two numbers | | -| ::: | _number_ | First expression | -| ::: | _number_ | Second expression | -| `mod(number, number)` | x mod y | | -| ::: | _number_ | x (as in x mod y) | -| ::: | _number_ | y (as in x mod y) | -| `normalize(number, number, number)` | Remap a value between 0 and 1. | | -| ::: | _number_ | Value | -| ::: | _number_ | Min | -| ::: | _number_ | Max | -| `nthroot(number, number)` | Nth root of a number | | -| ::: | _number_ | Number | -| ::: | _number_ | N | -| `pow(number, number)` | Raise a number to power n | | -| ::: | _number_ | Number | -| ::: | _number_ | The exponent (n in "x to the power n") | -| `round(number)` | Round a number | | -| ::: | _number_ | Expression | -| `sec(number)` | Secant | | -| ::: | _number_ | Expression | -| `sign(number)` | Return the sign of a number (1,-1 or 0) | | -| ::: | _number_ | Expression | -| `sin(number)` | Sine of a number | | -| ::: | _number_ | Expression | -| `sinh(number)` | Hyperbolic sine | | -| ::: | _number_ | Expression | -| `sqrt(number)` | Square root of a number | | -| ::: | _number_ | Expression | -| `tan(number)` | Tangent of a number | | -| ::: | _number_ | Expression | -| `tanh(number)` | Hyperbolic tangent | | -| ::: | _number_ | Expression | -| `trunc(number)` | Truncate a number | | -| ::: | _number_ | Expression | - ---- - -## Cameras and layers features - -Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/interface/scene-editor/layers-and-cameras) - -| Expresión | Descripción | | -|---------------------------------|--------------------------------------------------|:-----------------------------------------:| -| `CameraAngle(layer, number)` | Return the angle of rotation of a camera. | | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `CameraHeight(layer, number)` | Return the height of a camera of a layer. | | -| ::: | _layer_ | Layer (base layer if empty) | -| ::: | _number_ | Camera number | -| `CameraWidth(layer, number)` | Return the width of a camera of a layer. | | -| ::: | _layer_ | Layer (base layer if empty) | -| ::: | _number_ | Camera number | -| `CameraX(layer, number)` | Return the X position of the center of a camera. | | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `CameraY(layer, number)` | Return the Y position of the center of a camera. | | -| ::: | _layer_ | Layer (base layer if empty) _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `CameraZoom(layer, number)` | Zoom of a camera of a layer | | -| ::: | _layer_ | Layer _Optional_. | -| ::: | _number_ | Camera number (default : 0) _Optional_. | -| `LayerDefaultZOrder(layer)` | Default Z Order for a layer | | -| ::: | _layer_ | Layer | -| `LayerTimeScale(layer)` | Time scale | | -| ::: | _layer_ | Layer | - ---- - -## Audio - -GDevelop provides several conditions and actions to play audio files. They can be either long musics or short sound effects. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/audio) - -| Expresión | Descripción | | -|---------------------------------------|----------------------|:-------:| -| `GlobalVolume()` | Global volume value | | -| `MusicChannelPitch(number)` | Music's pitch | | -| ::: | _number_ | Channel | -| `MusicChannelPlayingOffset(number)` | Music playing offset | | -| ::: | _number_ | Channel | -| `MusicChannelVolume(number)` | Music volume | | -| ::: | _number_ | Channel | -| `SoundChannelPitch(number)` | Sound's pitch | | -| ::: | _number_ | Channel | -| `SoundChannelPlayingOffset(number)` | Sound playing offset | | -| ::: | _number_ | Channel | -| `SoundChannelVolume(number)` | Sound volume | | -| ::: | _number_ | Channel | - ---- - -## Basic internet features - -Features to send web requests, communicate with external "APIs" and other network related tasks. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/network) - -| Expresión | Descripción | | -|----------------------------------------|------------------------------------|:-------------------------------------:| -| `GlobalVarToJSON(globalvar)` | Convert a global variable to JSON | | -| ::: | _globalvar_ | The global variable to be stringified | -| `ObjectVarToJSON(object, objectvar)` | Convert an object variable to JSON | | -| ::: | _object_ | The object with the variable | -| ::: | _objectvar_ | The object variable to be stringified | -| `ToJSON(scenevar)` | Convert a scene variable to JSON | | -| ::: | _scenevar_ | Scene variable to be stringified | - ---- - -## Window features - -Provides actions and conditions to manipulate the game window. Depending on the platform on which the game is running, not all of these features can be applied. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/window) - -| Expresión | Descripción | | -|-------------------------|---------------------------------------------------------------|:---:| -| `SceneWindowHeight()` | Height of the scene window (or scene canvas for HTML5 games) | | -| `SceneWindowWidth()` | Width of the scene window (or scene canvas for HTML5 games) | | -| `ScreenHeight()` | Height of the screen (or the page for HTML5 games in browser) | | -| `ScreenWidth()` | Width of the screen (or the page for HTML5 games in browser) | | -| `WindowTitle()` | Window's title | | - ---- - -## Text manipulation - -Provides expressions to manipulate strings (also called texts). - -| Expresión | Descripción | | -|---------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------|:----------------------------------------------------------------------------:| -| `FromCodePoint(number)` | Get character from code point | | -| ::: | _number_ | Code point | -| `NewLine()` | Insert a new line | | -| `StrAt(string, number)` | Get a character from a text | | -| ::: | _string_ | Text | -| ::: | _number_ | Position of the character (the first letter is at position 0) | -| `StrFind(string, string)` | Search in a text (return the position of the result or -1 if not found) | | -| ::: | _string_ | Text | -| ::: | _string_ | Text to search for | -| `StrFindFrom(string, string, number)` | Search in a text, starting from a position (return the position of the result or -1 if not found) | | -| ::: | _string_ | Text | -| ::: | _string_ | Text to search for | -| ::: | _number_ | Position of the first character in the string to be considered in the search | -| `StrFindLast(string, string)` | Search the last occurence in a string (return the position of the result, from the beginning of the string, or -1 if not found) | | -| ::: | _string_ | Text | -| ::: | _string_ | Text to search for | -| `StrFindLastFrom(string, string, number)` | Search in a text the last occurence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) | | -| ::: | _string_ | Text | -| ::: | _string_ | Text to search for | -| ::: | _number_ | Position of the last character in the string to be considered in the search | -| `StrLength(string)` | Length of a text | | -| ::: | _string_ | Text | -| `StrRepeat(string, number)` | Repeat a text | | -| ::: | _string_ | Text to repeat | -| ::: | _number_ | Repetition count | -| `SubStr(string, number, number)` | Get a portion of a text | | -| ::: | _string_ | Text | -| ::: | _number_ | Start position of the portion (the first letter is at position 0) | -| ::: | _number_ | Length of the portion | -| `ToLowerCase(string)` | Lowercase a text | | -| ::: | _string_ | Text | -| `ToUpperCase(string)` | Uppercase a text | | -| ::: | _string_ | Text | - ---- - -## Advanced control features - -Advanced control features to be used in events. - -| Expresión | Descripción | | -|---------------------------------|-------------------------------------------------------|:--------------:| -| `GetArgumentAsNumber(string)` | Get function parameter (also called "argument") value | | -| ::: | _string_ | Parameter name | -| `GetArgumentAsString(string)` | Get function parameter (also called "argument") text | | -| ::: | _string_ | Parameter name | - ---- - -## Platform (from extension Platform Behavior) - -Platform that Platformer characters can run on. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/platformer) - -_No expressions for this behavior._ - -## Platformer character (from extension Platform Behavior) - -Controllable character that can jump and run on platforms. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/platformer) - -| Expresión | Descripción | | -|----------------------------------------------------|---------------------------------------------------------------------------------------------------|:---:| -| `Object.PlatformerObject::Acceleration()` | Acceleration | | -| `Object.PlatformerObject::CurrentFallSpeed()` | Current fall speed | | -| `Object.PlatformerObject::CurrentJumpSpeed()` | Current jump speed | | -| `Object.PlatformerObject::CurrentSpeed()` | Current speed | | -| `Object.PlatformerObject::Deceleration()` | Deceleration | | -| `Object.PlatformerObject::Gravity()` | Get the gravity applied on the object | | -| `Object.PlatformerObject::JumpSpeed()` | Jump speed | | -| `Object.PlatformerObject::JumpSustainTime()` | The time during which keeping the jump button held allow the initial jump speed to be maintained. | | -| `Object.PlatformerObject::LadderClimbingSpeed()` | Get the ladder climbing speed | | -| `Object.PlatformerObject::MaxFallingSpeed()` | Get the maximum falling speed | | -| `Object.PlatformerObject::MaxSpeed()` | Maximum speed | | - ---- - -## Destroy when outside of the screen (from extension Destroy Outside Screen Behavior) - -Automatically destroy the object when it goes outside of the screen's borders. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/destroyoutside) - -_No expressions for this behavior._ - ---- - -## Tiled Sprite (from extension Tiled Sprite Object) - -Displays an image repeated over an area. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/tiled_sprite) - -| Expresión | Descripción | | -|----------------------|-------------|:---:| -| `Object.Opacity()` | Opacity | | - ---- - -## Draggable object (from extension Draggable Behavior) - -Allows objects to be moved using the mouse (or touch). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/draggable) - -_No expressions for this behavior._ - ---- - -## Top-down movement (4 or 8 directions) (from extension Top-down movement) - -Objects with this behavior can be moved left, up, right, and down (and, optionally, diagonally). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/topdown) - -| Expresión | Descripción | | -|---------------------------------------------------|---------------------------------------|:---:| -| `Object.TopDownMovement::Acceleration()` | Acceleration of the object | | -| `Object.TopDownMovement::Angle()` | Angle, in degrees, of the movement | | -| `Object.TopDownMovement::AngleOffset()` | Rotation offset applied to the object | | -| `Object.TopDownMovement::AngularMaxSpeed()` | Angular maximum speed of the object | | -| `Object.TopDownMovement::Deceleration()` | Deceleration of the object | | -| `Object.TopDownMovement::MaxSpeed()` | Maximum speed of the object | | -| `Object.TopDownMovement::MovementAngleOffset()` | Return the movement angle offset. | | -| `Object.TopDownMovement::Speed()` | Speed of the object | | -| `Object.TopDownMovement::XVelocity()` | Speed on the X axis of the movement | | -| `Object.TopDownMovement::YVelocity()` | Speed on the Y axis of the movement | | - ---- - -## Text (from extension Text object) - -Displays a text on the screen. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/text) - -| Expresión | Descripción | | -|----------------------|--------------------------|:---:| -| `Object.Angle()` | Angle | | -| `Object.Opacity()` | Opacity of a Text object | | -| `Object.Padding()` | Padding | | -| `Object.ScaleX()` | X Scale of a Text object | | -| `Object.ScaleY()` | Y Scale of a Text object | | -| `Object.String()` | Text | | - ---- - -## Particles emitter (from extension Particle system) - -Displays a large number of small particles to create visual effects. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/particles_emitter) - -| Expresión | Descripción | | -|------------------------------------|------------------------------------------|:---:| -| `Object.EmitterAngle()` | Emission angle | | -| `Object.EmitterAngleA()` | Emission angle A | | -| `Object.EmitterAngleB()` | Emission angle B | | -| `Object.EmitterForceMax()` | Emission maximal force | | -| `Object.EmitterForceMin()` | Emission minimal force | | -| `Object.Flow()` | Flow | | -| `Object.NbParticles()` | Particles number | | -| `Object.ParticleAlpha1()` | Parameter 1 of transparency | | -| `Object.ParticleAlpha2()` | Parameter 2 of transparency | | -| `Object.ParticleBlue1()` | Parameter 1 of blue color | | -| `Object.ParticleBlue2()` | Parameter 2 of blue color | | -| `Object.ParticleGravityAngle()` | Gravity angle | | -| `Object.ParticleGravityLength()` | Gravity value | | -| `Object.ParticleGravityX()` | X Gravity of particles | | -| `Object.ParticleGravityY()` | Y Gravity of particles | | -| `Object.ParticleGreen1()` | Parameter 1 of green color | | -| `Object.ParticleGreen2()` | Parameter 2 of green color | | -| `Object.ParticleLifeTimeMax()` | Maximum lifetime of particles | | -| `Object.ParticleLifeTimeMin()` | Minimum lifetime of particles | | -| `Object.ParticleRed1()` | Parameter 1 of red color | | -| `Object.ParticleRed2()` | Parameter 2 of red color | | -| `Object.ParticleSize1()` | Parameter 1 of size | | -| `Object.ParticleSize2()` | Parameter 2 of size | | -| `Object.RendererParam1()` | Rendering first parameter | | -| `Object.RendererParam2()` | Rendering second parameter | | -| `Object.Tank()` | Capacity | | -| `Object.Texture()` | Name of the image displayed by particles | | -| `Object.ZoneRadius()` | Radius of the emission zone | | - ---- - -## Panel Sprite ("9-patch") (from extension Panel Sprite (9-patch) Object) - -An image with edges and corners that are stretched separately from the full image. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/panel_sprite) - -| Expresión | Descripción | | -|----------------------|-------------|:---:| -| `Object.Opacity()` | Opacity | | - ---- - -## Anchor - -Behavior that anchors objects to the window's bounds. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/anchor) - -_No expressions for this behavior._ - ---- - -## Shape painter - -Allows you to draw simple shapes on the screen [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/shape_painter) - -| Expresión | Descripción | | -|--------------------------------|-------------------------------|:---:| -| `Object.FillColorBlue()` | Filing color blue component | | -| `Object.FillColorGreen()` | Filing color green component | | -| `Object.FillColorRed()` | Filing color red component | | -| `Object.FillOpacity()` | Filling opacity | | -| `Object.OutlineColorBlue()` | Outline color blue component | | -| `Object.OutlineColorGreen()` | Outline color green component | | -| `Object.OutlineColorRed()` | Outline color red component | | -| `Object.OutlineOpacity()` | Outline opacity | | -| `Object.OutlineSize()` | Outline size | | - ---- - -## Text entry (from extension Text entry object) - -Invisible object used to get the text entered with the keyboard. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/text_entry) - -| Expresión | Descripción | | -|---------------------|----------------------------|:---:| -| `Object.String()` | Text entered with keyboard | | - ---- - -## Inventory - -Provides actions and conditions to add an inventory to your game, with items in memory. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/inventory) - -| Expresión | Descripción | | -|--------------------------------------|--------------------------------------------|:--------------:| -| `Inventory::Count(string, string)` | Get the number of an item in the inventory | | -| ::: | _string_ | Inventory name | -| ::: | _string_ | Item name | - ---- - -## Pathfinding (from extension Pathfinding behavior) - -With this behavior, the object will move while avoiding all objects that are flagged as obstacles. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/pathfinding) - -| Expresión | Descripción | | -|-------------------------------------------|-------------------------------------------------|:------------------------:| -| `Object.Pathfinding::Acceleration()` | Acceleration of the object on the path | | -| `Object.Pathfinding::AngleOffset()` | Rotation offset applied the object on the path | | -| `Object.Pathfinding::AngularMaxSpeed()` | Angular maximum speed of the object on the path | | -| `Object.Pathfinding::CellHeight()` | Height of the virtual grid | | -| `Object.Pathfinding::CellWidth()` | Width of the virtual grid | | -| `Object.Pathfinding::DestinationX()` | Destination X position | | -| `Object.Pathfinding::DestinationY()` | Destination Y position | | -| `Object.Pathfinding::ExtraBorder()` | Extra border applied the object on the path | | -| `Object.Pathfinding::GetNodeX(number)` | Get next waypoint X position | | -| ::: | _number_ | Node index (start at 0!) | -| `Object.Pathfinding::GetNodeY(number)` | Get next waypoint Y position | | -| ::: | _number_ | Node index (start at 0!) | -| `Object.Pathfinding::GridOffsetX()` | Return X offset of the virtual grid. | | -| `Object.Pathfinding::GridOffsetY()` | Return Y offset of the virtual grid. | | -| `Object.Pathfinding::LastNodeX()` | Last waypoint X position | | -| `Object.Pathfinding::LastNodeY()` | Last waypoint Y position | | -| `Object.Pathfinding::MaxSpeed()` | Maximum speed of the object on the path | | -| `Object.Pathfinding::MovementAngle()` | Angle of movement on its path | | -| `Object.Pathfinding::NextNodeIndex()` | Get the index of the next waypoint to reach | | -| `Object.Pathfinding::NextNodeX()` | Get next waypoint X position | | -| `Object.Pathfinding::NextNodeY()` | Get next waypoint Y position | | -| `Object.Pathfinding::NodeCount()` | Get the number of waypoints on the path | | -| `Object.Pathfinding::Speed()` | Speed of the object on the path | | - -## Obstacle for pathfinding (from extension Pathfinding behavior) - -Flag the object as being an obstacle for pathfinding. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/pathfinding) - -| Expresión | Descripción | | -|----------------------------------------|---------------|:---:| -| `Object.PathfindingObstacle::Cost()` | Obstacle cost | | - ---- - -## Physics Engine (from extension Physics Engine (deprecated)) - -Make objects move as if they are subject to the laws of physics. If you're creating a new game, prefer Physics Engine 2.0 [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/physics) - -| Expresión | Descripción | | -|---------------------------------------|---------------------------|:---:| -| `Object.Physics::AngularDamping()` | Angular damping | | -| `Object.Physics::AngularVelocity()` | Angular speed | | -| `Object.Physics::LinearDamping()` | Linear damping | | -| `Object.Physics::LinearVelocity()` | Linear speed | | -| `Object.Physics::LinearVelocityX()` | X component | | -| `Object.Physics::LinearVelocityY()` | Y component | | -| `Object.Physics::PolygonScaleX()` | Collision polygon X scale | | -| `Object.Physics::PolygonScaleY()` | Collision polygon Y scale | | - ---- - -## Advanced window management - -Provides advanced features related to the game window positioning and interaction with the operating system. - -| Expresión | Descripción | | -|-------------------------------------|----------------------------------------------------------------------------------|:---:| -| `AdvancedWindow::WindowOpacity()` | Returns the current window opacity (a number from 0 to 1, 1 being fully opaque). | | -| `AdvancedWindow::WindowX()` | Returns the current window X position. | | -| `AdvancedWindow::WindowY()` | Returns the current window Y position. | | - ---- - -## BBText (from extension BBCode Text Object) - -Displays a rich text label using BBCode markup (allowing to set parts of the text as bold, italic, use different colors and shadows). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/bbtext) - -| Expresión | Descripción | | -|-------------------------------|--------------------------|:---:| -| `Object.GetBBText()` | Get BBCode text | | -| `Object.GetFontFamily()` | Get the base font family | | -| `Object.GetFontSize()` | Get the base font size | | -| `Object.GetOpacity()` | Get the base opacity | | -| `Object.GetWrappingWidth()` | Get the wrapping width | | - ---- - -## Bitmap Text - -Displays a text using a "Bitmap Font" (an image representing characters). This is more performant than a traditional Text object and it allows for complete control on the characters aesthetic. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/bitmap_text) - -| Expresión | Descripción | | -|----------------------------|----------------------------------------------------------------------------|:---:| -| `Object.Alignment()` | Return the text alignment. | | -| `Object.FontName()` | Return the font name (defined in the Bitmap font). | | -| `Object.FontSize()` | Return the font size, defined in the Bitmap Font. | | -| `Object.Opacity()` | Return the opacity, between 0 (fully transparent) and 255 (opaque). | | -| `Object.Scale()` | Return the scale (1 by default). | | -| `Object.Text()` | Return the text. | | -| `Object.WrappingWidth()` | Return the width, in pixels, after which the text is wrapped on next line. | | - ---- - -## Device sensors - -Allow the game to access the sensors of a mobile device. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/device-sensors) - -| Expresión | Descripción | | -|------------------------------------------|-------------------------------------------------------------|:---:| -| `DeviceSensors::AccelerationX()` | Get the devices acceleration on the X-axis (m/s²) | | -| `DeviceSensors::AccelerationY()` | Get the devices acceleration on the Y-axis (m/s²) | | -| `DeviceSensors::AccelerationZ()` | Get the devices acceleration on the Z-axis (m/s²) | | -| `DeviceSensors::OrientationAbsolute()` | Get if the devices orientation is absolute and not relative | | -| `DeviceSensors::OrientationAlpha()` | Get the devices orientation Alpha (compass) | | -| `DeviceSensors::OrientationBeta()` | Get the devices orientation Beta | | -| `DeviceSensors::OrientationGamma()` | Get the devices orientation Gamma value | | -| `DeviceSensors::RotationAlpha()` | Get the devices rotation Alpha | | -| `DeviceSensors::RotationBeta()` | Get the devices rotation Beta | | -| `DeviceSensors::RotationGamma()` | Get the devices rotation Gamma | | - ---- - -## Dialogue Tree (Experimental) - -Handle dialogue trees, made using Yarn Spinner. Useful to make complex dialogues with multiple choices. The Yarn Spinner editor is embedded in GDevelop so you can edit your dialogues without leaving GDevelop. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/dialogue-tree) - -| Expresión | Descripción | | -|-------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------|:------------------------------------:| -| `DialogueTree::BranchTag(number)` | Get a tag of the current branch of the running dialogue via its index | | -| ::: | _number_ | Tag Index Number | -| `DialogueTree::BranchTags()` | Get the tags of the current branch of the running dialogue | | -| `DialogueTree::BranchText()` | Get the full raw text of the current branch | | -| `DialogueTree::BranchTitle()` | Get the title of the current branch of the running dialogue | | -| `DialogueTree::ClippedLineText()` | Get dialogue line text clipped by the typewriter effect. Use the "Scroll clipped text" action to control the typewriter effect. | | -| `DialogueTree::CommandParameter(number)` | Get the parameters of a command call - \<\\> | | -| ::: | _number_ | parameter Index Number _Optional_. | -| `DialogueTree::CommandParametersCount()` | Get the number of parameters in the currently passed command | | -| `DialogueTree::HorizontalOptionsList(string)` | Get the text of all available options from an Options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -\> | | -| ::: | _string_ | Options Selection Cursor | -| `DialogueTree::LineText()` | Returns the current dialogue line text | | -| `DialogueTree::Option(number)` | Get the text of an option from an Options line type, using the option's Number. The numbers start from 0. | | -| ::: | _number_ | Option Index Number | -| `DialogueTree::OptionsCount()` | Get the number of options in an options line type | | -| `DialogueTree::SelectedOptionIndex()` | Get the number of the currently selected option. Use this to help you render the option selection marker at the right place. | | -| `DialogueTree::TagParameter(number)` | Get parameter from a Tag found by the branch contains tag condition | | -| ::: | _number_ | parameter Index Number _Optional_. | -| `DialogueTree::Variable(string)` | Get dialogue state value | | -| ::: | _string_ | Variable Name | -| `DialogueTree::VerticalOptionsList(string)` | Get the text of all available options from an Options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -\> | | -| ::: | _string_ | Options Selection Cursor | -| `DialogueTree::VisitedBranchTitles()` | Get a list of all visited branches | | - ---- - -## Facebook Instant Games - -Allow your game to send scores and interact with the Facebook Instant Games platform. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/publishing/publishing-to-facebook-instant-games) - -| Expresión | Descripción | | -|----------------------------------------|----------------------------------|:---:| -| `FacebookInstantGames::PlayerId()` | Get the player unique identifier | | -| `FacebookInstantGames::PlayerName()` | Get the player name | | - ---- - -## Filesystem - -Access the filesystem of the operating system. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/filesystem) - -| Expresión | Descripción | | -|------------------------------------------|----------------------------------------------------------------------------------------------------------------------|:-------------------:| -| `()` | Get the path to the desktop folder. | | -| `FileSystem::DirectoryName(string)` | Returns the portion of the path that represents the directories, without the ending file name. | | -| ::: | _string_ | File or folder path | -| `()` | Get the path to the documents folder. | | -| `()` | Get the path to this game executable folder. | | -| `()` | Get the path to this game executable file. | | -| `FileSystem::ExtensionName(string)` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". | | -| ::: | _string_ | File path | -| `FileSystem::FileName(string)` | Returns the name of the file with its extension, if any. | | -| ::: | _string_ | File path | -| `()` | Get the operating system path delimiter. | | -| `()` | Get the path to the pictures folder. | | -| `()` | Get the path to temp folder. | | -| `()` | Get the path to the user home folder. | | -| `()` | Get the path to userdata folder (for application settings). | | - ---- - -## Firebase - -Use Google Firebase services (database, functions, storage...) in your game. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/firebase) - -| Expresión | Descripción | | -|---------------------------------------------|-------------------------------------------------------------------------------------------------|:------------:| -| `Firebase::GetAccountCreationTime()` | Gets the accounts creation time. | | -| `Firebase::GetAuthToken(string)` | Get the user authentififcation token. The token is the proof of authentication. | | -| ::: | _string_ | Setting Name | -| `Firebase::GetLastLoginTime()` | Gets the user last login time. | | -| `Firebase::GetPhoneNumber()` | Gets the user phone number. | | -| `Firebase::GetPhotoURL()` | Gets an URL to the user profile picture. | | -| `Firebase::GetRefreshToken()` | Gets the user refresh token. For advanced usage only. | | -| `Firebase::GetRemoteConfigNumber(string)` | Get a setting from Firebase Remote Config as Number. | | -| ::: | _string_ | Setting Name | -| `Firebase::GetRemoteConfigString(string)` | Get a setting from Firebase Remote Config as a string. | | -| ::: | _string_ | Setting Name | -| `Firebase::GetTenantID()` | Gets the user tenant ID. For advanced usage only. | | -| `Firebase::GetUserDisplayName()` | Gets the user display name. | | -| `Firebase::GetUserEmail()` | Gets the user email address. | | -| `Firebase::GetUserUID()` | Gets the user Unique IDentifier. Use that to link data to an user instead of the name or email. | | -| `Firebase::ServerTimestamp()` | Set a field to the timstamp on the server when the request arrives there | | - ---- - -## Light (from extension Lights) - -Displays a light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights. - -_No expressions for this object._ - -## Light Obstacle Behavior (from extension Lights) - -This behavior makes the object an obstacle to the light. The light emitted by light objects will be stopped by the object. - -_No expressions for this behavior._ - ---- - -## Peer-to-Peer communication (experimental) - -Allow game instances to communicate remotely using messages sent via WebRTC (P2P). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/p2p) - -| Expresión | Descripción | | -|------------------------------------|-----------------------------------------------------------------------|:----------:| -| `P2P::GetEventData(string)` | Returns the data received when the specified event was last triggered | | -| ::: | _string_ | Event name | -| `P2P::GetEventSender(string)` | Returns the id of the peer that triggered the event | | -| ::: | _string_ | Event name | -| `P2P::GetID()` | Gets the client ID of the current game instance | | -| `P2P::GetLastConnectedPeer()` | Gets the ID of the newly connected peer. | | -| `P2P::GetLastDisconnectedPeer()` | Gets the ID of the latest peer that has disconnected. | | -| `P2P::GetLastError()` | Gets the description of the last P2P error | | - ---- - -## Physics Engine 2.0 - -Simulate realistic object physics, with gravity, forces, joints, etc. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/physics2) - -| Expresión | Descripción | | -|-------------------------------------------------------------|-------------------------------------------------|:--------:| -| `Object.Physics2::AngularDamping()` | Get the angular damping of an object. | | -| `Object.Physics2::AngularVelocity()` | Get the angular velocity of an object. | | -| `Object.Physics2::Density()` | Get the density of an object. | | -| `Object.Physics2::DistanceJointDampingRatio(number)` | Distance joint damping ratio | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::DistanceJointFrequency(number)` | Distance joint frequency | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::DistanceJointLength(number)` | Distance joint length | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::Friction()` | Get the friction of an object. | | -| `Object.Physics2::FrictionJointMaxForce(number)` | Friction joint maximum force | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::FrictionJointMaxTorque(number)` | Friction joint maximum torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::GearJointFirstJoint(number)` | Gear joint first joint | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::GearJointRatio(number)` | Gear joint ratio | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::GearJointSecondJoint(number)` | Gear joint second joint | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::GravityScale()` | Get the gravity scale of an object. | | -| `Object.Physics2::GravityX()` | World gravity on X axis | | -| `Object.Physics2::GravityY()` | World gravity on Y axis | | -| `Object.Physics2::JointFirstAnchorX(number)` | Joint first anchor X | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::JointFirstAnchorY(number)` | Joint first anchor Y | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::JointReactionForce(number)` | Joint reaction force | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::JointReactionTorque(number)` | Joint reaction torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::JointSecondAnchorX(number)` | Joint second anchor X | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::JointSecondAnchorY(number)` | Joint second anchor Y | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::LinearDamping()` | Get the linear damping of an object. | | -| `Object.Physics2::LinearVelocity()` | Get the linear velocity of an object. | | -| `Object.Physics2::LinearVelocityX()` | Get the linear velocity of an object on X axis. | | -| `Object.Physics2::LinearVelocityY()` | Get the linear velocity of an object on Y axis. | | -| `Object.Physics2::MassCenterX()` | Mass center X | | -| `Object.Physics2::MassCenterY()` | Mass center Y | | -| `Object.Physics2::MotorJointAngularOffset(number)` | Motor joint angular offset | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MotorJointCorrectionFactor(number)` | Motor joint correction factor | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MotorJointMaxForce(number)` | Motor joint maximum force | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MotorJointMaxTorque(number)` | Motor joint maximum torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MotorJointOffsetX(number)` | Motor joint offset X | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MotorJointOffsetY(number)` | Motor joint offset Y | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MouseJointDampingRatio(number)` | Mouse joint damping ratio | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MouseJointFrequency(number)` | Mouse joint frequency | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MouseJointMaxForce(number)` | Mouse joint maximum force | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MouseJointTargetX(number)` | Mouse joint target X | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::MouseJointTargetY(number)` | Mouse joint target Y | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointAxisAngle(number)` | Prismatic joint axis angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointMaxMotorForce(number)` | Prismatic joint maximum motor force | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointMaxTranslation(number)` | Prismatic joint maximum translation | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointMinTranslation(number)` | Prismatic joint minimum translation | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointMotorForce(number)` | Prismatic joint motor force | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointMotorSpeed(number)` | Prismatic joint motor speed | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointReferenceAngle(number)` | Prismatic joint reference angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointSpeed(number)` | Prismatic joint speed | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PrismaticJointTranslation(number)` | Prismatic joint current translation | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointFirstGroundAnchorX(number)` | Pulley joint first ground anchor X | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointFirstGroundAnchorY(number)` | Pulley joint first ground anchor Y | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointFirstLength(number)` | Pulley joint first length | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointRatio(number)` | Pulley joint ratio | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointSecondGroundAnchorX(number)` | Pulley joint second ground anchor X | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointSecondGroundAnchorY(number)` | Pulley joint second ground anchor Y | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::PulleyJointSecondLength(number)` | Pulley joint second length | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::Restitution()` | Get the restitution of an object. | | -| `Object.Physics2::RevoluteJointAngle(number)` | Revolute joint current angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointMaxAngle(number)` | Revolute joint maximum angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointMaxMotorTorque(number)` | Revolute joint maximum motor torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointMinAngle(number)` | Revolute joint minimum angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointMotorSpeed(number)` | Revolute joint motor speed | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointMotorTorque(number)` | Revolute joint motor torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointReferenceAngle(number)` | Revolute joint reference angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RevoluteJointSpeed(number)` | Revolute joint angular speed | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::RopeJointMaxLength(number)` | Rope joint maximum length | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::TimeScale()` | World time scale | | -| `Object.Physics2::WeldJointDampingRatio(number)` | Weld joint damping ratio | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WeldJointFrequency(number)` | Weld joint frequency | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WeldJointReferenceAngle(number)` | Weld joint reference angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointAxisAngle(number)` | Wheel joint axis angle | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointDampingRatio(number)` | Wheel joint damping ratio | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointFrequency(number)` | Wheel joint frequency | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointMaxMotorTorque(number)` | Wheel joint maximum motor torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointMotorSpeed(number)` | Wheel joint motor speed | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointMotorTorque(number)` | Wheel joint motor torque | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointSpeed(number)` | Wheel joint speed | | -| ::: | _number_ | Joint ID | -| `Object.Physics2::WheelJointTranslation(number)` | Wheel joint current translation | | -| ::: | _number_ | Joint ID | - ---- - -## Tilemap - -Displays a tiled-based map, made with the Tiled editor (download it separately on ). [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/tilemap) - -| Expresión | Descripción | | -|----------------------------------|------------------------------------------------|:---:| -| `Object.AnimationFps()` | Get the animation speed (in frames per second) | | -| `Object.AnimationSpeedScale()` | Get the Animation speed scale | | -| `Object.LayerIndex()` | Get the layer index being displayed | | - ---- - -## Tween (from extension Tweening) - -Smoothly animate position, angle, scale and other properties of the object. [Read more explanations about it.](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors/tween) - -| Expresión | Descripción | | -|------------------------------------|-------------------------------------------|:----------------:| -| `Object.Tween::Progress(string)` | Progress of a tween (between 0.0 and 1.0) | | -| ::: | _string_ | Tween Identifier | - ---- - -## Vídeo - -Muestra un vídeo. [Lea más sobre ello.](http://wiki.compilgames.net/doku.php/gdevelop5/objects/video) - -| Expresión | Descripción | | -|----------------------------|---------------------------------------------------------------------------------|:---:| -| `Object.CurrentTime()` | Devuelve el tiempo del objeto o cuadro de vídeo actual (en segundos). | | -| `Object.Duration()` | Devuelve la duración de un objeto de vídeo (en segundos). | | -| `Object.Opacity()` | Devuelve la opacidad de un objeto de vídeo | | -| `Object.PlaybackSpeed()` | Devuelve la velocidad de reproducción de un objeto de vídeo | | -| `Object.Volume()` | Devuelve el volumen de un objeto de vídeo, entre 0 (silenciado) y 100 (máximo). | | diff --git a/docs/es/gdevelop5/all-features/expressions.md b/docs/es/gdevelop5/all-features/expressions.md deleted file mode 100644 index 10bd3e0041..0000000000 --- a/docs/es/gdevelop5/all-features/expressions.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: Expresiones ---- -# Expresiones - -GDevelop soporta expresiones! Las expresiones son valores dinámicos que pueden usarse en parámetros de evento. Por ejemplo, para establecer una posición del objeto, puede usar un número fijo como `` 75`` o puede usar una expresión como `` AnotherObject.X () - Variable (position_offset) ``. - -Hay dos tipos de expresiones: - -1. // **Numerics **// - -Los números pueden usarse en parámetros de eventos. Reciben un valor numérico como la posición del objeto, orden z, número de variable, etc. - -1. // **Cuerdas **// - -Las cadenas se pueden utilizar en parámetros que reciben un valor de texto / cadena. Puede usar esta expresión para leer el contenido de una cadena de objeto de texto, su color, el texto de otra variable, etc. - -## expresiones numéricas Como se indicó anteriormente, las expresiones numéricas se pueden usar en parámetros numéricos. - -### valores aleatorios - -`` Random (max) `` - Devuelve un número entero entre `0` y el valor` max` que está definido. El "rango" es \[0, max\]. - -// Ejemplos usando la expresión aleatoria (): // \ Aleatorio (3) // Los 3 valores enteros posibles son 0, 1, 2 y 3 Aleatorio (-1, 2) // Los 4 valores posibles son -1, 0, 1 y 2 // RandomInRange (min, max) se puede reemplazar por min + Random (max - min) Aleatorio (2 - -1) \ - -`` RandomFloat (max) `` - Devuelve un flotante entre `0` y` max`. El rango es `` \[0, max) ``. Tenga en cuenta que `` max`` no está incluido en el rango. Es importante tener en cuenta que los posibles resultados son infinitos. Esto se debe a que hay infinitos números reales entre dos valores diferentes. - -// Ejemplos usando la expresión RandomFloat (max): // \ RandomFloat (2.5) // ALGUNOS de los muchos valores posibles son 0, 1.467798, 2.000587 y 2.499999 \ - -`` RandomFloatInRange (min, max) `` - Devuelve un flotante entre `min` y` max`. El rango es `` \[min, max) ``. Tenga en cuenta que `` max`` no está incluido en el rango. También es importante tener en cuenta que los posibles resultados son infinitos, ya que hay números reales infinitos entre dos valores diferentes. - -// Ejemplos usando la expresión RandomFloatInRange (): // \ RandomFloatInRange (-1.5, 2) // ALGUNOS de los muchos valores posibles son -1.5, -0.598156, 1.000874 y 1.99999 \ - -`` RandomWithStep (min, max, step) `` - Devuelve un número entre `min` y` max` en pasos. El rango es `` \[min, min + N * step\] `` con `` min + N * step ≤ max \ RandomWithStep (1, 3, 0.6) // Los números generados son `` 1``, ​​`` 1.6``, `` 2.2`` y `` 2.8`` \ diff --git a/docs/es/gdevelop5/all-features/index.md b/docs/es/gdevelop5/all-features/index.md deleted file mode 100644 index 666e087892..0000000000 --- a/docs/es/gdevelop5/all-features/index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Todas las demás características (All other features) ---- -# Todas las demás características (All other features) - -Algunas características de GDevelop no están proporcionadas por objetos y comportamientos, pero pueden usarse directamente desde acciones, condiciones o expresiones, o están integradas en el motor del juego (o en [an extension](/gdevelop5/ extended-gdevelop)) sin necesidad de un objeto Para existir en la escena. - -Este es, por ejemplo, el caso del motor de audio, los temporizadores o el soporte para almacenamiento. Examine la lista completa para obtener ayuda sobre todas estas características de GDevelop: - -* [Variables (variables)](/gdevelop5/all-features/variables) -* [Colisiones (Collisions)](/gdevelop5/all-features/collisions) -* [Mouse and touch](/gdevelop5/all-features/mouse-touch) -* [Temporizadores (Timers)](/gdevelop5/all-features/timers) -* [Audio](/gdevelop5/all-features/audio) -* [Almacenamiento (Storage)](/gdevelop5/all-features/storage) -* [Red (Network)](/gdevelop5/all-features/network) -* [Inventario (Inventory)](/gdevelop5/all-features/inventory) -* [Objetos Linkeados (Linked objects)](/gdevelop5/all-features/linked-objects) -* [Tienda (Shopify)](/gdevelop5/all-features/shopify) -* [Sensores del dispositivo (Device Sensors)](/gdevelop5/all-features/device-sensors) -* [Vibración del dispositivo (Device Vibration)](/gdevelop5/all-features/device-vibration) -* [Otras expresiones (Other expressions)](/gdevelop5/all-features/expressions) diff --git a/docs/es/gdevelop5/all-features/inventory.md b/docs/es/gdevelop5/all-features/inventory.md deleted file mode 100644 index 2ffd9da32a..0000000000 --- a/docs/es/gdevelop5/all-features/inventory.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Inventario (Inventory) ---- -# Inventario (Inventory) - -Los "Inventarios" se encuentran en estructuras de memoria que le permiten realizar un seguimiento de los objetos / elementos recolectados por el jugador o cualquier otro inventario en un juego. Los artículos de inventario son ilimitados e identificados por los nombres que usted elija. - -Al igual que las variables, los "Inventarios" se identifican con un nombre. Los nombres de "inventario" pueden ser lo que quieras. El estado de inventario inicial por defecto está vacío. No contiene elementos. - -Los inventarios y su contenido pueden ser manipulados usando condiciones y acciones. - -## Adición, eliminación y manipulación de elementos. - -Los inventarios se componen de artículos. Como se mencionó anteriormente, el "Inventario" predeterminado está vacío de cualquier artículo. - -Use la acción "Agregar un artículo" para agregar un artículo al inventario. El nombre del artículo se puede elegir libremente. Por ejemplo, un "elemento podría ser" Espada "," Oro "," Balas ", etc. También puede usar la acción "Eliminar un elemento" para eliminar un elemento de un inventario. - -Puede establecer límites en los artículos de un inventario mediante la acción "Establecer un recuento máximo para un artículo". Introduzca el nombre del artículo y el recuento. Cuando un artículo ha alcanzado su conteo máximo, agregar nuevos artículos no aumentará el conteo del artículo en el inventario. - -Puede usar las condiciones "Artículo completo" para verificar si un artículo alcanzó la capacidad máxima. La condición "Tiene un elemento" permite que se realice una verificación del inventario para ver _si_ el jugador tiene al menos uno de los elementos especificados. - -## Configuración de un elemento como equipado - -Los artículos pueden ser marcados como "equipados". Usa la acción "Equipar un objeto". Esta acción no cambia nada en el juego. Sin embargo, puede usar la condición "Artículo equipado" para verificar _si_ está equipado un artículo. A continuación, puede establecer su acción en consecuencia. - -Por ejemplo, puedes usar la condición "Objeto equipado" para verificar si hay una "Espada mágica" en tu juego. Si está equipado, podrías agregar más daños a los enemigos. - -Si un artículo alcanza el conteo de 0 (es decir, el inventario está vacío de artículos), no se marca como equipado. - -## Cómo mostrar los elementos de un inventario en el juego. - -Diferentes juegos pueden mostrar inventarios de diferentes maneras. Los inventarios no se pueden representar directamente en la pantalla, pero puede usar [Sprites](/gdevelop5/ objects/ sprite) [Text objetos](/gdevelop5/ objects/ text) para crear su propia visualización. - -Para usar objetos de Sprites y Texto para crear una pantalla: - -1. use la condición "Tiene un artículo" para verificar si un artículo es "de su propiedad" -2. Mostrar u ocultar el objeto asociado en la pantalla. -3. use la expresión "Recuento de artículos" (por ejemplo, `InventoryTools :: Count (" PlayerInventory "," Gold ")`) para acceder al recuento de un artículo determinado -4. utilice el "recuento de elementos" para establecer el texto de un objeto "Texto" que se muestra en la pantalla - -## Guardar / cargar inventarios - -Utilice [storage actions](/gdevelop5/ all-features/ storage) para guardar el progreso del reproductor. También puede guardar el contenido del inventario (o cualquier otro inventario que use en el juego). - -Las acciones "Guardar un inventario en una variable" y "Cargar un inventario desde una variable", le permiten volcar el contenido de un inventario en una variable. Estas acciones se establecerán como una variable estructurada. La información será contenida como niños. Las acciones también se pueden utilizar para restaurar un inventario a partir de una variable. - -Cuando su inventario se guarda en una variable, puede guardar esta variable utilizando las acciones de almacenamiento y las acciones relacionadas con JSON: ![](/gdevelop5/all-features/inventory-serialization.png) diff --git a/docs/es/gdevelop5/all-features/mouse-touch.md b/docs/es/gdevelop5/all-features/mouse-touch.md deleted file mode 100644 index 0e21cf7d39..0000000000 --- a/docs/es/gdevelop5/all-features/mouse-touch.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Ratón y manejo de eventos táctiles. (Mouse and handling touch events) ---- -# Ratón y manejo de eventos táctiles. (Mouse and handling touch events) - -GDevelop tiene soporte incorporado para el manejo de toques y entradas de mouse. - -## Forma más fácil: use la condición "El cursor / toque está en un objeto" - -La condición llamada "**El cursor / toque está en un objeto**" verificará si el cursor del mouse o un toque de pantalla se realiza en un objeto (s) determinado (s). - -Si el cursor / táctil se reconoce con "el cursor / táctil está en una condición de objeto", los objetos tocados / desplazados se seleccionarán para las siguientes condiciones y acciones. - -Puede usar "**El cursor / toque está en un objeto **" junto con "** Botón del mouse presionado**" o **"Botón del mouse liberado**". Por defecto, el toque emulará un clic izquierdo. Esta configuración predeterminada le permite detectar si el usuario tocó un botón o un objeto con un clic izquierdo del mouse. ![](/gdevelop5/all-features/touch-left-click.png) - -Tenga en cuenta que puede usar expresiones como `MouseX` y` MouseY` para obtener la posición del cursor en la escena: - -![](/gdevelop5/all-features/mousex-mousey.png) - -## Manera más compleja: usa las condiciones para verificar la posición del mouse o toque - -Si desea manejar los eventos de toque y cursor por separado, puede usar la acción "De / activar moviendo el cursor del mouse con toques". En este momento, los toques no simularán el mouse y los clics a la izquierda. - -Al manejar los eventos táctiles y de cursor por separado, puede usar expresiones para obtener la posición del mouse (`MouseX` y` MouseY`), así como la posición de un toque. - -Se pueden hacer múltiples toques al mismo tiempo. Debe almacenar el identificador táctil y pasarlo a expresiones o condiciones que le den la posición del toque. Vea el ejemplo a continuación: - -![](/gdevelop5/all-features/mulititoucheventexample.png) - -!!! note - - **Vélo en acción!** 🎮 - - Abra este ejemplo Online: diff --git a/docs/es/gdevelop5/all-features/storage.md b/docs/es/gdevelop5/all-features/storage.md deleted file mode 100644 index 228e722f46..0000000000 --- a/docs/es/gdevelop5/all-features/storage.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Almacenamiento ---- -# Almacenamiento - -Los juegos pueden almacenar datos, como el progreso del jugador. Vea [esta guía](/gdevelop5/tutorials/storage-action-explained) para explicaciones detalladas y ejemplos. diff --git a/docs/es/gdevelop5/all-features/timers.md b/docs/es/gdevelop5/all-features/timers.md deleted file mode 100644 index 5f535ef696..0000000000 --- a/docs/es/gdevelop5/all-features/timers.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Temporizadores (Timers) ---- -# Temporizadores (Timers) - -## Temporizadores de Escena (Scene Timers) - -Puede utilizar condiciones y acciones para iniciar los temporizadores de **escena**. Entonces puedes ejecutar acciones cuando un temporizador alcanza un cierto valor. Los temporizadores más útiles se ven cuando se usan en una condición para comparar el tiempo transcurrido en un temporizador y la acción para restablecer un temporizador a 0. Es importante recordar reiniciar siempre un temporizador antes de usarlo. Si el temporizador no existe, se creará automáticamente en la memoria. - -Puedes darle cualquier nombre a tus temporizadores. Los nombres de temporizadores son expresiones de texto / cadena, por lo que deben ingresarse entre comillas. - -Aquí hay un ejemplo de Timer más avanzado. El temporizador se utiliza para proteger brevemente al jugador de daños. La cantidad de tiempo otorgada para proteger al jugador depende del valor de la variable "` player_undestroyable_time` " - -![](/gdevelop5/all-features/timer-and-variable.png) - -!!! note - - **Véalo en acción!** 🎮 - - Abra este ejemplo Online: - -## Temporizadores de objetos (Object timers) - -Además de los temporizadores de escena, puede usar los temporizadores en su objeto de juego y sus instancias. Esto significa que cada instancia del objeto tendrá su propio temporizador en la memoria. Será independiente de otras instancias de objeto. Esta función le permite iniciar acciones de instancias de objetos después de cada X número de segundos. - -Los temporizadores de objetos se configuran de la misma manera que los temporizadores de escenas. Tiene que inicializar un temporizador de instancia de objeto con la acción para Iniciar / restablecer un temporizador: ![](/gdevelop5/all-features/start-object-timer.png) - -Tenga en cuenta que al igual que con los temporizadores de escenas, los nombres de los temporizadores de objetos son expresiones de cadena / texto. // ¡Deben ser escritos entre comillas! .// La acción anterior creará un temporizador llamado "` color` "en cada instancia del objeto Sprite e iniciará estos temporizadores. - -Ahora puedes comprobar los valores del temporizador: ![](/gdevelop5/all-features/object-timers.png) - -La condición anterior verifica si el tiempo transcurrido en el temporizador "` color` "es mayor que una variable de objeto (puede usar una variable de objeto en una expresión para obtener su valor). La condición seleccionará cada instancia de Sprite con un valor de temporizador mayor que el tiempo "solicitado" con la variable de objeto "` color_time` ". Luego, el color del Sprite se cambia a uno aleatorio y el temporizador del objeto se restablece. - -Usar variables de objeto para verificar los temporizadores de objetos es útil. Por ejemplo, puedes tener varias instancias de enemigos disparando balas con diferentes velocidades de disparo. Se puede ver otro uso de los temporizadores de objetos cuando se usa con un enemigo que colisiona con un "aumento de velocidad de disparo". Puede configurar la variable "` fire_rate_time` "para que sea menor que el valor normal, lo que significa que el tiempo entre cada viñeta disminuirá. - -!!! note - - **Véalo en acción!** 🎮 - - Abra este ejemplo Online: - -![](/gdevelop5/all-features/fireratetimerexample.png) - -## Avanzado: simula temporizadores con variables - -Los temporizadores de escenas y objetos son convenientes. Sin embargo, a veces puede ser necesario simular temporizadores con variables. Las tareas complejas lo requieren. Esto le permite tener más control sobre los temporizadores. Usando variables, puede aumentar o disminuir el valor sumando o restando el tiempo de la variable. // Si quiere que todas las instancias de su objeto en una escena tengan su propio temporizador personalizado, use una variable junto con la expresión `TimeDelta` //. - -![](/gdevelop5/all-features/increase-variable-timer.png) - -Este caso de uso aumentará la variable a una velocidad de 1000 unidades por segundo. Cuando se utilizan 1000 unidades por segundo, el "temporizador" se ejecuta en milisegundos. - -Por ejemplo, como se ve a continuación, puede comparar una variable (temporizador de daño) para configurar una acción después de 0,5 segundos. Entonces el "temporizador se puede reiniciar. - -![](/gdevelop5/all-features/reset-variable-timer.png) diff --git a/docs/es/gdevelop5/all-features/variables.md b/docs/es/gdevelop5/all-features/variables.md deleted file mode 100644 index cbb4b17223..0000000000 --- a/docs/es/gdevelop5/all-features/variables.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: Variables (Variables) ---- -# Variables (Variables) - -Las variables le permiten almacenar datos, por ejemplo, un número o un texto (Cadena). Podríamos compararlos con cajones o cajas donde podemos archivar notas. Todos los datos se pueden almacenar, siempre que estén en formato de texto o número. Una variable puede contener el número de vidas restantes, un puntaje alto, el número de balas que quedan, el número de enemigos muertos, etc. Probablemente vayas a usar variables para almacenar números en tu juego. - -## ¿Dónde se almacenan las variables? - -El alcance de una variable determina dónde se puede acceder a una variable. En GDevelop, tres ámbitos variables están disponibles: - -* **Global** Las variables son accesibles desde todas las escenas del juego. Por ejemplo, se pueden usar para almacenar la puntuación del jugador en diferentes niveles. * **Scene** Las variables solo son accesibles desde una escena. Se pueden usar para datos que solo conciernen a una escena y no a todo el juego. Como ejemplo, el tiempo restante antes de una explosión. * **Object** Las variables solo conciernen a un objeto. En este caso, un héroe puede tener una variable "Salud" o "Munición" que almacena un número que controla la salud de un héroe o el número de balas disponibles para ese personaje. - -## Cómo declarar y usar variables - -Las variables globales, de escena y de objeto se pueden definir utilizando los editores de variables. Para las variables globales, [Project Manager](/fr/ gdevelop5/ interface/ project-manager) tiene un enlace a las variables globales. Para las variables de escena, [clic derecho en una escena](/gdevelop5/ interface/ scene-editor). Luego, haga clic en "propiedades". Para objetos, haga clic derecho en un objeto en la lista y elija "editar variables de objeto". - -Los editores de variables declaran variables junto con sus valores iniciales. - -Nota: que estos editores son totalmente opcionales. También puede comenzar directamente a utilizar acciones y condiciones para modificar y comparar variables. // Si ingresa el nombre de una variable que no existe en una acción o condición, se creará automáticamente en la memoria durante el juego.// - -Cualquier nombre puede ser usado para una variable. De forma predeterminada, las variables contienen el número inicial 0. Si utiliza una acción para cambiar el texto almacenado por la variable, la variable cambiará para contener el texto que ha definido. - -## Usar variables en expresiones. - -Se puede acceder a las variables desde condiciones, modificarse desde acciones y también se pueden leer en expresiones. - -En una expresión que calcula un número, usa: - -* `GlobalVariable (name)` para leer el valor de una variable global -* `Variable (nombre)` para leer el valor de una variable de escena -* `ObjectName.Variable (name)` para leer la variable del objeto llamado "ObjectName". - -En una expresión que devuelve un texto, use en su lugar: - -* `GlobalVariableString (name)` para leer el texto de una variable global -* `VariableString (name)` para leer el texto de una variable de escena -* `ObjectName.VariableString (name)` para leer la variable del objeto llamado "ObjectName". - -## Ver variables en el depurador. - -Al desarrollar un juego, pueden ocurrir errores porque el valor de una variable no es el esperado. Si algo en su juego no funciona y cree que el problema podría estar relacionado con una variable, use el depurador de GDevelop para averiguar qué está mal. - -Para obtener más información, consulte: [Game Debugger and Profiler](/gdevelop5/interface/debugger). - -## Variables de estructura - -FIXME Esta sección está en construcción. ¡Puedes escribirlo tú mismo creando una cuenta en el wiki! diff --git a/docs/es/gdevelop5/behaviors/anchor.md b/docs/es/gdevelop5/behaviors/anchor.md deleted file mode 100644 index cfe048c9af..0000000000 --- a/docs/es/gdevelop5/behaviors/anchor.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Comportamiento del ancla (Anchor Behavior) ---- -# Comportamiento del ancla (Anchor Behavior) - -El comportamiento de anclaje permite que un objeto retenga su posición sin importar el tamaño de pantalla / relación de aspecto del juego, recortando sus bordes (Abajo, Izquierda, Derecha, Arriba). Esto es más útil para los objetos UI / HUD que son estáticos. - -Para agregar Ancla a un objeto, primero abra las propiedades del objeto creando un nuevo objeto o accediendo al objeto en la lista Objeto de escena. Seleccione "Editar objeto" de la lista emergente. Luego seleccione "Comportamientos" y haga clic en el botón Agregar comportamiento. - -![](/gdevelop5/behaviors/anchorbehavior.png) diff --git a/docs/es/gdevelop5/behaviors/destroyoutside.md b/docs/es/gdevelop5/behaviors/destroyoutside.md deleted file mode 100644 index 01f465f70a..0000000000 --- a/docs/es/gdevelop5/behaviors/destroyoutside.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: PLATAFORMA Y COMPORTAMIENTOS DE LOS PERSONAJES DE LA PLATAFORMA (Destroy outside screen behavior) ---- -# PLATAFORMA Y COMPORTAMIENTOS DE LOS PERSONAJES DE LA PLATAFORMA (Destroy outside screen behavior) - -**[¡Preferiría ver los ejemplos de comportamiento de la pantalla externa de Destroy! Por favor, llévame allí ahora.](#Examples)** - -Este es uno de los comportamientos más simples, pero útiles. Agréguelo a un objeto y luego, cada vez que una instancia de este objeto salga de los límites de la escena / pantalla del juego, esta instancia será destruida. - -Es una forma sencilla de garantizar que su juego no esté lleno de objetos de basura que podrían ralentizarlo. - -### Comportamiento de la plataforma (Add behavior to object) - -Para agregar un comportamiento a un objeto, primero abra las propiedades del objeto haciendo clic derecho en el objeto que se encuentra en la lista Objetos. Seleccione "Editar objeto" de la lista emergente. A continuación, seleccione la pestaña Comportamientos. Haga clic en el botón "agregar comportamiento". - -![](/gdevelop5/behaviors/addbehavior.jpg) - -### Destruye cuando está fuera de la pantalla. (Destroy when outside of screen) - -![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -Una vez que haya seleccionado el comportamiento de destrucción de la lista, eliminará el objeto cuando esté fuera de la pantalla. Este comportamiento no tiene opciones para cambiar y se aplica automáticamente a todas las instancias del objeto. - -# Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - - Abre los ejemplos Online. - -**Comportamiento fuera de la pantalla (Outside the Screen Behavior)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/outsidescreenbehaviorspaceshooter.png)](https://editor.gdevelop.io/?project=example://space-shooter) - - -**Destruye balas fuera de pantalla / escena** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shoot-bullets){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/outsidescreendestroybullets.png)](https://editor.gdevelop.io/?project=example://shoot-bullets) - - -**Disparando balas Explicación** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/bulletshootingexplanationexample.png)](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation) diff --git a/docs/es/gdevelop5/behaviors/draggable.md b/docs/es/gdevelop5/behaviors/draggable.md deleted file mode 100644 index f09ff6da3c..0000000000 --- a/docs/es/gdevelop5/behaviors/draggable.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Comportamiento de objetos arrastrables (Draggable Object Behavior) ---- -# Comportamiento de objetos arrastrables (Draggable Object Behavior) - -!!! note - - **Vélo en acción!** 🎮 - [¡Prefiero ver los ejemplos de comportamiento de objetos arrastrables! Por favor, llévame allí ahora.](#Examples) - -El comportamiento del objeto que se puede arrastrar hará que el objeto se pueda arrastrar con el mouse o al tocar la pantalla táctil de un dispositivo. - -### Añadir comportamiento arrastrable a un objeto (Add draggable behavior to an object) - -Para agregar un comportamiento que se pueda arrastrar a un objeto, primero cree un objeto o abra las propiedades del objeto accediendo al objeto en la lista de Objetos de escena. Seleccione "Editar objeto" de la lista emergente. Luego seleccione "Comportamientos" y haga clic en el botón Agregar comportamiento. ![](/gdevelop5/behaviors/addbehavior.jpg) - -![](/gdevelop5/behaviors/draggablebehaviorlistchoice.jpg) - -### Objeto arrastrable (Draggable object) - -![](/gdevelop5/behaviors/draggable-object-behavior-inlist.png) - -Al seleccionar el comportamiento del objeto arrastrable de la lista, podemos agregar la funcionalidad al objeto. Este comportamiento no tiene opciones para cambiar. Se aplica automáticamente al objeto. - -Usando "Eventos" en la pestaña Eventos de escena, podemos verificar si se está arrastrando un objeto. - -![](/gdevelop5/behaviors/eventcondtiondraggableobject.png) - -#Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abra éstos ejemplos Online. - -**Encajar a la cuadricula (Snap to Grid)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://snap-object-to-grid){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/snaptogrid.png)](https://editor.gdevelop.io/?project=example://snap-object-to-grid) - - -**Disparar bala en patrón de parábola** (Una parábola es una curva plana que es simétrica a un espejo y tiene forma de U aproximadamente. Básicamente, un objeto que dispara hacia un objeto en una trayectoria curva..) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shoot-bullet-in-parabola){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/shootbulletparabolapattern.png)](https://editor.gdevelop.io/?project=example://shoot-bullet-in-parabola) - - -**Guardar y cargar (Save and Load)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://save-load){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/saveandloadexample.png)](https://editor.gdevelop.io/?project=example://save-load) - - -**Fundamentos de la búsqueda del camino (Path Finding Basics)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding-basics){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindingbasics.png)](https://editor.gdevelop.io/?project=example://pathfinding-basics) diff --git a/docs/es/gdevelop5/behaviors/index.md b/docs/es/gdevelop5/behaviors/index.md deleted file mode 100644 index f5b32a9e98..0000000000 --- a/docs/es/gdevelop5/behaviors/index.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: behaviors ---- -!!! note - - Esta traducción es anterior a la página original en inglés y puede estar obsoleta. - -# COMPORTAMIENTOS - -Los comportamientos agregan capacidades adicionales a los objetos. Todos los objetos pueden tener uno o más comportamientos adjuntos. - -### Añadir comportamiento a un objeto. - -Para agregar un comportamiento a un objeto, necesita abrir las propiedades del objeto. Hay dos maneras en que esto se puede lograr: - -1. Haga clic con el ratón en los tres puntos en el menú Objetos ubicado a la derecha de la escena. Seleccione "Editar objeto" de la lista emergente. - -![editplayerobject.jpg](/gdevelop5/editplayerobject.jpg) - -2. Haga clic derecho en el objeto dentro de la escena. Seleccione "Editar objeto" de la lista emergente. - -Deberías ver las propiedades del objeto seleccionado. Ignorar la pestaña de propiedades por ahora. Seleccione la pestaña "Comportamientos" en la barra. ![behaviors-tab.png](/gdevelop5/behaviors-tab.png) - -Aquí verá una lista de comportamientos agregados al objeto. Probablemente esté vacío ahora. Para agregar un comportamiento al objeto, haga clic en el botón Agregar comportamiento. ![add-behavior-button.png](/gdevelop5/add-behavior-button.png) - -A continuación debería ver una lista de comportamientos disponibles. ![add-behavior-list.png](/gdevelop5/add-behavior-list.png) - -Es posible que deba desplazarse hacia abajo para ver la lista completa de comportamientos. Finalmente, simplemente haga clic en un comportamiento para agregar ese comportamiento al objeto. - -### Aprende más - -Puede obtener más información sobre cada comportamiento haciendo clic en los siguientes enlaces: - -- [Comportamiento fisico](/gdevelop5/behaviors/physics) -- [Pathfinding](/gdevelop5/behaviors/pathfinding) -- [Destruir la pantalla exterior](/gdevelop5/behaviors/destroyoutside) -- [Objetos de plataforma y plataformas.](/gdevelop5/behaviors/platformer) -- [Objeto arrastrable](/gdevelop5/behaviors/draggable) -- [Movimiento de arriba hacia abajo.](/gdevelop5/behaviors/topdown) diff --git a/docs/es/gdevelop5/behaviors/pathfinding.md b/docs/es/gdevelop5/behaviors/pathfinding.md deleted file mode 100644 index f17b63fa8b..0000000000 --- a/docs/es/gdevelop5/behaviors/pathfinding.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: de rutas ---- -#Búsqueda de rutas - -**[¡Prefiero ver los ejemplos de comportamiento de Pathfinding! Por favor, llévame allí ahora.](#Examples)** - -El comportamiento de búsqueda de rutas nos permite mover objetos a un destino seleccionado, así como marcar elementos como obstáculos. Los objetos que están marcados como obstáculos serán evitados por los objetos en movimiento. - -## Añadir comportamiento al objeto Para agregar comportamiento a un objeto, como de costumbre, cree el objeto. Luego, abra las propiedades del objeto haciendo clic derecho en la lista de Objetos ubicada a la derecha de la Interfaz de Escena. Seleccione "Editar objeto" de la lista emergente. - -![](/gdevelop5/editplayerobject.jpg) - -Ahora, seleccione la pestaña de comportamiento y haga clic en el botón "agregar comportamiento". - -![](/gdevelop5/behaviors-tab.png) - -A continuación, tenemos dos opciones para elegir: - -## Opción 1: comportamiento pathfinding ![](/gdevelop5/behaviors/pathfinding-behavior-inlist.png) - -El "comportamiento de búsqueda de rutas" nos permite mover el objeto a un destino y evitar todos los objetos marcados como un obstáculo. - -Después de agregar el comportamiento al objeto, podemos personalizar una serie de opciones. ![](/gdevelop5/behaviors/pathafindin-behavior-options.png) - -- **aceleración:** esta es la velocidad con la que nuestro objeto acelerará mientras se mueve en un camino. -- **permitir diagonales:** compruebe si el objeto puede moverse en diagonales o no. -- **ángulo de desplazamiento:** en caso de que nuestro sprite esté orientado en la dirección incorrecta, podemos establecer el ángulo de desplazamiento -- **tamaño de borde adicional:** stablece el tamaño de borde alrededor del objeto. Esta configuración determina qué tan cerca se puede mover el objeto a los obstáculos. -- **Velocidad máxima:** velocidad máxima que el objeto puede mover en el camino. -- **rotar objeto:** si no desea que el objeto gire mientras se mueve en la ruta, desactive la rotación del objeto. -- **velocidad de rotación:** establece la velocidad de rotación del objeto. -- **Alto y ancho de celda virtual:** nuestra ruta se genera mediante una cuadrícula virtual. Aquí podemos cambiar el tamaño de las celdas, cuanto más pequeño sea el tamaño de la celda, más suave será el movimiento. *Un tamaño de celda más pequeño implica más cálculos, así que trate de mantener un tamaño lo más grande posible.* - -## Opción 2: comportamiento de obstáculo en el pathfinding (Pathfinding Obstacle behavior) ![](/gdevelop5/behaviors/pathfinding-obstacle-inlist.png) - -Al utilizar el "comportamiento del obstáculo de búsqueda de caminos", podemos marcar un objeto para que sea un obstáculo. Después de agregar el comportamiento al objeto, tenemos dos opciones para personalizar: ![](/gdevelop5/behaviors/pathfinding-obstacle-options.png) - -- **Impasable (impassable):** si habilitamos esto, el obstáculo será intransitable. El objeto en movimiento lo va a evitar a toda costa. -- **Costo (cost):** si el obstáculo no es infranqueable, podemos establecer un costo para el obstáculo. El objeto en movimiento, cuando busque el mejor camino posible hacia un destino, preferirá evitar el obstáculo con valores de alto costo. Por ejemplo, un río puede tener algún costo. El objeto en movimiento, si es posible, lo evitará. Sin embargo, si no hay otra manera alrededor del río, o si el río tiene un costo más bajo en comparación con otra área, el objeto en movimiento lo atravesará (en lugar de escalar una montaña con un costo más alto, por ejemplo). Y si ponemos cocodrilos en el río y aumentamos su costo, el objeto en movimiento podría decidir escalar las montañas. - -## Ejemplo - -!!! note - - **Véalo en acción!** 🎮 - - Abre estos ejemplos Online. - -**Comportamiento general del pathfinding (General Path Finding Behavior)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindinggeneral.png)](https://editor.gdevelop.io/?project=example://pathfinding) - - -**Conceptos básicos de la ruta de acceso (Path Finding Basics)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding-basics){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindingbasics.png)](https://editor.gdevelop.io/?project=example://pathfinding-basics) diff --git a/docs/es/gdevelop5/behaviors/physics.md b/docs/es/gdevelop5/behaviors/physics.md deleted file mode 100644 index 22b91d7718..0000000000 --- a/docs/es/gdevelop5/behaviors/physics.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Comportamiento de la Física (Physics behavior) ---- -# Comportamiento de la Física (Physics behavior) - -**[¡Prefiero ver los ejemplos de comportamiento de física! Por favor, llévame allí ahora.](#Examples)** - -El comportamiento de "Física" permite que los objetos se comporten de acuerdo con las leyes de la física. El comportamiento de la física aplica la física del mundo real a los objetos de tu juego. Los objetos del juego pueden moverse, caer, rodar, rebotar y chocar. - -## Añadir comportamiento al objeto (Add behavior to object) Para agregar un comportamiento físico a un objeto, abra las propiedades del objeto haciendo clic derecho en el objeto creado en el Editor de objetos. Luego, seleccione "Editar objeto" de la lista emergente que aparece. Finalmente, seleccione la pestaña Comportamientos y haga clic en el botón "agregar comportamiento". - -Elige el "motor de física": ![](/gdevelop5/behaviors/physics-behavior-inlist.png) - -## Propiedades (Properties) Una vez que se agrega el comportamiento al objeto, hay una serie de opciones para personalizar: ![](/gdevelop5/behaviors/physics-behavior-options.png) - -**Considerar como una bala (Consider as Bullet)** - -Marque esta casilla si desea que el motor de física intente realizar un manejo de colisión perfecto en este objeto. Esto se usa mejor para objetos que se mueven rápidamente, es decir, balas, de ahí el nombre. "Considerar como bala" requiere muchos recursos. *Úsalo en la menor cantidad de objetos posible.* - -**Objeto dinámico (Dynamic Object)** - -Un "Objeto dinámico" se efectuará mediante la simulación del motor de física. La gravedad, las fuerzas y todas las propiedades enumeradas forman parte del motor de física. Si piensa en una bola rodante en un juego de pinball, establecería esto como dinámico debido a su movimiento de rodar. - -Si no elige "Objeto dinámico", creará un objeto estático o cinemático. Estos objetos no son afectados por el motor de física. Ellos no se moverán por su cuenta. Pueden ser movidos por tus eventos y acciones (cinemática). De lo contrario, simplemente se quedarán donde están (estático). En un juego de pinball puede usar esto para las aletas (cinemáticas) y las paredes y los parachoques (estático). - -**Rotación fija (Fixed Rotation)** - -Esta configuración evita que el objeto gire. Ignora el valor de amortiguación angular. La amortiguación angular controla la velocidad de rotación del objeto. - -**Mojadura (Damping)** - -La amortiguación se utiliza para reducir la velocidad de los objetos. La amortiguación es diferente de la fricción. La fricción solo se produce con el contacto. La amortiguación no es un reemplazo para la fricción. Los dos efectos se deben utilizar juntos. Los parámetros de amortiguación deben estar entre 0 e infinito, con 0 significa que no hay amortiguación y infinito significa que la amortiguación es total. Normalmente usarás un valor de amortiguamiento entre 0 y 0.1. - -**Fricción (Friction)** - -La fricción se utiliza para hacer que los objetos se deslicen entre sí de manera realista. El parámetro de fricción generalmente se establece entre 0 y 1, pero puede ser cualquier valor no negativo. Un valor de fricción de 0 desactiva la fricción y un valor de 1 hace que la fricción sea fuerte. - -**Masa (Mass)** - -La masa (peso) que asignes a un objeto afectará en gran medida la física de tu juego. Comience con todos los objetos establecidos en 1 y luego ajuste el valor como mejor le parezca. - -**Restitución (Restitution)** - -La restitución se utiliza para hacer rebotar objetos. El valor de restitución generalmente se establece entre 0 y 1. Considere dejar caer una pelota en una mesa. Un valor de cero significa que la pelota no rebotará. Esto se llama una colisión inelástica. Un valor de uno significa que la velocidad de la pelota se reflejará exactamente. Esto se llama una colisión perfectamente elástica. - -#Ejemplos - -!!! note - - **See it in action!** 🎮 - - Open these examples online. - -**Física (Physics):** - -[![](/gdevelop5/behaviors/hingeleverdemo.png)](https://editor.gdevelop.io/?project=example://physics) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://physics){ .md-button .md-button--primary } - -**Física de Carro (Car Physics)** - -[![](/gdevelop5/behaviors/carphysics.png)](https://editor.gdevelop.io/?project=example://car-physics) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://car-physics){ .md-button .md-button--primary } - -**Objeto de Gravedad (Object Gravity)** - -[![](/gdevelop5/behaviors/objectgravity.png)](https://editor.gdevelop.io/?project=example://object-gravity) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://object-gravity){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/behaviors/platformer.md b/docs/es/gdevelop5/behaviors/platformer.md deleted file mode 100644 index e075dbdf73..0000000000 --- a/docs/es/gdevelop5/behaviors/platformer.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: Comportamientos de Plataforma y de Personaje de plataforma ---- -# Comportamientos de Plataforma y de Personaje de plataforma - -!!! note - - **Véalos en acción!** 🎮 - [¡Prefiero ver los ejemplos de comportamiento de plataforma y de personajes de plataforma! Por favor, llévame allí ahora.](#Examples) - -¡Con el simple clic de un botón, puedes configurar el comportamiento de "Plataforma" de tu juego, así como el control de un personaje de plataforma! - -## Comportamiento de la plataforma (Platform behavior) - -![select-platform-behavior.png](/gdevelop5/behaviors/select-platform-behavior.png) Como de costumbre, crea un nuevo objeto. Selecciona el objeto de la lista "Objetos" de la escena haciendo clic en la opción "Hacer clic para agregar un objeto". De la lista que aparece, selecciona "Editar objeto". Selecciona el comportamiento "Plataforma" de la lista que se muestra. Ahora puedes convertir tu objeto en una plataforma. Una vez que tu objeto se define como "Plataforma", tu objeto "Personaje de plataforma" puede caminar sobre él. - -Después de seleccionar la opción "Plataforma", verás la lista de opciones de comportamiento de plataforma: - -![platform-behavior-options.png](/gdevelop5/behaviors/platform-behavior-options.png) - -### Tipo de plataforma - -Al hacer clic en el comportamiento de la plataforma, puede elegir entre 3 tipos de plataformas diferentes. - -![platform-type-button.png](/gdevelop5/behaviors/platform-type-button.png) - -* **Plataforma (Platform):** ésta es la opción por defecto. El comportamiento predeterminado establece el objeto como una plataforma tradicional. El personaje puede chocar con la plataforma y/o caminar sobre ella. * **Plataforma (Jumpthru):** al elegir esta opción, el personaje puede chocar con la plataforma y caminar sobre ella, pero el personaje también puede saltar a través de la plataforma desde abajo. * **Escalera (Ladder):** como su nombre indica, esta opción convierte nuestro objeto en una escalera. El objeto de personaje no puede chocar con el objeto de escalera. No puede caminar sobre el objeto de escalera, pero cuando el objeto de personaje se superpone al objeto de escalera, el personaje puede subir y bajar. - -### Agarrar la repisa (Grab the ledge) - -El borde de nuestra plataforma se puede agarrar por defecto. "Agarrar el borde" significa que cuando el objeto de personaje salta lo suficientemente cerca del borde de la plataforma, se puede agarrar al borde. Si no necesitas esta funcionalidad, asegúrate de que esta opción esté desmarcada/deseleccionada. Si lo necesitas, asegúrate de que la casilla esté marcada/seleccionada. ![ledges-canbe-grabbed-option.png](/gdevelop5/behaviors/ledges-canbe-grabbed-option.png) - -El desplazamiento del agarre también se puede cambiar en el eje Y. ![grab-offset-option.png](/gdevelop5/behaviors/grab-offset-option.png) - -La opción de desplazamiento nos permite cambiar la posición de la captura para ajustar la animación de nuestro personaje. - -## Comportamiento del personaje de plataformas (Platformer character behavior) - -![select-platformer-character-behavior.png](/gdevelop5/behaviors/select-platformer-character-behavior.png) - -Al seleccionar "Personaje de plataforma" de la lista, podemos convertir nuestro objeto en un "personaje de plataforma". Después de seleccionar la opción "Personaje de plataforma", se te presentarán las propiedades/parámetros de personaje de platforma. ![platformer-character-behavior-options.png](/gdevelop5/behaviors/platformer-character-behavior-options.png) - -Es posible que debas desplazarte para ver todas las opciones. - -### Controles (controls) - -El comportamiento de los personajes de Platformer viene con las teclas predeterminadas establecidas para controlar el personaje. Estas teclas son las teclas de flecha y la tecla de cambio. Si no desea utilizar los controles predeterminados, debe desactivar los controles predeterminados desmarcando o desmarcando la casilla "Controles predeterminados" debajo de las opciones "Carácter de plataforma". ![](/gdevelop5/behaviors/platformer-defaultcontrols-box.png) - -### Agarrarse al borde (Grab the ledge) - -Al igual que con el comportamiento de plataforma, tenemos la opción "Agarrarse al borde" para el "personaje de plataforma". Esta opción permite que el objeto de personaje se sujete al borde de las plataformas. La opción está deshabilitada por defecto. Para habilitarlo, marca/selecciona la casilla en la lista de opciones. ![](/gdevelop5/behaviors/platformer-character-grabledge-box.png) - -Si decides habilitar esta opción, el personaje puede agarrarse al borde de todas las plataformas que también tienen esta opción habilitada. - -Nuevamente, al igual que con el "Comportamiento de plataforma", podemos establecer el desplazamiento de agarre en el eje Y para el personaje. A diferencia del comportamiento de plataforma, también podemos establecer la tolerancia de agarre en el eje X. ![](/gdevelop5/behaviors/platformer-character-grab-tolerancex.png) - -Al cambiar el valor de tolerancia de agarre, podemos establecer cuán cerca debe estar el personaje de la plataforma para permitir que el personaje se agarre al objeto de plataforma. - -### Pendiente ángulo máximo (Slope max angle) - -![](/gdevelop5/behaviors/platformer-character-maximum-slope.png) Al cambiar este valor, podemos establecer el ángulo máximo de una pendiente que el jugador puede escalar. El valor predeterminado es 0. Cero significa que el personaje solo puede moverse sobre una superficie plana. - -### Velocidad y Gravedad (Speed and Gravity) - -![](/gdevelop5/behaviors/platformer-character-speed-options.png) - -Al cambiar los valores correspondientes en las opciones de "Velocidad y Gravedad", podemos cambiar la rapidez con la que nuestro personaje acelera, desacelera, se mueve, cae y salta. Creo que estas opciones se explican por sí mismas, así que no creo que requieran mucha explicación. Si deseas ralentizar el objeto de personaje, puedes disminuir estos valores. Si deseas acelerar el objeto de personaje, puedes aumentar estos valores. - -Todas las opciones de aquí también se pueden cambiar usando eventos en cualquier momento durante el juego. - -# Ejemplos - -!!! note - - **Véalo en acción** 🎮 - Abre los ejemplos Online. - -**Comportamiento de plataformas (Platformer Behavior)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - - -**Comportamiento de desplazamiento de paralaje (Parallax Scrolling Behavior)** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://parallax-scrolling){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/parallaxscrollingbehavior.png)](https://editor.gdevelop.io/?project=example://parallax-scrolling) diff --git a/docs/es/gdevelop5/behaviors/topdown.md b/docs/es/gdevelop5/behaviors/topdown.md deleted file mode 100644 index 126619166c..0000000000 --- a/docs/es/gdevelop5/behaviors/topdown.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Comportamiento de movimiento de arriba hacia abajo (Top Down Movement behavior) ---- -## Comportamiento de movimiento de arriba hacia abajo (Top Down Movement behavior) - -!!! note - - **Vélo en acción!** 🎮 - [¡Prefiero ver los ejemplos de comportamiento del movimiento de arriba hacia abajo! Por favor, llévame allí ahora.](#Examples) - -![](/gdevelop5/behaviors/topdownmovementbehavioricon.jpg) El comportamiento "Movimiento de arriba abajo" permite la funcionalidad adicional de mover un objeto en 4 u 8 direcciones. - -### Añadir comportamiento al objeto (Add behavior to object) - -Para agregar el comportamiento de arriba abajo a un objeto, primero abra las propiedades del objeto accediendo al objeto en el menú de objetos o haciendo clic derecho sobre el objeto en una escena. Seleccione "Editar objeto" de la lista emergente. Luego seleccione "Comportamientos" y haga clic en el botón Agregar comportamiento. - -### Comportamiento de movimiento de arriba hacia abajo (Top Down Movement behavior) - -Al seleccionar el comportamiento del movimiento de arriba hacia abajo de la lista, agregamos la funcionalidad a nuestro objeto. ![](/gdevelop5/behaviors/top-down-movement-behav-inlist.png) - -Después de seleccionar el comportamiento, deberíamos ver inmediatamente las opciones disponibles: ![](/gdevelop5/behaviors/topdown-movement-options.png) - -### Cambia la velocidad de movimiento y rotación. (Change the speed of movement and rotation) - -Al cambiar el valor de Aceleración, Desaceleración y Velocidad máxima, podemos cambiar la velocidad con la que nuestro objeto se moverá. Al cambiar el valor de la velocidad de rotación, podemos cambiar la velocidad con la que nuestro objeto va a girar o si va a girar en absoluto. Explicaré más sobre la rotación a continuación. - -### Cambio de ángulo de desplazamiento (Change angle offset) - -Por defecto, el ángulo de orientación de nuestro sprite es 0, que es el lado derecho de nuestro sprite, pero podemos cambiar la forma en que se enfrenta nuestro objeto cambiando el valor del desplazamiento del ángulo. Aquí hay una imagen para ayudarte a entender las coordenadas en GDevelop: - -![](/gdevelop5/behaviors/gdevelop_covaliantcuriosity.jpg) - -### Permite diagonales. (Allows diagonals) - -![](/gdevelop5/behaviors/allow-diagonals-box.png) Esta opción está activada de forma predeterminada. Permitimos que nuestro objeto se mueva diagonalmente en 8 direcciones. Al deshabilitar esta opción, no permitimos el movimiento diagonal. Cuando está deshabilitado, solo podemos movernos en 4 direcciones: izquierda, derecha, arriba y abajo. El movimiento diagonal ya no está permitido. - -### Controles predeterminados (Default controls) - -![](/gdevelop5/behaviors/top-down-movement-default-controls-box.png) El comportamiento del movimiento de arriba hacia abajo viene con los controles predeterminados habilitados. Los controles predeterminados son las cuatro teclas de flecha del teclado. Si nos gustaría usar controles personalizados para mover el objeto, necesitamos deshabilitar esta opción desmarcando la casilla y luego necesitamos usar los eventos de movimiento de arriba hacia abajo para mover el Objeto. ![](/gdevelop5/behaviors/top-down-movement-events.png) - -### Girar objeto (Rotate object) - -![](/gdevelop5/behaviors/top-down-movement-rotateobject-box.png) - -Por defecto, nuestro objeto girará hacia la dirección del movimiento. El objeto girará a la velocidad que especificamos en la opción Velocidad de rotación. Si no queremos que el objeto rote, necesitamos deshabilitarlo desactivando la casilla. - -También podemos cambiar cualquiera de estas opciones utilizando los eventos que se encuentran en la sección de "Eventos" de GDevelop en cualquier momento durante el juego. - -![](/gdevelop5/behaviors/eventstab.jpg) - -# Ejemplos - -!!! note - - **SVéalo en acción!** 🎮 - Abre estos ejemplos en línea. - -**Space Shooter** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/spaceshooter.png)](https://editor.gdevelop.io/?project=example://space-shooter) - - -**Juego Isométrico (Isometric Game)** (crea una ilusión de gráficos 3D dentro de un juego de gráficos 2D) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://isometric-game){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/isometricgame.png)](https://editor.gdevelop.io/?project=example://isometric-game) diff --git a/docs/es/gdevelop5/documentation.md b/docs/es/gdevelop5/documentation.md deleted file mode 100644 index 2c8ba6287a..0000000000 --- a/docs/es/gdevelop5/documentation.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: DOCUMENTACIÓN ---- -# DOCUMENTACIÓN - -Bienvenidos al manual de orientación de uso del software creador de videojuegos en 2D llamado GDevelop. - -Encontrarás diversos temas como lo son: - -- Manejo de Interfaces -- Manejo de objetos -- Comportamientos -- Eventos -- Publicación de Juegos - -Por mencionar algunos. - -!!! note - - "Recuerden ser ingeniosos en su creación de videojuegos". diff --git a/docs/es/gdevelop5/events/draft-optimization.md b/docs/es/gdevelop5/events/draft-optimization.md deleted file mode 100644 index e65e4abf7f..0000000000 --- a/docs/es/gdevelop5/events/draft-optimization.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: draft-optimization ---- -!!! note - - Esta página es un borrador de buenas prácticas a aplicar para optimizar los juegos de GDevelop. \Este borrador es un WIP de @Bouh - -!!! note - - Podría fusionarse con - -La optimización de juegos es un concepto importante del desarrollo de juegos. Una buena optimización permitirá que el juego funcione más rápido, haciéndolo más fluido. - -GDevelop 5 te da total libertad en los eventos. Si bien esto puede ser increíble, también puede ser muy costoso si no tiene el reflejo de escribir eventos optimizados, ya que el procesador podría sobrecargarse al ejecutar el juego. Esto causaría lag en el juego. - -Es importante [comprender qué son los eventos](/gdevelop5/tutorials/basic-game-making-concepts) y que todos los eventos se *llaman una vez en cada fotograma* y *en el orden en que se escribieron*. - -!!! note - - Por ejemplo: Con un juego a 60 cuadros por segundo (FPS), si tiene un solo evento, sin condición, y solo una acción, entonces esta acción debe ejecutarse 60 veces en un segundo. - -# La optimización ya está en el motor. - -GDevelop ha incorporado optimizaciones, como la *eliminación*, el proceso de ocultar automáticamente objetos fuera de la pantalla. De esa manera se renderiza menos y el renderizado se vuelve más rápido. - -Esto no afecta a la persona que crea el juego porque se maneja en segundo plano. Es totalmente transparente para todos. Por ejemplo, cuando un sprite está fuera de la pantalla, todas las animaciones se pausan. - -!!! note - - Todavía es importante ocultar o deshabilitar lo que no necesita. Esta es la clave de la optimización. - -# Optimizaciones que puedes realizar. - -## Ejecutar una vez - -La condición **Ejecutar una vez** hace que las condiciones que la preceden en el mismo evento se activen solo una vez cada vez que se cumplen. - -Por ejemplo, si desea crear un objeto cada vez que se hace un clic, esto es lo que *no* debes hacer: - -![](/gdevelop5/events/bad_event_optimisation.png) - -- Lo que se espera que suceda: Cuando se presiona el botón izquierdo del ratón, se crea un objeto llamado **MiObjeto**. -- Lo que realmente sucede: Mientras se presiona el botón izquierdo del ratón, se crean instancias de **MiObjeto**. - -Esto es problemático porque cuando se presiona el botón del mouse, es probable que se mantenga presionado durante más de un solo cuadro, como 0,3 segundos. Durante este período de tiempo, el evento se llama varias veces y el objeto se crea más de una vez. - -Para arreglar eso, podemos usar la condición **Ejecutar una vez**: ![](/gdevelop5/events/good_event_optimisation.png) - -Ahora, la condición se ejecutará solo una vez mientras sea verdadera. Eso significa que el evento se ejecutará solo una vez cada vez que su condición pase de incumplida a cumplida. Resuelve el problema anterior ya que la condición activará solo el primer cuadro del clic y esperará a que finalice el clic antes de permitir que el evento de clic se active nuevamente. - -## Desactivar comportamientos no utilizados - -Los comportamientos toman rendimiento, especialmente los comportamientos *Pathfinding* y *Physic Engine 2.0*. Recuerde desactivarlos cuando no sean necesarios. - -Tomemos como ejemplo la siguiente situación: Quiero que 100 enemigos se muevan a una posición cercana a ellos cada 2 segundos, y tener en cuenta los obstáculos de la pared. - -Esta sería una forma intuitiva pero incorrecta de hacerlo: ![](/gdevelop5/events/bad_behavior.png) Si hace esto, todos los objetos se moverán, incluidos los que están fuera de la pantalla. - -!!! note - - ¿Por qué calcular el movimiento que el jugador no verá? - -En su lugar, puede limitar el movimiento a los objetos visibles. Esto se puede hacer de la siguiente manera: deshabilite el comportamiento Pathfinding de los objetos que no están visibles en la ventana gráfica, y también actívelo cuando estén visibles en la ventana gráfica. - -!!! note - - No olvides ejecutar una vez para asegurarte de que el comportamiento se deshabilite o habilite solo cuando su estado cambie de no visible a visible o al revés. - -## Eliminar objetos no utilizados - -Tomemos como ejemplo la siguiente situación: Tengo un arma y creo una instancia de objeto de bala cuando presiono la tecla para disparar. Esta bala tiene una fuerza hacia una dirección. Si el jugador dispara muchas balas, su cantidad aumentará en la escena y cada una requiere cálculos de la fuerza que se les aplica en el bucle de eventos. Si no elimina los objetos de viñetas antiguos, se sumarán y tomarán más y más rendimiento, lo que provocará un retraso después de jugar durante algún tiempo. La mejor solución es eliminar las viñetas que están fuera de la pantalla. - -El comportamiento **"Destruir cuando está fuera de la pantalla"** hace exactamente eso. Adjúntelo a un objeto y se eliminarán todas las viñetas que salgan de la pantalla. - -!!! note - - TODO - -- Cuanto más pequeñas sean las dimensiones de las imágenes, menor será el tiempo de renderizado. -- Es posible que las imágenes de más de 2000 px no funcionen bien, especialmente en dispositivos móviles donde es posible que no se carguen. -- Reduzca la cantidad de fotogramas en las animaciones de sprites tanto como sea posible, elimine los fotogramas demasiado similares al anterior y al siguiente. -- Para optimizar el código para lograr una métrica de rendimiento deseada, use el generador de perfiles en GD5 para ver dónde se gasta el rendimiento. -- Reduzca el número de condiciones ya que la selección de objetos es un proceso pesado. -- La carga de un juego puede llevar un tiempo cuando los recursos son demasiado grandes, 2Gb de un archivo de video o sonido, ralentizarán el tiempo de carga. -- Considere comprimir videos, sonidos e imágenes, esto reducirá el tiempo de carga. -- Todos los recursos del proyecto se agrupan en los juegos exportados si el recurso existe en la pestaña Recursos (Gestor de proyectos\>Configuración del juego), recuerda eliminar todos los recursos no utilizados. diff --git a/docs/es/gdevelop5/events/foreach.md b/docs/es/gdevelop5/events/foreach.md deleted file mode 100644 index 69d30d8648..0000000000 --- a/docs/es/gdevelop5/events/foreach.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Para cada evento (For Each events) ---- -# Para cada evento (For Each events) - -A For Each event es un tipo de [event](/gdevelop5/ events) que tomará un objeto como parámetro. Luego, durante el juego, para cada instancia del objeto, se repetirán las condiciones y las acciones. - -Por lo general, no es necesario utilizar eventos "para cada uno". Las condiciones y acciones se ejecutarán automáticamente en todos los objetos. Se definen por sus condiciones. Sin embargo, de vez en cuando, los eventos "para cada" pueden ser útiles para ejecutar una acción que depende de cada instancia del objeto. - -## Ejemplo - -!!! note - - **Véalo en acción!** 🎮 - - Abra estos ejemplos Online. - -[![](/gdevelop5/events/shootingbulletsexplanationexample.png)](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } - -## Cuando usarlo (When to use it) - -Considere el siguiente ejemplo. Cuando el jugador se encuentra en una colisión con un objeto llamado "KillAllEnemyBonus", establecemos la variable de "vida" de todos los enemigos en 0. También queremos crear un tipo especial de explosión en la posición de cada enemigo. Necesitamos un evento "para cada" para lograr esto. De lo contrario, se crearía una sola explosión en la posición de solo el primer enemigo: ![](/gdevelop5/events/for-each-example.png) diff --git a/docs/es/gdevelop5/events/functions/extract-events.md b/docs/es/gdevelop5/events/functions/extract-events.md deleted file mode 100644 index 2c0ee204c1..0000000000 --- a/docs/es/gdevelop5/events/functions/extract-events.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Extraer eventos a una función ---- -# Extraer eventos a una función - -Cuando haga clic derecho en un evento seleccionado (o después de seleccionar más de un evento), puede elegir el elemento del menú "*Extraer eventos a una función*". - -![](/gdevelop5/events/functions/extract-events-to-function.png) - -GDevelop analiza los eventos y subeventos seleccionados, los extraerá en una función y mostrará una ventana para permitirle personalizar esta [función](/gdevelop5/events/functions). Una vez que haya completado los campos, haga clic en Crear para que se cree la función y se reemplacen los eventos seleccionados por una llamada a la [función](/gdevelop5/events/functions). - -## Configuración de la extensión y el nombre de la función - -El primer campo le pide la extensión donde se debe almacenar la función. Recuerda que las funciones se agrupan en extensiones. Si pretende crear múltiples funciones relacionadas con una misma función (por ejemplo, funciones para tratar con el inventario, un sistema de batalla o para ayudarlo a manejar a los enemigos en su juego), es mejor agruparlos en una misma extensión con un nombre relacionado con la característica. - -Esto permitirá entonces compartir la extensión y reutilizarla en otros juegos con poco o ningún cambio. - -Puede seleccionar una extensión existente o ingresar el nombre de una nueva, que se creará para usted. - -Introduzca entonces el nombre de la función. Al igual que el nombre de una extensión, el nombre de una función está limitado a caracteres alfanuméricos (0-9, a-Z) y guiones bajos. No se permiten espacios. - -![](/gdevelop5/events/functions/extension-name-and-function-name.png) - -## Configuración del resto de la función y parámetros. - -El resto de la ventana contiene los mismos widgets para configurar su función como los que se muestran cuando está editando una función. En particular, puede ingresar el nombre que se muestra al usuario y la descripción. - -Un campo importante es la oración que se muestra en la hoja de eventos. Puede usar _PARAMx_, donde x es un número (por ejemplo: _PARAM1_) para referirse a un parámetro. Generalmente, usted quiere ingresar todos los parámetros en esta oración: - -![](/gdevelop5/events/functions/function-setup.png) - -Finalmente puede introducir la descripción de los parámetros. - -!!! note - - Los parámetros se extraen automáticamente de los eventos por GDevelop. GDevelop comprenderá qué objetos, grupos y comportamientos está utilizando, así como los tipos de objetos. - -![](/gdevelop5/events/functions/function-parameters-setup.png) - -Al final, haga clic en Crear en la parte inferior derecha del cuadro de diálogo. ¡La función se creará y los eventos se reemplazarán por una acción que utiliza esta función! - -![](/gdevelop5/events/functions/function-used-as-action.png) diff --git a/docs/es/gdevelop5/events/group.md b/docs/es/gdevelop5/events/group.md deleted file mode 100644 index 6d5886d7de..0000000000 --- a/docs/es/gdevelop5/events/group.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Grupo de eventos (Group of events) ---- -# Grupo de eventos (Group of events) - -Los grupos son eventos que no hacen nada en particular. Se utilizan para organizar y estructurar sus eventos en grupos. - -Puedes agregar un grupo desde dentro del Panel de Eventos. Seleccione el icono "Elegir y agregar un evento" en la parte superior derecha. ![](/gdevelop5/events/chooseaddeventicon.png) - -Aparecerá un menú desplegable. Seleccione "Grupo" en el menú. - -![](/gdevelop5/events/groupeventsdropdown.png) - -Luego, como se ilustra a continuación, nombre a su grupo describiendo lo que contiene ("Gestión de jugadores", "Creación de mapas", "Enemigo verde", "Enemigo azul", "Enemigo negro", etc.). - -Además, en el editor de eventos, puede hacer clic en la flecha pequeña ubicada a la izquierda del evento de grupo para ocultar los eventos secundarios. Haga clic nuevamente en esta flecha para desplegar el grupo y mostrar lo que contiene.![](/gdevelop5/events/collapsiblegrouparrow.png) - -![](/gdevelop5/events/events-groups.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - - Abra estos ejemplos Online. - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/spaceshooter.png)](https://editor.gdevelop.io/?project=example://space-shooter) diff --git a/docs/es/gdevelop5/events/index.md b/docs/es/gdevelop5/events/index.md deleted file mode 100644 index 70b7411928..0000000000 --- a/docs/es/gdevelop5/events/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Eventos ![](/gdevelop5/event-screenshot.png) Los eventos en GDevelop te permiten programar visualmente tu juego sin ningún conocimiento o experiencia previa en programación, por lo que cualquier persona con cualquier fondo podrá crear el juego real y permitir que los jugadores interactúen con el juego. ---- -# Eventos ![](/gdevelop5/event-screenshot.png) Los eventos en GDevelop te permiten programar visualmente tu juego sin ningún conocimiento o experiencia previa en programación, por lo que cualquier persona con cualquier fondo podrá crear el juego real y permitir que los jugadores interactúen con el juego. - -### Tipos de eventos (Event types) - -Hay diferentes tipos de eventos en GDevelop que pueden usarse para diferentes propósitos: - -- [Standard event](/gdevelop5/events/standard): este evento es el predeterminado y se activa en cada fotograma. Ejecuta las acciones una vez que las condiciones son verdaderas, luego pasa al siguiente evento. -- [For Each event](/gdevelop5/events/foreach): este evento se activa para todas y cada una de las instancias del objeto seleccionado, verifica las condiciones y luego ejecuta las acciones para cada uno individualmente antes de pasar al siguiente evento. -- [Repeat event](/gdevelop5/events/repeat): este evento se repite la cantidad de veces especificada antes de pasar al siguiente evento. -- [While event](/gdevelop5/events/while): este evento se repite continuamente mientras se cumplen las condiciones especificadas y pasa al siguiente evento solo después de que las condiciones de este evento ya no sean ciertas. -- [Link](/gdevelop5/events/link): Este evento le permite llamar al evento externo especificado. Los eventos externos son eventos que no están vinculados a una escena específica. Puede llamarlos y ejecutarlos desde una o más escenas usando eventos de enlace. -- [Group](/gdevelop5/events/group): Un grupo contiene uno o más eventos. Es una forma fácil de organizar tus eventos en secciones. Puede contraer el contenido del grupo para ocultar los eventos en los que no está interesado cuando trabaja. -- [Javascript event](/gdevelop5/events/js-code): este evento le permite utilizar el código de Javascript junto con otros eventos - -Los eventos pueden tener subeventos (a excepción de los enlaces, los comentarios y el código Javacript). Los subeventos solo se activan después de que se hayan ejecutado las acciones del evento principal. Si las condiciones del evento principal son falsas, entonces no se ejecuta ningún evento secundario. - -Finalmente, los usuarios avanzados pueden crear sus propias acciones y condiciones usando [funciónes](/gdevelop5/events/functions). Es una forma de hacer que sus eventos sean aún más modulares y adaptados a su juego. - -### Agregar eventos (Add events) - -Para agregar eventos a nuestro juego, primero necesitamos cambiar al editor de eventos. Podemos hacerlo usando la pestaña del evento al lado de nuestra pestaña de escena. ![](/gdevelop5/objects/events-tab.png) - -Después de eso, podemos encontrar las herramientas en la parte superior para agregar eventos. ![](/gdevelop5/events-editor-toolset.png) Como el tipo de evento más utilizado es el estándar y los subeventos, tenemos un botón rápido para usar en la parte superior. Para agregar un evento estándar podemos usar el botón agregar evento![](/gdevelop5/add-event-button.png) Para agregar eventos secundarios, primero debemos seleccionar un evento en el editor y luego hacer clic en el botón Agregar evento secundario ![](/gdevelop5/sub-event-button.png) Puede encontrar todas las opciones disponibles haciendo clic en el icono más ![](/gdevelop5/add-special-events.png) - -### Añadir condiciones y acciones (Add conditions and Actions) - -Después de agregar un evento, vamos a encontrar un evento en blanco en nuestro editor. ![](/gdevelop5/blank-event.png) - -Podemos agregar cualquier número de condiciones y acciones a cada evento. Para agregar condiciones y acciones debemos hacer clic en agregar condición y agregar acción dentro del evento, luego podemos elegir entre muchas opciones ordenadas en diferentes categorías. - -Para aprender más sobre cómo usar las diferentes condiciones y acciones, recomiendo leer los tutoriales y guías disponibles en la wiki: [](/gdevelop5/tutorials) diff --git a/docs/es/gdevelop5/events/js-code.md b/docs/es/gdevelop5/events/js-code.md deleted file mode 100644 index 7ea786a2c3..0000000000 --- a/docs/es/gdevelop5/events/js-code.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Eventos de Código Java Script (JavaScript Code events) ---- -# Eventos de Código Java Script (JavaScript Code events) - -¡Este evento te permite agregar código JavaScript personalizado en tu juego! - -Solo debe ser utilizado por usuarios avanzados que estén familiarizados con la programación de JavaScript. - -Cuando se agrega, haga clic en el código para editarlo. El código se ejecutará cada vez que GDevelop alcance el evento. - -Tenga en cuenta que en el código, tiene acceso a una variable llamada _runtimeScene_. La variable, "runtimeScene", representa la escena que se está reproduciendo. A continuación se muestra un ejemplo de un evento GDevelop estándar y un evento equivalente que utiliza un JavaScript: ![](/gdevelop5/events/javascript-code-example.png) - -Si hace clic en "Haga clic aquí para elegir objetos para pasar a Javascript" junto al parámetro runtimeScene, una variable de la matriz llamada "objetos" estará disponible para su uso. Aparecerá un menú con los objetos de tu juego. Puede seleccionar el objeto de juego de nuestra elección. Ese objeto se agregará a su matriz de objetos javascript. ![](/gdevelop5/events/jsruntimeclickevent.png) - -"objetos" es una matriz que contiene las instancias seleccionadas del objeto que elija. Es exactamente como lo que una acción o condición usaría). Por ejemplo, la siguiente ilustración es un evento que utiliza un evento de JavaScript como un evento secundario. El evento javascript manipulará a los enemigos que chocan con el jugador: ![](/gdevelop5/events/javascript-code-with-objects-example.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abrir los ejemplos Online. - -[![400](/ gdevelop5/events/javascripttexttospeechexample.png)](https://editor.gdevelop.io/?project=example://text-to-speech) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-to-speech){ .md-button .md-button--primary } - -[![400](/gdevelop5/events/platformerjavascriptblocksexample.png)](https://editor.gdevelop.io/?project=example://javascript-blocks-in-platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://javascript-blocks-in-platformer){ .md-button .md-button--primary } - -## Documentación (Documentación) - -- Leé **\[the game engine documentation\]()** to get started. -- También puede navegar directamente el **\[GDJS game engine source code\]()**. - -## Ejemplos de Código - -### Lee y cambia el valor de una variable. - -``` javascript -var myVar = runtimeScene.getVariables().get("MyVar"); -var myVar2 = runtimeScene.getVariables().get("MyVar2"); - -var currentValue = myVar.getAsNumber(); -myVar.setNumber(currentValue+1); - -myVar2.setString("Hello, world"); -``` - -Véa la documentación sobre [gdjs.Variable](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/classes/gdjs.Variable.html) and [gdjs.VariablesContainer](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/classes/gdjs.VariablesContainer.html). - -### Mueve el objeto a la posición de otro, comprueba si el juego está mostrando el primer cuadro. - -``` javascript -const players = runtimeScene.getObjects("Player"); -const playerHitBoxes = runtimeScene.getObjects("PlayerHitBox"); -if (playerHitBoxes.length === 0 || players.length === 0) return; - -if (runtimeScene.getTimeManager().isFirstFrame()) { - playerHitBoxes[0].hide(); -} - -players[0].setX(playerHitBoxes[0].getX() - 12); -players[0].setY(playerHitBoxes[0].getY()); -``` - -Equivalent events would be: ![](/gdevelop5/events/hide-and-set-position-player-hitbox.png) - -### Cambiar la animación de acuerdo con algunas condiciones sobre el comportamiento de un objeto. - -!!! note - - En el código a continuación, usamos un comentario que se llama una anotación. - -Al escribir la **anotación **`/ **@tipo {gdjs.XXX} * /` justo antes de la declaración de una variable en JavaScript, le indica al editor de código que la variable tiene el tipo gdjs.XXX. El editor podrá asistirlo al proporcionar **autocompletar **mientras escribe (o cuando pasa el cursor una palabra). - -La mayoría de las anotaciones de tiempo no son necesarias. Los métodos que está utilizando ya son [documented](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/) con anotaciones de tipo. Pero cuando usa una lista de objetos, es posible que desee acceder a este método específico del objeto (por ejemplo, métodos para modificar la animación de un objeto sprite). En este caso, podría escribir `/ **@type {gdjs.SpriteRuntimeObject} * /`. - -Si no haces esto, el código seguirá funcionando, pero el editor solo podrá proporcionarte los métodos de `gdjs.RuntimeObject` (la clase base). - -Cuando obtiene un comportamiento de un objeto, también sabe qué tipo de comportamiento está recibiendo. Deje que el editor sepa esto usando una anotación (de lo contrario, solo obtendrá el autocompletado para la clase base, `gdjs.RuntimeBehavior`). - -``` javascript -const players = runtimeScene.getObjects("Player"); -const playerHitBoxes = runtimeScene.getObjects("PlayerHitBox"); -if (playerHitBoxes.length === 0 || players.length === 0) return; - -/** @type {gdjs.SpriteRuntimeObject} */ -const player = players[0]; - -/** @type {gdjs.PlatformerObjectRuntimeBehavior} */ -const platformerBehavior = playerHitBoxes[0].getBehavior("PlatformerObject"); - -if (platformerBehavior.isJumping() || platformerBehavior.isFalling()) { - player.setAnimation(1); -} else if (platformerBehavior.isOnFloor()) { - if (!platformerBehavior.isMoving()) { - player.setAnimation(0); - } else { - player.setAnimation(2); - } -} - -var LEFTKEY = 37; -var RIGHTKEY = 39; -if (runtimeScene.getGame().getInputManager().isKeyPressed(LEFTKEY)) { - player.flipX(true); -} else if (runtimeScene.getGame().getInputManager().isKeyPressed(RIGHTKEY)) { - player.flipX(false); -} -``` - -Equivalent events would be: ![](/gdevelop5/events/change-animation-according-to-behavior-conditions.png) - -### Establecer la posición de la cámara en la posición de un objeto. - -``` javascript -if (!objects.length) return; - -// Aquí, "objetos" se refieren a una lista de "Jugador", que debe seleccionarse -// en la configuración de la función. - -runtimeScene.getLayer("").setCameraX(objects[0].getX()); -``` - -Este evento equivalente sería: ![](/gdevelop5/events/set-camera-x-position-x.png) - -### Desvanecer un objeto sprite después de que esté en el piso (utilizando el comportamiento del objeto Platformer) - -``` javascript -objects.forEach(object => { - /** @type {gdjs.SpriteRuntimeObject} */ - const enemy = object; - - /** @type {gdjs.PlatformerObjectRuntimeBehavior} */ - const platformerBehavior = object.getBehavior("PlatformerObject"); - - if (enemy.getAnimation() === 1 && platformerBehavior.isOnFloor() && !platformerBehavior.isMoving()) { - object.activateBehavior("PlatformerObject", false); - enemy.setOpacity(enemy.getOpacity() - 50 * object.getElapsedTime(runtimeScene) / 1000); - - if (enemy.getOpacity() === 0) { - object.deleteFromScene(runtimeScene); - } - } -}); -``` - -Los eventos equivalentes serían: ![](/gdevelop5/events/fade-out-and-behavior.png) diff --git a/docs/es/gdevelop5/events/link.md b/docs/es/gdevelop5/events/link.md deleted file mode 100644 index 267b692e2b..0000000000 --- a/docs/es/gdevelop5/events/link.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Eventos de enlace (Link events) ---- -# Eventos de enlace (Link events) - -Los eventos de enlace son marcadores de posición. Los eventos de enlace indican a GDevelop que debe insertarse un evento externo en el enlace de marcador de posición. (Los eventos externos se pueden crear en [Administración de Proyctos](/gdevelop5/ interface/ project-manager)). - -Los eventos externos son útiles para ayudar a separar la lógica de tu juego en múltiples hojas de eventos. Las hojas de eventos externos mejoran la organización de tus eventos de juego. También proporcionan una buena manera de compartir eventos comunes entre tus escenas. - -Al agregar un evento de enlace, haga clic en "\" para que se muestre un menú desplegable donde puede elegir los eventos externos que le gustaría incluir. ![](/gdevelop5/events/externalevents1.png) ![](/gdevelop5/events/externalevents2.png) - -![](/gdevelop5/events/linkingexternalevents.png) - -## Ejemplos - -!!! note - - **Vélo en acción!** 🎮 - - Abra los ejemplos Online. - -[![](/gdevelop5/events/asteroidexternalexample.png)](https://editor.gdevelop.io/?project=example://asteroids) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://asteroids){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/events/repeat.md b/docs/es/gdevelop5/events/repeat.md deleted file mode 100644 index e757a16db7..0000000000 --- a/docs/es/gdevelop5/events/repeat.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Repetir eventos (Repeat events) ---- -# Repetir eventos (Repeat events) - -Los eventos repetidos funcionan como el estándar [eventos](/gdevelop5/ events), pero se repiten varias veces seguidas antes de continuar con el siguiente evento en la lista. Los eventos que siguen no se ejecutan hasta que se alcanza el número de repeticiones. - -Tenga en cuenta que este recuento puede ser una expresión. Eso significa que puedes hacer que el número de repeticiones varíe según lo que haga el jugador. Por ejemplo, puede crear un número diferente de enemigos según el conteo de vida, la posición, etc. de un objeto. También puede crear un número aleatorio de objetos en la escena (consulte el ejemplo a continuación). - -![](/gdevelop5/events/repeat-example.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - - Abre estos ejemplos Online. - -**Diagonales (Diagonals)** - -[![](/gdevelop5/events/diagonals.png)](https://editor.gdevelop.io/?project=example://find-diagonals) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://find-diagonals){ .md-button .md-button--primary } - -**Laser** - -[![](/gdevelop5/events/laser.png)](https://editor.gdevelop.io/?project=example://zombie-laser) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://zombie-laser){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/events/standard.md b/docs/es/gdevelop5/events/standard.md deleted file mode 100644 index e9f163ef73..0000000000 --- a/docs/es/gdevelop5/events/standard.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Eventos estandar (Standard events) ---- -# Eventos estandar (Standard events) - -Los [eventos](/gdevelop5/ events) más comunes utilizados en GDevelop son los eventos estándar: - -Desde el Editor de "Escena", seleccione y haga clic en la pestaña Editor de "Escena (Eventos)". Es la pestaña que se encuentra arriba ya la derecha de la escena. - -![](/gdevelop5/events/eventseditortab.png) - -Los eventos se componen de una lista de "condiciones" que se muestran en el lado izquierdo de la pantalla y una lista de "acciones" que se muestran en el lado derecho de la pantalla. Cuando todas las condiciones de la izquierda son verdaderas, se ejecutan las acciones de la derecha. Si una condición de la izquierda no es verdadera, las otras condiciones y acciones en el evento no se ejecutan. - -![](/gdevelop5/events/eventconditiontf.jpg) - -## Ejemplo - -Aquí hay un evento que destruirá el objeto "Cuadrado" cuya posición X es inferior a 100 píxeles: - -![](/gdevelop5/tutorials/delete-square-condition.png) - -Si aún no está seguro de cómo funcionan los eventos, eche un vistazo a [esta página](/gdevelop5/tutorials/basic-game-making-concepts). diff --git a/docs/es/gdevelop5/events/while.md b/docs/es/gdevelop5/events/while.md deleted file mode 100644 index e78eea4a27..0000000000 --- a/docs/es/gdevelop5/events/while.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: Mientras eventos (While events) ---- -# Mientras eventos (While events) - -Mientras que los eventos son un tipo especial de [evento](/gdevelop5/ eventos): mientras las condiciones // ` While ` sean verdaderas, el evento se repite sin interrupción (es decir, los siguientes eventos **no se ejecutan **y la pantalla **no **se actualiza). - -![](/gdevelop5/events/whileevent.png) - -Mientras que los eventos generalmente no son necesarios, pero estos eventos se pueden usar para repetir acciones siempre que la condición sea verdadera. El evento While es útil en algunos algoritmos que quizás quieras crear en tu juego. - -## Ejemplos - -!!! note - - **Véslo en acción!** 🎮 - - Abra estos ejemplos Online. - -[![](/gdevelop5/behaviors/spaceshooter.png)](https://editor.gdevelop.io/?project=example://asteroids) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://asteroids){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindinggeneral.png)](https://editor.gdevelop.io/?project=example://pathfinding) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/extending-gdevelop.md b/docs/es/gdevelop5/extending-gdevelop.md deleted file mode 100644 index a62001dd07..0000000000 --- a/docs/es/gdevelop5/extending-gdevelop.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Extendiendo GDevelop ---- -# Extendiendo GDevelop - -GDevelop es modular. Puede extenderse para adaptarse a sus necesidades. En particular, todas las funciones disponibles para los juegos: objetos, comportamientos y eventos se basan en un sistema de extensión. Como GDevelop es [open-source](https://github.com/4ian/GD), puede contribuir a las extensiones existentes o puede crear nuevas. - -Debido a que el editor es de código abierto, también es posible ver el código fuente y mejorarlo. - -## Extensiones para el motor del juego. - -Todas las características proporcionadas por el motor del juego se basan en el núcleo del motor del juego (GDJS) y las extensiones. - -➡️Si desea crear extensiones, lea **[https://github.com/4ian/GD/blob/master/newIDE/README-extensions.md. Esta página sobre cómo crear y desarrollar extensiones para GDevelop](https://github.com/4ian/GD/blob/master/newIDE/README-extensions.md. Esta página sobre cómo crear y desarrollar extensiones para GDevelop) **. - -Necesitará Node.js para comenzar y un conocimiento rudimentario de JavaScript. - -## Mejorar el editor - -El editor también se basa en JavaScript, y puede modificarlo y mejorarlo fácilmente. - -➡️Lea [esta página para comenzar a trabajar en el editor](https://github.com/4ian/GD/blob/master/newIDE/README.md). - -Necesitará Node.js para comenzar y conocer JavaScript. También es una buena idea leer tutoriales sobre React.js, ya que todo el editor se basa en él para la modularidad y el rendimiento. diff --git a/docs/es/gdevelop5/getting_started/index.md b/docs/es/gdevelop5/getting_started/index.md deleted file mode 100644 index a8c0ec0088..0000000000 --- a/docs/es/gdevelop5/getting_started/index.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: Introducción a GDevelop ---- -# Introducción a GDevelop - -GDevelop es una herramienta de creación de juegos gratuita, de código abierto y multiplataforma que cualquiera puede usar para crear juegos sin conocimientos de programación. - -Esta guía explica cómo empezar a trabajar con GDevelop. - -## Paso 1: instala GDevelop - -GDevelop está disponible para todos los principales sistemas operativos, incluidas las últimas versiones de Windows, macOS y Linux. Para descargar GDevelop, visita gdevelop.io/download . - -Las instrucciones de instalación dependen del sistema operativo. - -* **Windows**: haz doble clic en el ejecutable. Esto instala GDevelop, inicia la aplicación y agrega un icono al escritorio. -* **macOS**: - * Abre el archivo DMG. - * Arrastra “GDevelop.app” al directorio “~/Applications”. -* **Linux**: - * Abre una terminal. - * Haz que el archivo AppImage sea ejecutable escribiendo //chmod a+x GDevelop*.AppImage//. - - * Ejecútalo: ///GDevelop*.AppImage// (o haz doble clic en el archivo). - -!!! note - - Hay una versión en línea de GDevelop disponible en [editor.gdevelop.io](https://editor.gdevelop.io/). Sin embargo, en general, recomendamos utilizar la versión de escritorio. - -## Paso 2: crea un nuevo proyecto - -1. Inicia GDevelop. -2. Haz clic en **Crear un nuevo proyecto**. -3. Elige una ubicación para el proyecto. -4. Selecciona uno de los proyectos de la pestaña **Principiantes**, como **Platformer** o **Space Shooter de 8 bits**, o comienza un juego desde cero seleccionando el proyecto **Vacío**. - -![](/es/gdevelop5/2.png) - -Los proyectos de la pestaña **Principiantes** muestran cómo crear juegos completos, mientras que los proyectos de la pestaña **Ejemplos** muestran cómo crear funciones específicas. - -## Paso 3: vista previa del juego - -Si un proyecto tiene al menos una escena, lo que todos los proyectos iniciales hacen, entonces hay disponible un botón de **Vista previa** en la barra de herramientas. Este botón lanza una vista previa del juego. - -![](/gdevelop5/getting-started-preview-button.jpg) - -## Próximo paso - -Lee el [Tutorial de Platformer](/gdevelop5/tutorials/platformer). Aprenderás a crear un juego de plataformas desde cero y descubrirás muchos de los conceptos fundamentales de GDevelop, como objetos, eventos y expresiones. - - - - - diff --git a/docs/es/gdevelop5/getting_started/open-gdevelop-4-project.md b/docs/es/gdevelop5/getting_started/open-gdevelop-4-project.md deleted file mode 100644 index eaf7ae7313..0000000000 --- a/docs/es/gdevelop5/getting_started/open-gdevelop-4-project.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Abra un juego hecho con Gdevelop 4 ---- -# Abra un juego hecho con Gdevelop 4 - -Gdevelop 5 se basa en el mismo motor que Gdevelop 4 y los juegos son compatibles. Aunque debe asegurase de que: - -* Su juego en Gdevelop 4 este basado en la plataforma HTML5, los juegos nativos no son compatibles por ahora con Gdevelop 5 . -* Algunas extensiones / características aún no son compatibles con GDevelop 5. - -Para abrir su juego con GDevelop 5, ábralo con GDevelop 4 y guárdelo como un archivo json: - -* En el menú de arriba, en la parte superior izquierda, elija **Archivo\> Guardar como ...**. * Elija una carpeta, luego ingrese un nombre de archivo que termina por **.json**, Por ejemplo: - -![](/gdevelop5/getting_started/screenshot_2017-12-25_23.14.09.png) - -Haga clic en Guardar. Ahora puede abrir este archivo con GDevelop 5. - -Asegúrese de **verificar que todo funcione **antes de continuar creando su juego con GDevelop 5. diff --git a/docs/es/gdevelop5/index.md b/docs/es/gdevelop5/index.md deleted file mode 100644 index d1a8e253d5..0000000000 --- a/docs/es/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Documentación de GDevelop 5 ---- -# Documentación de GDevelop 5 - -GDevelop es una herramienta de creación de juegos gratuita, de código abierto y multiplataforma que cualquiera puede usar para crear juegos sin conocimientos de programación. Esta wiki contiene todo lo que se necesita saber para crear juegos con GDevelop, incluso aunque nunca hayas creado un juego antes. - -![](/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - -## Próximos pasos - -* Si no has instalado GDevelop, lee la [Introducción a GDevelop](http://wiki.compilgames.net/doku.php/es/gdevelop5/getting_started). -* Si nunca antes has creado un juego, lee la [Guía de conceptos básicos de creación de juegos.](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials/basic-game-making-concepts) -* Si estás listo para comenzar a crear un juego, explora los [tutoriales](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials). \ No newline at end of file diff --git a/docs/es/gdevelop5/interface/debugger.md b/docs/es/gdevelop5/interface/debugger.md deleted file mode 100644 index 89dfd6b874..0000000000 --- a/docs/es/gdevelop5/interface/debugger.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Depurador del juego y perfilador ---- -# Depurador del juego y perfilador - -El **depurador (debugger)** es una herramienta que te permite inspeccionar el contenido de tu juego. En particular, puede inspeccionar variables globales, variables de escena y variables de instancias de sus objetos. Es una herramienta poderosa. - -Puedes pausar el juego en cualquier momento. Usar el depurador es una excelente manera de entender por qué algo no funciona como es debido o para hacer pruebas rápidas en el juego. - -El *generador de perfies (profiler)* es una herramienta que mide el tiempo empleado en diferentes partes del motor mientras se ejecuta el juego. Ayuda a encontrar cuellos de botella o eventos que podrían requerir muchos recursos en su juego. [Lea más sobre el uso del generador de perfiles aquí!](/gdevelop5/interface/debugger/profile-your-game) - -!!! note - - Esta es una característica avanzada de GDevelop. Si lo usa, nos gustaría que muestre su soporte para GDevelop al [obtener una suscripción](/gdevelop5/interface/profile)! - -![](/gdevelop5/interface/gdevelop-debugger_2x.png) - -## Ejecutar el depurador (Launch the debugger) - -Para iniciar el depurador, en la barra de herramientas de un editor de escenas, haga clic en el ícono "Depurar". - -![](/gdevelop5/interface/debug-icon_2x.png) - -En el menú, seleccione "Vista previa con depurador y perfilador de rendimiento". Esto abrirá una nueva pestaña llamada "Depurador" y también lanzará una vista previa de tu juego como siempre. - -Tenga en cuenta que incluso si cierra la vista previa, puede dejar abierta la pestaña del depurador. De esta forma, cualquier vista previa que inicie (con el botón Vista previa habitual) se conectará al depurador. - -Cuando el juego se acaba de lanzar, el depurador está vacío: - -![](/gdevelop5/interface/empty-debugger_2x.png) - -Haga clic en "**Actualziar**" en cualquier momento para obtener los datos del juego. - -![](/gdevelop5/interface/debugger-refresh-button_2x.png) - -También puede usar el botón Pausa en la barra de herramientas. - -## Inspecciona las escenas del juego. - -Las escenas que se ejecutan actualmente se enumeran debajo del elemento Escenas en la lista: - -![](/gdevelop5/interface/inspector-list.png) - -Si hace clic en el nombre de una escena, se le mostrará a la derecha del inspector para esta escena. Este inspector contiene una capa de la escena y un botón para crear una nueva instancia de un objeto en la escena. - -### Crear una nueva instancia en la escena. - -Para crear una nueva instancia, haga clic en el nombre de la escena donde desea crear la instancia. Escriba el nombre del objeto y haga clic en Crear: - -![](/gdevelop5/interface/create-instance.png) - -La instancia se creará en la posición 0; 0, en la capa base con Z orden 0. Luego puede encontrarlo en la lista de instancias y cambiar su posición, ángulo, capa ... - -## Inspecciona y edita las instancias. - -En la lista, puede encontrar **Instancias** de cada escena en ejecución. Las instancias se agrupan por nombre de los objetos. Haga clic en el nombre de un objeto para ver la lista de instancias de este objeto que vive en la escena. Haga clic en un número de instancia para inspeccionarlo: - -![](/gdevelop5/interface/instance-inspector.png) - -El inspector muestra las propiedades generales de la instancia, por ejemplo, posición, rotación, capa ... Para cada una de estas propiedades, puede **editarlas haciendo clic en el valor**: - -![](/gdevelop5/interface/debugger-inspector-edit-value.png) - -Valide sus cambios haciendo clic en el **botón de validación** (el que tiene el icono de marca). - -También puede ver las **variables de la instancia** y modificarlas (consulte a continuación para obtener más información sobre las variables). - -## Inspeccionar y editar las variables. (Inspect and edit the variables). - -Puede verificar las variables del juego (variables globales), de una escena (variables de escena) o de una instancia particular de un objeto (variables de instancia). - -Para hacer esto, en la lista, haga clic en **Variables globales**, **Variables de escena** o el número de instancia que desea inspeccionar. - -Las variables se mostrarán en una lista que muestra el nombre y los valores de la variable (ya sea un número o un texto). Aquí hay un ejemplo de una instancia de un objeto que tiene una variable "Vida": - -![](/gdevelop5/interface/instance-variables.png) - -Como otros campos, puede hacer **clic en el valor de la variable** para cambiarla. Es una buena manera de ver cómo se está comportando tu juego de acuerdo con el valor de las variables y probar que tus eventos funcionan correctamente. - -Las variables también pueden ser **estructuras**, o que significa que contienen otras variables. En este caso, en lugar de ver el valor (número o texto) de la variable, verá una sub-lista que contiene las variables secundarias: - -Aquí hay un ejemplo de una variable "Opciones", que agrega variables secundarias para almacenar las opciones de un juego: ![](/gdevelop5/interface/structure-variable-inspector.png) - -También puede cambiar el valor de las variables de los niños como cualquier otro. Perfil del rendimiento de su juego. - -## Perfil del rendimiento de su juego. - -El generador de perfiles es una herramienta incluida en el depurador que mide el tiempo empleado en varias partes del motor mientras se ejecuta el juego. A continuación, se muestra un desglose de cada sección, incluidos los eventos. [Lee más sobre perfiles!](/gdevelop5/interface/debugger/profile-your-game) diff --git a/docs/es/gdevelop5/interface/events-editor.md b/docs/es/gdevelop5/interface/events-editor.md deleted file mode 100644 index 5b9ef2e726..0000000000 --- a/docs/es/gdevelop5/interface/events-editor.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Editor de Eventos ---- -# Editor de Eventos - -Cuando abre una escena o cualquier evento externo, el editor de eventos de escena se presenta en la pestaña que se encuentra sobre la ventana de apertura. - -![](/gdevelop5/interface/sceneeventstab.png) - -El Editor de eventos es donde se agregan los eventos que crean el juego real. Permite a los jugadores jugar e interactuar con tu juego. El editor de eventos es una herramienta que te da el poder de programar visualmente tu juego. No tienes ninguna experiencia en programación o codificación. *Cualquiera puede hacer un juego en GDevelop!* - -Para cambiar el [Editor de Escena (Scene editor)](/gdevelop5/interface/scene-editor) y el editor de eventos, use las pestañas en la parte superior de la ventana. ![](/gdevelop5/scene-events-tab.png) - -Cuando cambie al editor de Eventos, verá que la barra de herramientas ha cambiado. Ahora hay un conjunto diferente de herramientas disponibles: ![](/gdevelop5/events-editor-toolset.png) - -## Agregar Evento Agregar un evento haciendo clic en el botón "agregar evento". ![](/gdevelop5/add-event-button.png) - -Cuando haga clic en este botón, aparecerá un evento en blanco en la pantalla de abajo en el editor. ![](/gdevelop5/blank-event.png) - -Puede agregar el editor de eventos a cualquier número de bloques de eventos. Cada evento puede tener diferentes condiciones y acciones. Una vez que agrega un evento, puede usar las condiciones y acciones para crear la lógica del juego. Conozca más sobre los eventos, en esta página: [](/gdevelop5/eventos). - -## Añadir sub evento Al hacer clic en el botón Agregar subevento, puede agregar un bloque de "evento secundario" al evento seleccionado. ![](/gdevelop5/sub-event-button.png) - -Después de hacer clic en el botón, aparece un evento subs en blanco debajo de nuestro evento seleccionado. ![](/gdevelop5/blank-sub-event.png) - -*Los eventos secundarios se ejecutan solo si las condiciones del evento principal son verdaderas.*. Los eventos secundarios proporcionan una manera de evitar repetir las mismas condiciones. Hacen la lógica mucho más fácil de leer. - -## Añadir un comentario Al hacer clic en el botón Agregar comentario, puede agregar comentarios a los eventos. Los comentarios nos ayudan a recordar lo que hacen los eventos. ![](/gdevelop5/add-comment-button.png) - -Los comentarios son una parte importante de cualquier juego o aplicación. Le ayudan a organizar y recordar exactamente lo que está logrando el evento y la lógica de acción. ![](/gdevelop5/comment-in-editor.png) - -## Añadir eventos especiales Al hacer clic en el botón Agregar un evento, junto con los que ya mencionamos, tenemos acceso a algunos eventos especiales. ![](/gdevelop5/add-special-events.png) - -Lee [la ayuda sobre eventos](/gdevelop5/la ayuda sobre eventos) para aprender más. - -## Eliminar eventos seleccionados - -Al hacer clic en el botón Eliminar eventos seleccionados, los eventos seleccionados se eliminarán de la hoja de eventos (también puede presionar la tecla Eliminar): ![](/gdevelop5/delete-selected-events-button.png) - -## Deshacer / Rehacer cambios (Undo/Redo changes) Cualquier cambio se puede deshacer o aplicar nuevamente con estos botones (o los accesos directos habituales): ![](/gdevelop5/undo-redo-buttons.png) - -## Buscar en eventos (Search in events) El botón "buscar en eventos" abre un panel en la parte inferior de la pantalla. Allí, puede buscar un término específico en los parámetros de las condiciones y acciones. También puede ingresar un parámetro de reemplazo y reemplazar todas las apariciones del texto en los eventos. - -![](/gdevelop5/search-events-button.png) diff --git a/docs/es/gdevelop5/interface/index.md b/docs/es/gdevelop5/interface/index.md deleted file mode 100644 index 8721496c81..0000000000 --- a/docs/es/gdevelop5/interface/index.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Interfaz de GDevelop ---- -# Interfaz de GDevelop - -La interfaz de trabajo de GDevelop se basa en editores que se muestran en pestañas. Estos editores te permiten cambiar diferentes partes de tu juego. - -![](/gdevelop5/screen_shot_2017-09-18_at_01.30.20.png) - -## Página de inicio - -La pantalla de inicio se muestra la primera vez que inicia GDevelop. Es aquí donde podrá crear sus proyectos, cargar proyectos guardados anteriormente o cargar tutoriales. - -![](/gdevelop5/gdevelop5startpage.png) - -Al inicio, GDevelop buscará nuevas actualizaciones. Si hay una nueva actualización disponible, la actualización se descargará automáticamente. - -Puedes ver [el progreso haciendo clic en Acerca de GDevelop](/gdevelop5/interface/updates). - -## Administrador de proyecto - -Cuando se abre un proyecto, puede hacer clic en el botón superior izquierdo para acceder al administrador del proyecto. ![](/gdevelop5/project-manager-button.png) - -El jefe de proyecto muestra la estructura de tu juego: ![](/gdevelop5/project-manager-tab.png) - -Usando el administrador de proyectos, puedes agregar nuevos elementos a tu juego y abrir editores. Obtenga más información sobre [el contenido del administrador del proyecto aquí.](/gdevelop5/interface/project-manager). - -## Editor de Escena - -Al abrir una escena (o un diseño externo), se abre un editor de escenas. Aquí es donde puedes diseñar y construir tus niveles de juego y menus creando y agregando objetos a la escena. - -[Aprende más sobre el uso de editores de escenas](/gdevelop5/interface/scene-editor). - -## Editor de Eventos - -Al abrir una escena (o al abrir eventos externos), también se abre un editor de eventos. Aquí es donde puedes usar los eventos para crear el juego real y permitir que los jugadores interactúen con tu juego y lo jueguen. El editor de eventos es una herramienta que te permite programar visualmente tu juego sin ningún conocimiento de programación o experiencia requerida para que cualquier persona con antecedentes pueda hacer un juego en GDevelop. - -Aprenda más sobre [su uso en esta página](/gdevelop5/interface/events-editor) o consulta [la ayuda sobre eventos](/gdevelop5/events). - -## Mejores menús - -El menú en la parte superior de la pantalla (solo en la versión de escritorio) le permite abrir, guardar y [publicar un juego](/gdevelop5/publishing). - -También puede abrir las preferencias de GDevelop o ver [el perfil asociado con su cuenta de GDevelop.](/gdevelop5/interface/profile). diff --git a/docs/es/gdevelop5/interface/profile.md b/docs/es/gdevelop5/interface/profile.md deleted file mode 100644 index 830eed210b..0000000000 --- a/docs/es/gdevelop5/interface/profile.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Mi perfil ---- -# Mi perfil - -Se necesita una cuenta de GDevelop para algunas funciones, especialmente la exportación con un solo clic de su juego para Android e iOS, Windows, macOS y Linux. - -Si no tiene una cuenta, cree una gratis: en el menú Archivo (en Windows y Linux) o en el menú GDevelop (en macOS), seleccione "Mi perfil": - -![](/gdevelop5/interface/my-profile-menu.png) - -En la ventana, puede ver su perfil (o crear uno si no tiene una cuenta) y también ver los últimos usos que ha hecho sobre los servicios en línea. - -## Crear una cuenta - -Si no tienes una cuenta, puedes crear una gratis: - -![](/gdevelop5/interface/create-account.png) - -Selecciona/Click en **Crear mi cuenta**. Introduce tu e-mail y crea una contraseña. - -![](/gdevelop5/interface/login.png) - -Una vez que haya iniciado sesión, puede ver su perfil y puede usar los servicios específicos de GDevelop, como empacar su juego para Android en un solo clic. - -## Obtener una suscripción - -De forma predeterminada, las cuentas son gratuitas y no hay límites en los juegos que creas con GDevelop. Algunos servicios en línea son limitados, ya que dependen de servidores que pueden ser costosos. En particular, con una cuenta gratuita puedes hacer 2 paquetes para Android todos los días. - -Al obtener una suscripción, desbloqueará más paquetes (y en el futuro más paquetes con un solo clic para iOS, Windows, macOS y Linux). También apoyará el desarrollo futuro de GDevelop. ✨ Note: 7 EUROS = approximately \$8. 2EUROS = approximately \$2.30 (use a Currency Calculator to find the most current amount in USA dollars.) - -Una vez que haya iniciado sesión, haga clic en el botón **"Choose a subscription"** : - -![](/gdevelop5/interface/choose-subscription-button.png) - -Podrás ver una descripción de cada plan disponible. Elija el que se adapte a sus necesidades: - -![](/gdevelop5/interface/subscription-plans.png) - -Una vez que haya hecho clic en **Elegir el plan**, se le pedirá su número de tarjeta de crédito para que la suscripción se pueda pagar cada mes. El pago se realiza y se protege con [Stripe.com](https://stripe.com), que es el nuevo estándar en pagos en línea. Todo está asegurado y manejado por la infraestructura de Stripe. - -## Cambiando tu suscripción - -Si desea actualizar su suscripción, ya sea para actualizar a una suscripción con más envases o para una suscripción que sea más barata, simplemente abra su perfil y haga clic en **Actualizar / Cambiar (Upgrade/Change)**. - -¡El próximo pago se adaptará automáticamente a su nueva suscripción! - -## Cancelando tu suscripción - -La cancelación de su suscripción en cualquier momento es fácil: abra su perfil y haga clic en **Actualizar / Cambiar**. Elija una suscripción gratuita y su suscripción actual se detendrá, y no se requerirá ningún nuevo pago. - -Si lo desea, puede suscribirse nuevamente a otra suscripción. En cualquier caso, ¡no perderás nada de tu juego o trabajo! diff --git a/docs/es/gdevelop5/interface/project-manager.md b/docs/es/gdevelop5/interface/project-manager.md deleted file mode 100644 index e5a7c19194..0000000000 --- a/docs/es/gdevelop5/interface/project-manager.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: Administrador de Proyecto ---- -# Administrador de Proyecto - -Cuando se abre un proyecto, puede hacer clic en el botón superior izquierdo de la barra de herramientas para acceder al administrador del proyecto. ![](/gdevelop5/project-manager-button.png) - -El jefe de proyecto muestra la estructura de todo tu juego. - -![](/gdevelop5/interface/projectmanager2.png) - -Puede plegar y desplegar cada categoría haciendo clic en la flecha pequeña al lado de cada categoría.![](/gdevelop5/interface/dropdownarrowforcollapsibles.jpg) - -También puede configurar los iconos de Escritorio (Windows, MacOS, Linux), Android y / o iOs para su juego. - -- **Configuración del Juego:**aquí es donde puedes personalizar la configuración global del juego. Cosas como el tamaño predeterminado de la ventana del juego o el nombre del paquete para Android e iOS. También puedes [configurar los iconos de escritorio (Windows, MacOS, Linux) , Android, and/or iOs para tu juego](/gdevelop5/interface/project-manager/icons). - -  - -- **Escenas:** las escenas están compuestas de diferentes pantallas y niveles en tu juego. Todo en GDevelop es creado en [escenas](/gdevelop5/interface/scene-editor). Todas las pantallas de tu juego están creadas aquí. Las escenas incluyen pantallas como el menú principal, la pantalla de bienvenida, la pantalla de créditos. - -  - -- **Eventos Externos:**Para hacer que el desarrollo de su juego sea más flexible puedes usar los [eventos externos](/gdevelop5/interface/events-editor). A continuación, puede vincular a "Eventos externos" cuando los necesite. Si está familiarizado con la programación, piense en "Eventos externos" como métodos. Si no está familiarizado con el término, recuerde que si necesita usar una colección de eventos a menudo y en diferentes lugares, puede hacerlos externos y llamarlos desde sus escenas en lugar de agregar los mismos eventos varias veces. - -  - -- **Diseños Externos:**• similares a los eventos, puede diseñar a menudo. Usado repetidamente diseños externos para ser cargados en sus escenas. - -## Menú de Archivo - -En la versión **Escritorio**, el menú Archivo le permite guardar su juego, abrir otro o cerrarlo. También puedes [exportar tu juego](/gdevelop5/publishing). ![](/gdevelop5/file-menu.png) - -En la **Aplicación Web (Web App)**, estas opciones están en la parte superior del administrador del proyecto. ![](/gdevelop5/web-project-manager-tab.png) diff --git a/docs/es/gdevelop5/interface/scene-editor.md b/docs/es/gdevelop5/interface/scene-editor.md deleted file mode 100644 index 2fa564f99b..0000000000 --- a/docs/es/gdevelop5/interface/scene-editor.md +++ /dev/null @@ -1,94 +0,0 @@ ---- -title: Editor de Escena ---- -# Editor de Escena - -Al abrir una escena (o un diseño externo), se abre el editor de escenas. - -![](/gdevelop5/interface/sceneeditoropens.png) - -El editor de escenas es donde puedes diseñar y construir tus niveles de juego, tus menús, tus inventarios o cualquier otra cosa que inspire tu imaginación. El Editor de escenas le permite crear y agregar objetos a la escena / pantalla. El juego y las reglas del juego se pueden crear usando eventos en el [Editor de Eventos](/gdevelop5/interface/events-editor) de Escena. - -Hay una serie de herramientas y editores disponibles en la barra de herramientas superior del editor de escenas. ![](/gdevelop5/scene-editor-toolset.png) - -## Editor de Objetos You will find the Objects Editor on the right side of the Scene Editor's interface. Aqui puedes ver todos los [los Objetos](/gdevelop5/objects) usados en tu escena. También puede agregar nuevos objetos utilizando el Editor de objetos. ![](/gdevelop5/objects-manager-tab.png) - -Si cierra el panel Editor de objetos, puede volver a abrirlo utilizando este botón en la barra de herramientas: ![](/gdevelop5/objects-manager-button.png) - -Lee sobre las [funciones genéricas disponibles para todos los objetos](/gdevelop5/objects/base_object) y luego observa el [la ayuda sobre los tipos de objetos](/gdevelop5/objects) para aprender más sobre los diferentes tipos de objetos que puedes usar en tu juego. - -## Propiedades de Objetos - -Puede encontrar el editor de propiedades del objeto en el lado izquierdo de la interfaz del editor de escenas. Si el Editor de propiedades del objeto no está visible, cierre el Administrador de proyectos. Luego, selecciona un objeto en tu escena. El Editor de propiedades del objeto se abrirá a la izquierda. ![](/gdevelop5/object-properties-bar.png) - -El uso del Editor de propiedades le permite cambiar las propiedades del objeto de escena seleccionado. Cosas como la posición de un objeto, la escala y el orden Z se pueden cambiar usando el Editor de propiedades. Puedes informarte más acerca de las [propiedades de objeto en esta página](/gdevelop5/objects/base_object). - -Si ha cerrado este panel, puede abrirlo nuevamente haciendo clic en el botón en la barra de herramientas: ![](/gdevelop5/object-properties-button.png) - -**Nota:** los paneles de GDevelop se pueden mover arrastrándolos a cualquier lugar que desee. Simplemente arrastre el panel usando la barra de título. Como ejemplo, si el Panel de propiedades del objeto se abre en el lado derecho de la pantalla y prefiere colocarlo en el lado izquierdo de la pantalla, simplemente arrástrelo a su lugar con la barra de título. - -## Editor de Grupos de Objetos - -En el editor de Grupos de objetos, puede encontrar la lista de grupos de objetos que están presentes en la escena. ![](/gdevelop5/objects-groups-editor.png) - -Para abrir el editor, haga clic en este botón en la barra de herramientas: ![](/gdevelop5/objects-groups-editor-button.png) - -Los grupos de objetos contienen objetos y se pueden usar en eventos para referirse a múltiples objetos, usando un solo evento. características comunes para todos los objetos. Lea más sobre ellos en la página sobre [características comunes para todos los objetos.](/gdevelop5/objects/base_object). - -## Editor de Instancias - -El editor de instancias muestra la lista de todas las instancias del objeto que viven en la escena. Se puede usar para seleccionar cualquier instancia de la lista para ver la posición, el ángulo, la capa y el orden de la instancia en la escena. ![](/gdevelop5/instances-editor.png) - -Puede abrir el editor de instancias haciendo clic en este botón en la barra de herramientas: ![](/gdevelop5/instances-editor-button.png) - -## Editor de Capas - -Por defecto, cada escena de GDevelop viene con una sola capa llamada "Capa base". Aquí es donde todos los objetos se encuentran en nuestra escena. Podemos agregar más capas para varios propósitos y poner cualquier instancia en cualquier capa. Por ejemplo, puede haber una capa para mostrar los controles en la pantalla. Puede haber otra capa para mostrar un menú. Otra capa más puede ser un mapa del juego o un fondo. - -El editor de capas muestra la lista de capas en la escena y le permite agregar nuevas, cambiar su orden, alternar su visibilidad en la pantalla o eliminarlas por completo. ![](/gdevelop5/layers-editor.png) - -Puede abrir el editor de capas haciendo clic en este botón en la barra de herramientas: ![](/gdevelop5/layers-editor-button.png) - -## Otras Herramientas - -### Palanca (Toggle)/Editor de Cuadricula (grid) - -Al hacer clic en el botón de cuadrícula en la barra de herramientas, obtendrá múltiples opciones: ![](/gdevelop5/toggle-grid-button.png) - -* **Máscara de Palanca (Toggle mask)**: esta opción muestra u oculta un borde negro en la escena. Representa el tamaño de la ventana del juego. * **Palanca de Cuadrícula (Toggle grid):** esta opción activa o desactiva la cuadrícula en el editor de escenas. Tener una cuadrícula es útil cuando necesitamos colocar objetos con precisión. * **Configuración de Cuadrícula (Setup grid):** esta opción abre una ventana que le permite configurar el tamaño y la posición de la cuadrícula. - -### Cambiar editor de zoom - -Al hacer clic en el botón de zoom, puede cambiar el nivel de zoom dentro del editor de escenas: ![](/gdevelop5/toggle-zoom-button.png) - -## Lanzar una vista previa de la escena - -Al hacer clic en el botón Vista previa, puede iniciar una vista previa de su juego! - -![](/gdevelop5/preview-button.png) - -La vista previa se abrirá en una ventana separada. - -## Iniciar una vista previa de la red (vista previa a través de WiFi / LAN) - -Al hacer clic en el botón "Vista previa de la red (Vista previa a través de WiFi / LAN)", puede obtener una vista previa del juego en dispositivos móviles (o cualquier otra computadora) conectados a la misma red que el editor: - -![](/gdevelop5/interface/preview-wifi-button.png) - -Después de hacer clic en el botón, aparecerá una ventana que muestra la vista previa de la dirección que se está iniciando en: ![](/gdevelop5/preview-wifi-window.png) - -Ahora puede ingresar la dirección dada en el navegador de su teléfono inteligente (o en el otro navegador de su computadora). La vista previa se cargará: - -![](/gdevelop5/interface/preview-wifi-running.png) - -Nota: Puedes cerrar la ventana emergente en el editor y continuar editando su juego. Si inicia una nueva vista previa, los dispositivos móviles y cualquier computadora conectada actualizarán automáticamente el juego para mostrar los cambios realizados. - -### Lanzar una vista previa con el depurador - -El depurador es una herramienta que se puede usar para inspeccionar el contenido de tu juego (valores de variables, instancias existentes y sus propiedades ...) e incluso realizar algunas ediciones en tiempo real. - -Puedes ejecutar el depurador usando este ícono: - -![](/gdevelop5/interface/debugger-button.png) - -[Vea esta página](/gdevelop5/interface/debugger) para saber más acerca del uso del depurador. diff --git a/docs/es/gdevelop5/interface/updates.md b/docs/es/gdevelop5/interface/updates.md deleted file mode 100644 index 4fd55525c9..0000000000 --- a/docs/es/gdevelop5/interface/updates.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Buscar actualizaciones ---- -# Buscar actualizaciones - -Cuando se inicia, GDevelop busca automáticamente nuevas actualizaciones. Puede ver el progreso haciendo clic en `Acerca de GDevelop` en el[start page](/gdevelop5/interface) o en el menu. - -En la ventana Acerca de, verás si se está descargando una actualización: - -![](/gdevelop5/interface/update-being-downloaded.png) - -Cuando termine, GDevelop le informará que la actualización está lista: - -![](/gdevelop5/interface/update-downloaded.png) - -También se puede mostrar una notificación: - -![](/gdevelop5/interface/update-notification-macos.png) - -Ahora puede cerrar GDevelop y abrirlo de nuevo: se instalará la nueva actualización. Verifique nuevamente la ventana Acerca de para ver el número de versión actualizado. - -##¿Tiene un problema? Descarga de nuevo GDevelop desde el sitio web. - -Si la actualización no se puede aplicar por algún motivo, o si cree que GDevelop no funciona después de una actualización, simplemente descarga de nuevo GDevelop desde la web. [[|http://gdevelop-app.com]]. Tus preferencias no se perderán. diff --git a/docs/es/gdevelop5/objects/admob.md b/docs/es/gdevelop5/objects/admob.md deleted file mode 100644 index c344d0dc21..0000000000 --- a/docs/es/gdevelop5/objects/admob.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: El objeto AdMob ---- -# El objeto AdMob - -El objeto AdMob admite la integración de anuncios en tu juego. A medida que se juega, se muestran los anuncios. Esto te permite ganar dinero con tus juegos. AdMob es un servicio gratuito de Google que le brinda la posibilidad de publicar anuncios. Deberá crear una cuenta de AdMob antes de utilizar el objeto AdMob de GDevelop. Enlace externo a AdMob. [Link externo a AdMob](https://www.google.com/admob/) - -![](/gdevelop5/objects/admobscene.png) - -## Cómo crear un objeto AdMob - -1. Crear una cuenta de AdMob. [Enlace externo a AdMob](https://www.google.com/admob/) -2. Cree un nuevo objeto GDevelop de la lista de objetos de escena. -3. Seleccione la opción AdMob en el panel que se muestra. - -![](/gdevelop5/objects/selectadmodobject.png) - -- El panel Propiedades / Comportamiento de AdMob se abre. - -![](/gdevelop5/objects/admodpropertiesbehaviorpanel.png) - -#### Propiedades de AdMod - -El panel de propiedades de AdMod tiene varias opciones: - -1. Nombre del objeto: el nombre que le da a su objeto AdMod. -2. Banner ID (Android): la identificación de Android que se asigna a su juego a través de admod.com. -3. Banner ID (iOS): la identificación de iOS que se asigna a sus anuncios de juegos a través de admod.com. -4. Parte inferior de la pantalla: puede configurar el banner para que esté en una posición específica en la parte inferior de la pantalla. -5. Se insertan intersticiales usando admob.com. Son banners o videos de recompensa de página completa que aparecen en los descansos de tu juego. - -Echa un vistazo a tutoriales de "Cómo crear objetos Gdevelop AdMod" en youtube. - -[External Link to Youtube - Av8r Gamez](https://www.youtube.com/watch?v=wzCKpNUwHYE) - -[External Link to Youtube - Sparkman](https://www.youtube.com/watch?v=c7BvTGo5dxE) diff --git a/docs/es/gdevelop5/objects/base_object.md b/docs/es/gdevelop5/objects/base_object.md deleted file mode 100644 index f812fa8a7c..0000000000 --- a/docs/es/gdevelop5/objects/base_object.md +++ /dev/null @@ -1,113 +0,0 @@ ---- -title: Características comunes a todos los objetos ---- -# Características comunes a todos los objetos - -En un juego de GDevelop, todo en la pantalla es un objeto. - -## Añadir un objeto al juego. - -En una escena, podemos agregar objetos simplemente haciendo clic en el botón Agregar objeto a la derecha de la lista de objetos en la parte inferior: ![](/gdevelop5/objects/add-object-button.png) - -Puede elegir entre muchos tipos diferentes de objetos, todos con propiedades y propósitos específicos: ![](/gdevelop5/objects/object-types.png) - -Dependiendo del tipo de objeto que haya seleccionado, el editor, el aspecto del objeto y las características disponibles en los eventos serán diferentes. Como el objetivo de esta página es explicar los objetos en general, no entraremos en los detalles de estas propiedades únicas para cada tipo. Puede encontrar [información detallada sobre cada tipo de objeto aquí](http://wiki.compilgames.net/doku.php/gdevelop5/objects). - -# Objetos en la escena (Objects in the scene) - -## Añadir una instancia en la escena. - -Un objeto se puede colocar en la escena seleccionando el objeto en la pestaña Objeto (hacer clic / tocar en él) y luego hacer clic en la escena para poner una instancia de ese objeto. Una instancia es básicamente una copia del objeto que vive en la escena. Cada instancia tiene sus propias variables, posición, animaciones (para objetos de sprite), contenido (para textos), etc. - -Podemos cambiar la posición de un objeto seleccionando el objeto en el editor de scripts y arrastrándolo. Podemos escalar el objeto seleccionando el objeto y arrastrando uno de los puntos de escala blanca. ![](/gdevelop5/objects/coin-selected.png) - -## Modificar propiedades. - -Cuando seleccionamos un objeto en el editor de escenas, el panel de propiedades a la izquierda muestra información sobre las instancias seleccionadas. Si no está abierto, puede volver a abrirlo haciendo clic en el botón de propiedades en la barra de herramientas: ![](/gdevelop5/objects/object-propeties-button.png) - -### Posición (Position) - -Puede establecer con precisión la posición de las instancias seleccionadas cambiando los valores de X e Y en las propiedades: ![](/gdevelop5/objects/object-position-properties.png) - -## Ángulo (Angle) - -Puede establecer el ángulo de una instancia (s) cambiando el valor del ángulo: ![](/gdevelop5/objects/object-angle-properties.png) - -El ángulo puede ser cualquier valor de 0 a 360 grados. Recuerde este diagrama para ver cuál es la orientación de un ángulo dado: ![](/gdevelop5/objects/gdevelop_co.png) - -## Orden Z (Z order) - -Puede cambiar el orden de una instancia en las propiedades: ![](/gdevelop5/objects/object-zorder-properties.png) - -El propósito del orden Z es especificar qué objeto se mostrará primero cuando las instancias se superponen. De manera más precisa, podemos controlar si el objeto está detrás de otro objeto o si está al frente configurando diferentes valores: cuando dos objetos se superponen, el objeto con un orden Z de menor valor se mostrará detrás del otro. - -Los valores pueden ser cualquier número entero, incluidos los números negativos y 0. - -![](/gdevelop5/objects/coin-bush-zorder.png) En la imagen de arriba, el orden Z del arbusto se deja 2, el orden Z de la moneda es 1 y el orden Z del arbusto de la derecha es 0. - -## Capa (Layer) - -Puede establecer la capa de una instancia: ![](/gdevelop5/objects/object-layer-properties.png) - -Por defecto, cada escena de GDevelop viene con una sola capa llamada "Capa base". Aquí es donde todos los objetos se encuentran en nuestra escena. Podemos agregar más capas para varios propósitos y poner cualquier instancia en cualquier capa. Por ejemplo, puede haber una capa para mostrar los controles en la pantalla, otra para mostrar un menú, un mapa o un fondo. - -## Posición de bloqueo / ángulo (Lock position/angle) - -Al marcar la casilla "Bloquear posición / ángulo en el editor", puede hacer que la instancia sea inamovible en el editor: ![](/gdevelop5/objects/lock-sprite.png) - -Cuando la instancia está bloqueada, ya no podemos seleccionarla en la escena. Hay ocasiones en las que hay muchos objetos que se superponen entre sí en su escena. Esto hace que sea difícil seleccionar algunos de ellos, ya que seguimos seleccionando los que no pretendemos. En tales casos, puede bloquear las instancias. - -Puede desbloquear una instancia bloqueada abriendo el panel de instancias, que muestra todas las instancias en nuestra escena y seleccionando el objeto de la lista. - -## Variables de instancia (Instance variables) - -El botón "editar variables" le permite especificar variables que son específicas de la instancia seleccionada: ![](/gdevelop5/objects/instance-variables-property.png) - -Una variable es básicamente un contenedor que contiene un valor (un número, un texto) que se puede comparar y modificar durante el juego. Hay diferentes tipos de variables en GDevelop, en particular, cada objeto puede contener variables. Cuando el juego se está ejecutando, cada instancia del objeto que vive en la escena tendrá sus propias variables. - -Las "Editar variables" le permiten especificar variables que son específicas de la instancia seleccionada. Por ejemplo, si tiene objetos que representan cuadros con oro en la escena, puede modificar la variable llamada "Oro" de cada instancia para establecer diferentes números. Luego, en los eventos, cuando el jugador colisiona con un cuadro, puedes leer el valor variable para agregarlo a la cantidad de oro del jugador. - -## Tamaño personalizado (Custom size) - -Puede cambiar el tamaño de sus objetos habilitando el tamaño personalizado en el panel de propiedades y luego ingrese las dimensiones de ancho y altura personalizadas en píxeles: ![](/gdevelop5/objects/customsize-properties.png) - -# Grupos de objetos (Object groups) - -Un grupo de objetos es un conjunto de objetos. Por ejemplo, un grupo llamado "Enemigos" puede contener el objeto "Seta", "Bomba", "Dinosaurio". Luego puede usar el nombre del grupo en los eventos para referirse a todos los objetos contenidos en el grupo. - -Esto hace posible crear eventos que se aplican a muchos objetos sin repetir eventos varias veces, lo que aumenta el rendimiento de su juego, la facilidad de mantenimiento y la legibilidad de sus eventos. - -Para abrir el Editor de grupos, haga clic en el icono de grupos en la barra de herramientas: ![](/gdevelop5/objects/groups-button.png) - -En el Editor de grupos se enumeran todos los grupos de la escena (y también los grupos globales, que están disponibles en todas las escenas del juego). Para agregar un grupo, haga clic en el botón en la parte inferior de la lista: ![](/gdevelop5/objects/add-group-button.png) - -Un nuevo grupo se agrega a los perdidos: ![](/gdevelop5/objects/group-group.png) - -* Para cambiar el nombre del grupo, haga clic derecho en el grupo y seleccione **cambiar nombre**. * Para agregar objetos al grupo, toque o haga clic en el grupo. - -En la ventana abierta para editar el grupo, haga clic en el campo inferior y seleccione un objeto (o escriba el nombre de un objeto) para agregarlo al grupo. ![](/gdevelop5/objects/edit-group.png) - -# Variables (Variables) - -Cada objeto puede contener variables, que son celdas de memoria que puede usar para almacenar información. Cuando el juego se está ejecutando, cada instancia del objeto que vive en la escena tendrá sus propias variables. - -Lee [esta página](/gdevelop5/all-features/variables) para aprender más sobre variables. - -# Temporizadores (Timers) - -Los objetos pueden mantener sus propios temporizadores, y cada temporizador será único para cada instancia del objeto que vive en la escena. Los temporizadores de objetos son útiles para crear instancias para iniciar acciones después de / cada X segundos. - -Por ejemplo, un uso clásico es simular disparos de balas. Si tiene un solo tanque en la escena, puede usar un temporizador de escena para que cada 3 segundos, este tanque pueda disparar (crear una bala) y luego reiniciar el temporizador (para que el tanque pueda disparar nuevamente). - -El problema es que si tienes 2 tanques y usas un temporizador de escena, notarás que ambos tanques disparan al mismo tiempo, porque comparten el mismo temporizador de escena. Necesitas tener dos temporizadores separados, independientes entre sí, para hacer que el segundo tanque dispare a su propio ritmo. Pero ¿y si tienes 100 tanques? No desea crear 100 temporizadores de escena, uno por instancia. - -Esto es cuando los temporizadores de objetos se están volviendo útiles: reemplace cada condición / acción usando el temporizador de escena con las condiciones / acciones para usar temporizadores de objetos. Durante el juego, GDevelop creará un temporizador dentro de cada instancia del tanque. Cuando utilizará una condición para verificar el valor de un temporizador, solo se seleccionará la instancia que tenga un temporizador que tenga un valor en segundos que sea mayor al número que ingresó. - -Puedes leer más sobre los temporizadores aquí: [](/gdevelop5/all-features/timers) - -# Editor de eventos (Events Editor) - -Puedes cambiar y manipular las propiedades de una instancia de un objeto, o de varias instancias, usando eventos durante el juego. De esto se trata la creación de juegos en GDevelop: manipular objetos en tiempo real mientras jugamos. Como el editor de eventos y eventos están fuera del alcance de esta página, consulte la página de [conceptos básicos de creación de juegos](/gdevelop5/tutorials/basic-game-making-concepts) para comenzar. - -* Todos los objetos comparten las mismas características comunes (como posición, ángulo y todo lo que está escrito en esta página), y hay muchas condiciones y acciones que puede usar para todos los objetos. -* Los objetos también pueden proporcionarle características específicas. Por ejemplo, los [Objetos Sprite (Sprite objects)](/gdevelop5/objects/sprite) pueden tener animaciones, y la animación que se está reproduciendo se puede cambiar mediante una acción. diff --git a/docs/es/gdevelop5/objects/index.md b/docs/es/gdevelop5/objects/index.md deleted file mode 100644 index 279c76a791..0000000000 --- a/docs/es/gdevelop5/objects/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Objetos (Objects) ---- -# Objetos (Objects) - -Los juegos de GDevelop se basan en objetos que se muestran en la escena y se pueden animar y mover. Los diferentes tipos de objetos están disponibles y proporcionan características específicas: - -* [Características para todos los objetos (Features for all objects)](/gdevelop5/objects/base_object) -* [Objetos de Sprite (Sprite objects)](/gdevelop5/objects/sprite) -* [Objetos de Sprite de azulejos (Tiled Sprite objects)](/gdevelop5/objects/tiled_sprite) -* [Emisores de partículas (Particle emitters)](/gdevelop5/objects/particles_emitter) -* [Objetos de texto (Text objects)](/gdevelop5/objects/text) -* [Objetos de Panel Sprite ("9 parche") (Panel Sprite ("9 patch") objects)](/gdevelop5/objects/panel_sprite) -* [Objetos de entrada de texto (Text entry objects)](/gdevelop5/objects/text_entry) -* [Objetos de Shape Painter (Shape Painter objects)](/gdevelop5/objects/shape_painter) -* [Objetos AdMob (AdMob objects)](/gdevelop/objects/admob) (aún en desarrollo) diff --git a/docs/es/gdevelop5/objects/panel_sprite.md b/docs/es/gdevelop5/objects/panel_sprite.md deleted file mode 100644 index 992a076617..0000000000 --- a/docs/es/gdevelop5/objects/panel_sprite.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: OBJETO PANEL SPRITE (9 PARCHE) (Panel Sprite ("9 patch") object) ---- -# OBJETO PANEL SPRITE (9 PARCHE) (Panel Sprite ("9 patch") object) - -Los objetos Panel Sprite se pueden utilizar para mostrar una textura con bordes repetidos o estirados. El Panel Sprite Object es útil para construir objetos que tienen un tamaño dinámico. Los ejemplos de objetos de Panel Sprite incluyen cosas como el marco de una interfaz. Las plataformas también pueden usar esta característica. - -Para usar el Panel Sprite, cree un nuevo objeto desde el panel / lista Objetos a la derecha. Una vez que haya creado el objeto, puede establecer el tamaño de los márgenes para cada borde alrededor del objeto. Los márgenes son la parte superior, la izquierda, la derecha y la parte inferior. - -## Pasos para crear un Sprite Panel - -1. Desde la lista del Editor de "Objetos" que se encuentra en el lado derecho del Editor de escenas, haga clic en el botón más para crear un nuevo sprite. - -![](/gdevelop5/objects/panelsprite-addanobject.png) - -2. Seleccione la opción "Panel Sprite" de la lista que aparece. - -  - - - - -![](/gdevelop5/objects/panelspriteselector.png) - -3. Defina las propiedades / parámetros de su objeto. - -![](/gdevelop5/objects/panelspriteselectors.png) diff --git a/docs/es/gdevelop5/objects/particles_emitter.md b/docs/es/gdevelop5/objects/particles_emitter.md deleted file mode 100644 index bd01cad24f..0000000000 --- a/docs/es/gdevelop5/objects/particles_emitter.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: EMISOR DE PARTÍCULAS (Particles emitters) ---- -# EMISOR DE PARTÍCULAS (Particles emitters) - -!!! note - - **Véalo en acción!** 🎮 - [Preferiría ver los ejemplos de objetos emisores de partículas! Por favor, llévame allí ahora.](#Examples) - -Los emisores de partículas se utilizan para mostrar un gran número de partículas pequeñas. Simulan efectos en un juego. Algunos ejemplos de emisores de partículas son el fuego, las explosiones, el humo y el polvo. - -![](/gdevelop5/objects/particles-emitters-preview.png) - -El objeto Emisor de partículas se puede configurar con una multitud de parámetros diferentes para crear los efectos deseados. - -## Partículas de tipo (Particles kind) Para usar el Emisor de partículas, cree un nuevo objeto de la lista Objetos. Se abrirá un panel: - -![](/gdevelop5/objects/addnewobject-particlesemitter.png) - -Seleccione "Emisores de partículas" de la lista. - -Aparecerá un nuevo panel. Este panel contiene las propiedades que se pueden establecer para su emisor. Deberá desplazarse hacia abajo para ver todas las propiedades disponibles para el emisor. - -![](/gdevelop5/objects/particleemitterspanelofchoices.png) - -*Hay 3 modos de renderización disponibles para Emisores de partículas: puntos, líneas y texturas.* - -* Modo puntos, se mostrarán círculos con el tamaño especificado. -* Modo Líneas, mostrará líneas con la longitud y el grosor especificados. -* Modo texturizado, mostrará una imagen del tamaño especificado. - -## Colores (Colors) - -* Puede elegir un color de inicio para partículas y un color para atenuar. También puede elegir un valor inicial para la transparencia del objeto. - -## Dirección de emisión (Direction of emission) - -Las partículas se emitirán en la dirección representada por el ángulo de los emisores en la escena. Puede cambiar el ángulo del cono de rociado, que también se representa en el editor de escenas como dos líneas: un gran valor para este "cono de rociado" dará como resultado una emisión de partículas en un gran número de direcciones. Un valor de 0 emitirá partículas solo en una sola dirección. * Las partículas aparecen en una esfera, alrededor de la posición del objeto emisor. Puedes cambiar el radio de la esfera. * La gravedad se puede aplicar sobre partículas, en los ejes X e Y. Por ejemplo, un valor negativo en el eje Y hará que las partículas suban en el aire. * La fricción influye en la desaceleración de las partículas con el tiempo. - -## Tiempo de vida (Lifetime) - -* Cada partícula tiene un tiempo de vida limitado que se elige aleatoriamente entre dos valores. Estos dos valores pueden ser cambiados. -* La cantidad de partículas contenidas en el emisor ("tanque") puede ser ilimitada o fija a un número. Si el emisor está fijado a un número, el emisor dejará de emitir después de alcanzar el número establecido de partículas. -* El flujo es el número de partículas creadas cada segundo. Puedes ingresar -1 para disparar todas las partículas en un solo disparo. - -También puede cambiar el número máximo de partículas renderizadas por el objeto en la pantalla. Tenga en cuenta que este número cambia la memoria tomada por el emisor. *Si este número es demasiado grande, puede hacer que el juego se bloquee.* - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Ábre los ejemplos Online. - -[![](/gdevelop5/objects/particleemitterexplosions.png)](https://editor.gdevelop.io/?project=example://particles-explosions) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-explosions){ .md-button .md-button--primary } - -[![](/gdevelop5/objects/particleemitervarious.png)](https://editor.gdevelop.io/?project=example://particles-various-effects) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-various-effects){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/objects/shape_painter.md b/docs/es/gdevelop5/objects/shape_painter.md deleted file mode 100644 index 268de48930..0000000000 --- a/docs/es/gdevelop5/objects/shape_painter.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: OBJETO DE FORMA PINTOR (Shape painter object) ---- -# OBJETO DE FORMA PINTOR (Shape painter object) - -!!! note - - **Véalo en acción!** 🎮 - [Prefiero ver los ejemplos de objetos de Shape Painter! Por favor, llévame allí ahora.](#Examples) - -Un objeto pintor de formas nos permite dibujar formas en nuestro juego. Puede ser útil para hacer elementos simples de interfaz de usuario (UI). El pintor de formas incluso se puede utilizar para crear un cuadro de selección. - -### Añadir un objeto de pintor de formas. - -Para agregar un objeto de "pintor de formas", cree un nuevo objeto de la lista del Editor de propiedades a la derecha de la interfaz del editor de escenas. Luego, seleccione y haga clic en el nuevo objeto, seleccione "editar objeto". En la lista que se muestra, haga clic en "Pintor de formas". Es posible que deba desplazarse hacia abajo en la lista para encontrarlo. ![add-shape-painter-object.png](/gdevelop5/objects/add-shape-painter-object.png) - -### Editar propiedades (Edit properties) - -A continuación queremos editar las propiedades del objeto. Nuevamente, desde la lista de Propiedades a la derecha, haga clic en el objeto. Seleccione "Editar objeto" en la lista emergente que se muestra. Se abre una nueva ventana. Muestra las propiedades del Objeto Pintor. ![shape-painter-properties.png](/gdevelop5/objects/shape-painter-properties.png) - -### Cambiar el color y la opacidad - -La ventana de propiedades de Shape Painter nos presenta opciones que nos permiten cambiar el color de contorno del objeto, el color de relleno / color del objeto, la opacidad de cada color / color y el tamaño del contorno de nuestro objeto. - -![change-color-of-shape-painter.png](/gdevelop5/objects/change-color-of-shape-painter.png) - -### Posición relativa del objeto (Relative object position) - -Por defecto, la posición de las formas que dibujamos en la pantalla es relativa al objeto "pintor de formas". ![shape-painter-relative-position-property.png](/gdevelop5/objects/shape-painter-relative-position-property.png) - -En el caso de una posición relativa, cuando dibujamos la forma en nuestra pantalla, esa relativa es la posición 0 en los ejes X e Y. Será la posición del objeto Pintor de formas. Es decir, si queremos dibujar una forma donde la posición de la pantalla sea de 100 píxeles en X y 100 píxeles en Y. La posición será de 100 píxeles desde el objeto pintor de formas donde sea que esté en la pantalla. - -Cuando la casilla no está marcada o sin marcar, la posición 0 en los ejes X e Y estará en la esquina superior izquierda de nuestra escena, independientemente de dónde se encuentre el objeto. - -### Dibujar una forma (Draw a shape) - -Para dibujar una forma, como de costumbre, cree un nuevo objeto utilizando el Editor de objetos. Agregue el objeto "pintor de formas" a nuestra escena. Si ejecutamos la vista previa ahora no veremos nada. El objeto del pintor de formas básicamente solo agrega la funcionalidad para el objeto. Por ahora solo tiene las propiedades / parámetros del "pintor de formas". Para dibujar una forma, necesitamos usar el editor de escenas (eventos). //Si no está familiarizado con los eventos, recomiendo revisar la página de eventos en la wiki. // - -Vayamos al Editor de Eventos de Escena para agregar un evento. Una vez que haya agregado un nuevo evento, haga clic en el texto "agregar acción". - -Encuentra los eventos para el dibujo primitivo. - -![](/gdevelop5/objects/primitivedrawingeventchoices.png) - -Podemos elegir entre 3 tipos diferentes de formas para dibujar. Círculo, línea y rectángulo. Vamos a dibujar un rectángulo en la pantalla. Seleccione el rectángulo debajo de las propiedades del dibujo. ![draw-shape-event.png](/gdevelop5/objects/draw-shape-event.png) - -En el lado derecho, seleccione el objeto de forma de pintor a utilizar. Para la posición superior izquierda ingrese 0 para X e Y. Para la posición inferior derecha ingrese 100 para X e Y. ![draw-shape-event-properties.png](/gdevelop5/objects/draw-shape-event-properties.png) - -Ahora, si iniciamos una vista previa de escena, se dibujará un rectángulo en la escena / pantalla que tiene 100 píxeles de ancho y 100 píxeles de alto. ![rectanlge-shape-painter.png](/gdevelop5/objects/rectanlge-shape-painter.png) - -Si dejamos la posición relativa habilitada, puede observar que nuestro rectángulo está en la misma posición que el objeto pintor de formas aunque el punto de origen sea 0. Ahora, si deshabilitamos esa opción y lanzamos la vista previa nuevamente, verá nuestro objeto. Se dibuja en la esquina superior izquierda de nuestra escena. - -Usando eventos también podemos cambiar cualquier propiedad de una forma sobre la marcha. - -![](/gdevelop5/objects/shapepaintereventsexample.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abra estos ejemplos Online. - -[![](/gdevelop5/objects/shapepainterobject.png)](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/objects/sprite.md b/docs/es/gdevelop5/objects/sprite.md deleted file mode 100644 index 9b3f52f9c2..0000000000 --- a/docs/es/gdevelop5/objects/sprite.md +++ /dev/null @@ -1,118 +0,0 @@ ---- -title: Objetos Sprite (Sprite object) ---- -# Objetos Sprite (Sprite object) - -!!! note - - **Vélo en acción!** 🎮 - [¡Prefiero ver los ejemplos de objetos de Sprite! Por favor, llévame allí ahora.](#Examples) - -Los objetos Sprite son los objetos más utilizados en GDevelop. - -Un objeto sprite nos permite mostrar una imagen o reproducir una serie de imágenes como animación. Un objeto sprite se puede utilizar para muchas cosas en nuestros juegos. Botones, personajes y plataformas son todos considerados objetos. Cualquier cosa que se pueda representar con una imagen puede ser un objeto sprite. - -### Cómo crear un objeto sprite - -Para agregar un sprite a su escena, seleccione la opción "haga clic para agregar un objeto" que se encuentra a la derecha en la parte inferior de la lista de Objetos. - -![](/gdevelop5/objects/clicktoaddanobject.png) - -Se abrirá un nuevo panel que le presenta una lista de opciones. - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -Elige "Sprite" de la lista para crear un nuevo objeto sprite en la escena de tu juego. ![](/gdevelop5/objects/select-sprite.png) - -Una vez que hayamos creado nuestro sprite, haga clic derecho en el objeto sprite en la lista de Objetos. Seleccione "Editar objeto" en el menú emergente. Esta selección abrirá la ventana de propiedades del objeto. Las propiedades son diferentes para cada tipo de objeto. Si el objeto es un sprite, veremos algo como esto. - -![](/gdevelop5/objects/sprite-object-properties.png) - -### Agregar animacion - -A continuación, queremos hacer clic en el botón Agregar animación. ![](/gdevelop5/objects/add-animation-button.png) - -Ahora deberíamos ver de qué se trata un objeto sprite. ![](/gdevelop5/objects/animation-properties.png) - -En esta pantalla, agregamos imágenes a su objeto haciendo clic en el símbolo más. ![](/gdevelop5/objects/add-symbol.png) - -A continuación, debemos buscar en nuestra computadora una imagen y seleccionar una. Una vez hecho esto, la imagen de pesar se mostrará en la ventana. ![](/gdevelop5/objects/add-image.png) - -Si dejamos la imagen como está, nuestro objeto sprite mostrará una sola imagen cuando se agregue a nuestra escena. ¡Pero también podemos agregar imágenes adicionales para crear una animación! ![](/gdevelop5/objects/add-animation.png) - -### Nombra la animación - -También podemos nombrar la animación de arriba para que podamos referirnos a esta animación usando su nombre. ![](/gdevelop5/objects/name-animation.png) - -Si no ingresamos un nombre, necesitamos usar el número de animación para referirnos a esta animación. - -### Velocidad de la animación - -También podemos establecer la velocidad de la animación cambiando el valor con el ícono del reloj. ![](/gdevelop5/objects/set-animation-speed.png) - -El valor que ingresamos aquí es básicamente el tiempo transcurrido entre cada cuadro. 1 es 1 segundo, pero también podemos ingresar valores más pequeños, como 0.5, por ejemplo, para una reproducción más rápida. - -### Repite la animación - -Por defecto, cada animación se reproduce solo una vez, lo que significa que cuando finalice el último fotograma de la animación, se detendrá. En algunos casos, se prefiere repetir o "hacer un bucle" de la animación. Esto se hace configurando la animación en "bucle" haciendo clic en el icono de repetición. ![](/gdevelop5/objects/set-animation-loop.png) Una vez que una animación está configurada para hacer un bucle, se reproducirá continuamente. - -### Añadir animaciones múltiples - -También podemos añadir múltiples animaciones. Para agregar animaciones, haga clic en el botón "agregar animación" de la misma manera que lo hicimos la primera vez. Esta característica nos permite separar fácilmente las diferentes animaciones. ![](/gdevelop5/objects/multiple_animations.png) - -Más tarde, podemos cambiar entre las animaciones usando eventos. - -Finalmente, para guardar las propiedades del sprite, haga clic en el botón "Aplicar" ubicado en la esquina inferior derecha del panel. - -![](/gdevelop5/objects/createspriteapply.png) - -Para agregar el objeto sprite a nuestra escena, simplemente selecciónelo y haga clic en la escena para agregar una instancia del objeto a nuestra escena. - -Tu nuevo sprite ahora está completo, pero aún debes agregarlo a la escena de tu juego. Haga clic en el nuevo sprite en la lista de objetos. A continuación, haga clic en la escena donde desea agregar el sprite. Ahora verás tu sprite agregado a la escena. Puedes agregar múltiples "instancias" de tu sprite a tu pantalla de juego. Simplemente repita el proceso para agregar el primer sprite. - -
- -
- -### Más información sobre animaciones múltiples mientras usas eventos. - -El uso de eventos para cambiar la animación se puede hacer creando múltiples animaciones, como se explicó anteriormente, cada una con sus propias imágenes de entrada personal. Si configura el reloj entre 0 y 1, se asegurará de que permanezca activo cuando use eventos. - -**NOTA: A diferencia de otro software, ⇐ -1 deshabilita las acciones del evento. _No utilice valores negativos._** - -Cuando haya configurado varias animaciones para un objeto, puede usar la pestaña de eventos para '**'establecer la animación por nombre**'. Esto se controla en la sección *Agregar acción* de la condición. Permitirá cualquier condición que use en la sección de *agregar condición* para cambiar a la animación correcta cuando ocurra el evento. - -![](/gdevelop5/objects/eventanimationexample.png) - -NOTA: Como costumbre, asegúrese de agregar un nombre a su animación usando la sección de nombre en las propiedades de los objetos: - -![](/gdevelop5/objects/animationnaming.png) - -Luego ponga ese nombre dentro de la acción del evento con "" a su alrededor: ![](/gdevelop5/objects/eventanimnameexample.png) - -Para más detalles del evento, siga los [tutoriales](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials). - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abra estos ejemplos en línea. - -[![](/gdevelop5/objects/createasprite.png)](https://editor.gdevelop.io/?project=example://change-scale-of-sprites) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://change-scale-of-sprites){ .md-button .md-button--primary } - -[![](/gdevelop5/objects/changespriteanimationexample.png)](https://editor.gdevelop.io/?project=example://change-sprite-animation) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://change-sprite-animation){ .md-button .md-button--primary } - -[![](/gdevelop5/objects/changespritecolorexample.png)](https://editor.gdevelop.io/?project=example://change-sprite-color) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://change-sprite-color){ .md-button .md-button--primary } - -[![](/gdevelop5/objects/changespriteanimationexample2.png)](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/objects/text.md b/docs/es/gdevelop5/objects/text.md deleted file mode 100644 index 08e356e462..0000000000 --- a/docs/es/gdevelop5/objects/text.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: OBJETO DE TEXTO (Text object) ---- -# OBJETO DE TEXTO (Text object) - -!!! note - - **Véalo en acción!** 🎮 - [Prefiero ver los ejemplos de objetos de texto! Por favor, llévame allí ahora.](#Examples) - -Como su nombre lo sugiere, un objeto de texto nos permite mostrar texto en la pantalla / escena. - -### Crear un objeto de texto - -Primero debemos crear un objeto de texto haciendo clic en el botón Agregar objeto en la parte inferior de la lista Objetos. Seleccione "Texto" de la lista que aparece. ![](/gdevelop5/objects/add-text-object.png) - -### Cambiando las propiedades (Change Propierties) - -A continuación desea cambiar las propiedades del objeto de texto. Haga clic con el botón derecho en el objeto Texto recién creado en la lista Objetos a la derecha. Seleccione "Editar objeto" de la lista emergente. El panel abrirá la ventana de propiedades. ![](/gdevelop5/objects/text-properties-window.png) - -### Cambiando Texto (Change Text) - -Aquí puede cambiar el texto que muestra el objeto simplemente haciendo clic en el campo de texto y escribiendo otra cosa. ![](/gdevelop5/objects/change-text.png) - -### Cambiando tamaño (Change size) - -También puede cambiar el tamaño del texto cambiando el valor al lado del campo Tamaño. ![](/gdevelop5/objects/change-size-of-text.png) - -### Cambiando Color (Change color) - -El color del texto mostrado se puede cambiar haciendo clic en el cuadrado de color de la paleta ubicado a la izquierda de la casilla de verificación "Negrita". ![](/gdevelop5/objects/change-color-of-text.png) - -### Cambiar el Esitlo de Fuente (Change the font style) - -El estilo del texto mostrado puede ser cambiado. Puede elegir entre negrita, cursiva o incluso elegir un archivo de fuente personalizado. ![](/gdevelop5/objects/change-style-of-text.png) - -Además, el texto se puede cambiar utilizando eventos. A continuación, el objeto de texto se cambia a 150 px cuando se carga la escena. - -![](/gdevelop5/objects/changetextsizeviaevents.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abra ejemplos Online. - -Manipular un objeto de texto - -[![](/gdevelop5/objects/changetextexample1.png)](https://editor.gdevelop.io/?project=example://manipulate-text-object) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://manipulate-text-object){ .md-button .md-button--primary } - -Fade texto dentro y fuera. [![](/gdevelop5/objects/textfadeoutinexample.png)](https://editor.gdevelop.io/?project=example://text-fade-in-out) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-fade-in-out){ .md-button .md-button--primary } - -Escriba en efecto de texto. - -[![](/gdevelop5/objects/type-ontexteffectexample.png)](https://editor.gdevelop.io/?project=example://type-on-text-effect) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://type-on-text-effect){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/objects/text_entry.md b/docs/es/gdevelop5/objects/text_entry.md deleted file mode 100644 index e8ef4c4150..0000000000 --- a/docs/es/gdevelop5/objects/text_entry.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: OBJETO DE ENTRADA DE TEXTO (Text entry object) ---- -# OBJETO DE ENTRADA DE TEXTO (Text entry object) - -!!! note - - **Vélao en acción!** 🎮 - [¡Prefiero ver los ejemplos de objetos de Sprite! Por favor, llévame allí ahora!.](#Examples) - -El objeto de entrada de texto captura la entrada del usuario y la almacena en la memoria. Puede utilizar este objeto para simular campos de entrada de texto. Por ejemplo, puede usar el objeto de entrada de texto para proporcionar una forma en que el jugador de su juego pueda ingresar su nombre o cualquier otra información. - -### Añadir objeto de entrada de texto - -Después de crear un nuevo objeto de la lista del Editor de objetos, seleccione "Entrada de texto" en la lista de opciones mostrada ![add-text-entry-object.png](/gdevelop5/objects/add-text-entry-object.png) - -Renombra el objeto de entrada de texto a lo que quieras. Agrega el objeto de entrada de texto a la escena. - -Ahora, si ejecuta una vista previa de la escena, todas las teclas que presione serán capturadas por el objeto y almacenadas en la memoria. Para leer el valor de la memoria, necesita usar una expresión como esta: TextEntry.String () (vea un ejemplo a continuación). - -### Mostrar valor usando un objeto de texto - -Primero, agrega un objeto de texto a la escena. Luego, agregue un evento para modificar el contenido del objeto de Texto: ![text-entry-object-display-value.png](/gdevelop5/objects/text-entry-object-display-value.png) - -Para el último parámetro, que es el nuevo contenido para el texto, use la expresión mencionada anteriormente: ![](/gdevelop5/objects/text-text-entry.png) - -*Tenga en cuenta que la entrada debe ser el nombre del objeto de entrada de texto. Debe reemplazarlo con el nombre de su entrada de texto.* - -Preferiría ver el Sprite oNow si ejecutas una vista previa de la escena. Comience a escribir, verá el objeto de texto que muestra lo que escribe. - -Usando eventos, es posible habilitar o deshabilitar el objeto "Entrada de texto". Los eventos también le permiten controlar cuándo capturar la entrada de texto y cuándo no capturar los ejemplos de entrada de texto. Por favor, llévame allí ahora. - -![](/gdevelop5/objects/textentryobjectevents.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abre estos ejemplos online - -![](/gdevelop5/objects/textexample.png) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-entry-object){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/objects/tiled_sprite.md b/docs/es/gdevelop5/objects/tiled_sprite.md deleted file mode 100644 index d76f034fbd..0000000000 --- a/docs/es/gdevelop5/objects/tiled_sprite.md +++ /dev/null @@ -1,60 +0,0 @@ ---- -title: OBJETO SPRITE DE AZULEJOS (Tiled Sprite object) ---- -# OBJETO SPRITE DE AZULEJOS (Tiled Sprite object) - -!!! note - - **Véalo en acción!** 🎮 - [¡Prefiero ver los ejemplos de objetos de Tiled Sprite! Por favor, llévame allí ahora.](#Examples) - -Un objeto sprite de mosaico nos permite mostrar una imagen en un conjunto de mosaicos. Puede aumentar y disminuir el tamaño del conjunto de azulejos al escalar el objeto en la escena. - -Un objeto sprite de mosaico puede usarse para crear plataformas en un juego de plataformas. También se puede utilizar como un grupo de las mismas imágenes. En este caso, no es necesario tratar con múltiples objetos de sprite. ![](/gdevelop5/objects/tiled-sprite-object.png) - -### Añadir un objeto sprite en mosaico - -Para agregar un objeto de Sprite en mosaico a una escena, cree un nuevo objeto de la lista de objetos. Seleccione la opción "Sprite en mosaico" en el panel que se abre. - -![add-tiled-sprite-object.png](/gdevelop5/objects/add-tiled-sprite-object.png) - -### Abrir propiedades de objeto - -A continuación, nuevamente desde la lista de Objetos a su derecha, abra las propiedades del objeto haciendo clic derecho en el objeto. Seleccione "Editar objeto" en la lista emergente que aparece. - -![tiled-sprite-properties.png](/gdevelop5/objects/tiled-sprite-properties.png) - -### Añadir una imagen - -Para agregar una imagen al objeto, haga clic en el campo "Seleccionar una imagen". Se abrirá un explorador de archivos local en su computadora. Elige una imagen de tu elección. ![add-image-to-tiled-sprite.png](/gdevelop5/objects/add-image-to-tiled-sprite.png) - -La imagen seleccionada se mostrará en la ventana de vista previa a la derecha. ![tiled-sprite-image-preview.png](/gdevelop5/objects/tiled-sprite-image-preview.png) - -### Cambiar tamaño predeterminado - -Podemos cambiar el tamaño predeterminado del objeto sprite en mosaico cambiando el ancho predeterminado y el valor de altura predeterminado en la parte inferior. ![](/gdevelop5/objects/tiled-sprite-default-size.png) - -El tamaño predeterminado afecta la cantidad de imagen que será visible en el objeto. Por ejemplo, así es como se ve mi imagen con un tamaño de objeto de 32 × 32. ![](/gdevelop5/objects/tiled-sprite-3232.png) - -Como puede ver, la imagen de arriba no se escala con el objeto sino que hace que la imagen solo sea parcialmente visible. - -Si configuro el tamaño del objeto en 100 × 100 (como se ve a continuación), el tamaño del objeto es más grande que la imagen real, por lo que continúa dibujando la imagen nuevamente para llenar el espacio vacío. ![](/gdevelop5/objects/tiled-sprite-100100.png) - -### Escalar el objeto - -Puede obtener resultados instantáneos al escalar el objeto en el editor de escenas para crear el aspecto / tamaño que necesita. ![](/gdevelop5/objects/scale-tiled-sprite.png) - -El editor de escenas (eventos) también se puede usar para cambiar el tamaño de un sprite en mosaico. Usar el editor de Eventos hace que el juego sea más fluido e interesante. - -![](/gdevelop5/objects/scaleasprite.png) - -## Ejemplos - -!!! note - - **Véalo en acción!** 🎮 - Abre los ejemplos Online. - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } diff --git a/docs/es/gdevelop5/publishing/android-app-installed.png b/docs/es/gdevelop5/publishing/android-app-installed.png deleted file mode 100644 index 5038ffd0e7..0000000000 Binary files a/docs/es/gdevelop5/publishing/android-app-installed.png and /dev/null differ diff --git a/docs/es/gdevelop5/publishing/android_and_ios/index.md b/docs/es/gdevelop5/publishing/android_and_ios/index.md deleted file mode 100644 index 1d6a2e3c73..0000000000 --- a/docs/es/gdevelop5/publishing/android_and_ios/index.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Publica tu juego en Android o IOS ---- -# Publica tu juego en Android o IOS - -GDevelop te permite publicar tus juegos en una gran variedad de formatos incluyendo Android e IOS con los servicios de construcción online o [manualmente](/gdevelop5/publishing/android_and_ios_with_cordova). Para exportar el juego, haga click/seleccione "Archivo" en el menú ubicado en la parte superior de la interfaz de GDevelop. Seleccione la opción de exportación que desee. En este caso, vamos a elegir **Android e iOS** Desde el panel de opciones que aparece - -![](/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png) - -## ¡Asegúrate de que tu juego está listo para exportar! - -Es importante verificar que tu juego está listo para ser exportado a Android o IOS: - - * En las propiedades del juego están accesibles desde el [Administrador de proyector](/gdevelop5/interface)), asegúrese de introducir un _nombre de paquete válido_. Un nombre de paquete es un identificador como este: `com.tunombre.nombredeljuego`. Es como el nombre de un sitio web pero al revés. Puedes elegir cualquier nombre simpre que: - * No está siendo usado por otra aplicación o juego en iOS o Android. - * Está escrito solo con letras, números y puntos. Solo tiene puesto un punto entre letras (pro ejemplo, `com..mijuego` o `..mijuego` no son válidos). _Limita este identificador a 2 o 3 palabras como máximo._ - * Comprueba que hayas añadido los iconos requeridos. - - -## Abra la exportación - -En el menú "archivo" elija exportar. Posteriormente elija **Android (y iOS próximamente)**. - -![](/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png) - - - - -### Crear una cuenta si todavía no tienes - -Para usar el empaquetado para android necesitas una [cuenta de GDevelop](/gdevelop5/interface/profile). Si no tienes una, haga click en "CREAR MI CUENTA", Introduzca su email y elija una contraseña. - -Elije si deseas exportar un **APK** o un **Android App Bundle**: - -- Un **APK** Te permite enviar el archivo generado a un dispositivo Android e instalarlo. Es ideal para de forma rápida **probar tu juego en un dispositivo Android**. -- Un **Android App Bundle** (también abreviado "AAB") es el formato requerido para [publicar en Google Play](/gdevelop5/publishing/android_and_ios/play-store). Si creas creas un juego en Google Play Developer Console (Consola de desarrollo de Google Play Store o página del desarrollador de Google Play), necesitarás subir un archivo AAB. - -Una vez estés listo, haga click **EMPAQUE PARA ANDROID**: - -![](/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png) - -Ahora espere a que la exportción se termine de realizar. -Hay algunos pasos mientras que el juego es exportado, comprimido, subido al servicio de construcción y contruido. - -Al final, aparecerá un botón **DESCARGAR** para obtener el archivo APK o [AAB para publicar en google play](/gdevelop5/publishing/android_and_ios/play-store). - - -## Instalación en tu dispositivo Android (APK) - -!!! note - - Para probar el juego en tu teléfono deberás de haber elegido APK. Si desea distribuirlo en Google Play, [lea esta página](/gdevelop5/publishing/android_and_ios/play-store). - -Conecte su teléfono/tablet y transfiera el archivo APK file en alguna carpeta o sitio del dispositivo. De forma alternativa, puedes pasar el archivo APK mediante alguna plataforma de almacenamiento en la nube, servicio de transferencia o email. Algunos ejemplos: ([Dropbox](https://www.dropbox.com/), [Google Drive](http://drive.google.com/), [OneDrive](https://onedrive.live.com/about/en-in/)...) posteriormente tras transferirlo a alguno de estos servicios necesitará descargar el archivo e instalarlo. - -Antes de intalar el APK, vaya a Ajustes > Seguridad y active *Orígenes/fuentes desconocidos/as*. Esto va a permitirte [instalar el archivo apk](https://developer.android.com/studio/publish#publishing-unknown) aunque no estés registrado en Google Play Store. - -Finalmente, abra un *Administrador de archivos*, vaya a la carpeta que contiene su APK y haga click para abrirlo e instalarlo: - -![](/gdevelop5/publishing/android-file-manager.png) - -La aplicación/juego ya está instalada. Haga click en *Abrir* para ejecutarla: - -![](/es/gdevelop5/publishing/android-app-installed.png) - - - -### Juega al juego - -¡El juego está ahora instalado correctamente en tu dispositivo! Ábrelo como cualquier otro juego o app. - -Tú has creado un *juego para Android* directamente desde GDevelop. Puedes actualizarlo fácilmente: exporte el juego de nuevo, transfiera el archivo APK de nuevo a su dispositivo e instálelo. - - -## Subscríbete para obtener más exportaciones diarias. - -Como usuario registrado, usted puede empaquetar dos veces su juego diariamente. - -Si estás trabajando mucho en tu juego, seguramente querrá exportar más veces el juego. Puedes exportar hasta 10 veces con una subscripción Indie y hasta 70 con una subscripción Pro. - -Obteniendo una subscripción ayuda a los autores de GDevelop a continuar trabajando (GDevelop es un software open-source o de código libre/abierto) - - -## Publicando tu juego en tiendas o Google Play Store ("Android App Bundles") - -Una vez exportado tu juego y probado, deberás exportarlo como **Android App Bundle** Para publicarlo en Google Play Store. Lea [esta página para obtener más información](/gdevelop5/publishing/android_and_ios/play-store). - -También puedes publicarlo en otras tiendas [Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) (usando un **APK** por ahora en la mayoría de los casos)(Posteriormente puede que algunas plataformas también soporten archivos *ABB*). \ No newline at end of file diff --git a/docs/es/gdevelop5/publishing/android_and_ios/play-store.md b/docs/es/gdevelop5/publishing/android_and_ios/play-store.md deleted file mode 100644 index f36c16b961..0000000000 --- a/docs/es/gdevelop5/publishing/android_and_ios/play-store.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Publica tu juego en Play Store ---- -# Publica tu juego en Play Store - -Después de crear tu juego con Android (ya sea usando [compilación con un clic para Android](/gdevelop5/publishing/android_and_ios) o [proceso manual con Cordova para usuarios avanzados](/gdevelop5/ publishing/ android_and_ios_with_cordova)), puedes publicar en Google Play Store. - -Para hacer esto, necesita tener una cuenta en Google Play Store. Google solicita una tarifa de registro única de $ 25. - -!!! warning - - ¿Has publicado un juego en el pasado cargando un APK? Debes realizar [los siguientes pasos para actualizar tu juego de un APK a un Android App Bundle](/gdevelop5/ publishing/ android_and_ios/play-store/upgrade-from-apk-to-aab) para continuar publicando. [Lea esta página](/gdevelop5/publishing/android_and_ios/play-store/upgrade-from-apk-to-aab), ya que es obligatorio hacerlo desde agosto de 2021. - -## Crea tu cuenta de desarrollador de Google Play - -Para crear su cuenta, vaya a la [Google Player Console](https://play.google.com/console/about/). - -## Empaquete su juego - -Paquete [su juego como se explica aquí](/gdevelop5/ publishing/ android_and_ios) - eligiendo **Android App Bundle**. - -Una vez finalizado el empaquetado, tendrá un **botón Descargar** para obtener el archivo AAB que se puede publicar en Google Play. -Descárguelo y guárdelo en algún lugar de su computadora. - -## Crea la aplicación y completa los detalles de la aplicación - -Conéctese a la Consola para desarrolladores de Play Store (https://play.google.com/apps/publish/). En las páginas que enumeran sus aplicaciones, haga clic en **Crear aplicación**: - -![](/gdevelop5/publishing/android_and_ios/play-store/pegado/20210721-144512.png) - -Ingrese un título y elija un idioma. La aplicación se crea en Play Store y ahora puede completar la información que se mostrará en Play Store: - -![](/gdevelop5/publishing/android_and_ios/play-store/pegado/20210721-144627.png) - -Haga clic en **Crear aplicación** para continuar. - -## Crea una "versión" y sube el paquete de aplicaciones de Android - -En el menú de la izquierda, busque la sección ** Lanzamiento **. Elige ** Producción **, ** Prueba abierta **, **Prueba cerrada** o **Prueba interna** según cómo quieras distribuir tu juego primero. Le recomendamos que comience con ** Pruebas internas **. Luego, puedes hacer un lanzamiento de "Producción" una vez que estés satisfecho con el juego. - -Haga clic en ** Create Release **: - -![](/gdevelop5/publishing/ android_and_ios/play-store/pasted/ 20210721-145039.png) - -Se le solicita *Firma de aplicaciones de Google Play*, haga clic en **Continuar**. - -![](/ gdevelop5/publishing/android_and_ios/play-store/pasted/20210721-145303.png) - -En **App Bundles**, elija **Upload** y seleccione su Android App Bundle que fue empaquetado por GDevelop. - -El AAB se carga en Play Store. Espera un poco. -Una vez que haya terminado, debería ver un mensaje que indica que la carga se completó correctamente. - -Si la carga es un éxito, puede ver su archivo AAB enumerado a continuación: -![](/gdevelop5/publishing/android_and_ios/play-store/pasted/ 20210721-145535.png) - -En **¿Qué hay de nuevo en esta versión?**, ingrese las notas de la versión que deben mostrarse en Play Store. Para terminar, haga clic en **Guardar**. - -### ¿Algo salió mal? - -Si hay un error que le indica que la carga falló, lea el mensaje de error para saber más sobre lo que salió mal. Por lo general, significa que: - -* El nombre del paquete no es correcto. En GDevelop, usando [el adminiastrador de proyectos](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager), ingrese un nombre de paquete nuevo y único -* O usó el mismo nombre de paquete que una aplicación existente. Elige otro en el [administrador de proyectos](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager) y vuelva a empaquetar su juego para crear un nuevo AAB. - -!!! note - - Si solía publicar su aplicación con un APK, debe actualizar a Android App Bundles. [Lea esta página para aprender cómo hacer esto](/gdevelop5/publishing/android_and_ios/play-store/upgrade-from-apk-to-aab). - -## Termina de ingresar todos los detalles sobre el juego - -Antes de hacer público su juego, debe terminar de ingresar todos los detalles sobre su juego, incluido el precio y encontrar una calificación para el contenido. Consulte la sección "Crecer" en el menú y asegúrese de completar todos los detalles requeridos: - -![](/gdevelop5/publishing/android_and_ios/play-store/pegado/20210721-145735.png) - -## ¡Publica el juego! - -Una vez que haya completado todo, ingresado una descripción agradable, configurado hermosas capturas de pantalla y cargado el paquete de aplicaciones de Android de su juego, puede volver a la sección **Lanzamiento**. Haga clic en **Producción** y cree una versión para ello. - - -## ¡Felicidades! El juego está en Play Store. - -**¡Felicidades!** Lo lograste y publicaste tu juego. -Algunos usuarios pueden tener que esperar unas horas antes de ver el juego en Play Store. - -Recuerda contarlo en las redes sociales, en Discord y en el foro para que la comunidad lo sepa. \ No newline at end of file diff --git a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png b/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png deleted file mode 100644 index 1b66a74307..0000000000 Binary files a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.24.43.png and /dev/null differ diff --git a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png b/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png deleted file mode 100644 index 3ca3125233..0000000000 Binary files a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.25.39.png and /dev/null differ diff --git a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png b/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png deleted file mode 100644 index 22fae75870..0000000000 Binary files a/docs/es/gdevelop5/publishing/captura_de_pantalla_2021-08-04_a_las_16.27.55.png and /dev/null differ diff --git a/docs/es/gdevelop5/publishing/index.md b/docs/es/gdevelop5/publishing/index.md deleted file mode 100644 index 2eda2bf27f..0000000000 --- a/docs/es/gdevelop5/publishing/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: Publicacion de juegos ---- -# Publicacion de juegos - -¡GDevelop te permite publicar tus juegos en cualquier plataforma moderna! Sin embargo, el juego necesita ser exportado primero. - -Para exportar el juego, haga clic en Archivo en la barra de menú sobre la Interfaz de GDevelop. Seleccione la opción Exportar de la lista emergente que aparece. - -![](/gdevelop5/file-export-menu.png) - -A continuación se le presentarán múltiples opciones para elegir: - -![](/gdevelop5/export-options.png) - - * **[Android (y iOS próximamente)](/gdevelop5/publishing/android_and_ios):** esto prepara su juego para Android (y la compatibilidad con iOS estará disponible próximamente). Lo construye en línea, utilizando los servicios en línea de GDevelop. Luego te envía un enlace para que puedas instalarlo en Android y [publícalo en Play Store](/gdevelop5/publishing/android_and_ios/play-store) (o App Store más tarde para iOS). - - * **[Facebook Instant Games (Messenger)](/gdevelop5/publishing/publishing-to-facebook-instant-games):** esto prepara su juego para que pueda cargarse en Facebook Instant Games y jugarse en Messenger, compartirlo con sus amigos y luego publicarlo en todo el mundo. - - * **[Web (subir en línea)](/gdevelop5/publishing/web)**: esta opción cargará tu juego a GDevelop hosting, de forma gratuita. A continuación, puede compartirlo con cualquier persona con un clic de un botón. - - * **[Windows, macOS & Linux](/gdevelop5/publishing/windows-macos-linux)**: esta opción agrupa tu juego como una aplicación de Windows, macOS o Linux, compílalo en línea, utilizando los servicios en línea de GDevelop, y luego te envía un enlace para que puedas distribuir el juego. - -También hay exportaciones para usuarios avanzados: - - * **[Exportar a una carpeta local](/gdevelop5/publishing/html5_game_in_a_local_folder):** esta opción le permite exportar su juego a una carpeta y cargarlo manualmente a cualquier host que desee o envolver el juego en una aplicación de escritorio o móvil manualmente usando cualquier herramienta que prefiera, como Electron. - - * **[iOS & android (manual)](/gdevelop5/publishing/android_and_ios_with_cordova):** esta opción va a exportar tu juego listo para ser utilizado como un proyecto de Cordova. Luego puedes usar las herramientas de la línea de comandos de Cordova para construir tu juego para Android e iOS. - - * **[Windows, macOS and Linux (manual)](/gdevelop5/publishing/windows-macos-linux-with-electron):** Esta opción va a exportar tu juego listo para ser utilizado como un proyecto de Electron. Luego puedes usar las herramientas de la línea de comandos para construir tu juego para Windows, macOS o Linux. diff --git a/docs/es/gdevelop5/publishing/web.md b/docs/es/gdevelop5/publishing/web.md deleted file mode 100644 index b9bbb71aaf..0000000000 --- a/docs/es/gdevelop5/publishing/web.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Publicando tu juego en la web (subir en línea) ---- -# Publicando tu juego en la web (subir en línea) - -Usando los servidores de hosting de GDevelop, puedes exportar tu juego para su publicación en la web. . Los servidores de hosting son gratuitos. ¡Tu juego estará disponible por unos días! - -Para cargar en los servidores, en el menú Archivo, seleccione Exportar. Luego elija **Web (subir en línea)**, y luego simplemente haga clic en **Exportar y cargar mi juego**. - -![](/gdevelop5/publishing/export-online.png) - -El juego se alojará en servidores de hosting GDevelop. Estos servidores están respaldados por los servicios robustos de Amazon. Los juegos que subas están disponibles para compartirlos durante unos días. No se cobra por este servicio. - -Tenga en cuenta que el enlace, por defecto, es **privado**. No se comparte en ningún lugar. Puedes compartir el enlace a tu juego de acuerdo a tus necesidades. Compartir con algunas personas o una audiencia más grande. - -## Exportar a otras plataformas (iOS, Android, Windows, macOS, Linux) - -¡Consulta [otras opciones de exportación](/gdevelop5/ publishing) para aprender a publicar tu juego en otras plataformas! diff --git a/docs/es/gdevelop5/publishing/windows-macos-linux.md b/docs/es/gdevelop5/publishing/windows-macos-linux.md deleted file mode 100644 index 5179dfc5e2..0000000000 --- a/docs/es/gdevelop5/publishing/windows-macos-linux.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: Publica tu juego en Windows, macOS y Linux ---- -# Publica tu juego en Windows, macOS y Linux - -¡GDevelop puede publicar juegos para Windows, macOS e incluso Linux! - -Para exportar un juego, haga clic / seleccione "Archivo" en el menú que se encuentra en la parte superior de la interfaz de GDevelop. Elija la opción "Exportar" de la lista desplegable. - -![](/gdevelop5/publishing/filemenuexport.png) - -## ¡Asegúrate de que tu juego esté listo para empacar! - -Es importante verificar que su juego esté listo para ser exportado como un ejecutable: - -- En las propiedades del juego (accesible desde [Project Manager](/gdevelop5/ interface)), asegúrate de ingresar un _package name_ válido. Un nombre de paquete es un identificador como este: `com.yourname.gamename`. Es como la dirección de un sitio web, pero invertida. Puede elegir cualquier nombre de paquete siempre que: - -  - - * No es usado por otro juego o aplicación en iOS o Android. - * Está escrito solo con letras, números y puntos. Solo ponga un punto entre las palabras (por ejemplo, "com..mygame" o "..mygame" no son válidos), y limite este identificador a un máximo de 2-5 palabras. - * En las propiedades del juego, ingresa un número de versión válido (como 1.0.0, 1.0.1 ...) - * Comprueba que has configurado los iconos. - -## Iniciar exportación - -En el menú Archivo, elija Exportar. Elija entonces **Windows, macOS y Linux**. - -### Crea una cuenta, si no tienes una - -Para usar el paquete, necesita un [GDevelop account](/gdevelop5/ interface/ profile). Si no tiene una, haga clic en "Crear mi cuenta", ingrese su correo electrónico y elija una contraseña. - -### Elige las plataformas y lanza la exportación. - -Elige las plataformas para las que quieres exportar el juego. Para Windows, puede elegir si desea un solo archivo ejecutable o un archivo zip: ![](/gdevelop5/publishing/gdevelop-export-choose-platform.png) - -Una vez que esté listo, haga clic en **Exportar**. - -Ahora, espera a que el juego sea construido. Puede tardar unos minutos dependiendo de las plataformas que haya elegido. Hay algunos pasos, durante los cuales el juego se exporta, se comprime, se carga en el servicio de compilación en línea y se construye. - -Cuando haya terminado, verá un botón de descarga para cada plataforma que se seleccionó para su juego. Use los botones de descarga para recibir los archivos que puede distribuir para jugar en su juego. - -### Jugar el juego - -* En Windows, haga doble clic en el archivo ejecutable con el nombre de su juego para iniciarlo. -* En macOS, extraiga el archivo y haga doble clic en la aplicación para iniciarla. -* En Linux, [install the AppImage](https://appimage.org/) para ejecutar el juego - -!!! note - - Al iniciar el juego en Windows y macOS, puede recibir un aviso sobre la seguridad. Elige ejecutar el juego de todos modos. En macOS, es posible que deba abrir la pestaña * Seguridad y privacidad * en * Preferencias del sistema *. diff --git a/docs/es/gdevelop5/tutorials/asteroids/index.md b/docs/es/gdevelop5/tutorials/asteroids/index.md deleted file mode 100644 index 6252715a5f..0000000000 --- a/docs/es/gdevelop5/tutorials/asteroids/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: start ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Asteroides - -## Series - -1\. [Getting Started](/gdevelop5/tutorials/asteroids/start) 2. [Ship and Movement Controls](/gdevelop5/tutorials/Asteroids/Ship And Movement Controls) 3. [Firing Mechanic](/gdevelop5/tutorials/Asteroids/Firing Bullet) 4. [Setting Scene](/gdevelop5/tutorials/Asteroids/Setting Scene) 5. [Splitting Asteroids](/gdevelop5/tutorials/Asteroids/Splitting Asteroids) 6. [Screen Wrap](/gdevelop5/tutorials/Asteroids/Screen Wrap) 7. [Fail State](/gdevelop5/tutorials/Asteroids/Fail State) 8. [End Result](/gdevelop5/tutorials/end_result) \## Descargar material gráfico (llamado también arte) - -El material gráfico (arte) utilizado en este ejemplo es de . - -Descargue el arte y familiarícese con lo que contiene el paquete. - -## Open a blank game project in GDevelop - -When you open the engine, you'll see this screen. Click on the button that has been highlighted in red. - -![](/gdevelop5/tutorials/asteroids_example_image1.png) - -## Name project - -Give your project a name, and click on the create project button. - -![20220121-152746.png](/gdevelop5/tutorials/asteroids/pasted/20220121-152746.png) - -## Add a scene - -Add a scene by pressing on the highlighted button in the image below. Right click on that scene to rename it. Then left click on the scene to open it. - -![](/gdevelop5/tutorials/asteroids_example_image2.png) - -## Set background color - -Right click on the background of the game scene, and click on "Scene properties". From there, click on the color selector and drag to select black. - -![](/gdevelop5/tutorials/asteroids_example_image3.png) - -## Check game resolution - -Open the project manager, and go to the game settings. - -Select properties, and make sure your game's resolution is 800 by 600 - or the preferred "Golden Ration" of 800x500 - -![](/gdevelop5/tutorials/asteroids_gif_recording_1_check_game_resolution.gif) - -## Next step - -[Ship and Movement Controls](/gdevelop5/tutorials/Asteroids/Ship And Movement Controls) diff --git a/docs/es/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/es/gdevelop5/tutorials/basic-game-making-concepts.md deleted file mode 100644 index 4007cce3a8..0000000000 --- a/docs/es/gdevelop5/tutorials/basic-game-making-concepts.md +++ /dev/null @@ -1,171 +0,0 @@ ---- -title: Conceptos básicos de creación de juegos - lo que necesitas saber para comenzar con GDevelop ---- -# Conceptos básicos de creación de juegos: lo que necesitas saber para comenzar con GDevelop - -Los conceptos básicos de GDevelop son simples. Lee la siguiente información para comenzar con el software. Si no tienes GDevelop, descarga la última versión aquí: - -## Mostrar cosas en la pantalla: los Objetos - -Todo lo que se muestra en la pantalla se llama **"Objeto"**. Se pueden usar diferentes tipos de objetos para mostrar diferentes elementos del juego en la pantalla. Por ejemplo, la mayoría de los gráficos del juego son objetos "Sprite", los textos se pueden mostrar con objetos "Texto" y se pueden crear efectos especiales como un incendio o chispas con "Emisores de partículas". - -![](https://wiki.gdevelop.io/_media/gdevelop5/tutorials/gifs_for_wiki_showing_objects.gif) - -La página wiki asociada con los objetos se puede encontrar [aquí](/es/gdevelop5/objects/). - -## Coordenadas - -Los objetos en la pantalla/escena de GDevelop tienen **coordenadas X e Y**. Estas coordenadas corresponden a la posición horizontal (eje X) y la posición vertical (eje Y) en el plano cartesiano. - -La coordenada X disminuye a medida que avanza hacia la izquierda y aumenta a medida que avanza hacia la derecha. La coordenada Y aumenta a medida que desciendes y disminuye a medida que subes. - -![pres_coord1.png](/wiki/pres_coord1.png) - -Para mover o rotar objetos, debes especificar el ángulo deseado en grados. La siguiente ilustración muestra cómo GDevelop entiende el ángulo de rotación: - -![pres_coord2.png](/wiki/pres_coord2.png) - -La siguiente imágen muestra estos dos conceptos utilizados dentro del motor, modificando la posición X e Y y la rotación el objeto sprite de la nave. Ten en cuenta que la esquina superior izquierda de la pantalla predeterminada del juego, la posición de la pantalla cuando no se ha aplicado ningún movimiento de la cámara, es donde X=0 e Y=0. - -![](https://wiki.gdevelop.io/_media/gdevelop5/gifs_for_wiki_showing_coordinates_and_rotation.gif) - -Tenga en cuenta que los ángulos también pueden ser negativos. Por ejemplo, -90 grados es igual a 270 grados. - -Si utilizas funciones trigonométricas como el **seno** o el **coseno**, deberás expresar los ángulos en **radianes**. (1 radián = 180/pi grados y 1 grado = pi/180 radianes. Pi es el número que es aproximadamente igual a 3.14159). - -## Eventos - -Los eventos, que usas para crear las reglas de tu juego, se componen de condiciones y acciones. Las condiciones pueden considerarse como "si" y las acciones pueden considerarse como "entonces", con el propósito de hacer que las cosas sucedan en tu juego. "Si" las condiciones son verdaderas/cumplidas, "entonces" las acciones sucederán. La mayoría de las condiciones y acciones se refieren a objetos: - -- Las condiciones ejecutan una **prueba** en los objetos. -- Unordered List ItemLas acciones **manipulan** el objeto. Pueden cambiar la posición del objeto, la apariencia, etc. - -Un evento, sin ninguna condición, es tratado como si sus condiciones fueran verdaderas. Por lo tanto, en la imágen a continuación, el objeto de la nave girará a la velocidad dada a la acción de rotación. - -![](https://wiki.gdevelop.io/_media/gdevelop5/tutorials/gifs_for_wiki_showing_conditionless_event.gif) - -Si a este evento se le da la condición "El cursor/toque está encendido" y seleccionamos el objeto de barco para este evento, entonces la acción solo ocurrirá "si" el cursor del mouse está en el objeto de barco. - -![](https://wiki.gdevelop.io/_media/gdevelop5/tutorials/gifs_for_wiki_showing_an_event_with_a_condition.gif) - -La página wiki asociada con eventos se puede encontrar [aquí](/es/gdevelop5/events/). - -## Cómo seleccionan los objetos estos eventos Una acción, sin condición, se refiere a todos los objetos. Si utiliza un objeto por primera vez en un evento, GDevelop probará o modificará todos los objetos con este nombre en la escena. Si vuelve a utilizar el objeto en el mismo evento, GDevelop probará o modificará sólo los objetos que hayan sido seleccionados por las condiciones anteriores. - -Por ejemplo, este evento no tiene ninguna condición. Eliminará todos los objetos llamados "Barco": - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220123-200759.png) - -El siguiente evento tiene una condición. Eliminará solo los objetos "Enviar" con una posición X que sea menor que la del cursor del mouse: - -![](/gdevelop5/tutorials/gifs_for_wiki_deleting_ships_by_mouse_position.gif) - -!!! note - - **Velo en acción!** 🎮Abre este ejemplo en línea: - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-171850.png) - -La página wiki asociada con la selección de objetos se puede encontrar [aquí](/gdevelop5/events/object-picking). - -## Eventos: el orden es importante**El orden de los [eventos](/es/gdevelop5/events/) sí importa!** - -Los eventos en la parte superior se ejecutan primero. Los eventos se ejecutan cada vez que se muestra el juego. Esta pantalla se denomina marco. Se ejecuta unas 60 veces por segundo. Los siguientes ejemplos **no** son equivalentes: - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220123-203732.png) ![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220123-203822.png) - -- En la primera imagen de arriba, el primer evento crea un objeto "Ship" en las coordenadas X: 100, Y: 200 (100;200) en la capa base. A continuación, el siguiente evento elimina ese barco creado inmediatamente. Este par de eventos **no mostrará** un barco en la pantalla ya que elimina justo después de ser creado. -- En la segunda imagen de arriba, el primer evento elimina todos los objetos "Ship" de la escena/pantalla. Luego crea un "Barco" en las coordenadas de escena/pantalla X: 100, Y: 200 (100;200) en la capa base. Este par de eventos **mostrará** un barco en la pantalla (antes de ser eliminado en el siguiente fotograma. Después, será recreado inmediatamente). - -## Comportamientos: reglas y lógica predefinidas para objetos - -Los **comportamientos** mejoran un objeto con cierta *lógica predefinida*. Pueden ser razonablemente sencillos, automatizando tareas simples o tareas mucho más avanzadas. Por ejemplo: - -* Se puede usar un comportamiento para eliminar *automáticamente* un objeto del juego cuando sale de la pantalla (lo que limita el uso de memoria del juego). * Se puede utilizar otro comportamiento para *mover objetos en la pantalla con las flechas del teclado*. * Se puede usar otro comportamiento para permitir que el objeto *sea arrastrado por la pantalla* con el ratón o tocando el objeto. * El comportamiento de la física es un ejemplo de un comportamiento avanzado que hace que sus objetos se muevan de una manera realista, siguiendo las *leyes de la física*. - -Los **comportamientos** a menudo vienen con sus propias variables que se pueden cambiar para personalizar la tarea que realizan, pero también se pueden manipular utilizando eventos que son específicos de ese comportamiento. - -![](/gdevelop5/tutorials/gifs_for_wiki_showing_behaviors.gif) - -La página wiki asociada con comportamientos se puede encontrar [aquí](/es/gdevelop5/behaviors/). - -!!! note - - Puedes crear comportamientos personalizados para tus objetos. Te recomendamos esto a medida que tu juego crezca. Te permite poner lógica sobre lo que están haciendo tus objetos en los comportamientos personalizados, en lugar de hinchar la hoja de eventos de la escena. [Lee más en este artículo](/gdevelop5/tutorials/how-to-make-behavior). - -##Objetos en movimiento: uso de las fuerzas incorporadas - -Se puede lograr poner en movimiento objetos con **fuerzas**. Las fuerzas se utilizan para "empujar" objetos. - -Puedes especificar: - -- Las coordenadas de una fuerza en los ejes X e Y, en píxeles. -- Sus coordenadas polares (el ángulo de fuerza, en grados, y la longitud, en píxeles). -- Si la fuerza es instantánea (solo empujará "un poco" el objeto) o continua (seguirá empujando el objeto hasta que se elimine). - -### Ejemplo Supongamos que deseas mover un objeto a la derecha o a la izquierda de la pantalla. - -Puedes agregar una fuerza utilizando coordenadas X/Y, especificando 50 para la coordenada X y, por ejemplo, 0 píxeles para la coordenada Y. También puedes usar coordenadas polares y agregar una fuerza con un ángulo de 180° y una longitud de 50 píxeles. - -En el siguiente ejemplo, la posición X de la nave se utiliza para establecer las condiciones que hacen que vaya en la dirección opuesta cuando pasa de 200 o 600, a lo largo del eje X. - -![](/gdevelop5/tutorials/gifs_for_wiki_applying_permanent_forces.gif) - -### Otras formas de mover objetos. - - Algunos comportamientos, como el Motor de físicas o el Localizador de rutas, pueden mover objetos por sí mismos. En este caso, es mejor no utilizar el sistema de fuerzas integrado y, en cambio, confiar solo en las acciones proporcionadas por estos comportamientos. \**Véelo en acción!** 🎮 Abre este ejemplo en línea: - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-153533.png) - -!!! note - - Estas otras formas de mover objetos se explican en [esta página de procedimientos](/gdevelop5/tutorials/how-to-move-objects). \## Almacenamiento de cualquier información en memoria: Variables - -Una variable te permite almacenar datos. Por ejemplo, una variable puede almacenar un número o un texto. Podríamos compararlos con cajones o cajas donde podemos archivar notas. Cualquier dato se puede almacenar en una variable, siempre y cuando esté en formato de texto o número. Cosas como el número de vidas que le quedan a un jugador, la puntuación más alta de un jugador, el número de balas que quedan o el número de enemigos muertos son ejemplos de lo que se puede almacenar en una variable. Probablemente vaya a ser para ti una práctica común almacenar números en variables. - -![pres_variable.png](/wiki/pres_variable.png) - -Las acciones y condiciones comprueban o cambian el *valor* de una variable. - -#### ¿Dónde se almacenan las variables? ("ámbito" de variable) - -El *ámbito* o *alcance* de una variable determina el lugar desde el que se puede acceder una variable. En GDevelop, hay tres ámbitos de variable disponibles: - -* **Variables Globales**, que son accesibles desde todas las escenas del juego. Por ejemplo, se pueden usar para almacenar la puntuación del jugador en diferentes niveles/escenas. * **Variables de Escena**, que solo son accesibles desde la escena en la que se crean. Se pueden usar para datos que solo conciernen a una escena. Una variable de escena podría acceder al tiempo restante para completar el nivel/escena. - -* **Variables de Objeto**, que solo se refieren a un objeto. Por ejemplo, un héroe puede tener una variable "Salud" o "Munición". - -![](/gdevelop5/tutorials/gif_for_wiki_showing_where_the_variables_are.gif) - -La página wiki asociada con variables se puede encontrar [aquí](/es/gdevelop5/all-features/variables). - -Para ampliar aún más cómo se pueden usar las variables en un juego, ve [expresiones](/es/gdevelop5/all-features/expressions). - -## Una noción avanzada: el "tiempo transcurrido" desde el último fotograma (TimeDelta) - -El juego evalúa eventos y vuelve a recrear la pantalla varias veces por segundo: decimos que el juego *se actualiza* durante un "tick". La frecuencia con la que esto sucede depende de los recursos de su computadora: una computadora lenta puede renderizar 25 cuadros por segundo, una rápida 60. GDevelop generalmente puede asegurarse de que este valor sea el mismo en todos los equipos. Sin embargo, la velocidad de algunas operaciones puede cambiar de una computadora a otra, por ejemplo, las operaciones matemáticas y la representación de movimientos. - -Para hacer que la velocidad de los cambios sea constante, utiliza la [expresión](/es/gdevelop5/all-features/expressions) TimeDelta() que devuelve el tiempo en segundos desde el último fotograma. Por ejemplo, no hagas esto: - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-172740.png) - -Pero haz esto en su lugar: - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-172830.png) - -- El primer evento es agregar 20 a la variable cada vez que se actualiza el juego (es decir, tanto como sea posible, hasta 60 veces por segundo). **No es correcto** usar tal evento, ya que la velocidad del aumento de la variable no será la misma de una computadora a otra: no podemos predecir el valor de la variable después de 10 segundos, por ejemplo, ya que depende del número de fotogramas del juego pintado. -- El segundo evento **es correcto y confiable**: El número 300 se multiplica por TimeDelta(). Por lo tanto, la variable se incrementará al mismo tiempo en todas las computadoras. Como TimeDelta() devuelve un tiempo en segundo, te permite cuantificar exactamente la cantidad: En nuestro caso, la variable crecerá a 300 unidades/segundo. Por lo tanto, podemos predecir que la vida aumentará en 3000 unidades en 10 segundos, independientemente del número de fotogramas renderizados durante este tiempo. - -!!! note - - Como GDevelop ejecutará tu juego a un máximo de 60 imágenes por segundo, normalmente no notarás ningún problema si estás usando el primer evento. Todavía es una buena idea vigilar esto y usar la versión con TimeDelta() en su lugar. - -**Regla general:** Usa _TimeDelta()_ cuando desees agregar continuamente alguna cantidad a un valor. Si tu acción está destinada a iniciarse solo una vez (por ejemplo, durante una colisión en la que luego elimina el objeto), está bien usar un valor discreto sin TimeDelta, ya que no depende de la velocidad del juego. - -!!! note - - Cuando mueves un objeto usando fuerzas, no es necesario usar TimeDelta() ya que GDevelop lo usa automáticamente. - -## Y ... eso es casi todo lo que necesitas saber. - -➡️ ¡Puedes seguir leyendo los **[tutoriales](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials)** para saber más sobre cómo crear auténticos juegos con GDevelop! diff --git a/docs/es/gdevelop5/tutorials/breakout.md b/docs/es/gdevelop5/tutorials/breakout.md deleted file mode 100644 index 540ccf8472..0000000000 --- a/docs/es/gdevelop5/tutorials/breakout.md +++ /dev/null @@ -1,601 +0,0 @@ ---- -title: breakout ---- -!!! note - - Este tutorial está siendo reelaborado/actualizado. Parte de la información puede estar desactualizada y es posible que haya problemas👷‍♂️ \# Cómo hacer un juego de tipo Breakout - -!!! note - - Antes de comenzar este tutorial, debe leer [Getting Started](/gdevelop5/getting_started) y [Conceptos básicos de creación de juegos](/gdevelop5/tutorials/basic-game-making-concepts) para obtener una descripción general de GDevelop y una comprensión de los conceptos principales. - -Con este tutorial, aprenderá algunas tareas básicas en GDevelop mientras crea un juego divertido. Al igual que el clásico juego de arcade Breakout, crearás una serie de ladrillos que se pueden romper con una pelota que rebota. El jugador controla la pelota con una paleta: una vez que la pelota cae, se acabó el juego. ![](/gdevelop5/tutorials/breakout-screenshot.png) - ------------------------------------------------------------------------- - -!!! note - - El juego creado en este tutorial se puede encontrar en Gdevelop 5 como ejemplo. - - Véalo en acción: - - - -## Crear un nuevo juego - -Haz clic en **Crear un nuevo proyecto** en la página de inicio. Desplázate hacia abajo y elige una carpeta para tu proyecto, luego selecciona **Juego vacío**. ![](/gdevelop5/tutorials/create_empty_project.png) \## Añadir recursos al juego - -!!! note - - Se encontrará con el término "assets" (recursos) a menudo mientras trabaja con GDevelop. En el lenguaje de desarrollo de juegos de computadora, los _recursos_ son los archivos que componen el contenido del juego, como personajes, plataformas, archivos de audio, etc. - -Para un juego de breakout, necesitará los siguientes recursos: - - * Archivo de imagen de una pelota - * Archivo de imagen de una pala - * Archivo de imagen de una barrera - * Archivos de imagen de diferentes ladrillos. - * imágenes de Power-ups (opcional) - -O puede descargar los recursos utilizados en el tutorial, ![](/gdevelop5/tutorials/breakout-assets.zip) - ------------------------------------------------------------------------- - -## Agregar una nueva escena - -_Scenes_ son las pantallas de tu juego. Por ejemplo, los diferentes niveles de un juego a menudo se crean como diferentes escenas, al igual que los menús de inicio o los menús de pausa. - -Las escenas contienen _objetos_ que se muestran en la pantalla como contenido del juego. Cada objeto que colocas en una escena se llama _instancia_. Su juego de breakout tendrá varias instancias del objeto de ladrillo en una escena de nivel de juego. Las escenas también contienen _eventos_, acciones que ocurren bajo condiciones específicas, para animar la escena. - -Para agregar una nueva escena: - - - En el panel **Proyecto** de la izquierda, haz clic en **+** para agregar una escena. - -![](/gdevelop5/tutorials/breakout-game/newscene.jpg) - - - Se agrega una nueva escena a la lista. Haz clic en **NuevaEscena** para abrirlo. - -![](/gdevelop5/tutorials/breakout-game/blank_scene.jpg) - -## Crea el objeto pala Comience agregando la pala a la escena. El jugador mueve esta pala de izquierda a derecha en línea recta para hacer rebotar la pelota y evitar que se caiga fuera de juego. - -- En el panel **Objetos** de la derecha, haga clic en **+** para agregar un objeto. - -![](/gdevelop5/tutorials/breakout-game/add-object.jpg) - -Aparecerá una ventana que muestra diferentes tipos de objetos que puede agregar. Cada tipo de objeto tiene su propio conjunto de características. - -![](/gdevelop5/tutorials/object_types.jpg) - - - Para la pala, necesitas el tipo de objeto Sprite. Haz clic en **Sprite**. \_Sprites_ son objetos animados que se utilizan para muchos elementos comunes del juego (jugadores, plataformas, enemigos, ladrillos, etc.). - -El nuevo objeto se agrega a su escena y se abre el cuadro de diálogo Editor de objetos. - -![](/gdevelop5/tutorials/empty_object_editor.jpg) - -En este momento, su objeto sprite no tiene animaciones ni imágenes asociadas. - -- Haz clic en **+** para agregar una animación. -- Haga clic en **+** en la miniatura en blanco para agregar una imagen a la animación. -- Seleccione la imagen llamada "paddle.png" en la carpeta de su proyecto y haga clic en **Abrir**. La imagen se agrega al objeto. - -![](/gdevelop5/tutorials/paddle_animation.jpg) - -- En el campo **Nombre del objeto**, escriba **Pala** para cambiar el nombre de su objeto. - -- Haz clic en **Aplicar** para guardar y cerrar el editor. - -!!! note - - Los nombres de los objetos distinguen entre mayúsculas y minúsculas, al igual que otros elementos en GDevelop. Sea consistente en su nombre para evitar errores fáciles como escribir "Pala" cuando quiere decir "pala". Lo mismo ocurre con los nombres de animación como "Ejecutar" o "ejecutar". No importa qué convención de nomenclatura utilice, siempre que sea coherente. - ------------------------------------------------------------------------- - -### Agregue el objeto pala a la escena - -Para mostrar la pala en tu juego, debes agregarla a tu escena. Debido a que solo se necesita una pala, se denomina instancia _única_. Otros objetos como ladrillos tendrán múltiples instancias en su escena. - -- Para agregar la pala a la escena, haga clic y arrástrela desde el panel **Objetos** a la escena. Colóquelo cerca del fondo. - -![](/gdevelop5/tutorials/paddle_drag.gif) - ------------------------------------------------------------------------- - -## Crea el objeto barrera - -A continuación, agregará una barrera visual que aparecerá para evitar que la pelota rebote en la pantalla. La barrera se hará con un sprite en mosaico. Los _sprites en mosaico_ son objetos repetibles y escalables útiles para crear plataformas, paredes y otros objetos inanimados. - -Para crear el objeto de barrera: - - - En el panel **Objetos** de la derecha, haga clic en **+** para agregar un objeto. - - Haz clic en **Sprite en mosaico**. - - En el cuadro de diálogo **Editor de objetos**, haga clic en **+** para agregar una animación. - - Haga clic en **+** en la miniatura en blanco para agregar una imagen. - - Seleccione "barrier.jpg" en la carpeta de su proyecto y haga clic en **Abrir**. - - En el campo **Nombre del objeto**, cambia el nombre de tu objeto a "Barrera". - - Haga clic en **Aplicar** para guardar y cerrar el Editor de objetos. - ------------------------------------------------------------------------- - -### Agregue el objeto de barrera a la escena - -Deberá agregar tres instancias de su objeto de barrera a su escena: una barrera izquierda, derecha y superior. El tamaño predeterminado de la ventana del juego es de 800 x 600 píxeles, que es el contorno gris en la vista de escena. Crea tu barrera ligeramente dentro de estos límites. - -!!! note - - Mueva y cambie el tamaño de los objetos con precisión mediante el **panel de propiedades** que se abre cuando hace clic en una instancia de objeto. - -- Arrastre y suelte la primera instancia de la barrera en la escena. -- Haga clic en la barrera. Cambie su tamaño a 15 x 585 con el panel Propiedades o arrastrando el controlador en la parte inferior derecha. Colóquelo en el lado izquierdo de la pantalla en (15, 15). -- Cree una barrera correspondiente en el lado derecho y colóquela en (770,15). -- Agregue una barrera final en la parte superior para conectar los dos. Cambie su tamaño a 770 x 15 y colóquelo en (15, 15). - -![](/gdevelop5/tutorials/breakout-game/barriers_added.jpg) - ------------------------------------------------------------------------- - -## Establecer el movimiento de la pala - -El jugador controlará la pala usando las flechas izquierda y derecha del teclado. Puede crear estos controles usando _eventos_ (acciones que ocurren si las condiciones son verdaderas). - -Crea un evento donde si el jugador presiona la flecha izquierda en el teclado, la pala se mueve hacia la izquierda: - -- Haz clic en la pestaña **Nueva escena (Eventos)** para abrir el **Editor de eventos**. -- Haz clic en **Agregar un nuevo evento vacío** ![](/gdevelop5/tutorials/breakout-game/empty_event_button.jpg). -- Haz clic en **Agregar condición**. - -![](/gdevelop5/tutorials/breakout-game/add-condition.jpg) - -- Haga clic en **Teclado \> Tecla presionada**. - -![](/gdevelop5/tutorials/breakout-game/keyboard-key-pressed.jpg) - -- En el campo **Clave**, escriba **Left** y haga clic en **Aceptar**. Esta condición es verdadera si el jugador presiona la flecha izquierda en el teclado. - -Ahora necesita agregar una acción correspondiente a la condición. La pala debe moverse hacia la izquierda en un eje horizontal si se cumple la condición. - -!!! note - - Para mover objetos con una fuerza aplicada, deberá especificar un ángulo. La siguiente imagen ilustra cómo GDevelop entiende el ángulo de rotación. En un eje horizontal, la izquierda es 180°, la derecha es 0°. ![](/gdevelop5/tutorials/breakout-game/angles.png) - -- Haga clic en **Agregar acción**. - -- Haga clic en **Acciones comunes para todos los objetos \> Movimiento \> Agregar una fuerza (ángulo).** - -- Selecciona **Pala** en el campo **Objeto**. - -- En el campo **Ángulo**, escriba **180**. - -- En el campo **Velocidad (en píxeles por segundo)**, escriba **300**. - -- Haz clic en **Instantáneo**. - -- Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/add_force_to_paddle.jpg) - -!!! note - - Es un buen momento para guardar tu trabajo. Adquiera el hábito de ahorrar con frecuencia. Puede presionar **Ctrl+S** para guardar su juego, o usar su mouse e ir a **Archivo\>Guardar**. - ------------------------------------------------------------------------- - -Utilice la función de vista previa para verificar su trabajo. Haz clic en el botón **Iniciar una vista previa de la escena**.![](/gdevelop5/tutorials/breakout-game/preview-button.jpg) - -Presiona la flecha izquierda para mover la pala. Descubrirá que la pala no se detiene cuando llega a la barrera, simplemente continúa fuera de la pantalla. Puede solucionar esto cerrando la ventana de vista previa y agregando otra condición al movimiento de la pala. - -Para agregar otra condición para detener la pala: - - - En el mismo evento, debajo de su primera condición, haga clic en **Agregar condición**. - - - Haga clic en **Condiciones comunes para todos los objetos > Posición > Posición X de un objeto**. - - - En el campo **Objeto**, selecciona **Pala**. - - - En el campo **Signo de la prueba**, seleccione **> (mayor que)**. - - - En el campo **Posición X**, escriba la coordenada X del lado derecho de la barrera izquierda. En este ejemplo, es 30. - - - Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/x_position.jpg) - -Vuelva a obtener una vista previa de su juego. La pala debe detenerse al golpear la barrera izquierda. - -Ahora necesita crear el mismo evento para el lado derecho. Pruébelo usted mismo antes de leer el proceso a continuación. - -- Haga clic en **Agregar un nuevo evento vacío**. -- Haga clic en **Agregar condición**. -- Haga clic en **Teclado \> Tecla presionada**. -- En el campo **Clave**, escriba **Derecha**. -- Haga clic en **Aceptar**. - ------------------------------------------------------------------------- - -- Haga clic en **Agregar acción**. -- Haga clic en **Acciones comunes para todos los objetos \> Movimiento \> Agregar una fuerza (ángulo).** -- En el campo **Objeto**, selecciona **Pala**. -- En el campo **Ángulo**, escriba **0**. -- En el campo **Velocidad (en píxeles por segundo)**, escriba **300**. -- Haga clic en **Aceptar**. - ------------------------------------------------------------------------- - -- Haga clic en **Agregar condición**. -- Haga clic en **Condiciones comunes para todos los objetos \> Posición \> Posición X de un objeto**. -- En el campo **Objeto**, selecciona **Pala**. -- En el campo **Signo de la prueba**, seleccione **\< (menor que)**. -- En el campo **Posición X**, escriba la coordenada X del lado izquierdo de la barrera derecha. En este ejemplo, es 655. -- Haga clic en **Aceptar**. - -Obtenga una vista previa de su juego para asegurarse de que funciona. - -!!! note - - ¿Encuentras que tu pala todavía está pasando la barrera de la derecha? Esto se debe a que GDevelop usa el punto superior izquierdo de un objeto al comparar posiciones X. Una manera fácil de resolver este problema es restar el ancho de la pala de la coordenada X de tu barrera. En nuestro ejemplo, la pala tiene un ancho de 58 px, por lo que la nueva posición X para detener la pala en el lado derecho debe ser **\< 712** (770 - 58). Cámbialo ahora. - ------------------------------------------------------------------------- - -## Agregar comentarios al Editor de eventos Mientras trabaja en su Editor de eventos, es una buena práctica agregar comentarios para cada conjunto de eventos. Podrá encontrar y comprender rápidamente sus eventos a medida que crece su juego si los cataloga mientras trabaja. - -- Para agregar una línea de comentario, haga clic en **Agregar un comentario**. ![](/gdevelop5/tutorials/breakout-game/add_a_comment.jpg) - -- Ingrese el texto de su comentario y use la barra azul a la izquierda del comentario para arrastrar y soltar su comentario donde lo desee. - -![](/gdevelop5/tutorials/breakout-game/moved_comment.jpg) - ------------------------------------------------------------------------- - -## Mover la pelota - Parte 1 - -El siguiente paso será agregar el objeto bola a la escena. Como hiciste con la pala, agrega el objeto bola como un sprite usando ball-1.png como animación. Arrastra y suelta la pelota justo encima de la pala en la escena. - -Cuando piensas en el juego, la pelota deberá hacer cuatro cosas: - - * Muévete cuando el jugador comience el juego - * Rebote cuando choca con la pala o con la barrera - * Rompe ladrillos y rebota cuando choca con ladrillos - * Termina el juego cuando cae fuera de la pantalla debajo de la pala. - -### Poner la pelota en movimiento - -Para hacer que la pelota se mueva cuando el jugador presiona la barra espaciadora para comenzar: - -* Desde la pestaña **Nueva Escena (Eventos)**, haga clic en **Agregar un nuevo evento vacío**. - -* Haga clic en **Agregar condición**. - -* Haga clic en **Teclado \> Tecla presionada**. - -* En el campo **Clave**, escriba **Space** y haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/space_bar.jpg) - ------------------------------------------------------------------------- - -* Haga clic en **Agregar acción**. * Haga clic en **Acciones comunes para todos los objetos \> Movimiento \> Agregar una fuerza (ángulo)**. * En el campo **Objeto**, selecciona **Pelota**. * En el campo **Ángulo**, escriba **-45+RandomInRange(-5, 5)**. Esto lanzará la pelota en un ángulo de -45 grados, con una variación aleatoria adicional de 5 grados en cualquier dirección para agregar desafío al jugador. - -!!! note - - No es necesario memorizar todas las expresiones. Puede abrir el **Editor de expresiones** para ayudarlo a completar los campos. ![](/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg) En este caso, podría escribir **-45** en el campo **Ángulo**, luego hacer clic en **Editor de expresiones** y buscar por **Random**. La expresión **Entero aleatorio en rango** con un valor mínimo de -5 y un valor máximo de 5 generará RandomInRange(-5, 5) en su campo. Puede usarlo en su cálculo de velocidad como desee. - -* En el campo **Velocidad (en píxeles por segundo)**, escriba **300**. Ajuste esto como desee; cuanto mayor sea el número, más rápido será el objeto. * Haz clic en **Permanente**, ya que quieres que la pelota siga moviéndose durante todo el juego. * Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/ball-start-movement.jpg) - -Este es un buen momento para agregar un comentario, guardar y obtener una vista previa de su juego. La pelota debe moverse cuando se presiona la barra espaciadora. - ------------------------------------------------------------------------- - -### Rebote de la pelota en la barrera y la pala - -Para un buen juego, la pelota debe rebotar de forma realista cada vez que choca con la barrera, la pala o un ladrillo. GDevelop tiene un comportamiento de rebote fácil que puede aplicar a cualquier objeto para simular un rebote real. - -#### Agregar un comportamiento de rebote - -Para agregar un comportamiento de rebote a su objeto de bola: - En la pestaña **Nueva escena**, haz clic en **⋮** junto a tu objeto "Pelota" y haz clic en **Editar objeto**. - Haga clic en la pestaña **Comportamientos**. - Haga clic en **+** para agregar un nuevo comportamiento al objeto. - El comportamiento de rebote no es un comportamiento instalado, por lo que debe encontrarlo. Haga clic en la pestaña**Buscar nuevos comportamientos**. - De la lista en la parte inferior, seleccione "Bounce" y haga clic en "Instalar en proyecto". - -![](/gdevelop5/tutorials/breakout-game/add_bounce_behaviour.png) - -- Ahora puede agregar el nuevo comportamiento al objeto. Desplácese hacia abajo, seleccione **Bounce** y haga clic en **Aplicar**. ![](/gdevelop5/tutorials/apply_bounce.png) - -¡Tu pelota ya está lista para rebotar! - ------------------------------------------------------------------------- - -#### Agregar los eventos de colisión - -A continuación, agregue eventos para hacer que la pelota rebote en la barrera y la pala. Es hora de una condición que usarás mucho en la creación de juegos: una condición de _colisión_. - -Para crear una condición de colisión entre la pelota y la barrera: - - * Desde la pestaña **Nueva Escena (Eventos)**, haga clic en **Agregar un nuevo evento vacío**. - * Haga clic en **Agregar condición**. - * Haga clic en **Condiciones comunes para todos los objetos > Colisión > Colisión**. - * En el primer campo **Objeto**, seleccione **Pelota**. En el segundo campo **Objeto**, seleccione **Barrera**. - * Haga clic en **Aceptar**. - ------------------------------------------------------------------------- - -Para agregar la acción que hace que la pelota rebote en la barrera al chocar: - -- Haga clic en **Añadir acción**. -- Haga clic en **Bounce \> Bounce \> Bounce off another object**. -- En el campo **Object** , elige **Pelota**. -- En el campo **Objects to bounce on** , elige **Barrerar**. -- Haga clic en **OK**. - -![](/gdevelop5/tutorials/breakout-game/add_bounce_action_in_event.png) - ------------------------------------------------------------------------- - -Ahora debe hacer exactamente lo mismo para que la pelota rebote en la pala. Cree un nuevo evento, establezca su condición de colisión y agregue la acción para hacer rebotar la pelota. - -!!! note - - Puede hacer clic con el botón derecho y copiar una condición o acción anterior, y luego hacer clic con el botón derecho para pegarla en un nuevo evento. Es una manera fácil de ahorrar tiempo y esfuerzo, ¡especialmente cuando se trata de eventos similares! - -Guarda y previsualiza tu juego. Empieza a ser divertido... - ------------------------------------------------------------------------- - -## Agrega los ladrillos - -¡Tu pelota tiene que romper algo! El siguiente paso será agregar ladrillos a la escena. Para aprender sobre diseños externos, este tutorial hará que los ladrillos aparezcan en diferentes diseños. - -Para agregar tus ladrillos: - - * Haga clic en la pestaña **Nueva escena** para acceder al Editor de escenas. - * En el panel **Objeto**, haga clic en **+** para agregar un nuevo objeto de tipo _sprite_. - * Nombre este objeto **Ladrillo**. Dale tres animaciones separadas usando los archivos brick-green.png, brick-red.png y brick-yellow.png de la carpeta de tu proyecto. Nombre las animaciones en consecuencia. - * Haga clic en **Aplicar**. - -![](/gdevelop5/tutorials/brick_colours.png) - ------------------------------------------------------------------------- - -### Crear diseños externos - -Puede usar diseños externos para crear algunos niveles diferentes con diferentes formaciones de ladrillos. Un _diseño externo_ (_layout_) es una capa de objetos que se crea fuera de una escena, pero que se puede insertar dinámicamente en cualquier punto. - -Para crear un diseño externo: - - * Haga clic en el botón **Administrador de proyectos** en la parte superior izquierda. {{:gdevelop5:tutorials:breakout-game:project_manager.jpg?nolink|}} - * Haga clic en **Diseños externos** y **+** para agregar un diseño externo. - * Haga clic en **⋮** junto a su nuevo diseño y cámbiele el nombre a **Layout1**. - -![](/gdevelop5/tutorials/breakout-game/external_layout_add.png) - -- Haga clic en **Layout1**. Se le pedirá que elija la escena en la que se incluirá. Elige **NuevaEscena**: esa es la escena donde ocurre todo el juego. Se abrirá una nueva pestaña que se parece a su NewScene existente. - -  - - * Agregue ladrillos en cualquier configuración que elija. Diviértete con esta parte, ¡sé creativo! - -!!! note - - Para acelerar las cosas, haga clic o seleccione objetos, luego mantenga presionada la tecla Ctrl, haga clic y arrastre para replicar instancias en la pantalla. Mantener presionadas las teclas Ctrl+Shift mantiene las nuevas instancias en el mismo eje X o Y. - - ![](/gdevelop5/tutorials/breakout-game/duplicating_objects.gif) - -- Cree dos o más diseños nuevos y asígneles el nombre Layout1, Layout2, etc. - -!!! note - - Siga la convención de nomenclatura Layout1, Layout2, etc. Se vinculará a una variable en breve. - ------------------------------------------------------------------------- - -### Hacer que aparezca un diseño de ladrillo aleatorio - -Para hacer que aparezca un diseño aleatorio al comienzo de cada escena, primero agregue su condición: - - * Haz clic en la pestaña **Nueva Escena (Eventos)** para volver a tu Editor de Eventos. - * Haga clic en el botón **Agregar un nuevo evento vacío**. - * Haga clic en **Agregar condición**. - * Haz clic en **Escena > Al comienzo de la escena**. - ----- - -En lugar de adjuntar acciones a esta condición, ahora creará subeventos que suceden al comienzo de la escena. - -Para comenzar, cree una nueva variable de escena llamada Random_layout: - - * Haga clic en un espacio en blanco dentro del evento que acaba de crear y haga clic en el botón **Agregar un subevento al evento seleccionado**.{{:gdevelop5:tutorials:breakout-game:subevent_button.jpg?nolink|}} - * En el nuevo subevento, haga clic en **Agregar acción**. - * Haga clic en **Variables > Valor de una variable de escena**. - * En el campo **Variable**, escriba **Random_layout** para crear una nueva variable de escena. - * En el campo **Signo de modificación**, seleccione **= (fijar a)**. - * En el campo **Valor**, escriba **Random(2)+1**. - * Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/modify_scene_variable_value.jpg) - -!!! note - - Intente usar el Editor de expresiones para crear sus expresiones. ![](/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg) - - Cuanto más juegues con las expresiones, más entenderás la lógica detrás de ellas. ¡No tengas miedo de experimentar! - ------------------------------------------------------------------------- - -Ahora encadenará su número de variable al nombre del diseño externo Layout. Este nombre determinará qué diseño aparecerá en la pantalla. (¡Es por eso que era importante ser consistente al nombrarlos antes!) - -Para agregar un diseño aleatorio de ladrillos al comienzo de la escena: - -* Agregue otro sub-evento nuevo para el comienzo de la escena, luego haga clic en **Agregar acción**. * Haga clic en **Diseños externos \> Crear objetos a partir de un diseño externo**. * En el campo **Nombre del diseño externo**, escriba **"Layoutv" + ToString(Variable(Random_layout))**. Esto agregará aleatoriamente uno de los diseños externos a la escena. * Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/random_layout_selection.jpg) - ------------------------------------------------------------------------- - -Puede agregar interés haciendo que el color del ladrillo sea aleatorio al comienzo de cada escena. - -Para elegir un color de ladrillo al azar: - -* Agregue otro sub-evento nuevo para el comienzo de la escena, luego haga clic en **Agregar acción**. * Haga clic en **Variables \> Valor de una variable de escena**. * En el campo **Variable**, escriba **Brick_colour**. * En el campo **Signo de modificación**, seleccione **= (fijar a)**. * En el campo **Valor**, escriba **Random(2)**. * Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/modify_scene_variable_value2.png) - ------------------------------------------------------------------------- - -- Agregue un último sub-evento nuevo para el comienzo de la escena, luego haga clic en **Agregar acción**. -- Haz clic en **Sprite \> Animaciones e imágenes \> Cambiar la animación**. -- En el campo **Objeto**, seleccione **Ladrillo**. -- En el campo **Signo de modificación**, seleccione **= (fijar a)**. -- En el campo **Valor**, escriba **Variable(Brick_colour)**. -- Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/brick_colour_change.jpg) - -Guarda y previsualiza tu juego. Un jugador ahora verá un diseño externo seleccionado al azar con ladrillos en un color aleatorio cada vez que se inicie el juego. - ------------------------------------------------------------------------- - -## Mueve la pelota - Parte 2 - -### Rebota la pelota en los ladrillos - -Ahora que tienes ladrillos en la escena, quieres que la pelota rebote lejos de los ladrillos cuando los golpee. Exactamente como hiciste con la pala y la barrera, necesitarás: - - - Crear un nuevo evento. - - Añadir una condición de colisión entre la pelota y el ladrillo. - - Rebota tu pelota lejos de los ladrillos. - -!!! note - - ¡No olvide que puede cortar y pegar condiciones y acciones de eventos existentes! - ------------------------------------------------------------------------- - -## Destruye los ladrillos - -A medida que la pelota rebota en los ladrillos, debería destruirlos. Destruir un objeto en GDevelop es fácil. - - * En el mismo evento de colisión, haga clic en **Agregar acción**. - * Haga clic en **Acciones comunes para todos los objetos > Objetos > Eliminar un objeto**. - * En el campo Objeto, seleccione **Ladrillo**. - * Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/delete_a_brick.jpg) - -Guarda y previsualiza tu juego. Deberías poder hacer rebotar la pelota en la pala y destruir los ladrillos. Este es un buen momento para volver a comprobar tu velocidad: ¿quieres que la pelota o la pala sean más rápidas o más lentas? Si es así, juega con tus valores de velocidad hasta que estés satisfecho con el juego. - ------------------------------------------------------------------------- - -## Gana o pierde el juego - -Si el jugador elimina todos los ladrillos, el juego debería felicitar al jugador con la opción de volver a jugar. Si el jugador falla la pelota con la pala, debe decirle al jugador que ha perdido con la opción de volver a jugar. - -### Crea un mensaje de felicitación - -Desea que el mensaje de felicitación esté oculto, solo para que aparezca cuando se hayan ido todos los ladrillos. - -Para agregar un objeto de texto a la escena: - - * Haga clic en la pestaña **Nueva escena**. - * En el panel **Objetos**, haga clic en **+** para agregar un nuevo objeto y seleccione **Texto**. - * En el campo **Nombre del objeto**, escriba **Felicitaciones**. - * En el campo **Texto**, escriba un mensaje de felicitación (por ejemplo, ¡Felicitaciones! ¡Ha eliminado todos los bloques!). También incluya una línea que le diga al jugador "Presione Enter para jugar de nuevo". - * Haga clic en **Aplicar**. - -![](/gdevelop5/tutorials/breakout-game/congratulations_message.jpg) - -- Arrastre y suelte su objeto Felicitaciones en el medio de la escena. - ------------------------------------------------------------------------- - -Para ocultar su objeto de texto al comienzo de la escena: - - * Haga clic en **Nueva Escena (Eventos)**. - * Vaya al evento existente que contiene la condición "Al comienzo de la escena" y haga clic en **Agregar acción**. - * Haga clic en **Acciones comunes para todos los objetos > Visibilidad > Ocultar**. - * En el campo **Objeto**, seleccione **Felicitaciones**. - * Haga clic en **Aceptar**. - -![](/gdevelop5/tutorials/breakout-game/hide_congratulations.jpg) - ------------------------------------------------------------------------- - -Para hacer que su objeto de texto aparezca cuando se destruyen todos los ladrillos: - - * Haga clic en el botón **Agregar un nuevo evento vacío**. - * Haga clic en **Agregar condición**. - * Haga clic en **Condiciones comunes para todos los objetos > Objetos > Número instancias de objetos en la escena**. - * En el campo **Objeto**, seleccione **Ladrillo**. - * En el campo **Signo de la prueba**, seleccione **= (igual a)**. - * En el campo **Valor**, escriba **0**. - * Haga clic en **Aceptar**. - ------------------------------------------------------------------------- - -Si hay 0 ladrillos, la bola debe eliminarse y el objeto de felicitación debe hacerse visible. Ambas acciones son acciones comunes para todos los objetos. Agrégalos ahora. - -![](/gdevelop5/tutorials/breakout-game/if_no_bricks.png) - ------------------------------------------------------------------------- - -También quieres darle al jugador la opción de comenzar un nuevo juego: - - * Crea un nuevo sub-evento {{:gdevelop5:tutorials:breakout-game:subevent_button.jpg?nolink|}} para el evento que acabas de crear donde el número de objetos de ladrillo es =0. - * Haga clic en **Agregar condición**. - * Haga clic en **Teclado > Tecla presionada**. - * En el campo **Clave**, escriba **Return**. (Recuerde que el mensaje de felicitación le dice al jugador que presione Enter para comenzar de nuevo). - * Haga clic en **Aceptar**. - ------------------------------------------------------------------------- - -Añade una acción para volver a la primera escena: - - * Haga clic en **Agregar acción**. - * Haz clic en **Escena > Cambiar la escena**. - * En el campo **Nombre de la nueva escena**, escribe **"NuevaEscena"**. ¡No olvides las comillas! - * Haga clic en **Aceptar**. - -Ahora, cuando el jugador elimine todos los ladrillos, ¡recibirá un mensaje de felicitación y la opción de comenzar de nuevo! - -### Crea un mensaje de finalización del juego - -Si el jugador pierde la pelota, se acabó el juego. Al igual que si un jugador gana, esto implicará hacer visible un mensaje en el momento adecuado y darle al jugador la opción de volver a jugar. - -Primero, agregue un objeto de texto a la escena que permanecerá oculto a menos que el jugador pierda la pelota. - -Siga los mismos pasos que hizo para crear el objeto Felicitaciones en la pantalla, pero cambie el mensaje a Game Over. Incluya la línea sobre comenzar de nuevo. Llame a este objeto de texto **GameOver**. - -Arrastra y suelta tu objeto GameOver en el medio de la escena. Está bien si está encima del objeto Felicitaciones. - ------------------------------------------------------------------------- - -A continuación, vaya al Editor de eventos para ocultar su objeto GameOver al comienzo de la escena. - -Siga los mismos pasos para ocultar el objeto GameOver como lo hizo para el objeto Felicitaciones. Agréguelo como una segunda acción al evento. ![](/gdevelop5/tutorials/breakout-game/gameover_hide.png) - ------------------------------------------------------------------------- - -El siguiente paso será hacer que el mensaje vuelva a aparecer si el jugador pierde la pelota. Para hacer esto, necesita una condición que verifique si la posición Y de la pelota está fuera de la ventana del juego. - -Para agregar una condición para comprobar si el jugador ha perdido el balón: - - * Haga clic en el botón **Agregar un nuevo evento vacío**. - * Haga clic en **Agregar condición**. - * Haga clic en **Condiciones comunes para todos los objetos > Posición > Comparar la posición Y de un objeto**. - * En el campo **Objeto**, selecciona **Pelota**. - * En el campo **Signo de la prueba**, seleccione **> (mayor que)**. - * En el campo **Valor**, escriba **600**. (600 es la altura predeterminada de la ventana del juego, lo que significa que la pelota está fuera de la pantalla). - * Haga clic en **Aceptar**. - -Agregue una acción correspondiente para hacer visible el objeto GameOver. También debe agregar un evento secundario que haga que se elimine la pelota y que el juego se reinicie si el jugador presiona Enter. Agrégalos ahora. - -![](/gdevelop5/tutorials/breakout-game/player_misses_ball.png) - -Guarda y previsualiza tu juego. - ------------------------------------------------------------------------- - -#### ¡Eso es todo! Has terminado tu primer juego de breakout básico. - -Ahora que conoce los conceptos básicos, intente cambiar las velocidades, los diseños de ladrillos, etc. para hacerlo más desafiante. Es posible que desee agregar un sistema de puntuación en el que los puntos aumenten con cada ladrillo destruido, o puede hacer que la bola aumente su velocidad con cada escena. Debido a que el comportamiento de rebote rebota según el ángulo y la velocidad de la fuerza aplicada, también puedes divertirte jugando con la forma de la pala, agregando barreras más desafiantes, etc. - -También sería un buen ejercicio agregar instrucciones al comienzo de la escena que desaparecen cuando comienza el juego (vea la primera imagen de este tutorial). - -**Próximamente habrá más tutoriales pero, mientras tanto, ¡experimenta y juega!** diff --git a/docs/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md b/docs/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md deleted file mode 100644 index e9b338885f..0000000000 --- a/docs/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: 1-install-and-setup ---- -➡️ **[Parte siguiente: 2. Creando la primera escena](/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** - -# 1. Instalar y configurar - -**GDevelop** es un motor de juego multiplataforma de código abierto y gratuito para todos - no necesitas saber cómo codificar para crear tu primer juego. Se puede usar tanto para proyectos de pasatiempo como para la creación de juegos con fines de lucro.. - -Para obtener su copia de GDevelop puede visitar la [Página de descarga](https://gdevelop.io/download/) en donde están disponibles las distribuciones para Windows, Mac OS, and Linux. - -También puedes probar un [Editor online](https://editor.gdevelop.io/) directamente en tu navegador si no quieres instalar nada. Para este tutorial, aún se recomienda descargar la versión completa. - -![](/gdevelop5/tutorials/geometry-monster/01_5.png) - -Continuemos con la instalación en Windows - clic en el botón de Windows para iniciar la descarga del instalador para este sistema operativo. - -![](/gdevelop5/tutorials/geometry-monster/04.png) - -Clic en "Save" en la ventana emergente que aparecerá después de hacer clic en el botón - Ello iniciará la descarga del archivo exe. Cuando el instalador sea descargado, diríjase a la carpeta en donde fue descargado y haga clic dos veces para iniciar el proceso de instalación. - -![](/gdevelop5/tutorials/geometry-monster/05.png) - -Espere hasta que se complete el proceso, navegue hasta donde están instalados todos sus nuevos programas y haga doble clic en la aplicación GDevelop para iniciar el editor. Serás recibido con la pantalla de bienvenida en la página de inicio. - -![](/gdevelop5/tutorials/geometry-monster/06.png) - -Desde allí, puede abrir un proyecto ya existente o crear uno nuevo - vayamos por la segunda opción. - -![](/gdevelop5/tutorials/geometry-monster/07.png) - -Al hacer clic en eso, se mostrará una ventana emergente en la que puede seleccionar si desea usar un inicio ya existente o comenzar con un juego vacío - nuevamente, iremos a la segunda opción. - -![](/gdevelop5/tutorials/geometry-monster/09.png) - -Además de los iniciadores, también puede consultar los ejemplos y tutoriales en sus respectivas pestañas en la parte superior de la ventana emergente. - -![](/gdevelop5/tutorials/geometry-monster/10.png) - -Después de hacer clic en el botón "Juego vacío", se nos presenta el nuevo proyecto y la ventana "Proyecto" debería aparecer en el panel izquierdo. Desde allí, seleccione "Configuraciones del juego" para ingresar a la configuración básica de nuestro juego. - -![](/gdevelop5/tutorials/geometry-monster/11.png) - -El nombre de nuestro juego es "Monstruo Geométrico", el tamaño de la ventana es de 640 píxeles de ancho y 960 píxeles de alto; esto creará un área de juego que se adapta al modo retrato en un dispositivo móvil que confirmaremos en un segundo. Puedes ingresar tu nombre o apodo en el campo "Autor" abajo. - -![](/gdevelop5/tutorials/geometry-monster/12_5.png) - -Cuando se desplace hacia abajo, habrá una opción para especificar la "Orientación del dispositivo" - el modo "Retrato", es en el cual podremos jugar el juego en nuestros teléfonos sosteniéndolos con una sola mano y tocando la pantalla. - -También cambiaremos la opción "Pantalla completa" a "Sin cambios en el tamaño del juego", ya que esto se manejará más adelante. - -Después de ingresar toda esa información en los campos respectivos, puede hacer clic en "Aplicar" para guardar esa configuración. - -➡️ **[Parte siguiente: 2. Creando la primera escena](/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** diff --git a/docs/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md b/docs/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md deleted file mode 100644 index 8d0109af02..0000000000 --- a/docs/es/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md +++ /dev/null @@ -1,26 +0,0 @@ ---- -title: 2-creating-first-scene ---- -⬅️ **[Parte anterior: 1. Instalar y configurar](/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Parte siguiente: Introducir el personaje principal](/es/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** - -# 2. Creando la primera escena - -!!! note - - Es *altamente recomendado* leer la guía de [Conceptos Básicos de Creación de Juegos](/gdevelop5/tutorials/basic-game-making-concepts) antes de continuar para comprender algunas de las funciones básicas de cómo funciona GDevelop - -Ahora que tenemos [instalado el editor de GDevelop](/gdevelop5/tutorials/geometry-monster/1-install-and-setup) y la configuración básica está en su lugar, podemos empezar a crear. Para agregar componentes a nuestro juego, debemos comenzar con una escena - funcionará como una canasta con varios elementos y mostrándolos en la pantalla. - -![](/gdevelop5/tutorials/geometry-monster/14.png) - -Para agregar una nueva escena, haga clic en la sección "Escenas" en el panel izquierdo y cuando el contenido se expanda, aparecerá, "Haga clic para agregar una escena", que se explica por sí mismo. - -![](/gdevelop5/tutorials/geometry-monster/15.png) - -Llamemos a nuestra primera escena "Nivel1". - -![](/gdevelop5/tutorials/geometry-monster/16.png) - -Después de crear con éxito una escena, se nos llevará directamente a ella. Observe las pestañas en la parte superior del editor que puede seleccionar: hay "Nivel1" y "Nivel1 (Eventos)" por separado. En el panel izquierdo puedes manipular las propiedades de cualquiera de las instancias seleccionadas, el contenido real de la escena es visible en el medio (con el área de juego ya en modo retrato), y una lista de "Objetos" en el panel derecho. - -⬅️ **[Parte anterior: 1. Instalar y configurar](/es/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Parte siguiente: Introducir el personaje principal](/es/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** diff --git a/docs/es/gdevelop5/tutorials/geometry-monster/index.md b/docs/es/gdevelop5/tutorials/geometry-monster/index.md deleted file mode 100644 index 9bdc010eaf..0000000000 --- a/docs/es/gdevelop5/tutorials/geometry-monster/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: Monstruo Geométrico ---- -# Monstruo Geométrico - -Bienvenido a el tutorial del juego **Monstruo Geométrico** . En esta serie de artículos aprenderás como crear un juego hiper-casual apropiado para dispositivos mobiles. - -![](/gdevelop5/tutorials/geometry-monster-banner.png) - -Desde crear el personaje principal y animarlo mediante adición de controles y recoger objetos hasta detección de colisiones, rastrear el puntaje y tener múltiples vidas. También implementaremos múltiples escenas, incluyendo el menú principal y jugabilidad, efectos de sonido y el nivel de dificultad que aumenta con el tiempo.. - -![](/gdevelop5/tutorials/game-preview.png) - -## Tabla De Contenidos - -1. [Instalar y configurar](/gdevelop5/tutorials/geometry-monster/1-install-and-setup) -2. [Crear la primera Escena](/gdevelop5/tutorials/geometry-monster/2-creating-first-scene) -3. [Introducir el personaje principal](/gdevelop5/tutorials/geometry-monster/3-introducing-main-character) -4. [Escritorio y Controles mobiles](/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls) -5. [Agregando y moviendo figuras](/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes) -6. [Detección de Colisión](/gdevelop5/tutorials/geometry-monster/6-collision-detection) -7. [Suena divertido](/gdevelop5/tutorials/geometry-monster/7-sounds-fun) -8. [Siguiendo el puntaje](/gdevelop5/tutorials/geometry-monster/8-tracking-score) -9. [Añadiendo bombas](/gdevelop5/tutorials/geometry-monster/9-adding-bombs) -10. [Más vidas](/gdevelop5/tutorials/geometry-monster/10-more-lives) -11. [Fin del Juego](/gdevelop5/tutorials/geometry-monster/11-game-over) -12. [Menú principal](/gdevelop5/tutorials/geometry-monster/12-main-menu) -13. [Disfrutalo!](/gdevelop5/tutorials/geometry-monster/13-juice-it) - - -## Obtener las fuentes - -Obtén las [fuentes de el juego del Monstruo Geométrico](/gdevelop5/tutorials/geometry-monster-sources.zip) que contienen todas las imágenes que necesitas para terminar el juego y el archivo final json del proyecto si deseas verificar todo por ti mismo. - -## Jugar el Juego - -También puedes probar el juego y jugarlo en línea ahora mismo si tienes curiosidad por la jugabilidad - puede ser ejecutado visitando [geometry.enclavegames.com](https://geometry.enclavegames.com/). \ No newline at end of file diff --git a/docs/es/gdevelop5/tutorials/how-to-make-behavior.md b/docs/es/gdevelop5/tutorials/how-to-make-behavior.md deleted file mode 100644 index aa31a03ad0..0000000000 --- a/docs/es/gdevelop5/tutorials/how-to-make-behavior.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: how-to-make-behavior ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Cómo crear un comportamiento para un objeto Cuando tu juego comienza a crecer, o incluso al principio al comenzar la creación de tu juego, es una buena idea organizar tanto como sea posible la lógica de tu juego en **[comportamientos personalizados](/gdevelop5/behaviors/events-based-behaviors)**. Esto ayuda a reducir el número de eventos en las hojas de eventos de escena y hace que sea más fácil razonar sobre tu juego. - -Hacer comportamientos personalizados para los objetos del juego puede parecer al principio más complicado que hacer eventos directamente en la hoja de eventos. Los comportamientos son más restringidos y necesitan que pienses más cuidadosamente sobre cómo funciona tu objeto y qué acciones/condiciones debe exponer el comportamiento. Pero los comportamientos personalizados también son una herramienta muy poderosa, que te permite *encapsular* tu lógica dentro de tus objetos y mantener la hoja de eventos de tu escena lo más pequeña posible. - -!!! note - - Si eres un desarrollador de juegos experimentado, incluso se recomienda hacer la **mayor cantidad posible de tu juego** usando **comportamientos personalizados**. - -En este artículo, mostramos cómo: - -1\. Crear un comportamiento simple para un objeto 2. Después, cómo interactuar con **otro objeto** 3. Y finalmente cómo interactuar con un comportamiento personalizado de otro objeto - -## 1. Cómo crear eventos "para un objeto" usando un comportamiento: - -Crea una extensión que contenga comportamientos. El nombre depende de ti. Puedes usar extensiones para agrupar comportamientos relacionados con algunos de tus objetos del juego. - -![20200329-161907.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-161907.png) - -Crea un comportamiento en esta extensión. Asígnale un nombre según el objeto o la capacidad que está agregando: ![20200329-162016.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162016.png) - -!!! note - - Es una buena idea tener un nombre que resuma lo que está haciendo el comportamiento. Puede que no esté claro al principio: siempre puede cambiar el nombre del comportamiento más adelante. - -Haz clic en *Añadir una nueva función*: ![20200329-162050.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162050.png) - -Añade una función de comportamiento "doStepPreEvents": ![20200329-162119.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162119.png) - -Esta función de comportamiento (también llamada método de comportamiento) es llamada automáticamente por el motor del juego cada vez que se representa un fotograma en la pantalla. Es un buen lugar donde colocar eventos que están **actualizando tu objeto**. - -La función ahora es visible en la lista de funciones de comportamiento: ![20200329-162151.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162151.png) - -We can now add events inside. In this example, we're adding two events: - -* one to change the background color of the scene when space is pressed -* one to play a sound when a button is pressed - -![20200329-162214.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162214.png) - -Of course, changing the background color of the scene is unusual and should probably not be part of your behavior. But it's a simple way to verify that the behavior is working. - -!!! note - - In a work complex "real" behavior, you could use the behavior properties or some variables to update your object. For example, you can make the object move in this "doStepPreEvents" function. - -Finally, we now go back our game scene and add the behavior to an object. First, we find the object to add the behavior to: - -![20200329-162441.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162441.png) - -Edit the object and in the "Behaviors" tab, choose *Add a Behavior to the Object*: ![20200329-162720.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162720.png) - -and in the list choose the behavior with the name you've previously entered. You can see that there is no description for the behavior - we could add one by clicking *Edit Behaviors Properties* in the extension editor. It's in fact a good idea to give a good name and description to make clear what your behavior is made for. - -![20200329-163332.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-163332.png) - -You can try to run the game. Verify that the scene background color is changed when you press *Space*, or that the sound is played when you press the *P* key. - -For example, in the platformer starter game, the background color changed to green, after Space was pressed: ![20200329-164012.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-164012.png) - -## 2. How to interact with another object - -Now, we may want to go one step further and create some logic related to one object, like the player, and other objects, like enemies. - -For this, we can't use "doStepPreEvents", as we can't use other objects in it, apart from the object having the behavior. We need to create a **new behavior function**, that will be an *action*. - -Add a new function in the behavior and choose "Custom (action, condition or expression)": - -![20200329-175353.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175353.png) - -We can see it added in the list of behavior functions: - -![20200329-175548.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175548.png) - -Let's rename it according to what it will do: - -![20200329-175724.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175724.png) - -Then in this function, let's add **a parameter**: the objects that are our enemies. For this, we add a new parameter of type "Object". Then, we'll be able to use this object in the events. - -Navigate to the function "Parameters" tab and in the bottom choose "Add a parameter". Then, enter "Enemy" for the parameter name, then "Objects" for the type. You can enter "Enemy" as the label too (this is what will be displayed when you add the action in the scene events sheet). - -![20200329-175942.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175942.png) - -Once the parameter is set up, we can now use it as an object in the events. As an example, we will make the enemies play a sound when the player is colliding with them. - -![20200329-191811.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-191811.png) - -Let's finish by adding a nice name and sentence in the configuration of this function: ![20200329-180354.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-180354.png) - -Now the last step is to call the function in the scene events sheet. - -!!! note - - You may be disappointed at this point! "I don't want to add an event in the events sheet". For now, you can't pass objects to behaviors - this could be an addition in the future. - -We need to use the action. You'll find it in the scene events sheet, in the Player actions, as we previously added the behavior to the player. - -In the scene, add an action for Player (or the object you added the behavior to). Then choose "Handle enemies", our new action: - -![20200329-182405.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-182405.png) - -Finally, let's configure it with our enemies: - -![20200329-182601.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-182601.png) - -!!! note - - We use a single object, "SlimeWalk", for the enemies in this example, but you could use a **group** of objects. - -Here is the result: - -![20200329-182802.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-182802.png) - -If you run the game, you'll now see that when the player collides with the enemy, a sound is played. - -Not bad for a single event in the scene events sheet! And we could add more objects and make the behavior more complex. Or we can reuse it for another object that should behave the same as player. We can even disable this behavior if we want the player not to play a sound when colliding with enemies. - -It's up to you to decide how "far" you want to push your behavior. - -## 3. Let's interact with other object behaviors - -Let's now say that your game is getting more complex. For example, enemies now have also their own behavior(s). And this behavior has an action to make the enemies blink. We now want the enemies to blink when the player touches them (as they are hit - we could imagine make them lose some health or play an animation, etc...). - -First, the "Blink" behavior already exists. It's available as an extension you can search and install for your project. Let's add it to our enemies. First, we find it: - -![20200329-183653.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-183653.png) - -Then we add it to our enemy: ![20200329-183726.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-183726.png) - -It's added, we can configure it: ![20200329-184106.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-184106.png) - -Now, let's go back to our Player behavior. We go in the *HandleEnemies* function and add a new parameter, which is of type "Behavior", just after the "Enemy" object parameter: ![20200329-184732.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-184732.png) - -!!! note - - Rough edge here: it's not super obvious that you have to select a behavior as a parameter to make it part of the previous object. This will be improved in future versions. - -And now the function knows that the enemies have a behavior called "Blink"! Let's use the action to make them blink: ![20200329-184916.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-184916.png) - -!!! note - - Another rough edge here: as you added a parameter, you now have to go back to the events sheet and **edit the action** to be sure that the behavior is passed as parameter: - -![20200329-185458.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-185458.png) - -(Note the third parameter). Alas if you don't do this, the action will be missing the last parameter and the game won't work. - -Now you should be able to run the game and when the player touches a enemy, this enemy is blinking! - -## Final note - -The behavior we created here is simple, but should give you a sense of the idea of what is possible with custom behaviors. - -It's a good idea to think about your game in terms of objects and behaviors that interact with each other. The scene events sheet is the central place where the flow of the game is going on, using behaviors to make most of the actions happen in the game. diff --git a/docs/es/gdevelop5/tutorials/index.md b/docs/es/gdevelop5/tutorials/index.md deleted file mode 100644 index c881e6ccbd..0000000000 --- a/docs/es/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: GDevelop 5 tutoriales: ---- -# GDevelop 5 tutoriales: - -Estos tutoriales son guías que explican paso por paso cómo crear un juego desde cero: - -!!! tip - - Si está utilizando GDevelop por primera vez, se recomienda comenzar con estos tutoriales - -* **[Conceptos básicos de creación de juegos: lo que necesita saber para comenzar con GDevelop](/gdevelop5/tutorials/basic-game-making-concepts)** -* **[Geometry Monster: un juego móvil completo y sencillo](/gdevelop5/tutorials/geometry-monster)** -* **[Crea un juego de plataformas](/gdevelop5/tutorials/platformer)** -* **[Crea un juego de disparos espaciales](/gdevelop5/tutorials/space-shooter)** - -Tutoriales comunitarios: - -* [Comprender y utilizar la extensión del generador de ruido para la generación procedimental](/gdevelop5/tutorials/procedural-generation) -* [Crea un juego sencillo de Tank Shooter](/gdevelop5/tutorials/tank-shooter) -* [Crea un juego simple de Endless Runner](/gdevelop5/tutorials/endless-runner) -* [Juego de coches sin fin](/gdevelop5/tutorials/roadrider) -* [Crea un juego sencillo de Breakout](/gdevelop5/tutorials/breakout) - -Lecturas recomendadas para ir más lejos: - - * **[Cómo crear un comportamiento para un objeto](/gdevelop5/tutorials/how-to-make-behavior)** ----- - -# Guías breves de GDevelop ("cómo") -Las siguientes guías proporcionan explicaciones para ciertas partes de GDevelop. También te muestran algunas mecánicas avanzadas para diseñar tus juegos: - -* [Cómo crear un comportamiento para un objeto](/gdevelop5/tutorials/how-to-make-behavior) -* [Cómo mover objetos en tu juego (todas las diferentes soluciones)](/gdevelop5/tutorials/how-to-move-objects) -* [Cómo animar el salto y la caída de un personaje en un juego de plataformas](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) -* [Cómo mostrar un gran fondo en tu juego](/gdevelop5/tutorials/how-to-display-big-background) -* [Cómo depurar el rendimiento deficiente del juego](/gdevelop5/tutorials/how-to-debug-poor-performance) -* [Explicación de la acción de almacenamiento](/gdevelop5/tutorials/storage-action-explained) -* [Cómo reducir el tamaño de tu juego](/gdevelop5/tutorials/reduce-size-game) -* [Cómo manejar la lógica compleja: la máquina de estados finitos (FSM)](/gdevelop5/tutorials/finite_state_machine) -* [Cómo hacer estados alternables](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables) -* [Cómo utilizar GDevelop en equipo (varios desarrolladores y compañeros de equipo)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team) -* [Cómo usar Piskel para importar una imagen de hoja de sprites](/gdevelop5/tutorials/piskel-sprite-sheets) -* [Cómo hacer una copia de seguridad y mantener su proyecto usando GitHub y GitHub Desktop](/gdevelop5/tutorials/using-github-desktop) -[Cómo cambiar el modo Editor de condiciones y acciones de la Hoja de eventos](/gdevelop5/tutorials/change-event-editor-mode) -* [Cómo agregar tablas de clasificación en tiempo real a tu juego](/gdevelop5/tutorials/leaderboards) ----- -# Otras guías - -Las siguientes guías proporcionan explicaciones relacionadas con el desarrollo de juegos. No son específicos de GDevelop. - -* [Construye .apk de tus juegos con cordova](http://wiki.compilgames.net/doku.php/gdevelop5/publishing/android_and_ios_with_cordova) -* [Publica tu juego en itch.io](/gdevelop5/publishing/publishing-to-itch-io) -* [Publica tu juego en la tienda de aplicaciones de Amazon](/gdevelop5/publishing/Publica tu juego en la tienda de aplicaciones de Amazon) -* [Publicar tu juego en Game Jolt](/gdevelop5/publishing/Publicar tu juego en Game Jolt) -* [Publicar tu juego en Kongregate](/gdevelop5/publishing/Publicar tu juego en Kongregate) -* [Antes de publicar tu juego](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/before-publishing-your-game) - ----- - -# Recursos - -Enlaces a sitios web de terceros donde puedes encontrar sprites, música y efectos de sonido para tus juegos y ejemplos de juegos, plantillas y software para ayudarte con el desarrollo del juego. - - * [Lista de recursos](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials/resources) - ----- - -La wiki puede ser mejorada por cualquier persona: no dudes en crear una cuenta y contribuir mejorando un artículo, corrigiendo errores o escribiendo nuevos tutoriales. \ No newline at end of file diff --git a/docs/es/gdevelop5/tutorials/platform-game/2-player-animations.md b/docs/es/gdevelop5/tutorials/platform-game/2-player-animations.md deleted file mode 100644 index a97ea7edd8..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/2-player-animations.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Cómo hacer un juego de plataformas - animación de los jugadores. ---- -# Cómo hacer un juego de plataformas: animación de los jugadores. - -Este tutorial te explicará cómo agregar diferentes animaciones y cómo usar eventos para cambiar las animaciones cuando el estado del jugador está cambiando. - -[Click aquí para leer el tutorial anterior](/gdevelop5/tutorials/platform-game/start) en caso de que no lo hayas hecho. - -## Agregar Animaciones (Add animations) - -En este momento, el jugador siempre muestra la misma animación de pie, pero vamos a cambiar eso usando eventos. - -Pero primero, necesitamos agregar las animaciones apropiadas al objeto Player. - -### Animación de Salto (Jumping animation) - -Abra el editor del objeto Player y asegúrese de estar en la pestaña `Propiedades`. Luego haga clic en el botón + en la parte inferior de la ventana para agregar una animación. Finalmente, haga clic en la miniatura con el signo `+` de la nueva animación y elija `p1_jump` como la imagen a agregar: ![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.56.03.png) - -A las animaciones se le pueden dar nombres. Es una manera fácil de diferenciarlos y usarlos en los eventos. Es tan simple como hacer clic en "Nombre de animación opcional" y escribir el nombre que desee. - -Introduzca "Inactivo" y "Salto" como nombres para nuestras dos animaciones: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.56.53.png) - -### Animación Corriendo (Running animation) - -También necesitamos agregar la animación de caminar para mostrar cuando el personaje está caminando en una plataforma. Agregue otra animación como hicimos antes y, al agregar imágenes, seleccione las 5 imágenes `p1walk03.png`,` p1walk04.png`,… y `p1_walk07.png`. Puede seleccionar todas las imágenes a la vez o una por una como prefiera. Finalmente establezca el nombre de la animación a `Corriendo`: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.59.15.png) - -Estas imágenes se mostrarán para crear la animación. Necesitamos ajustar un poco algunas opciones. Primero, haga clic en `No hacer bucle` para cambiar esta opción a `Bucle`. Esto hará que la animación se reinicie cuando se llegue al final. El temporizador muestra el tiempo en segundos entre cada imagen: esta es la velocidad de la animación. Ingrese 0.05 en lugar de 1 para que la animación se reproduzca más rápido: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_01.02.03.png) - -Nuestro objeto ya está listo, haga clic en "Aplicar" en la esquina inferior derecha. - -## Usa eventos para cambiar animaciones. - -### El primer evento: animar al saltar. - -Ahora, necesitamos cambiar la animación que muestra el objeto de acuerdo con lo que está haciendo el jugador. Vamos a usar los eventos, que se usan para describir las reglas del juego y cómo los objetos se animan, se mueven y responden a las entradas del jugador. Es un tipo de programación visual que puede aprenderse muy rápidamente y es accesible para todos. - -Abra el editor de eventos de la escena haciendo clic en la pestaña llamada `Nueva escena (eventos)`. - -Por ahora, el editor de eventos está vacío: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_01.05.29.png) - -Agregue el primer evento haciendo clic en el botón Agregar evento en la barra de herramientas superior. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.40.43.png) - -Un evento se compone de una lista de condiciones (por ejemplo, para verificar si se está produciendo una colisión, si se presiona una tecla, si la vida del jugador es baja, etc.) y una lista de acciones que suceden cuando se cumplen las condiciones. - -Por ahora el evento está vacío: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.41.32.png) - -En este primer evento, comprobaremos si el jugador está saltando y cambiaremos su animación en consecuencia. Primero haga clic en `Agregar condición`. - -En la nueva ventana, puedes ver todas las condiciones disponibles para hacer tu juego. Queremos comprobar si el objeto Player, que tiene el comportamiento del personaje de Platformer, está saltando. Abra la categoría llamada `Comportamiento de la plataforma`y luego elija` Está saltando`. - -La parte derecha de la ventana muestra los parámetros necesarios para configurar la condición. Aquí, queremos comprobar si el objeto "Jugador" está saltando, así que elija Jugador para el primer parámetro (el segundo se llena automáticamente): - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.45.29.png) - -¡La condición está lista! Haga clic en Aceptar en la esquina inferior derecha para cerrar la ventana y ver la condición agregada en el evento: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.47.17.png) - -Ahora agreguemos la acción para cambiar la animación del Jugador cuando el personaje está saltando. Haga clic en `Agregar acción`. - -La ventana abierta es similar, pero ahora muestra todas las acciones disponibles: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.51.10.png) - -Vamos a cambiar la animación del jugador, que es un objeto Sprite. Abra la categoría `Sprite`, luego` Animaciones` y finalmente elija `Cambiar la animación (por nombre)`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.52.28.png) - -Seleccione el objeto `Player` para el primer parámetro y escriba` "Saltando" `en el segundo campo. **Cuidado**, tiene que escribir las comillas dobles, ya que cualquier texto en las acciones o condiciones de GDevelop también se puede generar mediante una fórmula, por lo que es necesario usar comillas dobles para decirle a GDevelop que este es un texto: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.54.51.png) - -Cuando haya terminado, haga clic en Aceptar en la esquina inferior derecha. ¡El primer evento está listo! - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.56.10.png) - -### Echemos un vistazo al resultado. - -Haga clic en el botón Reproducir en la barra de herramientas para iniciar una vista previa. Cuando saltas, verás los cambios de animación del jugador! - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.58.31.png) - -Pero cuando el Reproductor está de vuelta en el piso, puede ver que la animación no está configurada de nuevo en la animación Inactiva. ¡Esto es simplemente porque nunca le dijimos a GDevelop que lo hiciera! Agreguemos otro evento para arreglar esto. - -## Animación Idle y correr (Idle and running animation) - -Vamos a agregar un nuevo evento en blanco. Haga clic en 'Agregar condición' y esta vez seleccione la condición 'Está en el piso' dentro de la categoría de comportamiento de Platformer. Tenga en cuenta que puede usar el cuadro de búsqueda en la parte superior para encontrar rápidamente una condición cuando sepa su nombre. - -Rellene el primer parámetro eligiendo el objeto Jugador: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.52.02.png) - -Haga clic en Ok para validar la condición: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.54.47.png) - -De hecho, es una buena oportunidad para hacer que nuestro personaje muestre no solo el ralentí y el salto, sino también la animación en ejecución: - -Podríamos agregar dos eventos, con dos condiciones y una acción en cada evento: - - * Cuando el jugador está en el suelo * y * no se está ejecutando, se debe mostrar la animación de inactividad. - * Cuando el jugador está en el suelo * y * en ejecución, se debe mostrar la animación en ejecución. - -En su lugar, podemos usar * subeventos *, para que la condición solo compruebe si el jugador está en el suelo una vez. - -Seleccione el evento que creamos haciendo clic en un área vacía cerca de `Agregar condición` o` Agregar acción`: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.59.36.png) - -Luego, haga doble clic en el botón para agregar un sub-evento: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.05.49.png) - -Se agregan dos eventos "secundarios" debajo del evento que se considera el evento principal ahora. Hay un margen agregado a la izquierda de los eventos y una línea entre ellos para confirmar visualmente que están conectados: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.07.02.png) - -¡Ahora puedes agregar condiciones dentro de estos eventos! Para el primero, agregue una condición para verificar si el reproductor se está ejecutando: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.08.06.png) - -Para la segunda, agregue la misma condición, pero marque la opción 'Invertir condición'. De esta manera, las acciones del evento se iniciarán cuando el objeto del Jugador **NO **se esté moviendo: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.09.30.png) - -Aquí están nuestros eventos hasta ahora: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.10.03.png) - -Ya casi hemos terminado, terminemos agregando las acciones necesarias a cada evento. Use el primer evento para configurar la animación del personaje en `" Running "y el segundo evento para configurar la animación del carácter` en "Inactivo" `. - -Puedes agregar estas acciones de la misma manera que hicimos antes para la animación de salto. No olvide las comillas (`" "`) cuando ingrese los nombres de animación. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.15.20.png) - -## Tiempo para previsualizar (y guardar) (Time to preview (and save)) - -Puedes iniciar una vista previa de tu juego y ver que la animación del jugador está cambiando mientras corres y saltas. - -Una pequeña mejora que podemos hacer es configurar la animación en Salto cuando el jugador también se está cayendo (de lo contrario, la animación en ejecución seguirá reproduciéndose cuando el jugador llegue al final de la plataforma). - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.23.10.png) - -## Siguiente paso: haz que la cámara siga al jugador - -Por ahora, es difícil construir un gran nivel para explorar porque el jugador puede caminar rápidamente fuera de la pantalla. La siguiente parte del tutorial mostrará cómo hacer que la cámara siga al jugador. Es realmente simple, un solo evento será suficiente! - -Read️ Read **[la próxima parte del tutorial aquí](/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player)**! diff --git a/docs/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md b/docs/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md deleted file mode 100644 index b73466e0c0..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Sigue al jugador con la cámara (Follow the player with the camera) ---- -# Sigue al jugador con la cámara (Follow the player with the camera) - -!!! note - - Este tutorial es parte del tutorial [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), ¡pero también puedes reutilizarlo para cualquier otro juego! - -Por ahora, es difícil construir un gran nivel para explorar porque el jugador puede salir rápidamente de la pantalla. - -Agreguemos otro evento para que la cámara siga al jugador. Hay múltiples maneras de lograr esto. Lo más simple es agregar un evento sin condiciones y la acción llamada `Centrar la cámara en un objeto`: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.25.53.png) - -El nuevo evento se ve así: ![](/ gdevelop5/ tutoriales/ platform-game/ screen_shot_2017-09-26_at_22.26.20.png) - -Puede iniciar una vista previa para ver que la cámara ahora está centrada en el reproductor: ![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.27.31.png) - -## Eso es todo - -Eso fue fácil ¿verdad? Hay otras acciones que pueden ser útiles. Por ejemplo, las acciones se pueden usar para cambiar las coordenadas de la cámara solo en el eje X o Y. Puede ser útil para los juegos de plataforma en los que no puedes subir / bajar, solo pasar por el nivel con un desplazamiento lateral. - -## Siguiente paso: agregar una plataforma 'Saltar a través' - -Es un poco aburrido tener un solo tipo de plataforma. ¡Agreguemos otra con una imagen diferente y eso no es sólido, así que puedes saltar sobre ella desde abajo! - -Lee **[la siguiente parte del tutorial](/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms)**! diff --git a/docs/es/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md b/docs/es/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md deleted file mode 100644 index f789848838..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: Añadir un objeto de fondo (Add a background objects) ---- -# Añadir un objeto de fondo (Add a background objects) - -!!! note - - Este tutorial es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), ¡pero también puedes usarlo para cualquier otro juego! - -En este momento el nivel es bastante simple sin las cosas elegantes. Vamos a añadir algunos objetos estáticos en el fondo. - -## Crear objetos - -Agregar objetos en el fondo es realmente fácil: solo agrega algunos sprites con las imágenes que deseas y colócalos en la escena. - -Por ejemplo, cree un objeto `Sprite`, agregue una animación y agregue la imagen` bush`: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.45.14.png) - -Puede nombrar a este objeto `Bush`, y también agregar otro objeto con la imagen` cloud`: - -![](/ gdevelop5/ tutoriales/ platform-game/ screen_shot_2017-09-27_at_22.46.01.png) - -## Poner objetos en la escena y cambiar el orden z - -Si agrega objetos a la escena, puede ver que el reproductor se muestra detrás de ellos: - -![](/ gdevelop5/ tutoriales/ platform-game/ screen_shot_2017-09-27_at_22.52.10.png) - -Cada instancia en la escena tiene una propiedad que se llama **orden z**. Es un número y los objetos con un orden Z superior se mostrarán frente a los objetos con un orden Z inferior. El orden Z puede ser cualquier número y también puede ser negativo. - -Aquí, puede cambiar el orden Z de los arbustos y las nubes para establecerlos como negativos, de modo que el carácter del jugador (con un orden Z que debería ser 1) se muestre delante de ellos. Para ello, selecciona las instancias en la escena. Puede seguir presionando MAYÚS en su teclado para seleccionar más de un objeto: - -![](/ gdevelop5/ tutoriales/ platform-game/ screen_shot_2017-09-27_at_22.59.47.png) - -Luego, cambie el valor del campo "Orden Z" en el * Panel de propiedades * a la izquierda. Por ejemplo, -2 (o cualquier número negativo) se asegurará de que estos objetos estén detrás del jugador: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_23.00.40.png) - -Ahora tenemos el resultado visual que queríamos: - -![](/ gdevelop5/ tutoriales/ platform-game/ screen_shot_2017-09-27_at_23.01.44.png) - -¡Lanza una vista previa para comprobar que todo funciona bien! - -## Siguiente paso: agregue monedas y muestre cuántas se han recolectado - -Agreguemos un objetivo para el jugador: ¡recoger tantas monedas como sea posible! Para hacer esto, usaremos eventos para recordar la puntuación del jugador, reproducir sonidos y eliminar las monedas recolectadas. - -Lea **[la siguiente parte del tutorial aquí](/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins)**! diff --git a/docs/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md b/docs/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md deleted file mode 100644 index 6935b19138..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: Añadir una plataforma de salto 'a través' ---- -# Añadir una plataforma de salto 'a través' - -!!! note - - Esta página es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game) , pero lo aprendido puede ser aplicado a cualquier otro juego de plataformas! - -Hasta ahora, todas las plataformas son solidas, no puedes saltar sobre ella si estas debajo de la misma. Creemos una plataforma que permita este comportamiento. - -## Crear el objeto nuevo - -Crea el nuevo objeto`Sprite` , añade la animación y elige la imgen denominada`bridgeLogs`: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.40.34.png) - -Renombra el objeto a `SmallBridge`: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.42.01.png) - -## Hacer que la plataforma sea 'salta-a-traves'. - -Hasta ahora, el objeto no es considerado una plataforma. Edita el objeto y cambia a la pestaña `Comportamientos`. Añade el comportamiento denominado Plataform y finalmente elige "Jumpthru platform" en la lista cuando hagas click en el campo "Type": - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.44.30.png) - -## Previsualiza! - -Previsualiza el resultado y observa como puedes saltar sobre el puente! - -![](/gdevelop5/tutorials/platform-game/jumpthru.gif) - -No olvides guardar los cambios!! - -## Next step: add backgrounds objects - -The level is still quite empty. Let's add some background objects to make it more pretty. -We'll then add coins to collect and enemies! - -➡️ Lee **[Añadir objetos de fondo](/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects)**! \ No newline at end of file diff --git a/docs/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md b/docs/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md deleted file mode 100644 index 822caaf50e..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md +++ /dev/null @@ -1,196 +0,0 @@ ---- -title: Crea monedas y muestra la cantidad de monedas recolectadas. ---- -# Crea monedas y muestra la cantidad de monedas recolectadas. - -!!! note - - Esta página es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), pero también se puede reutilizar para cualquier otro juego, solo reproduce los elementos. - -En el juego de plataformas que hemos creado hasta ahora, el jugador tiene mucho que hacer: vamos a poner monedas para que el jugador las recoja. - -## Añadir monedas - -Comienza creando un nuevo objeto "Sprite" con una animación con la imagen "coinGold": - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.29.30.png) - -Puedes llamar a este objeto "Moneda". - -A continuación, puede poner varias monedas en el nivel. Como necesitarás varias monedas, es una buena idea usar la función "arrastrar y clonar" del editor de escenas: selecciona una moneda, sigue presionando Ctrl (o Cmd en macOS) y arrastra la moneda. Esto lo duplicará. - -Si mantiene presionada la tecla Mayús mientras se mueve, también podrá mover la moneda creada en el mismo eje que la original. - -![](/gdevelop5/tutorials/platform-game/clone.gif) - -## Eliminar monedas cuando se recogen - -Ahora, destruyamos el objeto de la moneda cuando el jugador los toca. Agrega un nuevo evento y agrega una condición. Elija la condición para probar una colisión entre dos objetos. El primer objeto debe ser "Jugador" y el segundo objeto debe ser "Moneda": - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.36.12.png) - -A continuación, puede agregar una acción que eliminará la moneda. La acción solo utilizará los objetos de Monedas que se hayan recogido en la primera condición, por lo que solo se eliminará la moneda que chocó con el jugador. - -Agregue la acción "Eliminar un objeto" (de la categoría "Acciones comunes para todos los objetos\> Objetos") e ingrese Moneda como el objeto a eliminar: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.41.46.png) - -El evento debería verse así: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.42.34.png) - -Ahora puede iniciar una vista previa y ver que la moneda se elimina cuando el jugador corre sobre ellos. - -## Reproducir un sonido al recoger una moneda - -Para hacer que el juego se sienta más dinámico y gratificante, vamos a reproducir un sonido cuando se recoge una moneda. - -Es fácil: ya tenemos un archivo de sonido llamado `coin.wav` en nuestra carpeta del juego (si ese no es el caso, puedes [descargar los recursos aquí](http://www.compilgames.net/dl/PlatformerTutorialResources.zip) y extraerlos en la carpeta del juego). - -Es algo que no hemos hecho antes: podemos agregar varias acciones para ejecutar en un solo evento. Para reproducir un sonido, agreguemos otra acción al evento que usamos para eliminar las monedas. Haga clic en 'agregar una acción' justo debajo de la acción "Eliminar objeto Moneda" y agregue la acción llamada 'Reproducir un sonido', desde la categoría 'Audio'. De esta manera, no solo eliminaremos la moneda sino que también estaremos reproduciendo el sonido. - -Hay un montón de parámetros disponibles para reproducir un sonido. El primero y más importante es el archivo de sonido a reproducir. Haga clic en el campo y luego en "Elegir un nuevo archivo de audio". - -![](/gdevelop5/tutorials/platform-game/choose-new-audio-file_2x.png) - -Elija el archivo `coin.wav` que descargó con el resto de los recursos y que puso en la carpeta del juego: - -![](/gdevelop5/tutorials/platform-game/choose-coin-wav_2x.png) - -Deje los otros parámetros como están (es decir, no repita el sonido, el volumen a `100` y la velocidad predeterminada para el sonido). - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.50.22.png) - -¡Eso es todo! Simplemente inicia la vista previa y el sonido se reproducirá cada vez que recojas una moneda - -## Incrementa un puntaje usando variables - -Vamos a utilizar una variable para actualizar y recordar la puntuación del jugador. - -Las variables son contenedores que podemos usar para almacenar y recordar cierta información, como números y cadenas (texto). En GDevelop hay diferentes tipos de variables: - -- __ **Las variables de objeto **__ son variables privadas, específicas de cada instancia de un objeto. Esto significa que cada instancia puede almacenar sus propios valores, sin que se compartan con las otras instancias. Puede, por ejemplo, ser útil si queremos cambiar la vida de cada enemigo. -- __ **Las variables de escena **__ (las más utilizadas) son variables asociadas a una escena. Esto significa que sus valores no se comparten con otras escenas en nuestro juego. Es útil almacenar información relevante solo para la escena reproducida actualmente. Por ejemplo, la vida del jugador o una puntuación. -- __ **Las variables globales **__, como sugiere su nombre, son globales en todo el juego. Los valores se comparten con todas las escenas en todo el juego. Es útil si nos gustaría almacenar información que deseamos compartir entre todas las escenas, como la cantidad de bala o la cantidad de dinero que tiene el jugador. - -La variable que vamos a usar es una variable de escena y se llamará "Score". - -Añadamos una acción en el último evento que hemos realizado. Elija la acción `Variables\> Valor de una variable`. Esta acción se utilizará para agregar 100 a la variable Score, así que complete el parámetro como se muestra aquí: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.52.43.png) - -En GDevelop no necesitamos declarar variables antes de usarlas, podemos usar cualquier variable sin declararla simplemente nombrándola en una acción o condición. En caso de que estemos usando una acción en una variable que no está declarada, GDevelop la creará automáticamente para nosotros, con el valor predeterminado de '0' (o un texto vacío) después de ejecutar la acción en la variable para evitar cualquier problema. . - -Pero, para tener una mejor organización de su juego, es una buena práctica declarar variables antes de usarlas. De esta manera, es más fácil encontrar qué variables estás usando en tu juego. También puede cambiar su valor predeterminado si desea que sea diferente a 0. Para declarar una variable, haga clic en el botón "..." a la derecha del nombre de la variable. Esto muestra la lista de variables: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.54.46.png) - -La lista se muestra y está vacía, ya que no se declaró ninguna variable todavía: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.55.27.png) - -Puede hacer clic en el botón "+" para agregar una variable e ingresar "Puntuación" como su nombre: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.56.23.png) - -Recuerda que esto es totalmente opcional, solo una buena práctica. - -## Mostrar una puntuación usando un objeto de texto - -### Añadir objeto de texto - -Por ahora, la puntuación de la variable no se puede ver, por lo que no podemos verificar que la puntuación haya aumentado (podríamos, utilizando el [Debugger](/gdevelop5/ interface/ debugger), pero el jugador no puede verla). - -Necesitamos usar un objeto de Texto para mostrar el valor de la variable Puntuación. Añadamos un nuevo objeto. Esta vez, elija `Texto` cuando se le pregunte qué tipo de objeto crear: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.58.27.png) - -Cambie entonces las propiedades del objeto para que el texto sea negro y más grande que el tamaño predeterminado: ![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.09.28.png) - -A continuación, puede colocar el objeto en la escena: ![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.20.23.png) - -### Cambiando la capa de texto - -Si inicia el juego, puede ver que el texto de Puntuación se muestra con el resto de los objetos y su posición no está fija en la pantalla. Podemos resolver este problema fácilmente usando una capa encima de la capa base. Abre el editor de capas usando este botón: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.34.33.png) - -Se muestra la lista de capas, con solo la capa base por ahora: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.35.00.png) - -Haga clic en el botón `+` para agregar una capa. Introduzca "UI" para su nombre (UI significa interfaz de usuario). - -Finalmente, mueva el objeto de texto a esta nueva capa seleccionando la instancia de texto en la escena y en las propiedades de la izquierda, seleccione la capa de interfaz de usuario: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.40.44.png) - -Asegúrese de que el objeto se muestra en algún lugar visible en la pantalla, por ejemplo, colóquelo en la parte superior izquierda. El rectángulo negro en el editor de escenas representa el tamaño de la ventana: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.42.46.png) - -### Mostrar el valor de puntuación - -Ahora que tenemos un texto en nuestra pantalla, es hora de que muestre el valor de la variable Score. Añadir un nuevo evento. Este evento no tendrá ninguna condición, lo que significa que la acción se ejecutará cada vez que se presente un cuadro del juego en la pantalla (aproximadamente 60 veces por segundo). - -Agregue una acción y elija la que se encuentra en la categoría "Objeto de texto" "Modificar el texto". - -Para el primer parámetro, elija el objeto "Score", ya que es este objeto el que queremos actualizar. Para el segundo parámetro, elija el operador "= (establecido en)" (queremos configurar el texto en un nuevo valor). Finalmente, el último parámetro representa el nuevo contenido del texto. Es una expresión de cadena que GDevelop evaluará durante el juego cuando se ejecute la acción. - -Podemos especificar un texto escribiéndolo entre comillas (como esto: "Hello World"). Pero también podemos usar algo llamado expresiones. Una expresión es una función que está devolviendo un cierto valor. En este caso, necesitamos el valor de la variable Puntuación y queremos usar ese valor para actualizar el contenido del objeto Texto. Las expresiones son un tema más avanzado, por lo que no lo profundizaremos por ahora. - -Lo que necesita saber por ahora es que para obtener el valor de una variable de escena, necesitamos usar la expresión "Variable (variableName)". Y como es una variable numérica pero necesitamos el valor como texto, necesitamos convertir el valor devuelto de esta expresión en una cadena. Podemos hacerlo usando otra expresión llamada "ToString (valueToConvert)". Por lo tanto, la expresión real debe verse como esta "ToString (Variable (Score))". - -Finalmente, podemos agregar esta expresión después de un texto estático usando el operador "+":" Score: "+ ToString (Variable (Score))" (note las comillas dobles que rodean el texto). - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.58.12.png) - -Muchas otras funciones y expresiones están disponibles en GDevelop. Cuando se combinan, se crean acciones poderosas que hacen un trabajo avanzado. Puede encontrar más expresiones en el editor de expresiones haciendo clic en el icono azul al lado de los campos de valor: - -![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -Aquí está el evento final: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.59.31.png) - -Puedes previsualizar el juego, ver que la puntuación se muestra y se actualiza cuando recojas una moneda. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_19.00.24.png) - -## Bonus: asegurarse de que recoger dos monedas al mismo tiempo funcione - -Es posible que haya notado que si recolecta dos monedas al mismo tiempo (por ejemplo, si dos monedas se superponen), el puntaje solo aumenta una vez. Por ejemplo, si cada moneda vale 100 puntos y acumulas 2 monedas, la puntuación solo aumentará a 100 en lugar de 200. La solución para esto es fácil y es algo que aún no hemos visto: vamos a utilizar un evento llamado para cada objeto. Lo que haremos es decirle al motor que por cada moneda que se recolectó, agregue 100 a la puntuación. - -Para comenzar, haga clic en el botón + en la barra de herramientas del Editor de eventos: - -![](/gdevelop5/tutorials/platform-game/gdevelop_5_2018-05-30_11-30-39.png) - -Seleccione "para cada objeto": - -![](/gdevelop5/tutorials/platform-game/2018-05-30_11-33-09.png) - -Esto agregará un evento en la parte inferior de la página del evento. Arrástrelo hacia arriba y conviértalo en un sub-evento de la colisión del jugador con la moneda: - -![](/gdevelop5/tutorials/platform-game/click-to-choose-4.png) - -Haga clic para elegir un objeto y elija el objeto Coin. - -![](/gdevelop5/tutorials/platform-game/click-to-choose2.png) - -Ahora que ha agregado el objeto al subevento, movamos las acciones hacia abajo al subevento (para que las acciones se repitan para cada moneda elegida por condiciones). - -Desplácese sobre la primera acción, haga clic con el botón derecho y córtela, luego desplace el cursor sobre la acción en el subevento, haga clic con el botón derecho y pegue. Haz esto por las otras dos acciones. También puede arrastrar y soltar acciones, que es más rápido que cortarlas y pegarlas. - -![](/gdevelop5/tutorials/platform-game/move-to-sub1.png) - -Así es como debería verse el evento final: - -![](/gdevelop5/tutorials/platform-game/move-to-sub2.png) - -Ahora ejecute el juego y verá que si reúne dos monedas al mismo tiempo, la puntuación se actualizará correctamente si ejecuta dos monedas al mismo tiempo. - -## Siguiente paso: agregar enemigos - -Todos los juegos de plataformas vienen con enemigos que debes evitar o matar al saltar sobre ellos. Agreguemos algunos y veamos cómo podemos hacer que se muevan. - -Leer **[Agregar enemigos](/es/gdevelop5/tutorials/platform-game/6-add-enemies)**! diff --git a/docs/es/gdevelop5/tutorials/platform-game/6-add-enemies.md b/docs/es/gdevelop5/tutorials/platform-game/6-add-enemies.md deleted file mode 100644 index c5a50e1e34..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/6-add-enemies.md +++ /dev/null @@ -1,150 +0,0 @@ ---- -title: Agrega enemigos a tu juego de plataformas ---- -# Agrega enemigos a tu juego de plataformas - -!!! note - - Este tutorial es parte del [tutorial de plataformas](/gdevelop5/tutorials/platform-game/start), ¡pero también puedes reutilizarlo para cualquier otro juego donde tengas enemigos! - -Añadamos un enemigo que se moverá hacia la izquierda y hacia la derecha en las plataformas. El jugador puede destruirlo saltando sobre él. - -## Crea y agrega el objeto enemigo a tu escena - -Crea un nuevo objeto "Sprite". Agrega las imágenes "slimeWalk1.png" y "slimeWalk2.png" a la primera animación y llama a esta animación "Caminar". - -Dado que nuestro enemigo se moverá constantemente, no necesitamos una animación inactiva ni ninguna otra animación. - -Establezca la animación en bucle haciendo clic en el botón "No hacer bucle", para voltearlo a "Bucle" y configure su velocidad de animación en "0.5" con el ícono del reloj. - -La ventana debería verse así: ![](/gdevelop5/tutorials/platform-game/gd5_platormertut_slimeeditor.png) - -Confirme los cambios haciendo clic en el botón "Aplicar". - -A continuación, cambie el nombre del objeto a `Slime`. Agrega un objeto de limo a la escena, asegurándote de que quede justo en la parte superior de una plataforma. - -Si ejecutamos la vista previa ahora, no hace mucho. Simplemente se sienta en silencio en la parte superior de la plataforma y reproduce la animación de caminar. Vamos a hacer que se mueva. - -## Mueve al enemigo a izquierda y derecha - -En este tutorial, nuestro limo se moverá hacia la izquierda y hacia la derecha. Vamos a hacer esto usando objetos invisibles: cuando el El limo tocará uno de los objetos, invertirá su dirección. - -Añadamos dos objetos que actuarán como delimitadores. Crea un nuevo objeto sprite y agrega la imagen "Left.png". Nombra este objeto `left`. Luego, crea un objeto más y agrega la imagen "Right.png". Nombre este objeto "correcto". - -Finalmente, coloque el objeto llamado "izquierdo" en el lado derecho de la plataforma y el objeto llamado "derecho" en el lado izquierdo de la plataforma. - -Debe tener un aspecto como este: ![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_slimedirection.png) - -La idea es que si el limo choca con el objeto llamado "izquierda", establecemos su dirección para moverse hacia la izquierda. Y si está chocando con el objeto llamado derecha, establecemos su dirección para que se mueva hacia la derecha. - -Primero, vamos a crear una variable de objeto llamada "dirección" con el valor predeterminado "izquierda". Vamos a utilizar esta variable para cambiar la dirección. - -Para agregar una variable de objeto a nuestro limo, haga clic derecho en el objeto de limo en la lista de objetos y elija "Editar variables de objeto". - -Se muestra una ventana vacía. Contiene la lista de variables de objeto que hemos declarado para nuestro objeto de limo. Está vacío ahora como hemos declarado ninguno. Para agregar una variable de objeto, haga clic en el signo más en la esquina inferior derecha. - -Esto agrega una variable llamada "Variable" en la ventana. Haga clic en el nombre y cámbielo a "dirección". Haga clic en el campo de valor y escriba "izquierda". La ventana debería verse así: - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable2.png) - -Confirme los cambios haciendo clic en el botón Aplicar. - -Ahora tenemos una variable de objeto llamada "dirección" con el valor predeterminado "izquierda". - -Vamos a usar esta variable para hacer que nuestro limo se mueva. - -En el editor de eventos, agregue un evento en blanco y agregue una condición para verificar el "Texto de la variable de un objeto". Puede encontrarlo en "Condiciones comunes para todos los objetos\> Variables\> Texto de la variable de un objeto". - -En los parámetros, para el campo objeto seleccione "Slime". Para el campo Variable, seleccione "dirección" (o escriba "dirección" con el teclado). Para Signo de la prueba, seleccione "igual a" y finalmente, para el valor, ingrese "izquierda". **No te olvides de poner el valor entre comillas**. - -La ventana debería verse así: ![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable3.png) - -Presione OK para confirmar y agregar la condición al evento. - -Ahora vamos a agregar la acción para mover el limo a la izquierda. - -Haga clic en "Agregar acción" y seleccione "Agregar una fuerza (ángulo)" en "Condiciones comunes para todos los objetos -\> Movimiento -\> Agregar una fuerza (ángulo)". Recuerde, siempre puede usar el cuadro de búsqueda para encontrar lo que está buscando. - -En los parámetros, para el campo de objeto, seleccione "Limo" de nuevo. Para el ángulo, ingrese "180" grados (que es el lado izquierdo en el sistema de coordenadas GDevelop) y para velocidad ingrese 100. - -La ventana debería verse así: ![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeleft.png) - -Presione OK para agregar la condición al evento. - -Si ejecutamos la vista previa ahora, nuestro limo debería comenzar a moverse hacia la izquierda, pero es probable que note que sigue moviéndose y nunca cambie de dirección. - -Esta vez vamos a comprobar la colisión entre el objeto Slime y el objeto llamado "derecho" y vamos a cambiar el valor de la variable de dirección a "derecho". - -Agregue un evento en blanco y agregue una condición para verificar la colisión entre el Limo y el objeto llamado "derecho". Ya deberías saber cómo hacer esto. A continuación, agregue una acción para "Modificar el texto de una variable de un objeto". - -En los parámetros, para el objeto seleccione Limo, para la variable seleccione "dirección", para el operador, elija "= (establecer en)". Finalmente, para valor ingrese "derecha". No olvides las comillas dobles. - -La ventana debería verse así: ![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_checkobjectvariable.png) - -Si ejecutamos la vista previa ahora, puede observar que no ocurre nada porque no le dijimos a GDevelop qué hacer si la dirección es "correcta". - -Terminemos agregando los mismos dos eventos similares, pero invirtiendo "izquierda" por "derecha" y cambiando la dirección. Cuando haya terminado, los eventos deberían tener este aspecto (menos las acciones para voltear el sprite que agregaremos después): - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeevent1.png) - -Ahora, si inicias una vista previa del juego, el limo debería moverse hacia la izquierda y hacia la derecha, pero se mantendrá orientado hacia la izquierda cuando te muevas. Vamos a voltear su orientación. - -En la lista de acciones en el evento donde hacemos que el limo se mueva hacia la izquierda, agregue una acción para voltear el sprite horizontalmente. Para el objeto, seleccione "Limo" y para el valor, seleccione "No" (ya que no queremos que el objeto se invierta al moverse a la izquierda). - -Repita lo mismo, pero esta vez para el evento utilizado para mover el limo a la derecha. Seleccione "Sí" esta vez porque queremos voltear el objeto cuando se está moviendo hacia la derecha. - -El evento debería verse así: - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeevent2.png) - -Ahora el limo se mueve hacia la izquierda y hacia la derecha y también tiene la orientación correcta cuando se mueve. - -## Haz que el jugador mate al enemigo - -Hagamos que el jugador destruya el limo cuando salta sobre él. - -Agregue un evento en blanco con una condición para verificar si hay una colisión entre el jugador y el limo. Agrega una acción para eliminar el limo. Esto es como lo que [hicimos con las monedas](/gdevelop5/ tutoriales/ plataforma-juego/ 5-agregar-monedas-y-número-de-monedas-recolectadas) antes, pero esta vez con el Limo. - -Si ejecutamos esto ahora, el limo debe eliminarse tan pronto como chocemos con él, pero esto no es lo que queremos. Queremos eliminarlo solo si el jugador salta encima de él. - -Para hacer eso, agregue una condición más a nuestro evento: esta vez verifique si el jugador se está cayendo. - -Ahora, si ejecutamos una vista previa, nuestro limo debe eliminarse cuando el jugador salta sobre el limo. - -Todavía no es perfecto, ya que el jugador cae sobre el limo y el limo desaparece sin que el jugador salte. - -Para hacer eso, agrega una acción más al evento. Elija esta vez la acción llamada "Permitir saltar de nuevo" (para el objeto "Jugador"). Luego, agregue otra acción llamada "Simular la acción de presionar la tecla de salto" para que salte (esto parecerá que el jugador está rebotando). Puede encontrar ambas acciones en la categoría "Comportamiento de Platformer". - -En este punto el evento debería verse así: - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutoriual_killtheslime.png) - -Ahora, si ejecuta la vista previa y salta en la parte superior del limo, el jugador debe rebotar suavemente en él y el limo desaparecerá. - -## Haz que el enemigo mate al jugador - -Ahora hagamos la lógica inversa: mata al jugador si el enemigo lo toca. - -Agregue un evento en blanco y agregue la condición para verificar la colisión entre el jugador y el limo. Luego agrega una acción para eliminar el jugador. - -Esto no va a funcionar, ya que podríamos eliminar el reproductor antes de que podamos eliminar el limo, o podríamos eliminarlo antes de que podamos eliminar el jugador. - -Para evitar esto, agregue una condición más a nuestro evento, verificando si el jugador está en el piso. - -Ahora, si ejecutamos la vista previa, deberíamos poder matar el limo saltando sobre él y el limo debería poder matar al jugador si el jugador está en el suelo en el momento de la colisión. - -## Ocultando los delimitadores de la plataforma. - -Lo último que debemos hacer ahora es ocultar los objetos de flecha "izquierda" y "derecha". Para hacerlo, agregue un evento con la condición 'Al principio de la escena' (que se activará solo una vez cuando comience la escena) y la acción para "ocultar el objeto a la izquierda" y "ocultar el objeto a la derecha" . - -Los eventos de este tutorial hasta ahora deberían verse así: - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_enemycompletevent.png) - -Ahora, si ejecuta una vista previa, el objeto izquierdo y derecho con la flecha debe estar oculto, el limo debe moverse hacia la izquierda y la derecha constantemente. Podemos matar el cieno saltando sobre él y el limo debería poder matar al jugador cuando colisiona con él mientras está en el suelo. - -## Siguiente paso: agregar puntos de control - -Por ahora, la "muerte" del jugador es un poco brutal: simplemente la eliminamos. Hagamos que vuelva a aparecer en el último punto de control que cruzó. Los puntos de control son esenciales en un juego de plataformas si no quieres forzar a tu jugador a comenzar de nuevo desde el principio cuando muera (lo que puede ser interesante, ¡pero también frustrante!). - -Lee el siguiente tutorial **[Puntos de control](/es/gdevelop5/tutorials/platform-game/7-checkpoints)**! diff --git a/docs/es/gdevelop5/tutorials/platform-game/7-checkpoints.md b/docs/es/gdevelop5/tutorials/platform-game/7-checkpoints.md deleted file mode 100644 index fa04f6af15..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/7-checkpoints.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: Agregar puntos de control a tu juego ---- -# Agregar puntos de control a tu juego - -Terminamos el tutorial anterior eliminando el jugador cuando choca con el enemigo. Esta no es la forma en que funciona en la mayoría de los juegos. Generalmente, en lugar de eliminar al jugador, un juego tendrá un "punto de control". El "punto de control" guarda el estado del juego y el estado del jugador en variables. Luego, si el jugador muere, el juego y / o el jugador se reinician desde el "punto de control". - -Para este tutorial, guardar el estado de todo el juego y el estado del jugador puede ser un poco demasiado avanzado. En cambio, cuando un jugador colisiona con un objeto de "punto de control", vamos a almacenar la posición del objeto de "punto de control" dentro de las variables. Además, en lugar de eliminar al jugador, vamos a restablecer su posición a lo que esté almacenado dentro de las variables. - -### Crear un objeto de punto de control - -Empecemos creando un nuevo objeto sprite en nuestro juego. Llámalo "punto de control". Puede ser cualquier imagen de sprite .jpg o .png que tengas. Voy a usar un sprite de cactus. - -![](/gdevelop5/tutorials/platform-game/checkpoint-object.png) - -A continuación, agregue el objeto sprite a la escena. Su imagen de sprite puede ser demasiado grande o demasiado pequeña. Utilice los manillares en el sprite para cambiar el tamaño de la imagen. En mi caso, será el objeto sprite de cactus como se muestra arriba. Colóquelo en la escena donde desee tener un "punto de control". Puedes agregar tu objeto sprite a múltiples lugares en tu escena. De esa manera, puede establecer múltiples "puntos de control". - -### Añadir eventos - -Ahora que tenemos los objetos de "punto de control" en nuestra escena, agreguemos los eventos. Comenzamos con una condición para verificar si hay una colisión entre el "jugador" y el "punto de control". Si ocurre la colisión, almacenamos las posiciones X e Y del objeto sprite "checkpoint" en una variable de escena llamada checkpointX y checkpointY. - -![](/gdevelop5/tutorials/platform-game/checkpoint_Var.png) - -![](/gdevelop5/tutorials/platform-game/checkpoint_event.png) - -Arriba, estamos utilizando _expresiones_ para obtener las posiciones X e Y del objeto de "punto de control". Esto se hace de manera similar a la forma en que actualizamos el texto de puntuación. Puede encontrar más _expresiones_ en el _editor de expresiones_ haciendo clic en el icono azul al lado de los campos de valor: - -![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -Cuando hace clic en el icono azul, puede buscar todas las expresiones disponibles ordenadas en categorías. - -![](/gdevelop5/tutorials/platform-game/expression-editor.png) - -La condición ahora almacena la posición X e Y del objeto "punto de control" con el que nuestro objeto "Jugador" ha colisionado. Entonces, en lugar de eliminar el objeto sprite "Player", establecemos sus posiciones X e Y usando las variables. - -![](/gdevelop5/tutorials/platform-game/expression_playerPosition.png) - -![](/gdevelop5/tutorials/platform-game/checkpoint-event2.png) - -En el ejemplo anterior, estamos usando otro conjunto de expresiones para obtener el valor de las variables almacenadas y pasarlas a la posición "Jugador". - -### Resolviendo errores - -En caso de que sigas el ejemplo y también hayas seleccionado el cactus para el "punto de control", ¡también puedes notar que acabamos de crear un error! Nuestro personaje jugador es más alto que el cactus. Cuando establecemos la posición Y del jugador, en realidad establecemos la posición demasiado baja y nuestro jugador se queda atascado en el suelo. 8-o - -![](/gdevelop5/tutorials/platform-game/checkpoint_bug.png) - -En este caso particular, podemos resolver fácilmente el problema escalando el sprite de cactus en el eje Y para que sea tan alto o incluso más alto que el jugador. Ya que, a estas alturas, ya sabe cómo escalar / cambiar el tamaño de un sprite, veamos cómo hacerlo utilizando un enfoque un poco más desafiante, pero también más preciso. Usemos las matemáticas para solucionar el problema. - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug-fix.png) - -Estoy usando una solución más compleja para mostrarle lo poderosas que pueden ser las expresiones. Mi solución es establecer la posición Y del jugador usando una variable. Yo, entonces, resto la altura del "punto de control" de la altura del "jugador". De esta manera, obtengo la diferencia en altura de jugador y "punto de control". Puedo terminar la solución restando esa diferencia de lo que sea que devuelva la variable. - -Una solución menos difícil, pero una que todavía use matemáticas, sería restar, digamos, 30, del valor de la variable. - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug-fix-simple.png) - -Al utilizar la solución más fácil junto con la prueba y el error, puede encontrar el número que funcione mejor. Sin embargo, para obtener un valor exacto, te he dado un ejemplo más complicado de qué usar. - -También podría preguntarse por qué estoy restando de la Y en lugar de agregar el valor a la Y. El problema es que la altura del "punto de control" es más baja que la del "Jugador". Eso significa que necesito poner el jugador más alto. Observe que los valores en el eje Y aumentan de arriba a abajo. El eje Y comienza en 0 en la parte superior. Aumenta a medida que se mueve hacia abajo. Técnicamente, necesito un valor más bajo para mover algo más alto. :-) - -![](/gdevelop5/tutorials/platform-game/2d-coordinates.png) - -La mayoría de los motores 2D funcionan de esta manera. Comenzamos en la esquina superior izquierda que es la coordenada 0,0. Aumentamos el primer número de coordenadas que va a la derecha a medida que seguimos en el eje X. y aumentamos el segundo número de coordenadas que va hacia abajo en el eje Y. Puedes ver cómo se aplica esto en la imagen de arriba. - -Ahora, si ejecutamos una vista previa y nuestro jugador muere, su posición se establecerá en los últimos valores guardados del "punto de control". ¡Pero hay un error más! Si nuestro jugador muere antes de chocar con cualquier "punto de control", las variables devolverán un valor de 0, por lo que nuestro jugador reaparecerá / reaparecerá en la posición 0,0, que es la esquina superior izquierda, como se indica en la gráfica de arriba. . - -Podemos solucionar fácilmente este problema configurando los valores predeterminados para que los valores del punto de control sean la posición inicial del jugador al comienzo de la escena. - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug2-fix.png) - -Entonces, cuando nuestra escena comienza, es de esperar que ya tengamos a nuestro jugador en la posición y simplemente obtengamos la posición del jugador y almacenemos la posición del jugador como la posición de "punto de control". En caso de que el jugador muera antes de colisionar con cualquiera de los puntos de control, usamos las variables de posición originales del jugador para establecer su posición al comienzo de la escena. - -### Mejorar el sistema - -Usando lo que ha aprendido hasta ahora, puede intentar agregar texto para mostrar un mensaje si llegamos a un punto de control. Entonces quizás, reproduzca una animación para hacer que el cactus salte o algo más para que sea más interesante. diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png deleted file mode 100644 index a91e707765..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png deleted file mode 100644 index 44fe784b77..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png deleted file mode 100644 index 54d5bc47e2..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png deleted file mode 100644 index 665e03d58f..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png deleted file mode 100644 index c12966ccf2..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png deleted file mode 100644 index ea9bf714e4..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png deleted file mode 100644 index 9fbd4eb8b2..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png deleted file mode 100644 index 2d097dbde3..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png deleted file mode 100644 index 539be5828c..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png deleted file mode 100644 index 7f2828ebf3..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png deleted file mode 100644 index 9fabc4f6da..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png deleted file mode 100644 index 7490dccc92..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png deleted file mode 100644 index 58d0c5abe3..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png deleted file mode 100644 index 5f0a24f8f0..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png deleted file mode 100644 index ab1a29ba9b..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png deleted file mode 100644 index 21a572d4b5..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png deleted file mode 100644 index 07c7591721..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png b/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png deleted file mode 100644 index 1e8b7b1dca..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platform-game/index.md b/docs/es/gdevelop5/tutorials/platform-game/index.md deleted file mode 100644 index e285699344..0000000000 --- a/docs/es/gdevelop5/tutorials/platform-game/index.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: Cómo hacer un juego de plataformas ---- -# Cómo hacer un juego de plataformas - -Este tutorial te ayudará a comenzar a utilizar **GDevelop**: Crearás un juego de plataformas muy simple donde el jugador puede saltar sobre plataformas y recolectar monedas. - -Tenga en cuenta que puede leer la página [Empezando](/es/gdevelop5/ getting_started) para obtener una descripción general del software: explica los conceptos principales y describe la interfaz de GDevelop. - -## Descargar GDevelop - -Si no tiene **GDevelop 5**, descárguelo del \[sitio web oficial\](). Está disponible para Windows, macOS y Linux. - -Siempre descargue GDevelop desde esta página para asegurarse de tener la última versión. Instalar (o extraer) GDevelop y lanzarlo. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_224946.png) - -## Crear un nuevo juego - -Haga clic en `Crear un nuevo proyecto` en la página de inicio. En la ventana, elija una carpeta para su proyecto y seleccione `Proyecto Vacio o Empty Game ` para comenzar un juego nuevo desde cero. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_230624.png) - -Para hacer nuestro juego, necesitaremos activos que podamos usar (el personaje del jugador, algunas plataformas, elementos para recopilar ...). Puede descargar recursos aquí: . - -Una vez que haya descargado este archivo, extraiga su contenido en la carpeta donde creó el proyecto. - -## Añadir una escena - -Las escenas son parte de tu juego. Normalmente, cada pantalla diferente de tu juego es una escena: el menú principal, el menú de pausa y los niveles son escenas. - -Las escenas contienen objetos, que se muestran en la pantalla. Estos objetos se pueden poner en escena para crear los niveles (estos objetos se llaman "instancias"). Las escenas también contienen los eventos que se ejecutan para animar la escena. - -En el administrador del proyecto que se abre a la izquierda, haga clic en el botón `+` debajo de "Escenas": - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_231357.png) - -Una nueva escena, llamada "Nueva escena", se agrega a la lista. Haga clic en él para abrirlo. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232300.png) \## Crear el objeto jugador - -El jugador controlará un personaje que puede saltar y moverse en plataformas. Vamos a crear este objeto. - -A la derecha, puedes ver un panel llamado "Objetos". Haga clic en el botón `+` para agregar un objeto. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_232301.png) - -Aparecerá una ventana que muestra diferentes tipos de objetos entre los que puede elegir. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_233506.png) - -Diferentes tipos de objetos proporcionan características específicas. Para la mayoría de nuestros objetos, utilizaremos los objetos Sprite, que son objetos animados que se pueden usar para muchos elementos (jugador, plataformas, enemigos, elementos ...). - -Haga clic en `Sprite` en la lista. El nuevo objeto se agrega a la escena y el editor de objetos se abre: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234534.png) - -El objeto está vacío por ahora. Los objetos Sprite están compuestos de animaciones, y cada animación puede contener una o más imágenes. ¡Vamos a añadir una animación! Haga clic en el botón `+`. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_234828.png) - -La animación se agrega pero sigue vacía sin imágenes. Para agregar una imagen, haga clic en `+` en la miniatura en blanco. - -Elija la imagen llamada `p1_stand` en la carpeta del proyecto. La imagen se agrega al objeto: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235052.png) - -Ahora puede cerrar el editor haciendo clic en el botón "Aplicar" en la esquina inferior derecha. - -## Poner el objeto en escena. - -Para mostrar el jugador en nuestro nivel, lo colocamos en la escena. Cada objeto que agregamos a la escena se llama una "instancia" del objeto. - -Nuestra instancia de jugador será única ya que solo tendremos uno en nuestro nivel, pero otros objetos (como plataformas, monedas, enemigos ...) pueden tener múltiples instancias viviendo en la escena. - -Para agregar el objeto, simplemente haga clic en él en la lista. Luego se selecciona y se muestra sobre un fondo azul: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-18_235711.png) - -Luego puede arrastrar el objeto a cualquier lugar de la escena para agregar la instancia de este objeto: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000121.png) - -## Dale al objeto un nombre propio - -Para que sea más fácil referirse a nuestro objeto, asígnele un nombre en lugar de usar el nombre predeterminado. Haga clic derecho en él (o haga clic en el ícono `⋯`) y elija renombrar. Luego puede escribir "Jugador" y hacer clic en cualquier lugar de la pantalla o presionar la tecla Intro para cambiar el nombre del objeto. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_000719.png) - -## Añadir plataformas - -El nivel todavía está vacío por ahora sin ninguna plataforma. Vamos a añadir algunos. - -Cree un nuevo objeto haciendo clic en el botón `+` en la lista de Objetos. En esta ocasión, elija `Tiled Sprite` cuando se le pregunte por el tipo de objeto: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001413.png) - -Se abre el editor de objetos. Es un poco diferente en comparación con el editor del objeto Sprite, ya que los objetos Tiled Sprite no están animados. Haga clic en `Seleccionar una imagen` y luego en` Elegir una nueva imagen`. Esta vez, elige la imagen llamada `grassHalfMid`. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_001719.png) - -Cierre el editor haciendo clic en el botón "Aplicar" en la esquina inferior derecha. Haga clic en el objeto en la lista para seleccionarlo, y haga clic en la escena para colocarlo en el nivel: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002009.png) - -El objeto se agrega a nuestra escena pero es muy pequeño. Haga clic en él y use los controladores para cambiar el tamaño para que se vea como una plataforma: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.00.01.png) - -Además, no olvide cambiar el nombre del objeto para que se llame "GrassPlatform" en lugar del nombre predeterminado. - -### Tiempo para guardar! - -No perdamos lo que hemos hecho hasta ahora: en el menú "Archivo" de la aplicación, haga clic en "Guardar" (o presione Ctrl + S / Cmd + S) para guardar los cambios. - -## Añadir comportamientos a objetos - -### El jugador - -El movimiento del jugador podría crearse usando los eventos de GDevelop, pero sería una tarea bastante larga y difícil recrear un buen motor de plataformas. Afortunadamente, GDevelop ya viene con un motor de plataformas completo incorporado que podemos usar. Para esto, necesitamos usar los "comportamientos de las plataformas", que nos permiten acceder y utilizar el motor de plataformas integrado. - -Abra el editor de objetos "Jugador": - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002355.png) - -Cambie a la pestaña `Comportamientos` y haga clic en el botón` + `para agregar un comportamiento al objeto. Elija `Objeto que se desplaza sobre plataformas` en la lista de comportamientos disponibles. Luego puede ver el comportamiento en el editor, con una gran cantidad de parámetros que puede modificar: - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_002709.png) - -Puedes cambiar algunas propiedades como la velocidad de salto. Ajústelo, por ejemplo, a 800 para que el salto sea más potente. - -### Plataformas - -También necesitamos configurar los objetos para que sean plataformas. Para que el jugador pueda caminar y saltar sobre ellos. De lo contrario, el jugador caerá a través del objeto ya que no le dijimos a nuestro personaje qué hacer cuando aterriza en él. Al configurar un objeto para que sea una plataforma, el personaje del juego de plataformas chocará con él y podrá caminar sobre él. - -Para configurar el objeto GrassPlatform para que sea una plataforma, abra el editor de objetos GrassPlatform. Cambie a la pestaña Comportamientos, luego agregue un comportamiento: esta vez, elija el comportamiento `Plataforma`. - -![](/es/gdevelop5/tutorials/platform-game/anotacion_2020-06-19_003239.png) - -También hay algunas opciones que puedes cambiar. Por ejemplo, la opción "Puede agarrar las plataformas de la plataforma" está ahí para permitir que el personaje del juego de plataformas tome el borde de la plataforma. Si habilitamos esta opción en este momento, el resultado se verá extraño, ya que no tenemos una animación que se muestre cuando el personaje se acerque. Vamos a mantener esto sin marcar. - -## Iniciar una vista previa - -En este punto, deberías poder probar tu juego presionando el botón "Vista previa" en la parte superior de la pantalla en la barra de herramientas. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.13.25.png) - -Cuando presiona el botón, se genera una vista previa y, justo después, se abre una nueva ventana. - -Debes poder caminar y saltar usando las teclas predeterminadas: mueve el personaje con las flechas y presiona `Shift` o` Space` para saltar. Siéntase libre de agregar algunas otras plataformas a la escena como lo hicimos antes. Asegúrate de agregar los comportamientos a las plataformas para evitar que el personaje se caiga. - -Por ahora, el objeto no tiene animaciones, las añadiremos más tarde. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.14.18.png) - -Si el objeto no se está moviendo, asegúrese de haber agregado los comportamientos adecuados. - -## Cambiar el color de fondo - -El fondo gris es un poco aburrido. Más tarde podemos agregar una imagen, pero por ahora, seamos sencillos. En el editor, haga clic derecho en el fondo gris y elija "Propiedades de escena": - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.16.03.png) - -En la nueva ventana que se abrió, haga clic en `Color de fondo de la escena` y seleccione un buen color para el fondo: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.18.08.png) - -## Siguiente paso: animar el jugador - -Nuestro juego es muy básico por ahora: el jugador no está animado cuando salta o corre. La siguiente parte del tutorial mostrará cómo agregar diferentes animaciones y cómo usar eventos para cambiar las animaciones cuando el estado del jugador cambia. - -Lea **[la siguiente parte del tutorial aquí](/es/gdevelop5/tutorials/platform-game/2-player-animations)**! diff --git a/docs/es/gdevelop5/tutorials/platformer/crear-proyecto.gif b/docs/es/gdevelop5/tutorials/platformer/crear-proyecto.gif deleted file mode 100644 index f31845ba07..0000000000 Binary files a/docs/es/gdevelop5/tutorials/platformer/crear-proyecto.gif and /dev/null differ diff --git a/docs/es/gdevelop5/tutorials/platformer/index.md b/docs/es/gdevelop5/tutorials/platformer/index.md deleted file mode 100644 index fc28a8c510..0000000000 --- a/docs/es/gdevelop5/tutorials/platformer/index.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: Tutorial de Plataformas, Parte 1 - Primeros pasos ---- -# Tutorial de Plataformas, Parte 1: Primeros pasos - -Este tutorial explica cómo crear un juego de plataformas con GDevelop. Si nunca antes ha creado un juego con GDevelop, este es un excelente lugar para comenzar. - -Aprenderá a: - -- Diseña un nivel con plataformas, enemigos y monedas coleccionables. -- Crea un personaje jugable que pueda moverse, saltar y matar enemigos. -- Devuelve el jugable a los puntos de control cuando mueren. - -## Series - -Estás leyendo **la Parte 1** del [Tutorial de Plataformas](/es/gdevelop5/tutorials/platformer/start). - -1\. Tutorial de Plataformas, Parte 1 2. [Tutorial de Plataformas, Parte 2](/es/gdevelop5/tutorials/platformer/part-2) 3. [Tutorial de Plataformas, Parte 3](/gdevelop5/tutorials/platformer/part-3) 4. [Tutorial de Plataformas, Parte 4](/gdevelop5/tutorials/platformer/part-4) 5. [Tutorial de Plataformas, Parte 5](/gdevelop5/tutorials/platformer/part-5) 6. [Tutorial de Plataformas, Parte 6](/gdevelop5/tutorials/platformer/part-6) 7. [Tutorial de Plataformas, Parte 7](/gdevelop5/tutorials/platformer/part-7) 8. [Tutorial de Plataformas, Parte 8](/gdevelop5/tutorials/platformer/part-8) - -## Paso 1: Instalar GDevelop - -Si aún no lo ha hecho, descargue e instale GDevelop. Puede encontrar las instrucciones completas sobre cómo configurar el software a través de la página [Primeros pasos.](/gdevelop5/getting_started) - -## Paso 2: Descargar los recursos del juego - -El término *recursos* se refiere a los medios visuales y de audio de un juego, como los efectos de sonido y los sprites. Cada juego necesita recursos y, para facilitarle un poco la vida, este tutorial proporciona los recursos que necesita para crear el juego. - -Puede descargar los recursos a través de la siguiente URL: - - - -!!! note - - También eres más que bienvenido a usar diferentes recursos. Sin embargo, naturalmente, el juego que vea en las capturas de pantalla se verá diferente del juego que termines creando. - -## Paso 3: Crear un nuevo proyecto - -En GDevelop, un _proyecto_ es un contenedor para los activos y la lógica del juego. En este tutorial, los términos "proyecto" y "juego" se utilizan como sinónimos. - -Para crear un proyecto: - -1\. Inicie GDevelop. 2. Seleccione **Crear un proyecto en blanco**. 3. Elija una carpeta para el proyecto. 4. Seleccione **Crear proyecto**. - -![](/es/gdevelop5/tutorials/platformer/crear-proyecto.gif) - -## Paso 4: Agregar una escena al juego - -Un juego se compone de _escenas_. Por lo general, cada escena es una pantalla diferente en el juego. Por ejemplo, el menú principal, el menú de pausa y cada nivel de un juego serían escenas diferentes. - -Para agregar una escena al juego: - -1\. Expanda el panel **Escenas** (si aún no está expandido). 2. Seleccione **Clic para agregar una escena**. - -Luego seleccione la escena para abrirla. - -![](/gdevelop5/tutorials/platformer/add-scene.gif) - -!!! note - - Si agrega varias escenas a un proyecto, la primera escena de la lista es la escena que carga GDevelop cuando se inicia el juego. - -## Paso 5: Agrega objetos a la escena - -Una escena se compone de [objetos](/gdevelop5/objects). Todo lo que el usuario ve o con lo que interactúa es un objeto, incluido el personaje jugable, los enemigos y partes del entorno. - -GDevelop proporciona diferentes tipos de objetos que puede agregar a un juego. Cada tipo de objeto tiene características y casos de uso únicos. El tipo de objeto más común es el objeto Sprite, que le permite crear un gráfico que puede elegir animar (opcionalmente). - -Para crear un objeto: - -1\. En el panel **Objetos**, haga clic en **Agregar un nuevo objeto**. 2. Seleccione **Sprite**. 3. En el campo **Nombre del objeto**, escriba "Nube". 4. Al abrirse el editor de objetos, haga click en **Añadir una animación**. Aunque el rótulo dice **Añadir una _animación_**, los objetos Sprite no tienen por qué estar animados. 5. Haga click en **Añadir**. 6. Selecccione el recurso "cloud2.png". 7. Seleccione **Aplicar**. - -Después arrastre una o más copias del objeto "Cloud" a la escena. - -![](/gdevelop5/tutorials/platformer/add-object-instance.gif) - -!!! note - - Cada copia del objeto que aparece en una escena se refiere a una _instancia_ de dicho objeto. - -## Paso 6: Cambia el color de fondo - -Las nubes blancas no se ven muy bien en el fondo gris. - -Para cambiar el color de fondo de la escena: - -1\. Haz clic derecho en el fondo de la escena. 2. Seleccione **Propiedades de la escena**. 3. Haz clic en **Color de fondo de la escena**. 4. Elige un bonito tono de azul. - -!!! note - - Puede ingresar un hexadecimal (Ej: \#00000) o un nombre del color (Ej: Negro) - -![](/gdevelop5/tutorials/platformer/set-scene-background-color.jpg) - -## Paso 7: Previsualizar el juego - -Es bueno adquirir la costumbre de previsualizar con frecuencia sus juegos. Así, cuando algo deje de funcionar, es más fácil averiguar el problema. - -Para mostrar la previsualización del juego, haga click en el botón **Vista previa** de la barra de herramientas. - -![](/gdevelop5/tutorials/platformer/preview-button.jpg) - -Para detener la vista previa, cierre la ventana de vista previa. - -## Paso 8: Guarda el juego - -También es bueno adquirir el hábito de guardar regularmente tus juegos. Puedes guardar el juego a través del menú Archivo o usando un atajo de teclado: - -- `CTRL` + `S` en Windows - `CMD` + `S` en macOS - -## Próximo paso - -Lea el [Tutorial de Plataformas, Parte 2](/es/gdevelop5/tutorials/platformer/part-2) y aprende a crear un personaje jugable. diff --git a/docs/es/gdevelop5/tutorials/platformer/part-2.md b/docs/es/gdevelop5/tutorials/platformer/part-2.md deleted file mode 100644 index 296fd38bde..0000000000 --- a/docs/es/gdevelop5/tutorials/platformer/part-2.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: part-2 ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Tutorial de Plataformas, Parte 2: Crea un Personaje Jugable - -Esta parte del tutorial explica cómo agregar un personaje jugable al juego. - -Aprenderás cómo: - -- Crear un objeto que represente al personaje jugable. -- Deje que el jugador controle el objeto usando las teclas de flecha. -- Sigue al personaje jugable con la cámara. - -## Series - -Estás leyendo la **Parte 2** del [Tutorial de Plataformas](/es/gdevelop5/tutorials/platformer/start). - -1\. [Tutorial de Plataformas, Parte 1](/es/gdevelop5/tutorials/platformer/start) 2. Tutorial de Plataformas, Parte 2 3. [Tutorial de Plataformas, Parte 3](/gdevelop5/tutorials/platformer/part-3) 4. [Tutorial de Plataformas, Parte 4](/gdevelop5/tutorials/platformer/part-4) 5. [Tutorial de Plataformas, Parte 5](/gdevelop5/tutorials/platformer/part-5) 6. [Tutorial de Plataformas, Parte 6](/gdevelop5/tutorials/platformer/part-6) 7. [Tutorial de Plataformas, Parte 7](/gdevelop5/tutorials/platformer/part-7) 8. [Tutorial de Plataformas, Parte 8](/gdevelop5/tutorials/platformer/part-8) - -## Paso 1: Crear un objeto - -El primer paso es crear un objeto que represente al personaje jugable. Si siguió la primera parte de este tutorial, este debería ser un proceso familiar. - -To create an object for the playable character: - -1\. Create a **Sprite** object named "Player". 2. Use the "p1_stand.png" asset as the animation's only frame. 3. Assign a name of "Idle" to the animation. 4. Drag an instance of the object into the scene. - -![](/gdevelop5/tutorials/platformer/player-object.jpg) - -!!! note - - [Platformer Tutorial, Part 4](/gdevelop5/tutorials/platformer/part-4) explains how to animate the character. - -## Step 2: Add a behavior to the object - -If you preview the game, you can't control the "Player" object. This is because, by default, objects don't do anything. To make objects do something, you need to assign one or more [behaviors](/gdevelop5/behaviors) to them. - -GDevelop comes with a large library of behaviors that you can add to objects in a matter of clicks. One of these behaviors is the **Platformer character** behavior, which lets you control an object as a playable character. - -To add the **Platformer character** behavior to the object: - -1\. Right click the **Player** object. 2. Select **Edit object**. 3. Switch to the **Behaviors** tab. 4. Click **Add a behavior to the object**. 5. Select **Platformer character**. 6. Click **Apply**. - -If you preview the game, you can control the player with the arrow keys. There's a side-effect though: an object with the **Platformer character** behavior is affected by gravity, so in this case, the playable character quickly fall out of the frame. - -![](/gdevelop5/tutorials/platformer/platformer-character-behavior-preview.gif) - -## Step 3: Follow an object with the camera - -To prevent the character from falling out of frame, the game needs platforms and a camera that follows the player. The [next part of the tutorial](/gdevelop5/tutorials/platformer/part-3) is about platforms, so this section is about the camera. - -To make the camera follow the player, you need to create an [event](/gdevelop5/events). In GDevelop, events let you define cause and effect, so when something happens (cause) you can trigger something else to happen (effect). - -Events are made up of two parts: conditions and actions. The condition is what determines when the event happens and the action is what happens when the event occurs. - -GDevelop has a large library of conditions and actions that add all sorts of features to a game. A big part of learning GDevelop is discovering the available options. In this case, the game needs the **Center the camera on an object** action. - -To add the **Center the camera on an object** action: - -1\. Opens the Events editor. 2. Click **Add a new event**. 3. Without specifying a condition, click **Add action**. By not specifying a condition, the action runs in every frame. Therefore, if the game runs at 60 frames per second, the action runs 60 times per second. 4. Click **Other actions**. 5. Expand **Layers and cameras**. 6. Select **Center the camera on an object**. 7. Select the "Player" object. 8. Click **OK**. - -![](/gdevelop5/tutorials/platformer/center-camera-event.jpg) - -If you preview the game, the player still falls -- there's still no platforms, after all -- but the camera also follows the player. As a result, the player remains within the frame. - -![](/gdevelop5/tutorials/platformer/center-camera-on-object-preview.gif) - -## Next steps - -Read [Platformer Tutorial, Part 3](/gdevelop5/tutorials/platformer/part-3) diff --git a/docs/es/gdevelop5/tutorials/primeros_pasos.md b/docs/es/gdevelop5/tutorials/primeros_pasos.md deleted file mode 100644 index 5364481c5a..0000000000 --- a/docs/es/gdevelop5/tutorials/primeros_pasos.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: Primeros pasos con Gdevelop ---- -# Primeros pasos con Gdevelop -En éste vídeo aprenderás algunas cosas de Gdevelop si es que lo tocas por primera vez. -ojalá te sea de ayuda¡¡¡ - -
- -
\ No newline at end of file diff --git a/docs/es/gdevelop5/tutorials/reduce-size-game.md b/docs/es/gdevelop5/tutorials/reduce-size-game.md deleted file mode 100644 index 02e73d3451..0000000000 --- a/docs/es/gdevelop5/tutorials/reduce-size-game.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Cómo reducir el tamaño de tu juego ---- -# Cómo reducir el tamaño de tu juego - -Es importante mantener el peso lo más ligero posible, especialmente en teléfonos móviles: - -* Un juego más pequeño será más rápido de descargar -* El almacenamiento necesario para tu juego será menos importante, por lo que el jugador tendrá menos incentivos para eliminarlo. -* El juego se ejecutará más rápido si las imágenes y texturas no son demasiado grandes. - -El primer y más importante factor que contribuye al tamaño de tu juego es el tamaño de tus archivos de recursos: sonidos, música e imágenes: - -* Para las imágenes, asegúrate de utilizar una resolución (ancho y alto en píxeles) que no sea mayor de lo necesario. Evita todo lo que supere los 2048x2048 píxeles. En general, hay que mantenerse por debajo de 512 x 512 y la mayoría de los elementos pueden tener entre 10 y 200 píxeles. - -* Para reducir el uso de disco de imágenes, utiliza un **programa de compresión** o un sitio web como [tinypng.com](https://tinypng.com/) o [compresspng.com](https: //compresspng.com/) - -* Para las música y los sonidos, asegúrate de utilizar un formato comprimido como mp3 en lugar de wav para las música. Comprime tu música reduciendo la tasa de bits si es necesario. Considera tener los archivos de música alrededor de 1 MB. \ No newline at end of file diff --git a/docs/es/gdevelop5/tutorials/resources.md b/docs/es/gdevelop5/tutorials/resources.md deleted file mode 100644 index bd153c93f0..0000000000 --- a/docs/es/gdevelop5/tutorials/resources.md +++ /dev/null @@ -1,89 +0,0 @@ ---- -title: resources ---- -FIXME **Esta página no está completamente traducida, todavía. Por favor ayuda a completar la traducción.** - -*(Eliminar este párrafo una vez finalizada la traducción.)* - -# Recursos Lista de sitios web donde puede encontrar sprites, música, efectos de sonido para sus juegos y ejemplos de juegos, plantillas, bibliotecas de terceros y herramientas para ayudarle con el desarrollo del juego. - -##Ejemplos de juego y plantillas - -- [gametemplates.itch.io](https://gametemplates.itch.io/) - -##Sprites - -- [Kenney.nl](http://kenney.nl/) -- [gameart2d.com](https://www.gameart2d.com) -- [spriters-resource.com](https://www.spriters-resource.com/) - -##Imágenes y Fotos - -- [Unsplash.com](https://unsplash.com/) (Imágenes y fotos gratuitas para uso comercial.) - -##Sonido y musica - -- [soundimage.org](http://soundimage.org/) -- [sounds-resource.com](https://www.sounds-resource.com/) - -##Contenido mixto de Sprite, Música y Sonido. - -- [opengameart.com](https://opengameart.org/) -- [vg-resource.com](https://www.vg-resource.com/) -- [gamedevmarket.net](https://www.gamedevmarket.net/) -- [deviant art](https://www.deviantart.com/) - -##Software de animacion - -- [Spriter](https://brashmonkey.com/) -- [Pencil2D](https://www.pencil2d.org/) -- [DragonBones](https://dragonbones.github.io/en/index.html) -- [Synfig](https://www.synfig.org) -- [Blender](https://www.blender.org/) - -##Edición de imagen y dibujo. - -- [Gimp](https://www.gimp.org/) -- [Paint.NET](https://www.getpaint.net/index.html) -- [Krita](https://krita.org/en/) - -##Edición de gráficos vectoriales - -- [Inkscape](https://inkscape.org/en/) - -##Creación de Pixel art - -- [PikoPixel](http://twilightedge.com/mac/pikopixel/index.html) -- [Piskel](https://www.piskelapp.com/) -- [Pixelaria](https://sourceforge.net/projects/pixelaria/) -- [GraphicsGale](https://graphicsgale.com/us/) -- [Grafx2](https://code.google.com/archive/p/grafx2/wikis/Downloads.wiki) -- [Aseprite](https://www.aseprite.org/) - -##Otros gráficos y herramientas de animación. - -- [SpriteCutter](http://spritecutter.sourceforge.net/) (Spritesheet cutter) -- [TexturePacker](https://www.codeandweb.com/texturepacker) (Paquete de imágenes individuales en spritesheet) -- [Spriteilluminator](https://www.codeandweb.com/spriteilluminator) (Ilumina los sprites con luces dinámicas.) -- [Assetforge](https://assetforge.io/) (Crea sprites personalizados a partir de objetos 3D.) -- [3D2Sprite](http://3d2sprite.blogspot.com/p/home.html) (Crea sprites a partir de modelos 3D.) -- [Blender](https://www.blender.org/) (Blender es el paquete de creación 3D de código abierto y gratuito. Crea sprites y animaciones personalizadas con modelado 3D.) -- [Anim8or](http://www.anim8or.com/) (Crea sprites animados a partir de modelos animados en 3D.) - -##Edición y creación de audio. - -- [Audacity](https://www.audacityteam.org/) (Audio editing and converting) -- [LMMS](https://lmms.io/) ( Creación melodías, sonidos e y musica) -- [Bfxr](https://www.bfxr.net/) (Procedural Efectos de sonido) -- [Acapela Box](https://acapela-box.com) (Conversor de texto a voz) -- [Balabolka](http://www.cross-plus-a.com/balabolka.htm) (Conversor de texto a voz) -- [Vocaloid](https://www.vocaloid.com/en/) (Conversor de texto a voz, Virtual singer) - -##Otras herramientas utiles - -- [XnConvert](https://www.xnview.com/en/xnconvert/) (convertidor de imagen por lotes) - -##JavaScript librerías - -- [ResponsiveVoice](https://responsivevoice.org/) (Sintetizador de texto a voz) -- [PlayerIO](https://playerio.com/) (Online Multiplayer Service) diff --git a/docs/es/gdevelop5/tutorials/tank-shooter.md b/docs/es/gdevelop5/tutorials/tank-shooter.md deleted file mode 100644 index 9459919838..0000000000 --- a/docs/es/gdevelop5/tutorials/tank-shooter.md +++ /dev/null @@ -1,322 +0,0 @@ ---- -title: Tank shooter - Tutorial para principiantes ---- -# Tank shooter - Tutorial para principiantes - -Este tutorial lo ayudará a familiarizarse con la forma en que funciona GDevelop. Va a crear un juego muy simple. En este juego, los enemigos se moverán hacia el jugador. El jugador podrá disparar a los enemigos. Los enemigos explotarán cuando sean golpeados con las balas del jugador. ![](/gdevelop5/tutorials/beginner-tutorial-screenshot.png) - -Para obtener una descripción general del software, le recomiendo que lea primero la página [](/gdevelop5/ getting_started). - -### Descargar GDevelop - -Si no tiene GDevelop, descárguelo del sitio web [oficial](https://gdevelop.io) - -Siempre descargue GD desde esta página para asegurarse de que tiene la última versión. Una vez que haya instalado GDevelop, ejecútelo. Se mostrará la página "Inicio" de la interfaz: ![](/gdevelop5/start_page.png) - -### Descargar la fuente - -Puede descargar el proyecto terminado desde aquí ![](/gdevelop5/tutorials/beginner-tutorial.zip). Descargar el proyecto terminado te ayuda a ver cómo se ha creado el juego. Tenerlo como ejemplo en caso de que te quedes atascado o no entiendas algo, es una buena manera de verificar tu progreso. - -### Crear un nuevo proyecto - -Haga clic en "Crear nuevo proyecto" en la página "Inicio". - -A continuación, tiene la opción de crear un nuevo proyecto utilizando una plantilla o crear un proyecto "Juego vacío". ![](/gdevelop5/create-new-project-window.png) - -Para este tutorial, necesita un proyecto de juego vacío, pero antes de seleccionar esta opción, debe elegir una carpeta donde se guardará su juego. En la parte inferior de la página "Crear un juego nuevo" encontrará el área "Seleccionar carpeta". Es posible que deba desplazarse hacia abajo para ver esta opción. Mantenga la ubicación predeterminada o seleccione la ubicación donde desea guardar su juego. - -![](/gdevelop5/tutorials/select-project-folder.png) - -Para seleccionar una ubicación personalizada, seleccione / haga clic en el botón "Seleccionar carpeta". Examine el sistema de archivos en su computadora. Localiza la carpeta que quieres usar. - -![](/gdevelop5/choose-folder-button.png) - -Una vez que haya seleccionado una carpeta, seleccione / haga clic en la opción de proyecto en blanco "Juego vacío" en la lista. - -![](/gdevelop5/empty-game-button.png) - -### Crear una nueva escena - -Crear una nueva escena es lo primero en tu lista de cosas que hacer. Haga clic / seleccione el botón "Haga clic para agregar una escena" en el Administrador de proyectos: - -![](/gdevelop5/tutorials/add-scene-button.png) - -A continuación, haga clic en el NewScene que acaba de crear. Se abrirá el editor de "Escena". - -### Obtenga las imágenes y recursos - -Antes de seguir adelante, necesitarás algunas imágenes para el juego. Puede descargarlos aquí: [Descargar imágenes](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip) - -Una vez que haya descargado este archivo, extraiga su contenido en la carpeta donde creó el proyecto. - -### Crear la torreta del jugador - -El jugador controlará una torreta para disparar a los enemigos. En el editor de "Objetos" de Scene, elija "Agregar un nuevo objeto". - -![](/gdevelop5/tutorials/add_new_object.png) - -Aparecerá una nueva lista de opciones de ventana. Elija el tipo de objeto que se creará. ![](/gdevelop5/objects/object-types.png) - -Primero, crea un objeto sprite. Seleccione "Sprite" de la lista emergente. A continuación, se mostrará el panel de propiedades del objeto. Si no ve el panel de propiedades, haga clic con el botón derecho en NewObject en el editor de objetos y seleccione "Editar objeto" en la lista emergente. - -Finalmente, queremos añadir una animación al objeto. Haga clic / seleccione el botón "agregar animación" en la ventana de propiedades. ![](/gdevelop5/tutorials/add-animation.png) - -Ahora verá las propiedades de animación del objeto. ![](/gdevelop5/objects/animation-properties.png) - -Es necesario agregar la imagen de la torreta como una animación. Haga clic en el símbolo más grande ![](/gdevelop5/tutorials/plusaddobject.png). Busque la carpeta del proyecto. Encuentra la imagen aaguntopdown.png. La imagen se mostrará en la ventana. - -![](/gdevelop5/tutorials/turret-animation-window.png) - -Por último, haga clic en "Aplicar" para guardar los cambios. - -Renombra el objeto. Haga clic derecho en el objeto de torreta en el editor de "Objeto" de Escena. Seleccione "Cambiar nombre" en la lista emergente que se muestra. Escriba el nombre "torreta" para el nuevo nombre. Esto nos permite referirnos más adelante a este objeto usando el nombre "torreta". ![](/gdevelop5/tutorials/rename-turret.png) - -### Añadir torreta a la escena - -Para agregar la "torreta" a la escena, seleccione / haga clic en la torreta en el editor de "Objetos" de la escena y luego haga clic en el editor de "Escenas". Esta acción creará una "torreta" en la escena. La "torreta" se puede seleccionar, mover y girar. ![](/gdevelop5/tutorials/turret-selected-inscene.png) - -### Primeros eventos - -Ahora vamos a crear los "Eventos" utilizados para animar todo el juego. En el primer evento, la "torreta" debe girarse hacia el mouse del jugador. - -Seleccione el editor de "Eventos" haciendo clic en la pestaña "NEWSCENE (EVENTOS)": ![](/gdevelop5/tutorials/scene-events-tab.png) - -Verá una barra de herramientas en la parte superior de la pantalla del editor de "Eventos". Seleccione / haga clic en el botón "Agregar evento" en la barra de herramientas para crear un nuevo evento. Si olvida cómo se usa cada herramienta en la barra de herramientas, pase el mouse sobre la imagen de la herramienta para ver una descripción de ayuda emergente para la herramienta. ![](/gdevelop5/add-event-button.png) - -Se crea el nuevo "Evento", con una condición vacía y una acción vacía. La "condición" se encuentra en el lado izquierdo de la pantalla. La "acción" se encuentra en el lado derecho de la pantalla. Coloque el cursor sobre la "acción" a la derecha. Seleccione / haga clic en "agregar acción": ![](/gdevelop5/tutorials/add-action.png) - -Ahora, vas a escribir tu primera acción. Esta acción girará la "torreta" hacia el ratón. Después de hacer clic / seleccionar "Agregar acción", aparecerá un nuevo panel de lista. Elija la acción "Acción común para todos los objetos". Aparecerá una lista desplegable de más opciones. Seleccione / haga clic en "Ángulo". Se mostrará otra lista desplegable. Seleccione / haga clic en "Girar hacia la posición". ![](/gdevelop5/tutorials/rotate-toward-position-action.png) - -Cuando se selecciona "Girar hacia la posición", se abrirá otra lista de opciones en el lado derecho del panel de selección. Muestra el nombre de la acción, así como los parámetros para la acción. Rellene el primer parámetro seleccionando / haciendo clic en "Objeto". "torreta" se abrirá de una lista de los objetos disponibles. Seleccione "torreta" de la lista. ![](/gdevelop5/tutorials/select-turret-object-parameter.png) - -Para los siguientes parámetros, ingrese MouseX () y MouseY () para que el objeto gire hacia la posición del mouse. Cuando se inicie el juego, estas dos expresiones obtendrán la posición actual de X e Y del mouse. Para la "velocidad angular", ingrese 0. "Velocidad angular 0" significa que ocurrirá una rotación inmediata de su objeto. Eso es lo que necesitamos para rotar la "torreta". Para controlar la velocidad de rotación de un objeto, ingrese un valor más pequeño para "velocidad angular". Por ejemplo, para reducir la velocidad de su objeto "torreta", ingrese algo como un valor de 100. - -En este punto, los parámetros de este evento se verán así: ![](/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png) - -Hemos estado usando expresiones para obtener las posiciones X e Y del mouse. Puede encontrar más expresiones en el editor de "expresiones" haciendo clic en el icono azul junto a los campos de valor: ![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -Cuando haces clic en el ícono del editor de "expresiones", puedes buscar todas las expresiones disponibles. Las expresiones están ordenadas en categorías. ![](/gdevelop5/tutorials/platform-game/expression-editor.png) - -Para guardar los cambios realizados en el editor de "expresiones", seleccione / haga clic en el botón "Aceptar" que se encuentra en la esquina inferior derecha del panel. - -Ahora puede ejecutar una vista previa presionando el botón "vista previa" en la barra de herramientas ubicada arriba de la escena. ![](/gdevelop5/preview-button.png) - -La "torreta" ahora girará hacia la posición del ratón. Si la rotación no funciona, observe detenidamente los pasos anteriores o consulte el tutorial finalizado. ![](/gdevelop5/tutorials/turret-rotate-toward-mouse.png) - -### Dispara balas con la torreta - -El jugador deberá poder disparar balas a los enemigos. Para configurar esto, Necesitará un nuevo objeto "bala". En la lista de "Objetos" de la escena ubicada en el lado derecho de la interfaz GD, haga clic con el ratón en el objeto "torreta". Elija "agregar un nuevo objeto" o, alternativamente, haga clic en el botón "agregar nuevo objeto". ![](/gdevelop5/tutorials/turret-add-new-object.png) - -Elija "Sprite" en el panel de la lista emergente. Ahora, agregue una animación seleccionando el botón agregar. Elige la imagen "Bullet.png". Renombra el nuevo objeto "bala". Si necesita ayuda adicional para agregar un nuevo objeto, consulte la explicación del objeto "torreta" más arriba. - -El próximo evento necesario comprobará si se hace clic o se presiona el botón izquierdo del mouse. Si se presiona / hace clic, la acción creará las viñetas que se dispararán. Para crear las viñetas, vaya a la pestaña "NEWSCENE (EVENTOS)". Añadir un nuevo evento. Nuevamente, si necesita ayuda adicional, consulte el evento "torreta" anterior. "Crear un nuevo objeto" será la primera acción en el evento. Esta acción está disponible en El panel "Acciones comunes para todos los objetos" "Objetos". ![](/gdevelop5/tutorials/create-object-action.png) - -Cuando se selecciona "Crear un nuevo objeto", se abrirá otra lista de opciones en el lado derecho del panel de selección. Muestra el nombre de la acción, así como los parámetros para la acción. Complete el primer parámetro seleccionando / haciendo clic en "Objeto". Aparecerá "viñeta" de una lista de los objetos disponibles. Seleccione "viñeta" de la lista. ![](/gdevelop5/tutorials/create-object-action-parameters.png) - -Dado que solo hay una capa en el juego, el parámetro de capa no es obligatorio. Haga clic en Ok para finalizar la acción. - -Luego agrega otra acción después de esta primera acción. No _crea_ otro evento. Haga clic en "Agregar acción" debajo de la primera acción! ![](/gdevelop5/tutorials/add-second-action.png) - -Esta vez, elija la acción llamada "Acción común para todos los objetos" "Movimiento" "Agregar una fuerza (Ángulo)". ![](/gdevelop5/tutorials/add-force-angle-action.png) - -GDevelop proporciona un sistema de fuerzas incorporado. Este sistema te permite mover fácilmente los objetos del juego. En nuestro caso, cuando se dispara la bala, la acción se utilizará para mover la bala hacia el mouse. Como primer parámetro (Objeto), ingrese "viñeta" para que GDevelop mueva la viñeta que se acaba de crear en la acción anterior. - -Para "ángulo de movimiento", use la dirección de la torreta. Ingrese "turret.Direction ()" en el segundo parámetro. Para el tercer parámetro, ingrese "400". La bala se moverá con una velocidad de 400 píxeles por segundo. Finalmente, ingrese "1" en el último parámetro. Este último parámetro establece una fuerza que se aplica constantemente a la bala. Una vez que se inicia el movimiento, este parámetro mantiene la bala en movimiento. ![](/gdevelop5/tutorials/add-force-angle-parameters.png) - -Nuestras dos acciones se inician cuando el jugador está disparando. es decir: presionando el botón izquierdo del ratón. Para crear este evento en el editor de "Eventos", necesitamos agregar una condición al evento, hacer clic / seleccionar "Agregar condición". ![](/gdevelop5/tutorials/add-condition.png) - -Elija la condición "Ratón y toque" "Botón del ratón pulsado o pulsado". ![](/gdevelop5/tutorials/mouse-button-pressed-condition.png) - -En la ventana emergente del panel lateral derecho, haga clic en el botón para probar el parámetro. Seleccione "Izquierda" de la lista. ![](/gdevelop5/tutorials/mouse-button-pressed-parameter.png) - -Finalmente, cierre la ventana haciendo clic en el botón "Aceptar". La condición ahora se agrega al evento. - -Si obtienes una vista previa del juego ahora, verás que tenemos dos problemas: - -- Las balas se disparan demasiado rápido. -- Las balas aparecen en el origen del objeto. Esto hace que las balas parezcan poco realistas. - -Para abordar el primer problema de los disparos de balas demasiado rápido, vamos a utilizar un temporizador. Agregue una segunda condición al último evento que hemos creado. Elija la condición "Condiciones comunes para todos los objetos" "Temporizadores" "Valor de un temporizador". ![](/gdevelop5/tutorials/timer-value-condition.png) - -El panel aparece a la derecha. El primer parámetro, "Objeto", indica el nombre del objeto. Dejalo en blanco. El segundo parámetro, "Nombre del temporizador", es el nombre del temporizador. Introduzca "firerate". // ¡No olvide las comillas alrededor del nombre del temporizador! // Ingrese 0.25 en el tercer parámetro, "Tiempo en segundos". ![](/gdevelop5/tutorials/timer-value-condition-parameters.png) - -¡No hemos terminado todavía! Queremos disparar balas cada 0.25 segundos. Para hacer eso, necesitamos reiniciar el temporizador para que comience desde 0 después de 0.25 segundos. Así que vamos a agregar una acción: "Temporizadores y tiempo" "Restablecer un temporizador". Esta acción se colocará justo debajo de nuestra acción de "movimiento" en el mismo evento. ![](/gdevelop5/tutorials/reset-timer-action.png) - -Ingrese "firerate" como el parámetro que es el nombre de nuestro temporizador (nuevamente, ¡tenga en cuenta las comillas!). ![](/gdevelop5/tutorials/reset-timer-action-parameter.png) - -Este par de condiciones y acciones asegurarán que las acciones utilizadas para disparar la bala se repitan cuando hayan transcurrido al menos 0.25 segundos desde que se creó la última bala. ![](/gdevelop5/tutorials/shoot-bullet-event1.png) - -Ahora debemos configurar la forma en que se disparan las balas desde el cañón de la torreta. - -Para hacer eso, vamos a agregar un punto personalizado a nuestro objeto "torreta". Luego creamos las balas en la posición de ese punto. Abramos las propiedades del objeto haciendo clic derecho en el objeto "torreta" en el lado derecho de la pantalla de la interfaz de escena. Seleccione Editar objeto de la lista emergente. Esta selección abre la ventana donde agregamos animaciones a nuestros objetos. Veremos un botón llamado "EDITAR PUNTOS". ![](/gdevelop5/tutorials/edit-point-button.png) - -Después de hacer clic en el botón, podemos ver que nuestro objeto tiene actualmente 2 puntos por defecto, el punto "Origen" y el punto "Centro". ![](/ gdevelop5/ tutoriales/ default-points.png) - -No podemos cambiar el nombre de estos puntos, pero podemos cambiar su posición predeterminada. En este caso, agregaremos un punto más al objeto. - -Vamos a hacer clic en el botón "agregar" (más el símbolo) para agregar un punto personalizado a nuestro objeto "torreta". Inmediatamente vemos el nuevo punto agregado a la lista. Puede ser identificado por el nombre "Punto" y la posición 0,0. - -Cambiemos el nombre de este punto a "Canon" y establezcamos la posición X en 110 y la posición Y en 35. ![](/gdevelop5/tutorials/custom-point-name-position.png) - -Ahora, cuando realicemos una vista previa del juego, veremos nuestro punto personalizado ubicado al final de nuestro canon. ![](/gdevelop5/tutorials/custom-point-preview.png) - -Cierra la ventana y aplica los cambios. - -Lo único que queda por hacer es decirle a GDevelop que dispare las balas desde el punto "Canon" del objeto "torreta". Así que en nuestra acción "crear viñeta", necesitamos cambiar las expresiones turret.X () y turret.Y (), a turret.PointX (Canon) y turret.PointY (Canon). Podemos cambiarlos haciendo clic en las expresiones dentro del editor. ![](/gdevelop5/tutorials/replace-expression-in-editor.png) - -// No olvide la C mayúscula en Canon, ya que el nombre de los puntos distingue mayúsculas y minúsculas.// - -Si ejecutamos la vista previa ahora, nuestras balas deben dispararse desde el "Canon" de la " torreta ", pero puede notar que, a veces, la bala está un poco desplazada. Esto sucede porque el punto de origen de la bala está en la parte superior esquina izquierda. De la misma manera que hicimos con el punto Canon para la torreta, cambie la posición del punto de origen de la bala para que esté en el centro. ![](/gdevelop5/tutorials/bullet_origin_point.png) - -### Creando enemigos atacando la torreta - -Primero, debemos crear los objetos utilizados para los enemigos: agregar un objeto a la lista de objetos (haga clic con el botón derecho en un objeto existente\> agregar un objeto. Elija un objeto Sprite como antes). Denomínalo "enemigo". - -Edite el objeto (haga clic con el botón derecho en la lista y seleccione Editar objeto de la lista) a continuación, agregue una animación al objeto y dos imágenes: tank2fr1.png y tank2fr2.png. ![](/gdevelop5/tutorials/enemy-animation.png) - -Luego, cambie el tiempo entre las imágenes a 0.05 y cambie la animación a Bucle para hacer que la animación se repita. ![](/gdevelop5/tutorials/enemy-animation-speed.png) - -Haga clic en "Aplicar" cuando haya terminado. - -### ¡Detente! ¡Ahorrar tiempo! - -Antes de continuar, recuerde guardar con frecuencia: haga clic en Archivo y luego en Guardar para guardar su proyecto. ![](/gdevelop5/tutorials/save-project.png) - -### AI enemigo - -Volvamos al juego. Queremos que los enemigos se muevan hacia la torreta. Ir al editor de "Evento". Añadir un nuevo evento. Ahora, queremos crear un enemigo cada segundo. Añadir una condición "Temporizadores y tiempo"; "Valor de un temporizador de escena". Introduzca 1 en el "Tiempo en segundos" y "Creación de enemigos" para el "Nombre del temporizador". _No olvide las comillas cuando ingrese el nombre del temporizador._ - -El siguiente paso es agregar una acción para crear un objeto enemigo. Esto se hace usando "Agregar una acción", "Acción común para todos los objetos", "Objetos". "Crear un objeto". Seleccione "enemigo" en el primer parámetro "Objeto para crear". Para el segundo parámetro de "posición X", ingrese la expresión Aleatorio (800). Esta entrada devolverá un número aleatorio entre 0 y 800. Cuando se crea cada enemigo, tendrá una posición de pantalla diferente. Para la posición Y, ingrese -50. Este valor creará los enemigos fuera del área de la pantalla. Crear a los enemigos fuera de la pantalla evita que el jugador del juego sienta que un tanque enemigo apareció de la nada. - -Finalmente, agreguemos una acción para restablecer el temporizador ("Temporizadores y tiempo", Restablecer un temporizador ".)" EnemyCreation "debe ingresarse en el parámetro. Nuevamente, no olvide las comillas cuando ingrese el nombre del temporizador. En este punto, nuestro evento se verá así: ![](/gdevelop5/tutorials/create-enemy-event.png) - -Si ejecutamos una vista previa ahora, no notaremos nada. Dado que los enemigos se crean fuera de la pantalla, no se pueden ver. Para ver al enemigo, necesitamos mover a los enemigos hacia el jugador. Para crear esta acción, agrega otro evento. Este evento no tiene condición. Elija "Agregar acción". Luego, desde el panel emergente, seleccione "Acción común para todos los objetos", "Movimiento", "Agregar una fuerza para moverse hacia un objeto". ![](/gdevelop5/tutorials/move-object-toward-other-event.png) - -En el panel lateral derecho de "Agregar una fuerza para moverse hacia un objeto", selecciona "enemigo" para el primer parámetro. Seleccione "torreta" para el segundo parámetro. Introduzca 150 píxeles por segundo para la velocidad. Dado que la fuerza será continua, la amortiguación es 0. ![](/gdevelop5/tutorials/move-object-toward-another-parameters.png) - -Ahora, si ejecutamos una vista previa, veremos que nuestros enemigos se mueven hacia la torreta. Sin embargo, puedes notar que los enemigos en realidad no giran hacia la torreta. Vamos a hacer algo al respecto. Agreguemos una segunda acción después del movimiento: "Acción común para todos los objetos", "Ángulo", "Girar hacia la posición". Para el primer parámetro a la derecha del panel, selecciona "enemigo". Queremos rotar al enemigo. Para la posición X e Y, vamos a usar una expresión para obtener el punto central de la torreta y hacer que los enemigos giren hacia ese punto con una velocidad angular de 0. Una velocidad angular de 0 causa la rotación inmediata del objeto. ![](/gdevelop5/tutorials/rotate-object-toward-position.png) - -En este punto, nuestro evento enemigo se verá así: ![](/gdevelop5/tutorials/create-rotate-move-enemies-event.png) - -Si ejecutamos la vista previa ahora, nuestros enemigos se moverán y girarán hacia la torreta. ![](/gdevelop5/tutorials/turret-screenshot-enemies-moving.png) - -### Añadiendo explosiones - -¡Es hora de destruir los tanques! Primero, cuando una bala choca con un tanque, necesitamos una explosión en la posición del tanque. Agrega un nuevo objeto sprite, llámalo "explosión" y agrega todas las imágenes a la animación que comienza con Explosion_ ![](/gdevelop5/tutorials/select-all-explosion-images.png) - -Después de agregar todas las imágenes a la animación, establezca el tiempo entre las imágenes a 0.01 segundos. ![](/gdevelop5/tutorials/explosion-animation-speed.png) - -Guarde la animación haciendo clic / seleccionando "Aplicar". - -A continuación, queremos crear la explosión cuando la bala está en una colisión con el enemigo. Agregue una nueva condición en blanco: "Condiciones comunes para todos los objetos", "Colisión", Colisión ![](/gdevelop5/tutorials/collision-check-event.png) - -En el panel del lado derecho, seleccione "viñeta" para el primer parámetro. Para el segundo parámetro, seleccione "enemigo". ![](/gdevelop5/tutorials/collision-between-object-condition-parameters.png) - -Agrega una acción para crear el objeto de explosión de la misma manera que creamos las balas y los enemigos. Para la posición X e Y, usa la expresión enemy.X () y enemy.Y (). Esta expresión obtendrá la posición X e Y del objeto enemigo que está en colisión con la bala. ![](/gdevelop5/tutorials/create-explosion-event-parameters.png) - -Finalmente, agregue la acción después de crear la explosión. Acciones comunes para todos los objetos\> Objeto\> Eliminar un objeto y en el lado derecho para el parámetro seleccionar el objeto enemigo, ya que queremos eliminar al enemigo. Agrega la misma acción de nuevo, para eliminar también la bala justo después de que se elimine el enemigo. En este punto, nuestro evento debería verse así. ![](/gdevelop5/tutorials/enemy-moving-rotating-exploding.png) - -Si ejecuta una vista previa ahora, notará un par de problemas: - -- Primero, los objetos de explosión no se crean exactamente en la posición del enemigo. -- Segundo, el objeto de explosión creado permanece en la escena. - -Para resolver el primer problema de los objetos de "explosión" que quedan en la escena, debemos eliminar el objeto de explosión una vez que las animaciones hayan finalizado. Agregue un nuevo evento vacío y la condición "Sprite", "Animaciones e imágenes", "Animación terminada". ![](/gdevelop5/tutorials/animation-finished-event.png) - -Para el parámetro en el panel emergente derecho, seleccione el objeto "explosión". Cuando el objeto "explosión" haya finalizado, queremos eliminar la animación de la explosión. ![](/gdevelop5/tutorials/check-animation-finished-event-parameter.png) - -Para eliminar el objeto de "explosión" de la animación, agregue la acción, "elimine el objeto de explosión". - -Para resolver el segundo problema, primero debemos entender su causa. Cuando creamos el objeto de explosión, usamos las expresiones "enemy.X ()" y "enemy.Y ()". Creamos los objetos de "explosión" en el punto "Origen" del objeto "enemigo". El punto "Origen" está, por defecto, ubicado en la esquina superior izquierda del "enemigo" (0). También estamos creando las explosiones desde su punto "Origen", que es la esquina superior izquierda del objeto "explosión" (0). - -Para resolver este problema, necesitamos cambiar la posición del punto "Origen" de la explosión. El punto "Origen" debe colocarse en el centro del objeto. Debe editar el objeto "explosión" haciendo clic con el botón derecho en el objeto y seleccionando "Editar objeto" de la lista. En la siguiente ventana, seleccione "Editar Puntos". - -Ahora, cambie la posición X e Y del punto "Origen" a 120. Esto establece el punto en el centro de la imagen de "explosión". ![](/gdevelop5/tutorials/change-origin-point-position.png) - -Finalmente, en lugar de crear el objeto "explosión" en el punto "Origen" del "enemigo", es necesario crear el objeto en el Punto Centro. Cambia la expresión en la acción de crear explosión de enemy.X () a enemy.PointX (Center) y forma enemy.Y () a enemy.PointY (Center) ![](/gdevelop5/tutorials/create-explosion-new-expression.png) - -Si ejecutamos una vista previa ahora, nuestros enemigos explotarán de manera realista desde el centro del objeto. ![](/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png) - -### Añadiendo más explosiones y un juego terminado - -Hasta ahora, el jugador no podía morir. Cuando un tanque enemigo golpea la torreta del jugador, queremos que la torreta sea destruida. Añadir un nuevo evento. Sigue el mismo procedimiento que seguiste para crear un evento para destruir a los enemigos. - -- Agregue una condición para probar una colisión entre un tanque y la torreta. -- Crear una explosión en la posición de la torreta. -- Agrega una acción para destruir la torreta. - -![](/gdevelop5/tutorials/delete-turret-on-collision-event.png) - -Además, sería interesante mostrar un texto de "Juego terminado" cuando se destruye la torreta: Agrega un nuevo objeto usando la lista de objetos de escena. Esta vez, elige un objeto "Texto". Nómbrelo "GameOver". ![](/gdevelop5/tutorials/select-text-object-from-list.png) - -Edite el objeto "GameOver" haciendo clic derecho en el objeto. Seleccione "Editar objeto" de la lista emergente. Ahora, cambie el texto a "Game Over", el color del texto a rojo y el tamaño del texto a 40. ![](/gdevelop5/tutorials/edit-text-object.png) - -También podemos establecer una fuente personalizada simplemente ingresando la ruta de la fuente. En este caso nuestra fuente se encuentra en la carpeta del proyecto. Solo necesitamos ingresar el nombre del archivo de fuente: ![](/gdevelop5/tutorials/custom-text-font.png) - -Finalmente, agregue el objeto de texto "Game Over" a la escena. - -El siguiente paso es ocultar el objeto de texto. Luego, si no hay una torreta en la escena, (lo que significa que la torreta está destruida) la mostraremos. Agregue un nuevo evento en blanco y agregue la condición "Escena", "Al principio de la escena". ![](/gdevelop5/tutorials/at-the-beginning-of-the-scene-condition.png) - -Esta condición no tiene parámetros. Lo único que hace es ejecutar la acción una vez al principio de la escena. A continuación, agregue la acción al evento "Al comienzo de la escena". Uso: "Acciones comunes para todos los objetos", "Visibilidad", "Ocultar". ![](/gdevelop5/tutorials/hide-object-event.png) - -Para el parámetro, seleccione el objeto GameOver ya que queremos ocultar este objeto ![](/gdevelop5/tutorials/hide-object-event-parameter.png) - -Si no hay una torreta en la escena, queremos mostrar el Objeto de texto "GameOver". Añadir un nuevo evento vacío. Agregue la condición "Condiciones comunes para todos los objetos", "Objetos", "Recuento de objetos". ![](/gdevelop5/tutorials/objects-count-condition.png) - -Para el primer parámetro en el lado derecho, seleccione el objeto de la torreta, para el signo de prueba seleccione el signo igual y para el valor de la prueba ingrese 0, como queremos comprobar si el número de la torreta en la escena es 0. ![](/gdevelop5/tutorials/object-count-condition-parameters.png) - -Y lo que queremos hacer es mostrar el texto GameOver si no hay una torreta en la escena, así que agregue la acción Acción común para todos los objetos\> Visibilidad\> Mostrar y para el parámetro que queremos seleccionar el objeto GameOver. ![](/gdevelop5/tutorials/destroy-turret-event.png) - -Finalmente, un efecto interesante es detener el juego y mostrar Game Over con un poco de retraso. Agregue una segunda condición "Temporizadores y tiempo", Valor de un temporizador de escena ". Para el parámetro de tiempo ingrese 0.1 y para el parámetro de nombre ingrese" GameOver ". Agregue una segunda acción: "Temporizadores y tiempo", "Cambiar escala de tiempo". Ingrese 0 como parámetro para detener el juego y mostrar el texto de Game Over después de 0.1 segundos. - -Esto es lo que deberían ver todos los eventos en este punto. ![](/gdevelop5/tutorials/all-events.png) - -Puede previsualizar el juego y debería ver que una vez que se destruye la torreta, con un poco de retraso se muestra el texto Game Over y el juego se detiene. ![](/gdevelop5/tutorials/gameover-screenshot.png) - -### Optimizando el juego - -Cuando una bala está fuera del área de la pantalla, ya no necesitamos la bala. Incluso fuera de pantalla, las balas todavía tienen movimiento. También se están comprobando las colisiones entre la bala y el tanque. Cada dispositivo tiene recursos limitados en memoria y capacidad de procesamiento. Estamos desperdiciando recursos valiosos al continuar verificando las condiciones y acciones de los objetos cuando están fuera de la pantalla. Nuestro juego podría ralentizarse, bloquearse y / o volverse inejecutable cuando alcance el límite de la memoria del dispositivo en el que estamos jugando. Desea que su juego se pueda jugar en tantos dispositivos como sea posible, por lo que siempre necesita optimizar su juego. Una forma de hacerlo es eliminar objetos que ya no son necesarios en el juego. De esta manera, limitas la cantidad de memoria y potencia de procesamiento que usa el juego. - -Podríamos agregar un evento para destruir las balas cuando están demasiado lejos de la torreta, eso es fácil, pero también podemos usar un objeto "Comportamiento". Un comportamiento en GDevelop agrega una característica determinada a un objeto. En este caso, vamos a agregar el comportamiento "Destruir fuera de la pantalla" a las viñetas. Luego serán destruidos cuando estén fuera de la pantalla del juego. - -En la lista "Objetos" de la escena, haga clic derecho en el objeto "viñeta". Desde el selector emergente, seleccione "Editar objeto". Se abrirá el "Panel de propiedades". Seleccione / haga clic en la pestaña "Comportamientos". La pestaña "Comportamientos" muestra todos los comportamientos que hemos agregado a nuestro objeto. Está vacío ahora. ![](/gdevelop5/behaviors-tab.png) - -Haga clic en el botón "Haga clic para agregar un comportamiento al objeto" ![](/ gdevelop5/ objects/ add-symbol.png) ![](/gdevelop5/add-behavior-button.png) - -A continuación, seleccione de la lista el comportamiento de la pantalla Destruir fuera. ![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -A continuación, usted verá que el comportamiento se agrega a la lista. Normalmente, si el comportamiento tiene algún parámetro, también se muestra aquí para que pueda cambiarlo. Pero este comportamiento no tiene parámetros, ya que lo único que hace es destruir el objeto cuando está fuera de la pantalla. Haga clic en Aplicar y hemos terminado. - -Si ejecuta la vista previa ahora, probablemente no notará ninguna diferencia, ya que el juego es muy simple y es muy probable que use un dispositivo con al menos 2 GB de RAM y una CPU de doble núcleo. Por lo tanto, hay un montón de recursos para nuestro juego simple, pero en caso de que creamos cientos y miles de balas que puedes probar, puedes notar un poco de lentitud después de un tiempo sin destruirlas. - -### Añadir un fondo - -Una última cosa es agregar un fondo. Esto le dará al juego un aspecto más completo. - -Añadir un nuevo objeto Sprite. Nómbrelo como fondo. Agregue la imagen "background.jpg" al objeto. A continuación, puede agregar el objeto a la escena como de costumbre. Asegúrate de que llena toda la escena. Para hacerlo más fácil, puede habilitar la cuadrícula con el botón en la parte superior y debería ayudar a posicionar el objeto. ![](/gdevelop5/toggle-grid-button.png) - -Observe que el objeto de fondo cubre todos los demás objetos. Para resolver este problema, necesitamos cambiar el orden Z del objeto. Mientras se selecciona el objeto de fondo, a la izquierda de la pantalla del editor de escenas, verá una lista de "Propiedades". Si no ve la lista de "Propiedades", puede abrirla usando el botón "Propiedades" en la barra de herramientas que se encuentra en la parte superior de la interfaz de GD. ![](/gdevelop5/object-properties-button.png) - -Podemos cambiar todo tipo de propiedades utilizando el Editor de propiedades. La posición, el ángulo y el tamaño del objeto se pueden cambiar. En este caso, queremos cambiar el orden Z. ![](/gdevelop5/objects/object-zorder-properties.png) - -Cambie el valor del orden Z a un número bajo. Para el fondo usaremos un número negativo - 1. La razón del valor negativo es que cuando estamos creando las balas, los enemigos y las explosiones, los estamos creando en orden Z de forma predeterminada. Necesitamos colocar el fondo debajo de 0, de lo contrario no veremos nada más que la torreta en nuestro juego. Otra forma de solucionarlo es decirle a GDevelop que coloque los tanques y las explosiones y balas en una orden Z más alta. Podemos posicionar el fondo en 0, pero es algo que usted, el desarrollador, debe decidir por sí mismo. Cada problema puede tener una serie de soluciones diferentes. - -¡Estás listo! El juego está completo y listo para ser compartido. - -### Añadir comentarios - -Así, nuestro juego está hecho. Es jugable. ¿Qué pasa si quieres compartir la fuente con alguien más? Digamos que estás trabajando en equipo. Alguien en el equipo quisiera hacer modificaciones al juego. ¿Cómo sabe esa persona dónde buscar los eventos de los enemigos, las balas o la torreta? Puede sonar tonto para ti. La mayoría de los eventos en GDevelop se explican por sí mismos. Nuestro juego es lo suficientemente simple como para ver lo que está sucediendo. Sin embargo, imagine una situación en la que tenga un juego hecho de cientos o miles de eventos. Aquí es donde los comentarios son útiles. Podemos dejar recordatorios en el juego para otros y también para nosotros mismos. Confía en mí, aunque tú eres el que creó el juego, en un gran juego complejo, incluso no recordarás dónde encontrar cosas diferentes. Esto es especialmente cierto meses después. _Siempre use comentarios independientemente del tamaño del proyecto._ Es solo una buena práctica de programación. - -Para agregar comentarios a su juego, simplemente haga clic en el botón "agregar comentario" en la barra de herramientas que se encuentra en la parte superior de la pantalla "Eventos". ![](/gdevelop5/add-comment-button.png) - -Verá un cuadro amarillo en el editor de "Eventos". Cuando haces clic / seleccionas la casilla, puedes comenzar a escribir un comentario. ![](/gdevelop5/tutorials/comment.png) - -Puede cambiar la posición de cada evento y hacer comentarios moviendo el mouse sobre el borde azul de la izquierda y arrastrándolo hacia arriba y hacia abajo. Tus primeros comentarios se verán así: ![](/gdevelop5/tutorials/all-events-with-comments.png) - -### Vamos, a descubrir GDevelop por ti mismo - -Puede navegar por los otros [tutoriales](http://wiki.compilgames.net/doku.php/es/gdevelop5/tutorials) y leer la página [Guia de Inicio](http://wiki.compilgames.net/doku.php/es/gdevelop5/getting_started). - -¡También hay muchos ejemplos y plantillas incluidas con GDevelop! Puede encontrar más visitando: [gametemplates.itch.io](https://gametemplates.itch.io/gdevelop-examples) - -También puede hacer preguntas en el [official forum](http://forum.compilgames.net/) diff --git a/docs/es/index.md b/docs/es/index.md deleted file mode 100644 index 135ed08239..0000000000 --- a/docs/es/index.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# Wiki GDevelop - -GDevelop es un creador de juegos de código abierto, multiplataforma, diseñado para ser usado por todos - no se requieren conocimientos de programación. Si aún no tienes GDevelop, ¡[puedes descargarlo ahora](https://gdevelop.io/download)! - -La wiki está aquí para buscar ayuda sobre el software y tutoriales de cómo usarlo: ¡tus aportes son bienvenidos! - -## Documentación completa - -Lee la **[documentación de GDevelop](/es/gdevelop/documentation)** para tener una referencia completa. - -## Tutoriales y videos - -Aprende a usar GDevelop con los **[tutoriales](/es/gdevelop/tutorials)**. diff --git a/docs/fr.png b/docs/fr.png deleted file mode 100644 index 8332c4ec23..0000000000 Binary files a/docs/fr.png and /dev/null differ diff --git a/docs/fr/gdevelop5/all-features/expressions.md b/docs/fr/gdevelop5/all-features/expressions.md deleted file mode 100644 index eef44c6caa..0000000000 --- a/docs/fr/gdevelop5/all-features/expressions.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: expressions ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Écriture des expressions CDevelop prend en charge les expressions ! Les expressions sont des valeurs dynamiques qui peuvent être utilisées dans les paramètres d'événement. Par exemple, pour définir la position d'un objet, vous pouvez utiliser un nombre fixe comme ``75`` ou vous pouvez utiliser une expression telle que ``AnotherObject.X() - Variable(position_offset)``. - -Il existe deux types d'expressions : - -1. ***Les expressions numériques*** - -![](/gdevelop5/all-features/number_expression.png) - -Les expressions numériques peuvent être utilisées dans les paramètres d'événement. Ils reçoivent une valeur numérique telle que la position de l'objet, la cote z, le nombre de variables, etc. - -1. ***Les chaînes de caractères*** - -![](/gdevelop5/all-features/text_expression.png) - -Les chaînes de caractères peuvent être utilisées dans les paramètres qui reçoivent une valeur de texte / chaîne. Vous pouvez utiliser cette expression pour lire le contenu d'une chaîne d'objet texte, sa couleur, le texte d'une autre variable, etc. - -## Les expressions numériques Comme indiqué ci-dessus, les expressions numériques peuvent être utilisées dans les paramètres numériques. - -### Valeurs aléatoires - -``Random(max)`` - Renvoie un entier entre `0` et la valeur maximale `max` définie. La plage est \[0, max\]. - -*Exemples utilisant l'expression de génération aléatoire : Random()* - -``` Javascript -Random(3) // Les quatre valeurs entières possibles sont : 0, 1, 2 et 3 -``` - -``RandomInRange(min, max)`` - Renvoie un entier compris entre le minimum `min` et le maximum `max`. La plage est \[min, max\]. - -*Exemples utilisant l'expression de génération aléatoire : RandomInRange()* - -``` Javascript -RandomInRange(-1, 2) // Les quatre valeurs possibles sont : -1, 0, 1 et 2 - - -// A noter que "RandomInRange(min, max)" est équivalent à "min + Random(max - min)" : - --1 + Random(2 - -1) // Cela donne les mêmes résultats que ci-dessus. -``` - -``RandomFloat(max)`` - Renvoie un nombre à virgule compris entre `0` et `max`. La plage est ``\[0, max)``. A noter que ``max`` n'est pas inclus dans la plage. Il est important de noter aussi que les résultats possibles sont infinis. En effet, il existe une infinité de nombres réels entre deux valeurs différentes. - -*Exemples utilisant l'expression de génération aléatoire : RandomFloat(max)* - - RandomFloat(2.5) //CERTAINES des nombreuses valeurs possibles sont 0, 1.467798, 2.000587 et 2.499999 - -``RandomFloatInRange(min, max)`` - Renvoie un nombre à virgule compris entre `min` et `max`. La plage est ``\[min, max\]``. A noter que ``max`` n'est pas inclus dans la plage. Il est important de noter aussi que les résultats possibles sont infinis. En effet, il existe une infinité de nombres réels entre deux valeurs différentes. - -*Exemples utilisant l'expression de génération aléatoire : RandomFloatInRange()* - - RandomFloatInRange(-1.5, 2) //CERTAINES des nombreuses valeurs possibles sont -1.5, -0.598156, 1.000874 et 1.99999 - -``RandomWithStep(min, max, step)`` - Renvoie un nombre compris entre `min` and `max` avec un pas égal à `step`. La plage est ``\[min, min + N*step\]`` avec ``min + N*step ≤ max \< min + (N+1)*step``. Cela signifie que l'expression peut renvoyer toutes les valeurs échelonnées inférieures ou égales à ``max``. - -*Exemples utilisant l'expression de génération aléatoire : RandomWithStep(min, max, step)* - - RandomWithStep(1, 3, 0.6) // Les nombres générés sont : ``1``, ``1.6``, ``2.2`` et ``2.8`` diff --git a/docs/fr/gdevelop5/all-features/filesystem.md b/docs/fr/gdevelop5/all-features/filesystem.md deleted file mode 100644 index f5e1fc4f92..0000000000 --- a/docs/fr/gdevelop5/all-features/filesystem.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -title: filesystem ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - - \# Système de fichier Cette extension vous donne accès au système de fichier de l'ordinateur sur lequel votre jeu est en train de tourner. \Cette extension ne fonctionne que sur Linux, MacOS et Windows pour l'instant. les jeux mobiles et Web ne sont pas supportés par l'extension pour l'instant \## Système de fichiers ou système de stockage ? Gdevelop vous permet de stocker des données permanentes de deux manières différentes. L'extension de stockage et l'extension de système de fichiers. Parce que GDevelop est basé sur des technologies web, créer un jeu avec GDevelop est comme créer un site web qui peut être vu dans un navigateur (export web) ou dans un navigateur limité nommé "Electron" pour Windows, MacOS et Linux ou Apache Cordova pour Android et iOS Toutes ces platformes permettent d'utiliser l'extension de stockage car c'est un composant inclus dans les navigateurs. Les données peuvent être sauvegardées dans une sorte de dictionnaire intégré à ce navigateur. - -Pour des raisons de sécurité, les navigateurs web ne laissent pas les sites web écrire/supprimer des données dans le système de fichier de l'ordinateur (google.com ne peux pas créer de fichiers sur votre disque dur). Seul les jeux exportés pour Windows, Mac ou Linux peuvent utiliser l'extension du système de fichiers. - -### Stockage - -- Utilisable dans tous les types d'export (Web, mobile, PC...) - -- Ne peut contenir que des des nombres ou du texte (pas de photos, de fichiers etc...) - -- Une capacité de stockage limitée ce comptant en Mega octet et limité encore plus par le système sur lequel votre jeu est joué - -- Le joueur n'a pas d'accès direct à ce stockage - -### Système de fichiers - -- Utilisable que sur Windows, Linux et MacOS - -- Peut sauvegarder à peu près tout :-D - -- Vous pouvez choisir où sont stockées les données. - -- La seule limite de taille est celle du système (disque dur ou clé USB par exemple) - -- Le joueur peut modifier les fichiers (exemple : modifier manuellement une mauvaise résolution d'écran ou une configuration avec un éditeur de texte) - -## Asynchronous execution By default, actions get executed synchronously in GDevelop. This means that the game loop waits for each action to finish its execution before it runs the following event. Actions that take longer than a few milliseconds to execute will freeze the whole execution of the game until they finish. - -To avoid these freezes, GDevelop supports asynchronous execution of specific actions. If you choose the "async" version of the action, the operation will be delegated to a background task that runs in parallel to the game loop. After executing an asynchronous action, GDevelop will immediately execute the next event in the event sheet without waiting for the action to finish. - -To get notified about the status of the background task, the asynchronous actions have an optional result variable. This variable will be updated with the result of the operation, at the moment the background task has finished. - -By checking its value, you get to know when precisely the operation has finished and with which result: - -- **"ok"**: The operation was performed without errors. - -- **"error"**: Something went wrong while trying to perform the action. - -Saving the name of the next level after completing the previous one in a linear puzzle game, need not be done asynchronously. - -On the other hand, when trying to add an autosave function to an open-world game with procedurally generated unlimited terrain, the game developer will probably not get around saving the game asynchronously due to the heap of data to be written into the file. - -It is up to the game developer to decide which variant of the action is suitable for the individual situation. - ---- - -## Conditions - -#### File or directory exists - -This condition checks if the given file or directory exists on the file system. - -##### Parameters - -**Path to file or directory: **The absolute path to the file or directory which shall be checked. - -## Actions - -#### Create a directory - -This action creates a new folder at the given file path. - -##### Parameters - -**Directory: **The absolute file path to the directory which should be created. It is advised to use the expressions for special folders (see below), to keep you game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. - ---- - -#### Save a text into a file - -This action saves the given text (string) into a file on the file system *synchronously*. - -##### Parameters - -**String (text): **The text that will be saved to the file. - -**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. - ---- - -#### Save a text into a file (async) - -This action saves the given text (string) into a file on the file system *asynchronously*. - -##### Parameters - -**String (text): **The text that will be saved to the file. - -**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished. - ---- - -#### Save a scene variable into a JSON file - -This action saves the given scene variable into a file on the file system in JSON format *synchronously*. - -##### Parameters - -**Scene variable: **The scene variable to save into the file. This can be a number-, text variable or a structure with children. - -**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. - ---- - -#### Save a scene variable into a JSON file (async) - -This action saves the given scene variable into a file on the file system in JSON format *asynchronously*. - -##### Parameters - -**Scene variable: **The scene variable to save into the file. This can be a number-, text variable or a structure with children. - -**Save path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished. - ---- - -#### Load a text from a JSON file - -This action loads the JSON formatted text from a file and converts it into a scene variable structure. *synchronously*. - -##### Parameters - -**Scene variable: **The name of the scene variable to which the loaded structure will be added. - -**Load path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. - ---- - -#### Load a text from a JSON file (async) - -This action loads the JSON formatted text from a file and converts it into a scene variable structure. *asynchronously*. - -##### Parameters - -**Scene variable: **The name of the scene variable to which the loaded structure will be added. - -**Load path: **The path on the file system where the file should be saved. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished. - ---- - -#### Load a text from a file - -This action loads the text from a file into the given scene variable. *synchronously*. - -##### Parameters - -**Scene variable: **The scene variable to store the text. - -**Load path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. - ---- - -#### Load a text from a file (async) - -This action loads the text from a file into the given scene variable. *asynchronously*. - -##### Parameters - -**Scene variable: **The scene variable to store the text. - -**Load path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished. - ---- - -#### Delete a file - -This action deletes the file at the given file path *synchronously*. - -##### Parameters - -**File path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. - ---- - -#### Delete a file - -This action deletes the file at the given file path *asynchronously*. - -##### Parameters - -**File path: **The path on the file system where the file is located. It is advised to use the expressions for special folders (see below) to keep your game platform independent. - -**(Optional) Result variable: **Variable to store the result. It can either hold the value 'ok': the task was successful or 'error': an error occurred. The variable will be updated, at the moment the file operation has finished. - - \## Expressions These expressions return the path to special folders on the users' operating system. If you use these expressions for loading and saving files it will be guaranteed to work on all supported operating systems. (Currently Windows, Linux, and macOS) \The following gives detailed descriptions of what each of the Filesystem expressions are for. To see the syntax of the expressions refer to the filesystem section of [this article](/gdevelop5/all-features/expressions-reference). It is *strongly recommended* that you do not manually type any expressions, and instead use the expression builder as [mentioned here](/gdevelop5/all-features/expressions). - -#### Desktop folder - -This expression returns the operating system independent path to the *Desktop* folder of the user that runs your game. - -#### Documents folder - -This expression returns the operating system independent path to the *Documents* folder of the user that runs your game. This is the standard folder for storing documents. - -#### This games executable folder - -This expression returns the operating system independent path to the folder where your game is being executed from. - -#### Pictures folder - -This expression returns the operating system independent path to the *Pictures* folder of the user that runs your game. This is the standard folder for storing images. - -#### Temp folder - -This expression returns the operating system independent path to the *Temp* folder of the user that runs your game. This folder is used for temporary files that your operating system can delete at any time. - -#### Userdata folder - -This expression returns the operating system independent path to the *UserData* folder of the user that runs your game. This folder is used for storing application settings. - -#### Path delimiter - -This expression returns the operating system independent path delimiter character. ("\\" on Windows and "/" on Linux and macOS). Use this expression to build cross-platform file paths that can be accessed on all supported operating systems. - -## Example In order to save a screenshot to the *Pictures* directory you could write: - -``` () + () + "my_screenshot.png" ``` - -This will work on Windows, Linux, and macOS. diff --git a/docs/fr/gdevelop5/all-features/firebase/analytics.md b/docs/fr/gdevelop5/all-features/firebase/analytics.md deleted file mode 100644 index cff627e7a0..0000000000 --- a/docs/fr/gdevelop5/all-features/firebase/analytics.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Analytics ---- -# Analytics - -Les Analytics sont simples a utiliser dans GDevelop. Il suffit d'utiliser l'action "Activer Firebase", Firebase va ensuite automatiquement collecter et traiter les données. Les Analytics du jour mettent environ 24h a s'afficher sur le tableau de bord Firebase. - -### Enregistrer des événements customisés - -Tu veux enregistrer des données spécifiques a ton jeu? Disons que tu veux voir la proportion de joueurs qui finissent le premier niveau. Il suffit de log a la fin du niveau: Quand le niveau se termine, avant de changer de scène uttilise l'action pour log un évènement comme "niveau1_fini". Grâce a ça, tu peux voir qui/quels types de /combien de gens réussissent le premier niveau, et si personne ne le réussit tu peux le voir et adapter la difficulté! Tu peux aussi envoyer des données additionnelles comme un score ou le temps pris a finir le niveau. - -### Utiliser des propriétés utilisateur - -Les propriétés servent a grouper les joueurs. Par exemple, tu peux demander le groupe d'âges d'une personne (0-20, 20-40, 40-60, 60+) au début de jeu, l'enregistrer comme propriété utilisateur, avant de log le score. Tu pourrais en suite trier les scores et voire leur moyenne en fonction de la plage d'âge. Cela peut être utile pour par exemple changer la difficulté du jeu (via la [](/fr/gdevelop5/all-features/firebase/rc)) selon le groupe de la personne pour donner une expérience de jeu personnalisée. - -### Déboguer/Tester les événements customisés et les propriétés - -Vu que les données n'apparaissent pas très rapidement, comment être sûr que les données sont bien envoyées? D'abord, télécharge [l'extension de débogage d'analytics Google](https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna). Ensuite, exporte ton jeu vers HTML5. Mets en suite le jeu sur un serveur web (par example Apache, ou si tu as python `python -m http.server`, etc). En suite va sur le tableau de bord Firebase et sélectionne DebugView: ![](/gdevelop5/all-features/firebase/analytics1.png) Enfin, navigue ver ton serveur web et active l'extension de débogage an cliquant sur son icône. Ça devrait recharger le jeu, et maintenant il devrait apparaître dans DebugView, et tout les événements et changements de propriétés utilisateur devrait y apparaître avec un délai d'environ 20 secondes maximum. diff --git a/docs/fr/gdevelop5/all-features/firebase/functions.md b/docs/fr/gdevelop5/all-features/firebase/functions.md deleted file mode 100644 index b5f7c584c8..0000000000 --- a/docs/fr/gdevelop5/all-features/firebase/functions.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Les Fonctions Firebase ---- -# Les Fonctions Firebase - -!!! danger - - Ceci est une fonctionnalité pensée pour les développeurs JavaScript expérimentés. - -Firebase est fait pour remplacer complètement un serveur de backend. Malheureusement certaines fonctionnalités ne peuvent pas être précisés et nécessitent l'écriture d'une logique côte serveur. C'est pour ça que Firebase a les fonctions Firebase. - -Firebase laisse ces utilisateurs écrire une logique à faire tourner quand des évènements se produisent. La documentation complète est disponible ici: https://firebase.google.com/docs/functions/callable. - -In de ces évènements est un appel https. Il est possible d'appeler ces fonctions via une action depuis GDevelop! Il suffit d'utiliser l'action "Appeler la fonction Firebase" avec le nom de la fonction appelable https. Il est aussi possible de passer un objet JavaScript et de retourner à GDevelop un objet (qui sera converti en structure automatiquement). \ No newline at end of file diff --git a/docs/fr/gdevelop5/all-features/firebase/index.md b/docs/fr/gdevelop5/all-features/firebase/index.md deleted file mode 100644 index beb4567aec..0000000000 --- a/docs/fr/gdevelop5/all-features/firebase/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Firebase ---- -# Firebase - -> Pour installer firebase dans un projet, vois [](/fr/gdevelop5/all-features/firebase/quickstart). - - L'extension Firebase permet d'intégrer Firebase, une suite d'outils gratuits pour développeurs par Google, dans un jeu GDevelop. \Meme si la plupart des services sont entièrement gratuits, certains peuvent nécessiter de payer si ils sont trop utilisés. - -Cette suite d'outils comprend: - -- [Des Analytics](/fr/gdevelop5/all-features/firebase/analytics) -- [De la configuration a distance](/fr/gdevelop5/all-features/firebase/rc) -- De l'Authentification -- Un système de fichier en ligne (Storage) -- Une base de données structurée (Firestore) -- Une base de données en temps réel (Realtime Database) -- [Les Fonctions Firebase](/fr/gdevelop5/all-features/firebase/functions) (/!\\ Cette fonction requiert de savoir coder en Javascript!) -- De la messagerie -- Un mesureur de performance a distance diff --git a/docs/fr/gdevelop5/all-features/firebase/quickstart.md b/docs/fr/gdevelop5/all-features/firebase/quickstart.md deleted file mode 100644 index 2ad40ac06e..0000000000 --- a/docs/fr/gdevelop5/all-features/firebase/quickstart.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Démarrer avec Firebase ---- -## Démarrer avec Firebase - -Firebase n'est pas une fonctionnalité a proprement parler mais une *intégration*. Cela veut dire qu'il faut *connecter* une application Firebase a GDevelop pour utiliser des fonctionnalités de Firebase. - -### Step 1: Créer un projet Firebase - -D’abord, va sur . Il devrait y avoir ta liste de projets, créés en un nouveau: ![](/gdevelop5/all-features/firebase/quickstart1.png) Nomme ton projet comme tu veux. Dans le cadre de cet article, je vais nommer mon projet Tutorial-GDevelop. ![](/gdevelop5/all-features/firebase/quickstart2.png) \ Tu peux activer les Analytics si tu veux, mais cela n'est pas nécessaire pour utiliser les autres services. Tu peux toujours les activer plus tard plus tard. {.is-info} - -Tu devrais voir le tableau de bord Firebase de ton projet. - -### Step 2: Connecter le jeu au projet Firebase - - Les jeux GDevelop fonctionnent comme une *application web*, créés en donc une depuis Firebase ![](/gdevelop5/all-features/firebase/quickstart3.png) Mets un nom de ton choix et tu peux décocher la case "Firebase hosting". \ A l'heure ou cet article est écrit il n'y a pas de possibilité d'utilisation de firebase hosting mais c'est possible que cela change Firebase devrait te montrer du code ressemblant celui-ci à present: ![](/gdevelop5/all-features/firebase/quickstart4.png) La seule partie nécessaire est *la configuration*, la partie entre les {}. Copie donc le contenu entre les {} **y compris les {}**. Chez moi ça serait: ``` - - { - apiKey: "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA", - authDomain: "tutorial-gdevelop.firebaseapp.com", - databaseURL: "https://tutorial-gdevelop.firebaseio.com/", - projectId: "tutorial-gdevelop", - storageBucket: "tutorial-gdevelop.appspot.com", - messagingSenderId: "386980638073", - appId: "1:386980638073:web:b00afc0ecb3ed7ca4f53a8", - measurementId: "G-R0KBN0HPQ8" - } - -``` - -Maintenant colle le dans la case "Configuration Firebase" des propriétés du projet. Tu remarqueras sans doute le *message d'erreur*: ![](/gdevelop5/all-features/firebase/quickstart5.png) Cette erreur est normale et due au fait que GDevelop utilisé un *format* légèrement different, où les *clés* sont entourés par des " ". Dans mon cas ils faudrait transformer ma configuration en: ``` - - { - "apiKey": "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA", - "authDomain": "tutorial-gdevelop.firebaseapp.com", - "databaseURL": "https://tutorial-gdevelop.firebaseio.com/", - "projectId": "tutorial-gdevelop", - "storageBucket": "tutorial-gdevelop.appspot.com", - "messagingSenderId": "386980638073", - "appId": "1:386980638073:web:b00afc0ecb3ed7ca4f53a8", - "measurementId": "G-R0KBN0HPQ8" - } - -``` L'erreur devrait avoir disparu: ![](/gdevelop5/all-features/firebase/quickstart6.png) Et voilà, bravo! Tu est fin prêt a utiliser Firebase dans GDevelop! diff --git a/docs/fr/gdevelop5/all-features/firebase/rc.md b/docs/fr/gdevelop5/all-features/firebase/rc.md deleted file mode 100644 index cffa4cbb0c..0000000000 --- a/docs/fr/gdevelop5/all-features/firebase/rc.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Configuration a distance Firebase ---- -# Configuration a distance Firebase - -!!! note - - N'oublie pas [d'installer Firebase](/gdevelop5/all-features/firebase/quickstart)! - - La configuration distante Firebase te permet de *changer des paramètres* de jeu pour tout tes utilisateurs ou une partie d'entre eux **depuis le net**. Par example: tu peux augmenter la difficulté du jeu a distance uniquement pour les joueurs expérimentés qui se plaignent de la facilité du jeu sans avoir à déployer un patch. \Pour pouvoir sélectionner des groupes de joueurs efficacement ça aide d'activer les Analytics et l'Authentification - -### A propos de cet article - -Cet article va prendre un jeu très simple et y rajouter de la configuration distante pour expliquer son fonctionnement et intégration dans un jeu. Voici le jeu de base: ![](/gdevelop5/all-features/firebase/rc1.png) ![](/gdevelop5/all-features/firebase/rc2.png) - -Comme tu peux le voir, il s'agit d'un simple clicker où on peut gagner et perdre de l'argent. - -### Préparer la configuration distante - -La configuration distante requiert une action pour fonctionner. Elle permet de passer une structure comme **défaut**. Ce défaut est important car c'est la valeur qui va être utilisée avant la première connexion avec le serveur ou si le jeu est n'est pas connecté au réseau pour télécharger la configuration. Voici la structure que je vais utiliser comme défaut (seul le contenu de la structure est importante, pas son nom) ![](/gdevelop5/all-features/firebase/rc3.png) Puis il suffit de passer cette structure a l'action: ![](/gdevelop5/all-features/firebase/rc4.png) Les deux variables que je vais utiliser sont pour décider la valeur retirée et/ou ajoutée quand on clique sur un des boutons. - -### Préparer Firebase - - Maintenant ajoutons une valeur a ces variables sur Firebase. Pour ce faire cliques sur "Configuration Distante" depuis le tableau de bord Firebase: ![](/gdevelop5/all-features/firebase/rc5.png) Maintenant il suffit de mettre les mêmes variables et valeurs: ![](/gdevelop5/all-features/firebase/rc6.png) \ N'oublie pas d'enregistrer les modifications ! ![](/gdevelop5/all-features/firebase/rc7.png) - -### Ajouter un mécanisme de synchronisation - -Cette extension te laisse choisir quand synchroniser la configuration avec le serveur. Le moyen conseillé et d'utiliser l'action pour synchroniser la configuration **au démarrage du jeu et dans un événement périodique**. C'est a dire dans un événement qui arrive souvent mais pas trop dans le jeu \ Il est aussi possible d'utiliser l'action "Mettre l'auto synchronisation" mais elle n'est pas très fiable. {.is-info} Comme évènement périodique je pourrais utiliser un [Timer](/gdevelop5/all-features/timers), mais je veux garder le code simple et utilise donc un événement périodique existant; l'appui de bouton: ![](/gdevelop5/all-features/firebase/rc8.png) - -### Remplacer des valeurs par la configuration - -Maintenant, il suffit de remplacer les valeurs a rendre modulable par l'expression pour obtenir les valeurs du serveur: ![](/gdevelop5/all-features/firebase/rc9.png) - -#### Adapter le jeu a la modularité - -Il est important de faire attention en remplaçant des valeurs fixes par des valeurs modulables. Il faut par example mettre a jour dynamiquement des valeurs qui étaient fixes. Dans mon cas, il faut que je rajoute une action pour mettre a jour mon texte précédemment statique en cas de changement de la valeur: ![](/gdevelop5/all-features/firebase/rc10.png) - -### Utilise le tableau de bord Firebase pour changer les variables - -Et c'est bon! Tu as terminé et peux distribuer ton jeu. Si tu dois modifier une des variables, il te suffit de le faire depuis le tableau de bord Firebase. diff --git a/docs/fr/gdevelop5/behaviors/destroyoutside.md b/docs/fr/gdevelop5/behaviors/destroyoutside.md deleted file mode 100644 index 812270cc62..0000000000 --- a/docs/fr/gdevelop5/behaviors/destroyoutside.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Comportement de destruction en dehors de l'écran ---- -# Comportement de destruction en dehors de l'écran - - -C'est l'un des comportements les plus simples, il suffit de l'ajouter à un objet et ensuite, chaque fois qu'une instance de cet objet sort des limites de l'écran, cette instance sera détruite. - -C'est une façon simple de vous assurer que votre jeu n'est pas rempli d'objets inutile qui pourraient le ralentir. - -#### Ajouter un comportement à l'objet - -Pour ajouter un comportement à un objet, ouvrez d'abord les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionnez Edit object dans la liste. Sélectionnez ensuite les comportements et cliquez sur le bouton Add a behavior to the object . - -#### Détruire lorsque hors de l'écran -![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -Une fois que vous avez sélectionné le comportement dans la liste, il va détruire l'objet lorsqu'il se trouve en dehors de l'écran. Ce comportement n' a aucune option à modifier et s'applique automatiquement à l'objet. \ No newline at end of file diff --git a/docs/fr/gdevelop5/behaviors/draggable.md b/docs/fr/gdevelop5/behaviors/draggable.md deleted file mode 100644 index dc137603ba..0000000000 --- a/docs/fr/gdevelop5/behaviors/draggable.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Comportement des objets déplaçables ---- -## Comportement des objets déplaçables - -Ce comportement rendra l'objet déplaçable avec la souris ou en utilisant l'écran tactile de l'appareil. - -#### Ajouter un comportement à l'objet -Pour ajouter un comportement à un objet, ouvrez d'abord les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionnez "Edit object" dans la liste. Sélectionnez ensuite les comportements et cliquez sur le bouton "Ajouter un comportement". - -#### Objet déplaçable -![](/gdevelop5/behaviors/draggable-object-behavior-inlist.png) -En sélectionnant le comportement déplaçable de l'objet dans la liste, nous pouvons ajouter la fonctionnalité à l'objet. -Ce comportement n' a aucune option à modifier et s'applique automatiquement à l'objet. - -En utilisant des événements, nous pouvons vérifier si un objet est en train d'être déplacé - -#### Exemples - -Liste d'exemples: - - * objet déplacable: [Link](https://gametemplates.itch.io/template-manipulate-text-object) \ No newline at end of file diff --git a/docs/fr/gdevelop5/behaviors/index.md b/docs/fr/gdevelop5/behaviors/index.md deleted file mode 100644 index 33274eca8b..0000000000 --- a/docs/fr/gdevelop5/behaviors/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Comportements ---- -# Comportements - -Les comportements ajoutent des capacités supplémentaires aux objets. Tous les objets peuvent avoir un ou plusieurs comportements. - -#### Ajouter un comportement à un objet. - -Pour ajouter un comportement à un objet, vous devez ouvrir les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionner Edit object dans la liste. -Ensuite, vous devriez voir les propriétés de l'objet sélectionné que vous devez ignorer pour le moment et sélectionner l'options Behaviors en haut de la fenêtre. -![](/gdevelop5/behaviors-tab.png) - -Ici vous verrez une liste de comportements ajoutés à l'objet mais, il est probablement vide pour le moment. Pour ajouter un comportement à l'objet, cliquez sur le bouton Add a behavior to the object. -![](/gdevelop5/add-behavior-button.png) - -Ensuite vous devriez voir une liste des comportements disponibles -![](/gdevelop5/add-behavior-list.png) - -Il se peut que vous deviez faire défiler vers le bas pour les voir tous. -Enfin, il suffit de cliquer sur un comportement pour ajouter le comportement à l'objet. - -#### En savoir plus - -Vous pouvez en apprendre plus sur chaque comportement en cliquant sur les liens suivants: - - * [Comportement Physique](/fr/gdevelop5/behaviors/physics2) - * [Pathfinding](/gdevelop5/behaviors/pathfinding) - * [Destroy outside screen](/gdevelop5/behaviors/destroyoutside) - * [Platformer objects and platforms](/gdevelop5/behaviors/platformer) - * [Draggable object](/gdevelop5/behaviors/draggable) - * [Top-down movement](/gdevelop5/behaviors/topdown) \ No newline at end of file diff --git a/docs/fr/gdevelop5/behaviors/physics2.md b/docs/fr/gdevelop5/behaviors/physics2.md deleted file mode 100644 index 775e3495d6..0000000000 --- a/docs/fr/gdevelop5/behaviors/physics2.md +++ /dev/null @@ -1,455 +0,0 @@ ---- -title: Comportement Physique ---- -# Comportement Physique - -Le moteur (comportement) physique peut être ajouté aux objets pour les faire bouger de manière réaliste, en suivant les lois de la physique. En arrière-plan, l'extension utilise Box2D, une bibliothèque de simulation physique des corps rigides rapide et très complète. - -Le comportement physique est basé sur trois grands concepts : le **_monde_** qui contient les corps, les **_corps_** eux-mêmes et les **_joints_** qui relient les corps. Tous sont expliqués en détail dans ce texte. - -!!! warning - - **Limite** : Comme indiqué ci-dessus, l'extension simule la physique des **_corps rigides_**, ce qui signifie que les corps ne peuvent pas être déformés. Des objets comme les formes molles, les vêtements et les liquides ne sont pas pris en charge. - -##Le monde - -Le **_monde_** est l'endroit où se déroulent les simulations, les corps et les contacts sont rattachés à un monde pour pouvoir interagir avec d'autres entités. -Vous n'avez pas à vous soucier de placer des objets dans le monde, les objets utilisant le comportement Physique sont automatiquement ajoutés au monde. De plus, il ne peut y avoir qu'un seul monde à la fois, vous ne pouvez pas exécuter deux simulations indépendantes en même temps. -La taille du monde, comme celle de GDevelop, est infinie. Vous n'avez donc pas à vous soucier de l'emplacement de vos objets, ils suivront toujours les lois de la physique. - -Le monde comporte 3 propriétés : - - * **Gravity** (la gravité) : elle est constituée de deux composantes (**X** et **Y**), et fonctionne comme la gravité terrestre. Elle ajoute une force à chaque objet, le poussant dans la direction donnée. Les objets supportent également un facteur d'échelle de gravité, plus à ce sujet dans la section des corps. - * **Timescale** (échelle temporelle) : Cette propriété définit l'échelle de temps utilisée par la simulation. Avec une échelle de temps de 0,5, la simulation s'exécute à la moitié de la vitesse normale, avec une échelle de temps de 2, la simulation est deux fois plus rapide et si elle est égale à 0, la simulation s'interrompt. Super utile pour les effets "bullet time" ! - * **Scale** (Échelle) : Dans GDevelop, les distances et les tailles sont définies en pixels mais le moteur physique utilise des mètres. Pour que la conversion se fasse, il faut fournir un facteur d'échelle (celui -ci comporte aussi, comme la gravité, deux composantes, l'échelle en **X** et l'échelle en **Y**). Les valeurs d'échelle indiquent le nombre de pixels par mètre. Par exemple, une valeur de 50 signifie qu'une distance de 50 pixels dans GDevelop est convertie en 1 mètre dans le monde physique. - -!!! note - - La règle numéro un pour décider de l'échelle du monde consiste à le choisir de manière à ce que la taille de vos objets mobiles / dynamiques soit comprise entre 0,1 et 10 mètres ; en dehors de cette plage, les simulations perdront en précision. Par exemple, si vous travaillez avec des tailles d’objets d’environ 100 x 100 pixels, une échelle mondiale de 100 serait parfaite, car la taille de votre corps sera d’environ 1x1 mètre. Les objets statiques peuvent être beaucoup plus longs, jusqu'à 50 mètres. - -## Les corps - -Les **_corps_** sont la _vie_ de l'extension **Physics**, ils définissent le mouvement de l'objet, sa forme, son rebond, sa capacité de rotation ou de déplacement. - -Lorsque vous ajoutez le comportement **Physics** à un objet, vous pouvez définir la configuration du corps directement à partir de l'EDI. - -Vous pouvez "jouer" avec les nombreuses options de **Physics** pour modéliser le monde physique selon vos besoin. Ces options sont décrites ci-dessous. - -###Les types de corps - -GDevelop supporte trois types de corps de base : - - * **Dynamic** : est le type le plus courant. Les **_corps dynamiques_** sont affectés par la gravité et peuvent entrer en collision avec d'autres corps _dynamiques_, _statiques_ et _cinématiques_. Vous pouvez leur appliquer des forces et des impulsions, ainsi que modifier leur vitesse. Presque tout ce qui doit bouger devrait être un corps dynamique. - * **Static** : Les **_objets statiques_** _ne sont pas_ affectés par la gravité et vous ne pouvez pas les déplacer en utilisant des forces, des impulsions ou en modifiant leur vitesse. Ils ne peuvent entrer en collision qu'avec des objets dynamiques, tout en ignorant la cinématique et les autres corps statiques. Ils sont destinés à être utilisés pour la géométrie statique du monde, comme le sol, les murs non mobiles et les plates-formes. - * **Kinematic** (Cinématique) : Les **_objets cinématiques_** sont très spécialisés. En tant qu'objets statiques, ils ne sont pas affectés par la gravité, ni par les forces ou les impulsions, mais vous pouvez, tout comme pour les corps dynamiques, les faire se mouvoir par leur vitesse. Les corps cinématiques entrent en collision avec les objets dynamiques uniquement et sont utiles pour simuler des murs et des plates-formes mobiles. - -Et quelques paramètres liés à la dynamique : - - * **Bullet** (Obus, balles) : Si la valeur est **true**, l'objet utilisera un algorithme de détection de collision en continu, ce qui réduira légèrement les performances, mais améliorera la réponse lors des déplacements très rapides. Utile pour simuler correctement ... évidemment ... des balles de fusil (ou tout objet très rapide) et réduire les risques que les balles traversent des objets minces. - -!!! danger - - Utilisez cette option sur les objets qui en ont vraiment besoin. L'impact sur les performances lorsqu'il est utilisé dans chaque objet déplacé n'est pas * léger *. - - * **Fixed Rotation** (Rotation bloquée) : Si la valeur est **true**, l'objet ne pourra pas pivoter. Imaginez que votre joueur tourne à chaque fois qu’il heurte un mur ou en descendant une pente. - * **Can Sleep** (Peut dormir) : Si défini à **true**, le moteur peut améliorer les performances des objets qui ne sont pas déplacés depuis un moment, ce qui les met en veille. C'est juste un paramètre de performance qui ne devrait pas avoir d'impact sur la simulation elle-même. - -!!! note - - Vous pouvez vérifier si un corps "dort" en utilisant les conditions d'événements. Si un objet dort, cela signifie qu'il est dans un état d'équilibre depuis un moment, utile pour créer des jeux d'équilibre. - -###La forme du corps (Body shape) - -Les options **Body shape** (forme du corps) déterminent la forme et la taille du corps et, en fonction du type de forme, vous disposez de différentes options pour définir les dimensions. - - * **Box** (Boîte) : //Un rectangle aligné sur l'axe et centré sur l'objet//. Si la largeur et la hauteur personnalisées ne sont pas définies, c'est la taille de l'objet qui est utilisée. - * **Circle** (Cercle) : // Un cercle centré sur l'objet //. Si aucun rayon personnalisé n'est défini, il sera calculé comme une moyenne à partir de la largeur et de la hauteur de l'objet. Si l'objet se présente sous la forme d'un carré, le résultat sera un cercle inscrit à l'intérieur de la boîte englobante. - * **Edge** (Arête) : // Une fine ligne centrée dans l'objet //. Cette forme n'ayant pas de volume, elle ne fonctionne pas bien en tant que corps dynamique, elle est prévue pour être utilisée pour la géométrie statique, le sol et les plateformes. Si une longueur et un angle personnalisés ne sont pas définis, l'arête sera une ligne horizontale avec une longueur égale à la largeur de l'objet. - * **Polygon** : _Une forme personnalisée définie par ses sommets_. Le polygone doit être convexe et si cette condition échoue, la forme revient à la boîte par défaut. Le nombre de sommets doit être supérieur ou égal à 3 (sinon, il ne peut pas être convexe) et inférieur ou égal à 8 (nombre maximal de sommets pris en charge par polygone) : 3 ≤ nombre de sommets ≤ 8. - -Outre le type et la dimension personnalisés de la forme, **Body shape** prend en charge deux options supplémentaires : - - * **Offset** (Décalage) : Le décalage a deux composantes (X et Y) et peut être utilisé pour déplacer la forme à partir du centre de l'objet. - * **Scale** (Échelle) : Vous pouvez aussi redimensionner la forme. **Scale** redimensionne les dimensions et le décalage personnalisés de la forme. Si vous n'utilisez pas des dimensions personnalisées, par exemple si vous utilisez la forme **Box** et laissez la largeur et la hauteur égales à la taille d'origine de l'objet, il n'est pas nécessaire de modifier l'échelle de la forme car la mise à l'échelle sera effectuée automatiquement. Si le type de forme est **Polygon**, l'échelle modifiera également la position des sommets et l'origine de l'échelle sera **Polygon origin** (Origine du polygone). Si vous définissez l'origine du polygone sur **Center** et réduisez la taille de la forme, les sommets seront réduits jusqu'à et dans la direction du centre de l'objet. - -###Paramètres du corps (Body settings) - -Outre le type et la forme, les corps physiques disposent de paramètres supplémentaires qui déterminent le comportement du corps en cas de collision, l'impact de la gravité sur celui-ci et l'énergie perdue en raison du frottement de l'air. Chaque réglage est expliqué ci-dessous. - - * **Density** (Densité) : La densité détermine la masse corporelle. La formule générale est `densité = masse/volume`, mais comme il n’y a pas de troisième dimension, nous pouvons partir du fait qu’il s’agit de `densité = masse/surface`. Deux corps ayant la même densité mais des aires/tailles différentes auront une masse différente, vous devez donc en tenir compte lors du redimensionnement des objets. - - __La densité ne peut pas être négative !__ - - * **Friction** (Frottement) : Le frottement ajoute une force aux corps en contact, dans le sens opposé à celui de leur mouvement. Plus le frottement est élevé, plus les objets ralentissent au contact. Pour mieux le comprendre, une plate-forme en sable aura un frottement proche de 1 (très haut), alors qu'une plate-forme en glace aura un facteur de frottement proche de zéro. - - __Le frottement ne peut être négatif ! __ - -Lorsque deux objets sont en contact, le frottement total est calculé à partir des frottement des objets en contact par la formule : `friction = sqrt (frictionA * frictionB)` - -* **Restitution** : Détermine la quantité d'énergie que l'objet garde ou perd à chaque collision. Une valeur de **0** signifie que les collisions seront parfaitement inélastiques et que l'objet ne rebondira pas du tout. Alors qu'une restitution valant **1** signifie que les collisions seront parfaitement élastiques et que l'objet rebondira avec la même énergie à chaque fois. Imaginez une balle qui rebondit sur le sol et qui atteint toujours la même hauteur. Les valeurs de restitution supérieures à 1 sont valides, mais l'objet gagne de l'énergie à chaque collision et la simulation risque de ne plus être maîtrisée. - - __La restitution ne peut pas être négative! __ - -Lorsque deux objets entrent en contact. , la restitution totale est calculée à l'aide de la restitution des objets en collision via la formule : `restitution = max (restitutionA, restitutionB)` - -* **Linear Damping** (Amortissement linéaire) : L'amortissement linéaire réduit la vitesse de l'objet à tout moment. Plus la valeur est élevée, plus les objets sont ralentis. Vous pouvez vous la représenter en comparant la viscosité de l’air (qui est faible) à cette de l'eau (plus élevée) et à celle de la mélasse (qui est encore plus élevée. Autrement dit, un objet lancé dans l'air va plus loin que s'il était lancé dans l'eau. - - __Bien que vous puissiez utiliser n’importe quelle valeur, l’amortissement négatif fait que l’objet gagne en vélocité à chaque étape, générant un comportement non-physique.__ - -* **Angulaire Damping** (Amortissement angulaire) : Analogue à l'amortissement linéaire, mais plutôt que de ralentir la vitesse linéaire de l'objet, il ralentit la vitesse angulaire, autrement dit la vitesse de rotation de l'objet à chaque étape. - -__Bien que vous puissiez utiliser n'importe quelle valeur, un amortissement négatif fait que l’objet gagne en vitesse angulaire à chaque étape, générant un comportement non-physique.__ - -* **Gravity Scale** (Échelle de gravité) : Ce facteur est multiplié par la gravité du monde pour déterminer la gravité appliquée à l'objet. Notez qu'il s'agit d'un nombre et non d'un vecteur, vous ne pouvez pas modifier l'orientation de la gravité, mais uniquement sa magnitude et son sens. Tout nombre est valide, par exemple si **Gravity Scale** vaut `1`, la gravité appliquée sera la gravité du monde, si elle vaut `2`, la gravité sera deux fois plus forte pour cet objet et si elle est égale à `0,5`, elle sera deux fois plus faible. Avec une valeur de `0`, l'objet ne sera pas affecté par la gravité, et si elle vaut `-1`, la gravité sera inversée. - -!!! note - - Vous pouvez utiliser une échelle de gravité négative pour inverser la gravité d'un objet spécifique. - -### Calques et masques - -Les calques et les masques permettent de filtrer les collisions entre objets. Imaginez que vous construisez un jeu de zombies et que vous voulez que votre joueur entre en collision avec le sol et que les zombies entrent en collision avec le joueur et avec le sol également, mais vous ne voulez pas que les zombies se heurtent avec d'autres zombies, Dans ce cas, vous avez besoin de filtres de collision. - -Comment fonctionnent les filtres ? -Il n'y a qu'une seule règle : - -!!! warning - - Deux objets `A` et `B` peuvent entrer en collision si n'importe quel calque de `A` correspond à n’importe quel masque de `B` **et** que n'importe quel calque de `B` correspond à n’importe quel masque de `A` - -Voici une solution possible au problème des zombies évoqué ci-dessus : - - * Sol : activez le premier calque et les premier et deuxième masques. - * Joueur : activez le premier calque et les premier et deuxième masques. - * Zombie : Activer le deuxième calque et le premier masque uniquement. -Pourquoi cela fonctionne-t-il ? - - * Sol et joueur : un calque de sol correspond à un masque de joueur (premier) **et** un calque de joueur correspond à un masque de sol (premier). - * Sol & Zombie : un calque de sol correspond à un masque de zombie (premier) **et** un calque de zombie correspond à un masque de sol (deuxième). - * Joueur & Zombie : un calque joueur correspond à un masque de zombie (premier) **et** un calque zombie correspond à un masque de joueur (deuxième). - * Zombie & Zombie : seul le deuxième calque est activé pour le zombie, et seul le premier masque est activé, afin que les zombies ne puissent pas se heurter. - -Notez que vous disposez de 16 calques et de 16 masques, et pour résoudre notre petit problème, il ne vous a fallu que 2 calques et masques. - -###Mouvement - -Après avoir configuré vos objets, il est temps de commencer la simulation : la gravité commence d'agir, les objets bougent et se heurtent, mais vous ne pouvez pas interagir avec le jeu. Il est temps de déplacer les objets vous-même et pour ce faire, vous devez utiliser le système des événements. Voici quelques actions utiles pour interagir avec les objets et les déplacer comme vous le souhaitez. - -!!! danger - - Les forces intégrées de GDevelop ne conviennent pas au comportement **Physics**. Pour définir la vitesse linéaire, utilisez les forces spécifiques à la physique ou aux actions de la physique. - -* **Forces** : Les forces modifient le mouvement d'un objet et sont destinées à être utilisées pendant un certain temps pour générer un effet appréciable. La vitesse que l'objet gagne lorsque vous lui appliquez une force dépend de la magnitude de la force et de la masse de l'objet. Un objet lourd se déplacera plus lentement qu'un objet plus léger si la même force est appliquée sur les deux masses. - -__Il faut définir un point d'application pour ajouter et utiliser une force.__ - -* **Torques** (Couples) : Analogues aux forces mais pour la rotation. Un couple générera une accélération angulaire sur l'objet, le faisant tourner plus vite ou plus lentement dans le temps. - -* **Impulses** (Impulsions) : Semblables aux forces, mais ne dépendent pas du temps, elles ajoutent instantanément une "quantité" de vélocité. Elles sont censées être utilisées une seule fois. Une utilisation courante pourrait être de simuler des sauts : chaque fois que vous appuyez sur le bouton de saut, vous ajoutez une impulsion vers le haut. - -__Il faut définir un point d'application pour ajouter une impulsion.__ - -* **Angular Impulses** (Impulsions angulaires) : Analogues aux impulsions mais pour la rotation. Change la vitesse de rotation d'un objet instantanément. - -* **Velocity** (Vélocité) : Vous permet de modifier directement la vélocité d'un objet. Par exemple, vous pouvez faire marcher votre personnage à vitesse constante, puis modifier la vélocité tant que vous appuyez sur un bouton de mouvement. - -* **Angular Velocity** (Vitesse angulaire) : Vous pouvez également définir directement la vitesse angulaire (vitesse de rotation). - -!!! warning - - Vous pouvez modifier directement la position des objets, mais cela générera des comportements non physiques, du moins jusqu'à ce que la nouvelle position soit corrigée. Après tout, les objets ne se téléportent pas dans la vie réelle. - -Notez que les forces et les impulsions ont besoin d’un //point d’application//. C’est important car c n'est pas pareil de pousser un verre à la base (pour déplacer le verre) que de le pousser dans le haut (le verre va probablement tomber), ni de pousser une porte vers sa poignée ou vers ses charnières. -Si le point d'application est différent du centre de gravité de l'objet, il générera une sorte de couple/rotation. - -!!! note - - Vous pouvez obtenir le centre de gravité d'un objet en utilisant les expressions de comportement **Physics** `MassCenterX ()` et `MassCenterY ()` - -##Les joints (Joints) - -Les joints sont des restrictions données aux objets pour leur faire suivre des règles de mouvement supplémentaires. Certains joints font pivoter les objets autour d’un point fixe, d’autres maintiennent deux objets ensemble, les plus complexes simulent les roues du véhicule, limitant la distance entre les corps tout en leur permettant de tourner librement. - -** Joint ID ** (ID du joint) : -Lorsque vous créez un joint, vous pouvez lui transmettre un nom de variable. Si vous le faites, GD stockera le numéro d'identification unique (**ID**) du joint dans la variable donnée. En vous servant de **Joint ID**, vous pourrez le modifier après sa création, vérifier ses valeurs et le supprimer. Imaginez que vous créez un joint pour attacher une clé à une ficelle fixée au toit. Si vous enregistrez l'ID du joint dans une variable, vous pourrez vérifier si un objet entre en collision avec la ficelle et supprimer le joint à l'aide de l'ID enregistrée pour faire tomber la clé. -!!! note - - Un **Joint ID** sera toujours un nombre supérieur à zéro. - -En règle générale, vous aurez besoin de deux objets pour définir un joint (dans l'exemple précédent, la corde et la clé), mais il existe des "exceptions". Consultez l'explication fournie dans **Revolute joint** si vous souhaitez en savoir plus. - -Voici une liste des propriétés, conditions et actions communes à tous les types de joints. - -* ** Joint first/second object ** (Premier/second objet du joint) : conditions qui vous permettent de sélectionner des objets s’ils sont le premier ou le second objet reliés par le joint. -* ** Joint first/second anchor X/Y ** (Ancrage X/Y du premier/second objet) : expressions permettant d'obtenir la position du premier ou du deuxième point d'ancrage de l'objet relié par le joint. -* ** Joint reaction force/torque ** (Force/couple de réaction du joint) : Conditions et expressions permettant de vérifier la force ou le couple de réaction du joint, cette valeur indique à quelle distance se situe le joint par rapport à son état d'équilibre. Si la force de réaction du joint est trop élevée, cela signifie que le joint a été séparée de sa position d'équilibre par une force considérable. Utile pour faire des joints cassables. -* **Remove joint** (Supprimer le joint) : Action pour supprimer le joint spécifié. Si le joint est l'un des enfants d'un joint de type engrenage, l'engrenage sera également supprimé. Si l'un des objets relié par le joint est supprimé, le joint sera également supprimé. - -Il existe de nombreux types de joint, chacun avec des comportements et des propriétés uniques. Ils sont énumérés ci-dessous. - -!!! warning - - Assurez-vous de créer les joints dans les événements qui ne s'exécutent qu'une seule fois (par exemple, au début de la scène). La créations de joints à chaque image créera des centaines de de joints en quelques secondes, ce qui entraînera des performances médiocres, des comportements non physiques, voire faire planer la machine en raison de l'énorme consommation de mémoire. - -### Distance Joint - -**Distance joint** essaie de garder deux objets séparés par une distance donnée, la distance est calculée à partir des points d'ancrage du joint. -Les objets ne seront pas à la distance donnée tout le temps mais auront tendance à l'atteindre, en utilisant une formule d'oscillateur. - -Paramètres : -* **Length** (Longueur) : La distance de la cible. Si une valeur négative est donnée, c'est la distance entre les objets au moment de la création du joint qui est utilisée. -* **Damping ratio** (Rapport d'amortissement) : Le "frottement" des objets va souffrir, des valeurs faibles font osciller davantage les objets, des valeurs plus élevées réduisent les oscillations mais les objets bougent plus lentement. -* **Frequency** (Fréquence) : Spécifie à quelle vitesse les objets vont osciller, des valeurs faibles génèrent des joints souples se déplaçant plus lentement pour atteindre la distance cible, des valeurs plus élevées simulent des joints plus rigides avec des objets se déplaçant très rapidement pour atteindre la cible. - -!!! note - - Les valeurs d'amortissement et de fréquence faibles généreront des joints souples, avec de nombreuses oscillations avant de se rapprocher de la distance cible, tandis que des valeurs élevées pour les deux réglages génèrent des joints très rigides. - -### Revolute Joint - -Les joints **Revolute** fonctionnent comme des axes, ils sont également appelés **_charnières_**. Ils font pivoter les objets autour d’un point. -Il existe deux types de joints **Revolute**, qui sont presque les mêmes, mais avec une petite différence. - -* **Revolute joint between two objects** (Joint tournant entre deux objets) : il relie deux objets qui les objets se déplacent ensemble de manière à ce que leurs points d'ancrage se chevauchent, et chaque objet pivote autour de son point d'ancrage. Imaginez que vous épingliez deux cartes ensemble et les lanciez afin qu'elles bougent et tournent librement autour de l'épingle. -* **Revolute joint in a single object** (Joint tournant dans un seul objet) : Les joints fonctionnant généralement entre deux objets, celui-ci représente l'une des exceptions. Ce joint nécessite un seul objet et son point d'ancrage épingle l'objet à la position fixe donnée. Pensez-y comme si vous épingliez une note sur un tableau d'affichage : la note peut pivoter autour de l'épingle mais ne peut pas bouger. - -!!! note - - Notez que, dans la version du joint à objet unique, l'objet est ajouté en tant que deuxième objet du joint, le premier objet est un corps statique masqué, ce qui permet d'utiliser ce type de joint dans les engrenages (expliqué dans la section joint d'engrenage). - -Voici la liste des paramètres spécifiques aux joints **Revolute** : - -* **Angle limits** (Limites d'angle) : Si activé, la rotation sera limitée entre les angles `minimum` et `maximum`. Notez que les deux angles sont relatifs au premier objet. -* **Reference angle** (Angle de référence) : L'angle entre les objets sera considéré comme nul. Il décale toutes les propriétés de l'angle. Si l'angle de référence est de 15 degrés, demander l'angle courant de l'articulation lorsque l'angle entre les objets est de 15 degrés en coordonnées universelles retournera 0, et si vous définissez l'angle maximal à 30, il retournera 45 (par rapport au premier objet). -* **Minimum angle** : L'angle minimal entre les objets, par rapport au premier objet. Doit être inférieur ou égal à l'angle maximal. -* **Maximum angle** : L'angle maximal entre les objets, par rapport au premier objet. Doit être supérieur ou égal à l'angle minimal. - -!!! tip - - Vous pouvez utiliser des joints **Revolute** avec des limites d’angle pour simuler des articulations charnières - -* **Motor** : Si activé, ce joint ajoutera du couple au second objet pour le faire tourner sans avoir besoin d'une force externe ... comme un moteur. Si vous l'activez, pensez à définir une vitesse de moteur et un couple moteur maximal ! -* **Motor speed** (Vitesse du moteur) : La vitesse du moteur cible, en degrés par seconde. Il s’agit de la vitesse que le deuxième objet essaiera d’atteindre en tournant autour du premier objet. La vitesse du moteur peut être positive pour faire tourner l'objet dans le sens des aiguilles d'une montre ou négative pour le faire tourner dans le sens contraire des aiguilles d'une montre. -* **Maximum motor torque** (Couple moteur maximal) : Le couple maximal que le moteur peut utiliser pour atteindre la vitesse de rotation cible. Doit être positif. - -Vous pouvez de plus accéder aux valeurs suivantes pendant la simulation : - -* **Joint angle** (Angle du joint) : L'angle actuel entre les objets, par rapport au premier objet et affecté par l'angle de référence. -* **Joint speed** (Vitesse du joint) : vitesse angulaire actuelle du joint, c'est-à-dire la vitesse autour de laquelle tourne le deuxième objet, par rapport à la rotation du premier objet. -* **Joint motor torque** (Couple moteur commun) : Le couple du moteur actuel peut être inférieur au couple moteur maximal, car il s'agit du couple requis pour atteindre la vitesse cible du moteur. - -!!! note - - Les joints tournants peuvent également être utilisés pour : des leviers de flipper, des portes de type store, des machines tournantes automatiques en tant ponts levis ou tournants. - - - -### Prismatic Joint - -Les joints prismatiques **Prismatic Joint** fonctionnent comme des **_pistons_** et sont également appelées _curseurs_. Ils font glisser des objets les uns sur les autres selon une direction donnée. Un bon exemple est un ascenseur, l’ascenseur se déplaçant dans un sens vertical le long d’un rail, le rail serait le premier corps du joint et l’ascenseur le second, la direction de l’axe serait un angle dirigé vers le haut ou le bas (-90 ou 90 degrés) . - -Paramètres spécifiques aux joints prismatiques - -* **Axis angle** (Angle de l'axe) : L'angle déterminant la direction du mouvement. Un angle d'axe égal à **`0`** définit un mouvement horizontal. La valeur est donnée en coordonnées universelles, mais l'axe pivote en suivant la direction du premier objet (si vous faites pivoter les rails de votre ascenseur, l'angle de mouvement de l'ascenseur pivote également). -* **Reference angle** (Angle de référence) : Comme pour les joints tournants, cet angle ajoute un décalage à l'axe, établissant un nouvel "angle zéro". Si l'angle de référence est 15, un angle d'axe de 15 en coordonnées du monde (par rapport à la direction du premier objet) sera traité en tant que 0. -* **Translation limits** (Limites de translation) : Si activé, le mouvement du second objet sera limité entre les translation minimale et maximale données. -* **Minimum translation** : La distance minimale dont le deuxième objet peut se déplacer par rapport au premier. Dans notre exemple d'ascenseur, la translation minimale serait le sol. -* **Maximum translation** : La distance maximale dont le second objet peut se déplacer par rapport au premier. Dans notre exemple d'ascenseur, le toit. - -!!! warning - - La plage des limites de translation doit inclure le zéro. Une tranlation minimale de 5 et maximale de 10 (plage [5, 10]) sera convertie en plage [0, 10] pour inclure le zéro. - -* **Motor** : Si activé, le joint appliquera une force au second objet pour que le moteur atteigne une vitesse donnée. Si vous l'activez, pensez à définir une vitesse et une force maximales pour le moteur ! -* **Motor speed** (Vitesse du moteur) : La vitesse finale que le moteur essaiera d'atteindre. Si positif, le second objet se déplace dans la direction de l'axe et dans la direction opposée si elle est négative. -* **Maximum motor force** (Force maximale du moteur) : La grandeur maximale de la force que le moteur peut dépenser pour atteindre la vitesse cible. Doit être positif. - -Vous pouvez en plus accéder aux paramètres ci-dessous pendant la simulation. - -* **Joint translation** (Translation du joint) : La distance actuelle dont le deuxième objet a été déplacé par rapport au premier. -* **Joint speed** (Vitesse du joint) : La vitesse actuelle du deuxième objet le long de son axe par rapport à la vitesse du premier objet. -* **Joint motor force** (Force motrice du joint) : Force actuelle appliquée par le moteur au deuxième objet. Cette valeur peut être inférieure à la force motrice maximale car il s'agit de la force nécessaire pour atteindre la vitesse cible du moteur. - - -###Pulley joint (joint de type poulie) - -Un joint simple avec un nom simple. Ce joint rend la somme des distances de chaque objet à leur position par rapport au sol (point d'ancrage) constante. Il est beaucoup plus facile à comprendre en utilisant d'autres mots : il simule une poulie). - -Imaginez que vous ayez une boîte suspendue à 3 mètres sous un point fixe A et un cercle suspendu à 2 mètres sous un point fixe B, les deux objets étant fixés aux extrémités de la même corde passant par une poulie. La corde a une longueur constante. Ainsi, si vous déplacez la boîte vers le haut de 2 mètres, donc maintenant suspendue à seulement 1 mètre sous A, le cercle doit descendre de la même distance, donc maintenant être à 4 mètres sous B. Il en résulte que la distance entre la boîte et le point A plus la distance entre le cercle et le point B est toujours de 5 mètres: - -`distance (boîte, A) + distance (cercle, B) = constante` - - -**Ratio** : -Facile, non ? Maintenant la partie un peu folle : ce joint supporte un paramètre supplémentaire : **ratio** (rapport). **Ratio** rend la corde plus extensible d'un côté que de l'autre. Par exemple, 1 mètre de corde du côté de la boîte peut être équivalent à 2 mètres de corde du côté cercle (rapport = 1/2 = 0,5). - -Revenons à notre exemple initial : la boîte à 3 mètres sous A, le cercle à 2 mètres sous B, mais avec un rapport de 0,5. Si vous déplacez la boîte de 2 mètres vers le haut, le cercle se déplace de 4 mètres vers le bas. La longueur de la corde n’est clairement plus constante, mais : - -`distance (boîte, A) + rapport * distance (cercle, B) = constante` - -(Notez que la première équation est un cas particulier de celle-ci, avec **ratio** = 1). - -Veuillez également noter qu'il n'y a véritablement pas de "corde" du tout, le joint fonctionne uniquement avec la distance entre les objets et les points d'ancrage ! - -Voici les paramètres courants : - -* **First ground point** (Premier point d'ancrage) : Le point fixe auquel le premier objet est attaché (dans les exemples, le point A). -* **Second ground point** (Deuxième point d'ancrage) : Le point fixe auquel le deuxième objet est attaché (dans les exemples, le point B). -* **First length** (Première longueur) : Longueur initiale de la corde entre le premier objet et son point d'ancrage. Si la valeur est négative ou égale à zéro, c'est la distance au moment de la création du joint qui est utilisée. -* **Second length** (Deuxième longueur) : Longueur initiale de la corde entre le deuxième objet et son point d'ancrage. Si la valeur est négative ou égale à zéro, c'est la distance au moment de la création du joint qui est utilisée. -* **Ratio** (Rapport) : Expliqué ci-dessus. C'est le rapport entre les distances de chaque côté. Si le rapport est égal à 0,33, 1 mètre du premier côté équivaut à 3 mètres du deuxième côté. - -###Gear Joint (joint engrenage) - -Ce joint est très spécial car, au lieu de joindre deux corps directement, les engrenages joignent deux autres joints. Ces joints enfants doivent être de type **revolute** ou **prismatic**. -Lorsque deux joints sont reliés par un joint **Gear**, le mouvement de l'un des joints provoque le déplacement de l'autre joint. Par exemple, le déplacement d'un objet le long de l'axe d'un joint **prismatic** entraîne la rotation du joint **revolute** qui lui est liée, et inversement. - -Mais ce joint est aussi très délicat à manier ! Pour faire fonctionner un engrenage, le premier corps du joint de chaque enfant doit être _statique_ et le second _dynamique_. -Vous pouvez assembler deux joints **revolute**, deux joints **prismatic** ou un joint **revolute** et un joint **prismatic**, mais le premier corps de chaque joint doit toujours être **_statique_** ! - -!!! note - - Le premier corps des joints enfants de l'engrenage doit être statique. C'est pourquoi la version à objet unique du joint **revolute** précise que le premier corps est un objet statique masqué - -Les paramètres du joint **Gear** : - -* **First joint** (Premier joint) : Un joint **revolute** ou **prismatic** sera lié au second joint. -* **Second joint** (Second joint) : Un joint **revolute** ou **prismatic** sera liée au premier joint. -* **Ratio** (Rapport) : comme le joint de type poulie, les engrenages supportent un "rapport" et fonctionnent de manière similaire : si vous reliez deux joints **revolute** avec un rapport de 0,33, chaque tour dans le premier **revolute** équivaut à trois tours dans le second. Il existe toutefois une différence par rapport au rapport des joints de type poulie : les rapports des engrenages peuvent être négatifs, ce qui permet à un mouvement positif dans l’une des articulations de générer un mouvement négatif dans l’autre. Par exemple, lorsque vous reliez deux joints avec un ratio de –1, une rotation dans le sens des aiguilles d'une montre génère une rotation dans le sens inverse des aiguilles d'une montre dans l'autre, un peu comme un engrenage, non ? - -!!! warning - - La condition nécessaire à l'existence d'un engrenage est l'existence des deux joints enfants. Si l'un des deux joints est supprimé, l'engrenage est automatiquement supprimé. - - -###Mouse Joint (joint souris) - -Ce joint n'est pas nécessairement liée à la souris, mais c'est très courant. Ce joint ne fait que déplacer un objet vers une position cible. Si vous mettez continuellement à jour la position de l'objet pour cibler la souris ou l'endroit où vous avez appuyé, vous pouvez faire glisser des objets. - -Notez que **Mouse Joint** une autre exception parmi les joints, car il ne nécessite qu'un seul corps pour fonctionner : l'objet qui sera déplacé vers la cible. - -Paramètres pour le joint souris : - -* **Object** : L'objet à déplacer, vers la position cible. -* **Target** (Cible) : le point cible que l'objet essaiera d'atteindre. Vous pouvez le mettre à jour autant de fois que vous le souhaitez après la création du joint -. -!!! warning - - La position initiale de la cible (au moment de la création du joint) est également utilisée comme point d'ancrage de l'objet. Veillez donc à la définir ! - -* **Maximum force** (Force maximale) : La force maximale que le joint peut appliquer à l’objet pour atteindre la position de la cible. Plus la force est grande, plus l’objet se déplace rapidement. Ce paramètre doit être positif. -* **Frequency** (Fréquence) : Fonctionne comme la fréquence du joint distance. Il déterminant la vitesse à laquelle l'objet oscille autour de la cible. -* **Damping ration** (Rapport d'amortissement) : Fonctionne comme le rapport d'amortissement du joint distance, en ralentissant l'objet au cours du temps. - -!!! note - - **Mouse Joint** n'est pas limité à son utilisation avec la souris, il accepte n'importe quel point du monde comme cible. - - -###Wheel Joint - -**Wheel Joint** (joint de roue) est un joint très spécifique. Vous aurez besoin de ce joint lorsque vous voulez utiliser une ou des roues, et il est difficile de penser à un cas différent de celui d'une roue de véhicule pour laquelle le meilleur joint est **Wheel Joint**. - -Conçu pour simuler les roues de véhicules, ce joint ne fait que cela, mais le fait très bien ! - -Vous pouvez vous représenter le joint **Wheel** comme une combinaison du joint **Revolute** et du joint **Prismatic** : - -* Le joint **Revolute** permet de faire tourner le deuxième objet (la roue) et, comme le joint **Revolute** classique, il comporte un moteur simulant le moteur du véhicule faisant tourner la roue. -* La fonction du joint **Prismatic** consiste à simuler la suspension de la roue du véhicule et, tout comme avec le joint **Prismatic** classique, vous pouvez définir l'angle de l'axe pour définir le sens de translation de la roue. C'est généralement la direction de l'axe vertical, mais, par exemple, les motos ont une direction de suspension de la roue avant différente (et parfois très éloignée) de la verticale. - -!!! warning - - Le corps qui fera office de roue doit être le deuxième objet de l'articulation. - -Voici les paramètres du joint **Wheel** - -* **Axis angle** (Angle d'axe) : Équivalent à l'angle d'axe du joint **Prismatic**, il détermine la direction du mouvement (ou du glissement) entre la roue et le premier objet. -* **Frequency** (Fréquence) : La fréquence de l'oscillation de la suspension, équivalent à la fréquence du joint **Distance**. Des valeurs élevées font osciller la roue plus rapidement. -* **Damping ratio** (Rapport d'amortissement) : L'amortissement de la suspension, équivalent au rapport d'amortissement du joint **Distance**. Plus la valeur est élevée, plus le mouvement de la roue est ralenti. -* **Motor** : Si activé, le joint ajoutera un couple à la roue (deuxième objet) pour atteindre la vitesse souhaitée du moteur. Si vous l'activez, n'oubliez pas de régler la vitesse du moteur et le couple moteur maximal ! -* **Motor speed** (Vitesse du moteur) : La vitesse angulaire que la roue tentera d'atteindre. Peut être positif pour une rotation dans le sens horaire ou négatif pour une rotation dans le sens anti-horaire. -* **Maximum motor torque** (Couple moteur maximal) : Couple maximal que l'articulation peut appliquer à la roue pour atteindre la vitesse désirée du moteur. Doit être positif. - -Et voici quelques paramètres supplémentaires auxquels vous pouvez accéder pendant la simulation : - -* **Joint translation** (Translation du joint) : La translation actuelle de la roue le long de l'axe de suspension. -* **Joint speed** (Vitesse du joint) : La vitesse de rotation actuelle de la roue. -* **Joint motor torque** (Couple moteur du joint) : Le couple actuel que le joint applique à la roue, il peut être inférieur au couple maximal du moteur, car il s'agit du couple nécessaire pour atteindre la vitesse cible. - - -###Weld Joint - -Ce joint (soudure en français) est super basique, il essaye juste de coller deux objets ensemble et de les déplacer comme s'il s'agissait d'un seul objet. - -!!! warning - - Vous pouvez l'utiliser pour fabriquer des objets cassables, mais n'abusez pas ! Si presque tous les objets sont attachés par des joints souples et que de nombreux objets sont collés ou ont densités très différentes, des résultats physiquement inexacts peuvent se produire - -Paramètres spécifiques du joint **Weld** : - -* **Reference angle** : L'angle que le second objet a par rapport à l'angle du premier objet. - -!!! note - - Pour coller les objets dans l'angle qu'ils ont au moment de la création du joint, utilisez l'angle relatif entre les objets comme angle de référence : \\ `SecondObject.Angle () - FirstObject.Angle ()` - - * **Frequency** : Fonctionne comme la fréquence du joint **Distance**. Il déterminant la vitesse à laquelle les objets vont osciller pour atteindre la position de repos. -* **Damping ratio** (Rapport d'amortissement) : Fonctionne comme le rapport d'amortissement du joint **Distance**, en ralentissant les objets au cours du temps. - - -###Rope Joint - -Le joint **Rope** (corde) est autre joint simple : il fait en sorte que deux objets soient virtuellement reliés par une corde. Il en résulte qu'ils ne peuvent pas être séparés par une distance supérieure à la longueur de la corde, mais peuvent bien sûr être séparés d'une distance inférieure à celle-ci. - -Comme dans le joint **Pulley**, il n'y a pas du tout de corde réelle, le joint vérifie simplement la distance entre les objets et réagit si la distance est supérieure à la longueur donnée. - -Le seul paramètre spécifique pour le joint **Rope** est : - -* **Maximum length** (Longueur maximale) : La distance maximale entre les objets. Si la valeur initiale est négative, c'est la distance entre les objets au moment de la création du joint qui est utilisée. - - -###Friction Joint - -Le joint de friction simule le frottement selon un axe Z, il ralentit la vitesse relative et/ou la vitesse angulaire entre deux objets, de manière à pouvoir simuler un frottement linéaire et/ou angulaire. - -!!! tip - - Si l'un des objets est statique, vous pouvez utiliser le joint de friction pour simuler correctement la friction dans un jeu "top-down", comme une table de billard ou des jeux de course "top-down". - -Paramètres du joint **Friction** - -* **Maximum force** (Force maximale) : La force maximale que le joint peut appliquer aux objets, des valeurs plus élevées génèrent un frottement linéaire plus important. -* **Maximum torque** (Couple maximal) : Le couple maximal que le joint peut appliquer aux objets, des valeurs plus élevées génèrent un frottement angulaire plus élevé. - - -###Motor Joint - -Le joint **Motor** n'a pas grand-chose à voir avec les vrais moteurs, du moins pas directement. Lorsque vous liez deux objets avec un joint **Motor**, ils essaieront d'atteindre une position cible et/ou un angle par rapport à l'autre objet, plus un décalage. - -Deux choses sont à prendre en compte : - -* Le joint n'est pas du tout rigide, les objets peuvent être éloignés de leur position ou de leur angle cible. Un facteur de correction indiquera la vitesse à laquelle ils se déplaceront et pivoteront pour atteindre la position finale. - -Par exemple, imaginez un sac de frappe (utilisé par les boxeurs) qui se relève toujours. Vous pouvez le simuler en utilisant un joint moteur, reliant le sol et le sac. Ainsi, quel que soit le nombre de poussées sur l'objet sac, le joint tentera de le replacer dans l'angle initial, mais pas automatiquement. - -* Les joints **Motor** s’arrêtent si ils rencontrent des obstacles. - -Revenons à l'exemple du sac de frappe : si vous le poussez avec un gros objet pour le maintenir au sol, le joint moteur ne pourra pas le repousser, comme dans la vraie vie. - -!!! note - - Notez que ce joint n'utilise pas de points d'ancrage, la position de décalage doit être définie à l'aide des décalages linéaires et angulaires uniquement. L'accès aux points d'ancrage de ce joint renvoie les positions des objets. - -Les paramètres spécifiques du joint **Motor** : - -* ** Offset X/Y ** (Décalage X / Y) : Décalage du deuxième objet par rapport au premier. Pour utiliser la position actuelle des objets au moment de créer le joint, utilisez les formules : - -`SecondObject.X () - FirstObject.X ()` et `SecondObject.Y () - FirstObject.Y ()` - -* **Offset angle** (Angle de décalage) : Décalage angulaire du deuxième objet par rapport au premier. Pour utiliser l'angle relatif des objets actuels au moment de la création du joint, utilisez la formule : - -`SecondObject.Angle () - FirstObject.Angle ()` - -* **Maximum force** (Force maximale) : Force maximale que le joint peut appliquer aux objets pour les déplacer vers la position cible. Des valeurs plus élevées déplacent les objets plus rapidement, au besoin. Si cette valeur est égale à zéro, il n'y aura pas de déplacement linéaire et les objets ne se déplaceront pas pour atteindre la position cible. -* **Maximum torque** (Couple maximal) : Couple maximal que le joint peut appliquer aux objets pour les faire pivoter selon l'angle désiré. Des valeurs plus élevées feront tourner les objets plus rapidement, au besoin. Si cette valeur est égale à zéro, il n'y aura pas de déplacement angulaire et les objets ne pivoteront pas pour atteindre l'angle cible. -* **Correction factor** (Facteur de correction) : Vitesse à laquelle les objets doivent se déplacer et pivoter pour atteindre la position et l'angle désirés. Plus la correction est élevée, plus les objets bougent et/ou pivotent rapidement. La correction est limitée par la quantité maximale d'effort et de couple que le joint peut utiliser. \ No newline at end of file diff --git a/docs/fr/gdevelop5/behaviors/platformer.md b/docs/fr/gdevelop5/behaviors/platformer.md deleted file mode 100644 index 79526d4f83..0000000000 --- a/docs/fr/gdevelop5/behaviors/platformer.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: platformer ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -## Platformer and Platform object behavior - -The platformer behavior allow you to setup platformer character control and platforms, literally with a click of a button. - -### Add behavior to object - -To add behavior to an object, first open the object properties by right clicking on the object and select Edit object from the list. Then select behaviors and click the add behavior button. - -## Platform behavior - -![select-platform-behavior.png](/gdevelop5/behaviors/select-platform-behavior.png) By selecting the platform behavior from the list, you can turn your object in to a platform that a Platform character can walk on. - -After selecting, you should see immediately the Platform behavior options: - -![platform-behavior-options.png](/gdevelop5/behaviors/platform-behavior-options.png) - -### Platform type - -By clicking on the platform type, we can choose from 3 different platform types - -![platform-type-button.png](/gdevelop5/behaviors/platform-type-button.png) - -* **Platform:** this is the default option, by choosing this our object going to become a traditional platform which the character can collide with and walk on. * **Jumpthru platform:** by choosing this option, the character can collide with the platform and walk on it but can be jump thru from below. * **Ladder:** as it name suggest, this option turns our object in to a ladder, the character can not collide with it and can not walk on it, but able to climb up and down when overlapped. - -### Grab the ledge - -The ledge of our platform can be grabbed by default which means when the character jump close enough to the edge of the platform, the ledge can be grabbed. In case you don't need this functionality make sure this option is unticked or in case you need it, make sure the box is ticked ![ledges-canbe-grabbed-option.png](/gdevelop5/behaviors/ledges-canbe-grabbed-option.png) - -We can also change the offset of the grab on the Y axis ![grab-offset-option.png](/gdevelop5/behaviors/grab-offset-option.png) This option allow us to change the position of the grab to fit the animation of our character. - -## Platformer character behavior - -![select-platformer-character-behavior.png](/gdevelop5/behaviors/select-platformer-character-behavior.png) - -By selecting the Platformer character from the list, we can turn our object in to a Platformer character After selecting, you should see immediately the Platformer character options ![platformer-character-behavior-options.png](/gdevelop5/behaviors/platformer-character-behavior-options.png) - -You may need to scroll to see all the options. - -### Controls - -The Platformer character behaviour comes with default keys set to control the character which is arrow keys and the shift key. In case you plan to change this and you don't want to use the default controls, you need to turn the default controls off by unticking the box in the options. ![](/gdevelop5/behaviors/platformer-defaultcontrols-box.png) - -### Grab the ledge - -Just like with the platforms we have the option also for the platformer character to allow it to grab the ledge of the platforms. But, it is disabled by default, to enable it just tick the box in the options ![](/gdevelop5/behaviors/platformer-character-grabledge-box.png) - -In case you enable this option, the character can grab the ledge of the platforms that also have this option enabled. - -Just like with the platforms we can set the grab offset on the Y axis also for the character. But what we can also set here is the grab tolerance on the X axis. ![](/gdevelop5/behaviors/platformer-character-grab-tolerancex.png) - -By changing this value, we can set how close the character need to be to the platform to be able to grab it. - -### Slope max angle - -![](/gdevelop5/behaviors/platformer-character-maximum-slope.png) By changing this value we can set the maximum angle of a slope where the player can still move up. It is 0 by default which means the character can move only on flat surface by default. - -### Speed and Gravity - -![](/gdevelop5/behaviors/platformer-character-speed-options.png) We can also change how fast our character accelerate, decelerate, move, fall and jump by changing the corresponding values. I believe these options are self explaining so I don't think it is require any explanation. If you want to slow the character down you can decrease these values and if you want to speed up you can increase these values. - -All the options here can also be changed using events at any time during the game. - -### Examples - -List of examples coming soon - -- custom controls diff --git a/docs/fr/gdevelop5/behaviors/topdown.md b/docs/fr/gdevelop5/behaviors/topdown.md deleted file mode 100644 index a81662ead3..0000000000 --- a/docs/fr/gdevelop5/behaviors/topdown.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: topdown ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -## Comportement du mouvement en vue du dessus - -Le comportement "Top-down Movement" permet d'avoir la fonctionalité de déplacement d'un objet dans 4 ou 8 directions. - -### Ajout d'un comportement à un objet - -Pour ajouter un comportement a un objet, tout d'abord éditez l'objet (clic droit sur l'objet) et sélectionnez l'onglet Behavior. Puis cliquez sur le **+** pour ajouter un comportement. - -### Comportement mouvement en vus du dessus - -En sélectionnant Top-down Movement dans la liste, cela ajoute la focntionalité à l'obbjet. - -![](/gdevelop5/behaviors/top-down-movement-behav-inlist.png) - -Après avoir sélectionné ce comportement, les options s'affichent : - -![](/gdevelop5/behaviors/topdown-movement-options.png) - -### Changer la vitesse du déplacement et de la rotation - -En changeant la valeur de Acceleration ou de Deceleration et de Max speed, cela change la vitesse de déplacement de l'objet. - -En changeant la valeur de Rotation speed , cela change la vitesse de rotation de l'objet, si vous avez laissé Rotate object. J'expliquerai plus en détail la rotation ci-dessous. - -### Modifier l'angle d'orientation d'un sprite - -Par défaut, l'angle d'orientation de notre sprite est 0, ce qui est le côté droit de notre sprite, mais nous pouvons changer cela en changeant la valeur du décalage angulaire. Voici une image pour vous aider avec les coordonnées dans GDevelop : ![](/gdevelop5/behaviors/gdevelop_co.png) - -### Autoriser le déplacement en diagonales - -![](/gdevelop5/behaviors/allow-diagonals-box.png) Cette option est activée par défaut et nous permettons à notre objet de se déplacer également en diagonale, ce qui signifie un mouvement dans 8 directions. En désactivant cette option, nous n'autorisons pas les mouvements diagonaux et donc nous ne pouvons nous déplacer que dans 4 directions, gauche, droite, haut et bas mais pas en diagonale. - -### Default controls - -![](/gdevelop5/behaviors/top-down-movement-default-controls-box.png) The behavior comes with default controls enabled which is the arrow keys. If we would like to use custom controls to move the object we need to disable this option by unchecking the box and after we need to use the top down movement events to move the object. ![](/gdevelop5/behaviors/top-down-movement-events.png) - -### Rotate object - -![](/gdevelop5/behaviors/top-down-movement-rotateobject-box.png) By default our object is rotating toward the direction of movement at the speed we specify at the Rotation speed option. If we don't want the object to rotate, we need to disable this option by unchecking the box. - -We can change any of these options also using events at any time during the game. - -### Examples - -List of examples coming soon - -- custom controls diff --git a/docs/fr/gdevelop5/community/contribute-to-the-assets-store.md b/docs/fr/gdevelop5/community/contribute-to-the-assets-store.md deleted file mode 100644 index 30f0f251ee..0000000000 --- a/docs/fr/gdevelop5/community/contribute-to-the-assets-store.md +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: contribute-to-the-assets-store ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# Contributing to the assets store - -GDevelop's documentation is powered by the community and everyone is encouraged to contribute. In particular, you can help building the assets store with royalty free/public domain resources that can be used by everyone for any kind of project. - -This page provides a few guidelines to help maintain the quality of the assets store. - -L'idée principal est que les assets (ressources) soient groupé dans les dossiers et sous-dossiers. Images, audio et fonts (polices d'écriture) doivent avoir un nom en Anglais pour être affiché à l'utilisateur. Un objet sera généré en focntion des noms des images. - -!!! note - - Notez que les tilesheets **ne sont pas supporté**! Chaque images d'une animation doit être un fichier unique (en utilisaant les régles de nommage ci-dessous il sera possible de créer une animation. Il est également recommandé que toutes les images d'une animation aient les même dimensions. (avec des marges transparente au besoin), car il n'est pas possible de spécifié de point d'origine d'une image. - -## For images (to make sprite, tiled sprite or panel sprite objects): - -Each image will be used to create an object. For sprites, more than one image can be used to create a single object, by following the rules described below. - -- By default, an image will be used to create a **Sprite** object. - -1. The **name of the file**, without the extension, will be used for the object name. - -!!! note - - For example, an image called "Spaceship.png" will create a Sprite object called "Spaceship", with this image as the first animation. - -1. If the object is **animated**, use different image files with the **same base name**, and add an underscore followed by the image index: `Spaceship_1.png`, `Spaceship_2.png`, `Spaceship_3.png`. - -  - -1. If the object has **multiple animations**, you can add the name of the animation between the *base name* and the index. - -  - - Spaceship_flying_1.png - Spaceship_flying_2.png - Spaceship_flying_3.png - Spaceship_1.png - Spaceship_idle.png - Spaceship_damaged_1.png - Spaceship_damaged_2.png - -!!! note - - Will create an object with three animations: Flying (3 images), Idle (1 image), Damaged (2 images) - -1. To specify the **speed of the animations and if they are looping**, create a file with the **same base name** suffixed by `_METADATA.json`. - -  - - For example: `Spaceship_METADATA.json`. - - Inside, put this JSON: - - { - "timeBetweenFrames": 0.2, - "loop": false - } - -For example: - -![](https://user-images.githubusercontent.com/1280130/103412855-78836300-4b77-11eb-99ec-ac8287372ece.png) - -- If you have **multiple animations** and **each must have a different speed**, you can create one .json file per animation, using this name: `basename_animationname_METADATA.json`. - -For example: - - Spaceship_Idle_METADATA.json - Spaceship_Flying_METADATA.json - Spaceship_Destroyed_METADATA.json - ... - -- If you want to create a **Tiled sprite** (for backgrounds or repeating patterns): - -1. Prefix the *base name* by `tiled_`. For example: `tiled_Grass Background.png` - -- If your image is a **9 patch**, that can be stretched with the center and the border repeated: - -1. Slice your image in 9 different images, and name them: `9patch_base name_gravity.png` with gravity being: `southwest`, `southeast`, `south`, `northwest`, `northeast`, `north`, `west` and `east`. - -For example: - - 9patch_Orange leaves_center.png - 9patch_Orange leaves_east.png - 9patch_Orange leaves_north.png - 9patch_Orange leaves_northeast.png - 9patch_Orange leaves_northwest.png - 9patch_Orange leaves_south.png - 9patch_Orange leaves_southeast.png - 9patch_Orange leaves_southwest.png - 9patch_Orange leaves_west.png - -## Organizing the assets with tags - -Put all your images in a folder. In this folder, create a file called `TAGS.md`. In this file, put the tags of the assets, separated by a comma. Put at least a tag `top-down`, `side view` or `interface`. - -For example: - - side view, pirate, ship, sea - -You can put your images in different sub folders. Each sub folder will be used as a tag name. Some folders names like "PNG", "SVG", etc... will be ignored (so don't change the whole structure of your assets, we'll ignore anything that does not make sense). - -Note that you can also put assets in a folder called `Unimplemented` or `TODO`, and these folders will be entirely ignored. - -## For audio - -Put your .aac or .wav files (prefer .aac) directly in a folder, with the name to be displayed: `Laser effect.aac`, `Background music.aac`. - -!!! note - - 🚨 Careful about the size! Players are sensitive to the size of a game download (especially on mobile and on the web). **Try to keep music file sizes around 1 to 2 MB. In rare cases, these can be 4 or 5 MB, but not larger.** Consider downgrading the quality a bit to keep the music files around these sizes. Sound effects are usually even smaller. If a sound file is larger than 200 or 300 KB, consider downgrading the quality. - -`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images. - -A great tool to convert audio files to AAC format is \[fre:ac\](). fre:ac is free, open-source, and cross-platform. It can process batches of files, with many options on how they are named and put into folders. - -- Choose the encoder called "Fraunhofer FDK AAC Encoder". -- Select "File format \> AAC" -- Select "Quality \> Set Quality \> 3" - -This will create high-quality audio files, but using a variable bit rate that won't exceed 96 kbps (assuming stereo input). - -![Screenshot 2021-03-11 112608](https://user-images.githubusercontent.com/8879811/110835883-9bf41980-825c-11eb-93c8-ef795b0379a2.jpg) - -![Screenshot 2021-03-11 112527](https://user-images.githubusercontent.com/8879811/110835884-9c8cb000-825c-11eb-9b8d-f22228a71329.jpg) - -## For fonts - -Like images and audio, put your fonts in folders. `.ttf` and `.otf` files are supported. - -`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images. - -## (⚠️ Advanced!) To make an object from scratch, for example particle emitters - -!!! note - - These assets from scratch are a bit cumbersome to author right now. Here is an example folder that shows how the particle emitter objects from Wishforge Games are done: \[Particles.zip\]() - -Create an file with extension `.asset.json`, for example: `My Particle Effect.asset.json`. The format of this asset is: - - { - "id": "", - "name": "", - "authors": [""], - "license": "", - "shortDescription": "", - "description": "Enter a description. Leave the rest empty, it will be autogenerated", - "previewImageUrls": [], - "tags": [], - "objectAssets": [ - { - "object": { ...JSON CONTENT OF AN OBJECT... }, - "resources": [ ], - "customization": [] - } - ], - "gdevelopVersion": "", - "version": "" - } - -Leave almost everything empty. Create your object in GDevelop, then copy it in the clipboard. Paste the content in a file, and then copy just the "content.object" key: - -For example: - -![](https://user-images.githubusercontent.com/1280130/103413204-d5334d80-4b78-11eb-8248-aecc67d17cba.png) - -Paste it inside the `.asset.json` file you created, replacing `...JSON CONTENT OF AN OBJECT...`: ![](https://user-images.githubusercontent.com/1280130/103413230-f300b280-4b78-11eb-9c3b-718bdf58ba66.png) - -Finally, if your object uses image resources, make sure to add them in the `resources` array: ![](https://user-images.githubusercontent.com/1280130/103413269-1e839d00-4b79-11eb-91a6-39bc80696a98.png) - -Put all images with the name that you put in the `resources` array next to your `.asset.json` file. - -Finally, add: - -- a file with the same name but with the extension `.preview.png` that will be shown in the assets store - an empty filed called `IGNORED_FOR_IMAGE_ASSETS.md` so that the importer will ignore the images and won't try to create objects automatically :) - -For example: - -![](https://user-images.githubusercontent.com/1280130/103413361-74f0db80-4b79-11eb-94c2-7cf535bb9118.png) - -## I have too many assets and this will take me a long time to organize everything! How can I do? - -That's the reason why we're making an asset store: there are lots of assets available or that could be made available, but most are hidden on different websites, and not ready to use. By taking the time to prepare them for GDevelop, we're making a **high quality** asset store of objects ready to use. This implies taking a bit of time to prepare these assets - which should hopefully be not too much considering that we use a naming convention with filenames. - -!!! note - - In particular, you should be able to quickly rename a bunch of files by opening the folder in the Windows/Linux/macOS file explorer, ensuring you have a preview of each file and then with your keyboard and some shortcuts (F2 to rename on Windows, Enter on macOS...) rename quickly each file with a proper name. - -In the case where it's too painful/long to do because you have **tons** of objects (for example, you have separated a spritesheet of 200 RPG objects), it's ok to select all the files and rename them to something like `Generic RPG object (1).png`, `Generic RPG object (2).png`, etc... - -!!! note - - Be sure **not** to use an underscore to separate the name from the number, otherwise the asset importer will consider that it's a single object with multiple animations. In other words, **don't name the files** like `Generic RPG object_1.png`, etc... - -Finally, be sure to put a `TAGS.md` file with enough tags for people to be able to search for these assets. 👍 - -## License - -Put a license.txt file in your folder. The importing will recognize it and apply to all files in the folder. Make sure to put your name in this license file too (or the name of the original author). The importer will be adapted to understand the license file. - -!!! note - - We won't allow the addition of any assets with an unclear license. Get in touch with the author if the license is unclear or if you worried that the author would not allow redistribution of their original assets. All assets must have a license allowing their usage for free for any purpose, allow modifications/derived work and may optionally ask for attribution. - -## Something unclear? - -Ask a question on [this Trello board](https://trello.com/c/s8RctC9M/2-asset-rules-and-regulations) card. If the rules here are too complicated or are giving you too much work, you can suggest a new rule and we'll see if we can adapt the importer so that it can understand your asset structure. The goal is to make objects more or less automatically! - -## How to send my assets when they are ready? - -Zip the folder containing them and send them to the GDevelop team on Github by opening an [issue here](https://github.com/4ian/GDevelop/issues/new/choose). You can also tag `@florianrival` and `@bouh2` on a card on the [GDevelop Assets Trello board](https://trello.com/b/xoOCKFOf/gdevelop-assets). It's a good idea to get in touch with people on the Trello board to have them review your assets first. diff --git a/docs/fr/gdevelop5/events/draft-optimization.md b/docs/fr/gdevelop5/events/draft-optimization.md deleted file mode 100644 index fe3dc39629..0000000000 --- a/docs/fr/gdevelop5/events/draft-optimization.md +++ /dev/null @@ -1,102 +0,0 @@ ---- -title: draft-optimization ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -!!! note - - This page is a draft for good rule to apply for optimize a game. \This is a draft in progress @Bouh - -L'optimisation d'un jeu est un concept important à prendre en compte, ceci pour faire gagne quelques images par secondes et des temps de chargement moins long. Une bonne optimisation permettra à votre jeux de tourné plus rapidement sur n'importe quel support (téléphone ou pc). - -GDevelop 5 permet une liberté dans les événements qui peut se retourné contre vous en cas de mauvaises pratiques ou compréhension des événements, mais également d'une mauvaise utilisation des comportements et de la tailles énorme sur les ressources importé (vidéo, image, audio). - -Tout celà peut être coûteux pour votre jeux et aura comme effets de ralentir votre jeux sur les appareils n'ayant pas énormément de mémoire et de puissance. - -Pour la suite de cet article il est important de comprendre [les principes de base des événements](/fr/gdevelop5/tutorials/basic-game-making-concepts##comment_les_evenements_affectent_les_objets) et que *tout les événements sont exécuté une fois par image durant l’exécution du jeux*. - -# Optimisation déjà présente dans le moteur du jeu - -Le moteur de jeu GDevelop dispose d'une optimisation très simple, il dit à l'interface graphique de ne pas calculé les images des objets hors de la zone de rendu. Le moteur s'occupe de cette optimisation en tache de fond et est complètement transparent pour les utilisateurs et joueurs. - -Dans la suite de cette page sur l'optimisation nous allons prendre quelque cas et voir comment les rendre plus performant. - -# Trigger once - -La condition **Tigger once** permet à des actions d'être éxécuté une seule fois, chaque fois que la ou les conditions sont vrais. - -Prenons un exemple où nous voulons créer un objet chaque fois que je clique sur la souris. Ceci vous montrera la mauvaise et la bonne façon de le faire. - -La mauvaise: ![](/gdevelop5/events/bad_event_optimisation.png) - -- Ce que je pense avoir : Lorsque le bouton gauche de la souris est pressé, un objet appelé **MyObject** est créer sur la scène aux position du curseur. -- Ce qui se passe vraiment : Lorsque le bouton gauche de la souris est pressé, beaucoup d'objets appelé **MyObject** sont créer sur la scène à la position du curseur. - -Cela se produit lorsque le bouton de la souris est enfoncé car la pression sur la touche dure un certain temps, durant tout ce temps des objets seront créés. - -Pour corrigé ceci nous avons besoin de **Trigger once** qui se trouve dans les conditions, ajoutons le à nos événements pour n'avoir qu'un seul nouvel objet. ![](/gdevelop5/events/good_event_optimisation.png) - -# Sprites - -Les sprites ont deux aspects important, leur poids en Ko, Mo, Go et les dimensions en pixels. Il est naturel d'avoir un niveau de jeux gigantesque et d'y mettre une image de fond comme un ciel par exemple sur la totalité du niveau. Evidemment ceci n'est pas conseillé car si cela est naturel pour vous ça ne l'est pas pour le moteur de jeu et les appareils sur lesquels tournera votre jeu. - -Notamment à cause des images dépassant 2048 pixels de côté. Les images lourde en poids quand à elle ralentirons les temps de chargement. - -!!! note - - **Pourquoi il ne faut pas dépasser 2048 pixels de côté ?** - - Les images plus grande peuvent ne pas s'afficher correctement sur certains téléphones. Sachez aussi que plus une image est grande, plus elle prendra de la place en mémoire, se qui est important à prendre en compte car les téléphones ne sont pas aussi performant qu'un ordinateur. - -Il est recommandé de découper les images dépassant cette taille. Il existe aussi [un type d'objet permettant de répété votre image](/fr/gdevelop5/objects/tiled_sprite) sur de longue distance. - -# Animations - -Les animations sont par exemple utilisé lorsque le personnage de votre jeu se déplace. Plus il y a d'images dans l'animation plus le mouvement est fluide. Toute fois l’œil humain ne nécessite pas d'avoir des dizaines et des dizaines d'images pour avoir un mouvement fluide, donc il est bon de retiré les images similaire qui n'auront visuellement aucun impact sur votre animation. - -Il existe aussi des limitations technique possible, comme le fait d'avoir un maximum d'image par seconde dans le jeu. Dans ce cas si votre jeux tourne à 30fps, vous n'avez pas besoin de 60 images. - -Ceci est encore plus vrais si vos images sont de très grande en taille. En un mot, réduisez le nombre d'images au strict nécessaire. - -# Vidéo - -Les vidéos doivent impérativement respecté quelques points pour être charger et lue correctement. Assurez vous de [lire les notes en haut de la page à ce sujet](/gdevelop5/objects/video), toutes les indications vous permettront d'avoir une optimisation optimal pour la vidéo. - -# Audio - -L'audio contient une particularité, les sons et les musiques sont deux choses différentes pour le moteur de jeu. Ceci permet une optimisation différente selon le type. - -- Une musique est souvent longue et doit être préchargé avant d'être lue. - Un son est bref, comme un son de rebond sur le sol, celui-ci est si bref qu'il peut être chargé rapidement sans retard de lecture juste avant sont exécution par une action. - -Une page complète pour [l'audio](/gdevelop5/all-features/audio#performance_considerations) est disponible et indiquera les meilleurs solution. - -!!! note - - It can still be important to hide or disable what you don't need. This is the key of the optimization. - -# Les comportements - -Les comportements *Recherche de chemin* et *Physique 2.0* sont gourmand en puissance. - -### Supprimer les objets inutile - -Prenons un exemple d'un pistolet qui tire des balles, nous créons une balle lorsque nous faisons feu. La balle se dirige vers une direction grâce à une force. A chaque tir une nouvelle balle apparaît et se dirige aussi vers une direction grâce à une autre force qui lui est propre. - -Si vous ne géré pas les objets que vous créez, le jeux sera à un moment débordé par le nombre d'objet, ceci affectera votre jeu car celui-ci commencera à ralentir. - -La bonne solution consiste à supprimer les balles qui sont hors de l'écran. Un comportement à cet effet existe, vous pouvez l'attaché à votre objet balle. Toutes les balles qui seront hors de l'écran seront immédiatement supprimé. - -### Désactiver les comportement sur les objets inutilisé - -Les comportements sur les objets peuvent être désactivé. - -Prenons un cas où votre jeux contient une centaines d'objet qui sont des gardiens de police et un autre objet qui est le joueur, vous souhaitez que les gardiens se dirigent vers vous toutes les 2 secondes en prenant compte des obstacles autour. Les gardiens disposent du comportement Recherche de chemin qui est rappelez vous, est gourmand en puissance et peut ralentir votre jeu si celui si est mal utilisé. - -La mauvaise façon de bouger les gardiens: - --- Image avec le timer , et les gardiens qui bougent vers le joueur.- - -Si vous faite seulement ceci tout les gardiens même ceux hors de l'écran bougerons. Nous ne voulons pas qu'ils bougent. Voyons comment limité le comportement des gardiens à ceux qui sont proche du joueur. - --- Image avec la désactivation du comportement pour le gardien en dehors de l'écran (prendre la condition object dans le viewport et l'inversé, mettre aussi le trigger once sur l'event) .- diff --git a/docs/fr/gdevelop5/events/index.md b/docs/fr/gdevelop5/events/index.md deleted file mode 100644 index 89b6862147..0000000000 --- a/docs/fr/gdevelop5/events/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: Événements ---- -# Événements -![](/gdevelop5/event-screenshot.png) -Les événements dans GDevelop vous permettent de programmer visuellement votre jeu sans aucune connaissance de programmation et sans expérience requise, donc n'importe qui est capable de créer le gameplay qu'il souhaite et permettre aux joueurs d'interagir avec le jeu. - -#### Types d'événements - -Il existe différents types d'événements dans GDevelop qui peuvent être utilisés à différentes fins: - - * **standard event**: cet événement est déclenché à toutes les images et exécute les actions une fois que la condition est vraie puis passe à l'événement suivant. - * **for each event:** cet événement est déclenché pour chaque instance de l'objet sélectionné, vérifiez les conditions et exécutez les actions pour chaque instance avant de passer à l'événement suivant. - * **repeat event:** cet événement est répété le nombre de fois spécifié avant de passer à l'événement suivant. - * **while event:** cet événement se répète continuellement tant que les conditions spécifiées sont remplies et ne passe à l'événement suivant qu'après la condition si cet événement n'est plus vrai. - * **sub-event:** (Événement enfant) cet événement peut être ajouté en tant qu'enfant à tout événement mentionné ci-dessus et ne peut être déclenché qu'après l'exécution de l'événement parent. - * **Javascript event:** cet événement vous permet d'utiliser le code Javascript avec d'autres événements - * **External event:** cet événement vous permet de stocker un ensemble d'événements en externe, de les appeler et de les exécuter, n'importe où, n'importe quand et ceci un nombre illimité de fois. - * **Link:** il vous permet d'appeler un événement externe spécifié - -#### Ajouter des événements -Pour ajouter des événements à notre jeu, nous devons d'abord passer à l'éditeur d'événements. Nous pouvons le faire en utilisant l'onglet Events à côté de notre onglet Scene. -![](/gdevelop5/objects/events-tab.png) - -Après cela, nous pouvons trouver les outils en haut de la page pour ajouter des événements. -![](/gdevelop5/events-editor-toolset.png) -Comme les événements standards et les sous-événements sont les plus utilisés, nous avons un bouton rapide à utiliser en haut. -Pour ajouter un événement standard, nous pouvons utiliser le bouton Ajouter un événement -![](/gdevelop5/add-event-button.png) -Pour ajouter des sous-événements, il faut d'abord sélectionner un événement dans l'éditeur, puis cliquer sur le bouton Add sub-event -![](/gdevelop5/sub-event-button.png) -Vous pouvez trouver toutes les options disponibles en cliquant sur l'icône plus -![](/gdevelop5/add-special-events.png) - -#### Ajouter des conditions et Actions -Après avoir ajouté un événement, nous allons trouver un événement vide dans notre éditeur -![](/gdevelop5/blank-event.png) - -Nous pouvons ajouter un nombre illimité de conditions et d'actions à chaque événement. -Pour ajouter des conditions et des actions, nous devons cliquer sur Add condition et Add action à l'intérieur de l'événement, puis nous pouvons choisir parmi de nombreuses options triées dans différentes catégories. - -Pour en savoir plus sur l'utilisation des différentes conditions et actions, je vous recommande de lire les tutoriels et guides disponibles sur le wiki: [tutorials](/gdevelop5/tutorials) diff --git a/docs/fr/gdevelop5/extensions/best-practices.md b/docs/fr/gdevelop5/extensions/best-practices.md deleted file mode 100644 index 2a02e12365..0000000000 --- a/docs/fr/gdevelop5/extensions/best-practices.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Conventions d'écriture d'extensions ---- -# Conventions d'écriture d'extensions - -Cette page recense les conventions pour les extensions [partageable avec la communauté](/gdevelop5/extensions/share): - -* **Évènements:** - * Toutes les **noms de variables** doivent commencer avec `__NomDeLExtension_`. Ceci est nécessaire pour ne pas avoir de nom en conflit avec les variables des utilisateurs. Dans le futur, les extension auront peut être des variables à part, mais c'est pour le moment nécessaire. - * Les noms d'actions, conditions et expressions doivent être écrit avec la `PascalCase` et en anglais. - * Les expressions ne doivent pas commencer en `Get`, vu qu'une expression est toujours un moyen d'obtenir quelque chose et que c'est donc inutile a préciser. - -* **Descriptions:** - * Toutes les descriptions doivent être écrites en anglais. **N'utilisez pas d'abréviations**. Les phrases affichées dans les événements en particulier doivent être claires. - * Décrivez en détail comment les comportent doivent être utilisés. - * Pour les descriptions longues d'extensions, veuillez utiliser les tables en format Markdown, et entourer les noms de conditions, actions, expressions et comportements avec ` pour les afficher avec une fonte spéciale. - -* **Compatibilité**: - * Si l'extension utilise des fonctionnalitées qui dépendent de la plateforme, et non des actions inter-plateformes de GDevelop, veuillez tester l'extension sur toutes les plateformes. Il est important qu'elles fonctionnent partout. \ No newline at end of file diff --git a/docs/fr/gdevelop5/extensions/index.md b/docs/fr/gdevelop5/extensions/index.md deleted file mode 100644 index 5ccb9bbf3c..0000000000 --- a/docs/fr/gdevelop5/extensions/index.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Extensions ---- -# Extensions - -GDevelop est fondamentalement flexible. Le coeur de GDevelop contient le strict minimum, et chaque fonctionnalité de GDevelop est contenue dans une extension. Les extensions contiennent des [Objets](/fr/gdevelop5/objects), des [Comportements](/fr/gdevelop5/behaviors), des Actions, des Conditions, des Expressions, des Effets et des [Événements](/fr/gdevelop5/events). - -En plus de pouvoir accéder aux extension intégrées, tu as accès à pleins d'extensions faites par la communauté. Tu peux aussi créer tes propres extensions avec des [Comportements](/fr/gdevelop5/behaviors), des Actions, des Conditions et des Expressions dans tes projets, les réutiliser dans d'autres projets et les partager. - -Pour en savoir plus: - -* [Trouver de nouvelles extensions](/gdevelop5/extensions/search) -* [Créer ses extensions](/gdevelop5/extensions/create) -* [Partager ses extensions](/gdevelop5/extensions/share) -* [Étendre GDevelop avec du JavaScript ou C++](/gdevelop5/extensions/extend-gdevelop) - -![](/gdevelop5/search-new-extensions-dialog.png) \ No newline at end of file diff --git a/docs/fr/gdevelop5/extensions/search.md b/docs/fr/gdevelop5/extensions/search.md deleted file mode 100644 index 6e5a3fb893..0000000000 --- a/docs/fr/gdevelop5/extensions/search.md +++ /dev/null @@ -1,63 +0,0 @@ ---- -title: Recherche de nouvelles extensions ---- -# Recherche de nouvelles extensions - -!!! tip - - **Voir la [liste des extensions GDevelop](/gdevelop5/extensions)**. - -Trouver de **nouveaux comportements, conditions, actions ou expressions** pour votre jeu dans GDevelop est facile. Dans le [Project Manager](/gdevelop5/interface/project-manager), clique sur "Functions/Behaviors", puis sur "Search for new extensions" : - -![](/gdevelop5/extensions/search-new-extensions-button.png) - -Un dialogue montrera une barre de recherche et une liste d'extensions disponibles : - -![](/gdevelop5/extensions/extension.png) - - -Tapez quelque chose dans la barre de recherche pour filtrer les extensions en fonction de ce que vous souhaitez. Vous pouvez également explorer les extensions en cliquant sur les balises situées sous la barre de recherche. -!!! tip - - - Ou vous pouvez importer un fichier d'extension avec le bouton **Importer une extension**. - -Les extensions sont présentées avec leur nom, suivi d'une courte description. Cela devrait vous donner une idée de ce que l'extension peut faire dans votre jeu. - -## Installer une extension - -Si vous trouvez une extension intéressante, cliquez dessus pour ouvrir une fenêtre avec plus de détails. Par exemple, voici un aperçu de l'extension "Flash (blink)" : - -![](/gdevelop5/extensions/flash-extension.png) - -La description explique généralement comment utiliser l'extension. Ici, c'est un comportement que vous pouvez ajouter à un objet, avec une action pour faire clignoter l'objet pendant un certain temps (comme dans un vieux jeu de plateforme, quand vous êtes touché par un ennemi). - -Cliquez sur **Installer dans le projet** pour télécharger l'extension. Vous pouvez voir qu'elle est alors ajoutée à la liste des comportements/fonctions dans le [Project Manager](/gdevelop5/interface/project-manager) : - -![](/gdevelop5/extensions/extensions-list-with-flash.png) - -## Utiliser la nouvelle extension - -Une fois que l'extension est installée, vous pouvez généralement : - -* Trouvez-là dans la liste des **comportements**, lorsque [adding a new behavior](/gdevelop5/behaviors)à un objet. -* Même si aucun comportement n'est fourni, vous aurez quelques **actions ou conditions**. Trouvez-les dans la liste des actions ou des conditions lorsque vous éditez un événement. Le nom de la catégorie qui les contient est le même que celui de l'extension. - -Par exemple, l'extension *Flash* fournit 2 nouvelles actions : - -![](/gdevelop5/extensions/flash-extension-actions.png) - -Elles peuvent être utilisées sur les objets qui ont le comportement *Flash* attaché. - -## Créer vos propres comportements, actions, conditions ou expressions - -Il est possible de créer facilement de nouvelles extensions, en utilisant les mêmes événements que ceux que vous utilisez dans les scènes. C'est une fonctionnalité puissante qui vous permet d'organiser votre jeu et d'étendre vos objets. - -Lisez plus sur [créer vos propres extensions ici](/gdevelop5/extensions/create). - -# Ajouter une extension manuellement - -Dans le panneau de recherche de nouvelles extensions, en bas du panneau vous avez un bouton **IMPORTER UNE EXTENSION**, cela ouvrira un sélecteur de fichier de votre OS, vous devez sélectionner un format de fichier **.json**. - -Une fois que vous avez sélectionné votre fichier et confirmé votre choix dans le sélecteur de fichiers, l'extension est ajoutée à votre projet. -Les comportements/conditions/actions/expressions sont maintenant disponibles dans GDevelop avec les autres comportements ou événements. \ No newline at end of file diff --git a/docs/fr/gdevelop5/getting_started/index.md b/docs/fr/gdevelop5/getting_started/index.md deleted file mode 100644 index 90970e4634..0000000000 --- a/docs/fr/gdevelop5/getting_started/index.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Débuter ---- -# Débuter - -## Essayez GDevelop en ligne ou téléchargez la version bureau. - -* Pour commencer, [essayez GDevelop en ligne](https://4ian.github.io/GD). -* Pour créer votre propre jeu, le sauvegarder et le publier, [Téléchargez la version bureau](http://compilgames.net/#download). - -Lorsque GDevelop est téléchargé, ouvrez-le et installez-le, puis utilisez l'icône GDevelop sur votre bureau pour le lancer. -Une fois l'application lancée, vous allez voir apparaître la page d'accueil sur laquelle vous pouvez ouvrir un projet existant ou en créer un nouveau. - -![](/gdevelop5/start_page.png) - -#### Ouvrir un projet existant - -Pour ouvrir un projet existant, sélectionnez l'option appropriée sur la page d'accueil. -Ensuite, vous devez parcourir votre explorateur de fichiers pour ouvrir un projet. Les fichiers de projet GDevelop 5 sont normalement sauvegardés en tant que fichier ".json". Trouvez-le et sélectionnez-le pour l'ouvrir. -![](/gdevelop5/project-file.png) - -!!! warning - - L'icône de ce fichier dépend de l'application par défaut installée sur votre ordinateur pour éditer ce fichier. - -!!! note - - Par défaut le fichier game.json est sauvegardé dans : - - * Windows: C:\Users\MonNomUtilisateur\GDevelop Projects, - * macOS et Linux: Le dossier GDevelop Projects dans le dossier home. - - - -Une fois que vous avez ouvert le projet, vous devriez être face à l'éditeur mais nous y reviendrons plus tard, nous allons d'abord voir comment créer un nouveau projet. - -**Note:** Utilisateurs de GDevelop 4, vous pouvez [apprendre en cliquant ici comment transférer un projet vers GDevelop 5](/fr/gdevelop5/getting_started/open-gdevelop-4-project). - -!!! tip - - GDevelop 4 est obsolète, veuillez utiliser GDevelop 5 si vous êtes un débutant. -#### Créer un nouveau projet -Pour créer un nouveau projet, sélectionnez l'option appropriée sur la page d'accueil. - -Dans la fenêtre suivante, vous pouvez choisir parmi les modèles ou créer un projet vierge. Un modèle inclut déjà quelques ressources et des événements pour vous aider à démarrer. - -Un projet vierge n'inclus rien, vous devrez donc commencer à partir de zéro. - -![](/gdevelop5/create-new-project-window.png) -Puisque le but de cette page est de vous permettre de commencer à utiliser GDevelop, choisissez "créer un projet vierge". -Tout d'abord, sélectionnez l'emplacement où vous souhaitez stocker votre nouveau projet. Comme vous pouvez le constater, un emplacement par défaut est déjà défini pour vous au bas de cette page. -![](/gdevelop5/project-default-location.png) -Si vous souhaitez sélectionner un autre emplacement, cliquez sur le bouton "Choisir le dossier" à côté : -![](/gdevelop5/choose-folder-button.png) -Ensuite, parcourez avec l'explorateur de fichiers de votre ordinateur pour sélectionner un dossier dans lequel stocker votre projet. - -Une fois que vous avez sélectionné un dossier ou décidé de conserver l'emplacement par défaut, cliquez simplement sur le bouton "Empty game" pour créer un projet vide. -![](/gdevelop5/empty-game-button.png) - -Ensuite, vous devriez voir l'éditeur créer un projet vierge ou ouvrir le modèle de votre choix. - -#### En savoir plus - -Pour de plus amples informations sur la façon d'utiliser GDevelop, vous pouvez visiter les pages suivantes où tout est expliqué plus en détail: - - * [interface](/fr/gdevelop5/interface) - * [objects](/fr/gdevelop5/objects) - * [behaviors](/fr/gdevelop5/behaviors) - - -#### Tutoriels - -Vous pouvez également trouver des tutoriels sur le wiki: - - * [tutorials](/fr/gdevelop5/tutorials) - -#### Exemples - -Vous trouverez sur le site ci-dessous divers exemples et modèles pour vous permettre de commencer à fabriquer vos propres jeux à partir de zéro: - - * [gametemplates.itch.io](https://gametemplates.itch.io/) - - -➡️ Suite **[Découvrir l'interface](/fr/gdevelop5/interface)** ! - diff --git a/docs/fr/gdevelop5/getting_started/open-gdevelop-4-project.md b/docs/fr/gdevelop5/getting_started/open-gdevelop-4-project.md deleted file mode 100644 index 06e8762cc3..0000000000 --- a/docs/fr/gdevelop5/getting_started/open-gdevelop-4-project.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Ouvrir un jeu réalisé avec GDevelop 4 ---- -# Ouvrir un jeu réalisé avec GDevelop 4 - -GDevelop 5 est basé sur le même moteur que GDevelop 4 et les jeux sont compatibles. Vous devez quand même vous assurer de certain points : - -* Votre jeu GDevelop 4 est basé sur la **plateforme HTML5**. Les jeux natifs ne sont pas supportés pour l'instant par GDevelop 5. * Quelques **extensions/fonctionnalités** ne sont toujours pas prises en charge dans GDevelop 5. - -Pour ouvrir votre jeu avec GDevelop 5, ouvrez-le avec GDevelop 4 et enregistrez-le dans un fichier json : - -* Dans le menu ruban, sélectionnez **File \> Save as...**. * Choisissez un dossier, puis entrez un nom de fichier en terminant par **.json**. Par exemple: - -![](/gdevelop5/getting_started/screenshot_2017-12-25_23.14.09.png) - -Cliquez sur Save. Vous pouvez maintenant ouvrir ce fichier avec GDevelop 5.. - -Assurez-vous de **vérifier que tout fonctionne** avant de continuer à créer votre jeu avec GDevelop 5. diff --git a/docs/fr/gdevelop5/index.md b/docs/fr/gdevelop5/index.md deleted file mode 100644 index 43543de883..0000000000 --- a/docs/fr/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: Documentation GDevelop 5 ---- -# Documentation GDevelop 5 - -GDevelop est un outil de création de jeux gratuit, open-source et multiplateforme que tout le monde peut utiliser pour créer des jeux sans connaissances en programmation. Ce wiki contient tout ce que vous devez savoir pour créer des jeux avec GDevelop - même si vous n'avez jamais créé de jeu auparavant. - -![](/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - -## Etapes suivantes - -* Si vous n'avez pas installé GDevelop, lisez le [guide de démarrage](/fr/gdevelop5/getting_started). -* Si vous n'avez jamais créé de jeu auparavant, lisez le [guide Concepts de base](/fr/gdevelop5/tutorials/basic-game-making-concepts) de la création de jeux. -* Si vous êtes prêt à commencer à créer un jeu, [parcourez les tutoriels](/fr/gdevelop5/tutorials). \ No newline at end of file diff --git a/docs/fr/gdevelop5/interface/debugger/index.md b/docs/fr/gdevelop5/interface/debugger/index.md deleted file mode 100644 index 743b8e5e61..0000000000 --- a/docs/fr/gdevelop5/interface/debugger/index.md +++ /dev/null @@ -1,97 +0,0 @@ ---- -title: Débogueur de jeu et Profiler ---- -# Débogueur de jeu et Profiler - -Le * débogueur * est un outil qui vous permet d'inspecter le contenu de votre jeu, en particulier les variables (variables globales, variables de scène et variables d'instances d'objets) et les instances vivant dans les scènes de votre jeu. -Vous pouvez mettre le jeu en pause à tout moment. C'est une excellente façon de comprendre pourquoi quelque chose ne fonctionne pas comme prévu ou de faire des tests rapides dans le jeu. - -Le * profiler * est un outil qui mesure le temps passé dans différentes parties du moteur pendant que votre jeu est en cours d'exécution. Il aide à trouver des goulets d'étranglement ou des événements qui pourraient prendre beaucoup de ressources dans votre jeu. [En savoir plus sur l'utilisation du profileur ici!](/fr/gdevelop5/interface/debugger/profile-your-game) - -!!! note - - - Ceci est une fonctionnalité avancée de GDevelop. Si vous l'utilisez, nous aimerions que vous montriez votre soutien pour GDevelop par [abonnement payant](/fr/gdevelop5/interface/profile)! - - -![](/gdevelop5/interface/gdevelop-debugger_2x.png) - -## Lancer le débogueur - -Pour lancer le débogueur, dans la barre d'outils d'un éditeur de scène, cliquez sur l'icône "Debug": - -![](/gdevelop5/interface/debug-icon_2x.png) - -Dans le menu, choisissez "Aperçu avec débogueur et profileur de performances". -Cela ouvrira un nouvel onglet appelé "Débogueur" et lancera également un aperçu de votre jeu comme d'habitude. - -Notez que même si vous fermez l'aperçu, vous pouvez laisser l'onglet débogueur ouvert. De cette façon, tout aperçu que vous lancez (avec le bouton Aperçu habituel) sera connecté au débogueur. - -Lorsque le jeu est lancé, le débogueur est vide: - -![](/gdevelop5/interface/empty-debugger_2x.png) - -Cliquez sur ** "Actualiser" ** à tout moment pour récupérer les données du jeu. - -![](/gdevelop5/interface/debugger-refresh-button_2x.png) - -Vous pouvez également utiliser le bouton **Pause** dans la barre d'outils. - -## Inspecter les scènes du jeu - -Les scènes actuellement en cours sont listées sous l'élément Scenes de la liste: - -![](/gdevelop5/interface/inspector-list.png) - -Si vous cliquez sur un nom de scène, vous verrez à droite l'inspecteur de cette scène. Cet inspecteur contient la couche de la scène et un bouton pour créer une nouvelle instance d'un objet sur la scène. - - -### Créer une nouvelle instance de la scène - -Pour créer une nouvelle instance, cliquez sur le nom de la scène où vous souhaitez créer l'instance. -Écrivez le nom de l'objet et cliquez sur Créer: - -![](/gdevelop5/interface/create-instance.png) - -L'instance sera créée à la position 0; 0, sur la couche de base avec l'ordre Z 0. -Vous pouvez alors le trouver dans la liste des instances et changer sa position, son angle, sa couche ... - -## Inspecter et éditer les instances - -Dans la liste, vous pouvez trouver **Instances** de chaque scène en cours d'exécution. -Les instances sont regroupées par nom d'objet. Cliquez sur un nom d'objet pour voir la liste des occurrences de cet objet vivant sur la scène. Cliquez sur un numéro d'instance (chaque instance a un numéro unique) pour l'inspecter: -![](/gdevelop5/interface/instance-inspector.png) - -L'inspecteur affiche les propriétés générales de l'instance, par exemple la position, la rotation, la couche ... Pour chacune de ces propriétés, vous pouvez ** les modifier en cliquant sur la valeur **: - -![](/gdevelop5/interface/debugger-inspector-edit-value.png) - - -Validez vos modifications en cliquant sur le petit bouton **valider** (celui avec l'icône en forme de coche). - -Vous pouvez également voir les ** variables de l'instance ** et les modifier (voir ci-dessous pour plus d'informations sur les variables). - -## Inspecter et éditer les variables - -Vous pouvez inspecter des variables du jeu (variables globales), d'une scène (variables de scène) ou d'une instance particulière d'un objet (variables d'instance). - -Pour ce faire, dans la liste, cliquez sur ** Variables globales **, **Variables de scène** ou le numéro d'instance que vous souhaitez inspecter. - -Les variables seront affichées dans une liste affichant le nom et les valeurs de la variable (un nombre ou un texte). Voici un exemple d'instance d'un objet ayant une variable "Life": -![](/gdevelop5/interface/instance-variables.png) - - -Comme les autres champs, vous pouvez **cliquer sur la valeur de la variable** pour la modifier. C'est un bon moyen de voir comment votre jeu se comporte en fonction de la valeur des variables et de vérifier que vos événements fonctionnent correctement. - -Les variables peuvent également être des ** structures **, ce qui signifie qu'elles contiennent d'autres variables. Dans ce cas, au lieu de voir la valeur (nombre ou texte) de la variable, vous verrez une sous-liste contenant les variables enfants: - -Voici un exemple de variable "Options", contenant des variables enfants pour stocker les options d'un jeu: -![](/gdevelop5/interface/structure-variable-inspector.png) - -Vous pouvez également modifier la valeur des variables enfants comme les autres. - - -## Profil de la performance de votre jeu. - -Le profileur est un outil inclus dans le débogueur qui mesure le temps passé dans différentes parties du moteur pendant que votre jeu est en cours d'exécution. Il montre ensuite une ventilation de chaque section, y compris les événements. -[Lire plus sur le profileur ici!](/fr/gdevelop5/interface/debugger/profile-your-game) \ No newline at end of file diff --git a/docs/fr/gdevelop5/interface/debugger/profile-your-game.md b/docs/fr/gdevelop5/interface/debugger/profile-your-game.md deleted file mode 100644 index fbc29d38e5..0000000000 --- a/docs/fr/gdevelop5/interface/debugger/profile-your-game.md +++ /dev/null @@ -1,40 +0,0 @@ ---- -title: Profiler votre jeu ---- -# Profiler votre jeu - -Le profileur est un outil qui mesure le temps passé dans les différentes parties du moteur pendant que votre jeu est en cours d'exécution. Il aide à trouver des goulots d'étranglement ou des événements qui pourraient prendre beaucoup de ressources dans votre jeu. - -Le profiler fait partie du [Debugger](/fr/gdevelop5/interface/debugger). -!!! tip - - - [Lisez ici comment ouvrir le Debugger pour votre jeu](/fr/gdevelop5/interface/debugger). - -Lorsque le débogueur est ouvert, le profileur est affiché dans la partie inférieure de l'écran : - -![](/gdevelop5/interface/debugger/profiler-open.png) - -Pendant que le jeu est en cours d'exécution, cliquez sur le bouton **Start Profiling** pour lancer le profiler. -Après quelques secondes, cliquez sur **Stop Profiling** pour terminer les mesures. Le jeu ne stockera que 600 images de mesures, soit environ 10 secondes. Si vous avez mesuré plus de 600 images, les premières mesures seront effacées par les dernières. - -Lorsque le profilage est terminé, les résultats sont affichés : - -![](/gdevelop5/interface/debugger/profiler-with-results.png) - -Chaque section du jeu est affichée. Les sections peuvent contenir d'autres sections. - -Les sections sont : - -* Objets (pré-événements) - Le temps passé à exécuter des comportements avant les événements. -* Événements - Le temps passé à exécuter les événements. Si vous avez ajouté *groupes* à vos événements, ils seront affichés sous forme de sous-sections. C'est une bonne façon de voir comment chaque partie de vos événements se déroule. -* Objets (post-événements) - Le temps passé à exécuter des comportements après les événements (selon les comportements, ils peuvent être exécutés avant ou après les événements). -* Objets (visibilité) - Le temps passé à vérifier quels objets seront rendus à l'écran. -* Rendu - Le temps passé par le processeur (CPU) pour émettre des appels de rendu vers la carte graphique (GPU). - -Notez que le rendu réel sur le GPU n'est pas mesuré ici. - -Pour chaque section, vous pouvez voir : le temps total passé dans cette section pendant le temps de profilage, le pourcentage de temps passé dans cette section par rapport au parent et le pourcentage de temps passé dans cette section par rapport au temps total. - -* C'est une bonne idée de lancer le profiler pour voir quelle est la partie du jeu qui consomme le plus de ressources. En particulier, jetez un coup d'œil aux événements pour voir si certains groupes d'événements consomment plus de ressources que d'autres. -* Si certains comportements prennent beaucoup de temps, il peut être une bonne idée de voir si vous pouvez réduire le nombre d'objets ayant le comportement, ou désactiver le comportement si ce n'est pas nécessaire. \ No newline at end of file diff --git a/docs/fr/gdevelop5/interface/events-editor.md b/docs/fr/gdevelop5/interface/events-editor.md deleted file mode 100644 index 6a1e69eb02..0000000000 --- a/docs/fr/gdevelop5/interface/events-editor.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: events-editor ---- -FIXME **Cette page contient peut-être des erreurs, vous pouvez contribuer pour les corriger.** - -*(Enlevez ce paragraphe si vous pensez qu'il n'y a plus d'erreurs.)* - -# Éditeur d’événements - -Lors de l'ouverture d'une scène (ou lors de l'ouverture d'événements externes), un éditeur d'événements est également ouvert. C'est ici que vous pouvez utiliser les événements pour créer le jeu et permettre aux joueurs d'interagir avec votre jeu et de le jouer. L'éditeur d'événements est un outil qui vous permet de programmer visuellement votre jeu sans aucune connaissance en programmation ou expérience requise pour que n'importe qui avec n'importe quel arrière-plan puisse créer un jeu dans GDevelop. - -Pour basculer entre [l'éditeur de scène](/gdevelop5/interface/scene-editor) et l'éditeur d'événements vous pouvez utiliser ces onglets en haut ![](/gdevelop5/scene-events-tab.png) - -Lorsque vous passez à l'éditeur d'événements, vous remarquerez peut-être que nous avons une sélection différente d'outils disponibles: ![](/gdevelop5/events-editor-toolset.png) - -## Ajouter un événement Nous pouvons ajouter un événement en cliquant sur le bouton **Ajouter un événement** ![](/gdevelop5/add-event-button.png) - -En cliquant sur ce bouton, un événement vide apparaît dans notre éditeur ![](/gdevelop5/blank-event.png) - -Nous pouvons ajouter n'importe quel nombre de blocs d'événements à notre éditeur et ajouter diverses conditions et actions à chaque bloc d'événement pour rendre notre logique. Vous pouvez en apprendre plus sur les événements, sur la page dédié aux : [](/gdevelop5/événements). - -## Ajouter un sous-événement En cliquant sur le bouton Ajouter un sous-événement, nous pouvons ajouter un bloc d'événement enfant à l'événement sélectionné.![](/gdevelop5/sub-event-button.png) - -Après avoir cliqué sur le bouton, un sous-événement vide apparaît sous notre événement sélectionné ![](/gdevelop5/blank-sub-event.png) - -Les sous-événements ne sont exécutés que si l'événement parent est exécuté, de cette façon nous pouvons freiner nos événements et déclencher des événements seulement quand / si cela est nécessaire et ne pas les déclencher si ce n'est pas le cas. - -## Ajouter un commentaire - -!!! note - - Les commentaires sont très utiles afin de vous repérer dans votre jeu, si vous souhaitez par exemple faire un gros jeu, forcément, il y aura pleins d'événements et vous pourriez vous perdre, mais grâce aux commentaires, vous allez vous repérer ! En cliquant sur le bouton **Ajouter un commentaire**, nous pouvons ajouter des commentaires à nos événements afin que nous puissions nous souvenir des événements qui correspondent à leur objectif. ![](/gdevelop5/add-comment-button.png) - -Bien sûr, la plupart des événements s'expliquent d'eux-mêmes, mais dans les jeux complexes, il est toujours utile d'ajouter des commentaires pour nous rappeler ce que cette partie fait exactement. ![](/gdevelop5/comment-in-editor.png) - -## Ajouter un événement spécial En cliquant sur le bouton Ajouter un événement, avec ceux que nous avons déjà mentionnés, nous avons accès à des événements spéciaux ![](/gdevelop5/add-special-events.png) - -Lire la page dédié aux [événements](/gdevelop5/events)pour en apprendre plus. - -## Supprimer un événement sélectionné - -En cliquant sur le bouton Supprimer les événements sélectionnés, les événements sélectionnés seront supprimés de la feuille ![](/gdevelop5/delete-selected-events-button.png) - -## Annuler / Rétablir les modifications Tout changement peut être annulé ou appliqué à nouveau avec ces boutons ![](/gdevelop5/undo-redo-buttons.png) ## Rechercher dans les événements En cliquant sur le bouton rechercher dans les événements, nous pouvons faire exactement cela, rechercher une expression dans les événements et trouver ce que nous recherchons ![](/gdevelop5/search-events-button.png) diff --git a/docs/fr/gdevelop5/interface/index.md b/docs/fr/gdevelop5/interface/index.md deleted file mode 100644 index c25ff950e7..0000000000 --- a/docs/fr/gdevelop5/interface/index.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -title: Aperçu de l'interface de GDevelop ---- -# Aperçu de l'interface de GDevelop - -L'interface de travail de GDevelop est basée sur des éditeurs affichés dans des onglets. Ces éditeurs vous permettent de modifier différentes parties de votre jeu. -![](/gdevelop5/screen_shot_2017-09-18_at_01.30.20.png) - - -# Page de démarrage - -L'écran de démarrage initial s'affiche lorsque vous lancez GDevelop pour la première fois. C'est ici que vous créez vos projets, chargez des projets précédemment enregistrés ou chargez des tutoriels. - -![](/gdevelop5/gdevelop5startpage.png) - -Au démarrage, GDevelop recherchera de nouvelles mises à jour. Si une nouvelle mise à jour est disponible, la mise à jour sera automatiquement téléchargée. -Vous pouvez en voir la progression en cliquant sur [About GDevelop](/gdevelop5/interface/updates) -. -# Gestionnaire de projet - -Lorsqu'un projet est ouvert, vous pouvez cliquer sur le bouton en haut à gauche pour accéder au gestionnaire de projet. -![](/gdevelop5/project-manager-button.png) -Le gestionnaire de projet montre la structure de votre jeu. -![](/gdevelop5/project-manager-tab.png) -Vous pouvez plier et déplier chaque catégorie en cliquant sur la petite flèche. - - *** Ressources:** C'est ici que GDevelop stocke toutes les images et les sons utilisés dans votre jeu. - - * **Scènes:** Les scènes sont les différents niveaux de votre jeu mais pas seulement car dans GDevelop tout est une question de scène, le menu principal, écran de démarrage, écran de crédits, tous sont des scènes. - - *** Événements externes:** Pour rendre le développement de notre jeu plus flexible, nous pouvons rendre externes des événements souvent utilisés et les lier à des scènes quand nous en avons besoin. Considérez-les comme des méthodes de programmation, mais si vous n'êtes pas familier avec le terme méthode, rappelez-vous simplement que si vous avez souvent besoin d'utiliser un des événements, vous pouvez le rendre externe et l'appeler quand vous en avez besoin. - - *** Agencements externes:** Comme pour les événements, vous pouvez décider que des agencements utilisés à diverses reprises méritent d'être conçus comme des agencements externes qui pourront être chargés à de multiples endroits de vos scènes. - -Dans la version **bureau**, le menu Fichier vous permet de sauvegarder votre jeu, d'en ouvrir un autre ou de le fermer. Vous pouvez aussi [exporter votre jeu](/gdevelop5/publishing). -![](/gdevelop5/file-menu.png) -Dans la version navigateur de GDevelop5, ces options sont en haut du gestionnaire de projet. -![](/gdevelop5/web-project-manager-tab.png) - -# Éditeur de scènes - -Lorsque vous ouvrez une scène (ou un agencement externe), un éditeur de scène s'ouvre. -C'est ici que vous pouvez concevoir et construire vos niveaux et menus de jeu en créant et ajoutant des objets à la scène. - -Nous avons une sélection d'outils et d'éditeurs disponibles dans l'éditeur de scènes: -![](/gdevelop5/scene-editor-toolset.png) - -[Pour en apprendre plus sur l'utilisation de l'éditeur de scènes](/fr/gdevelop5/interface/scene-editor). -} -## Éditeur d'objets -L'éditeur d'objets se trouve à droite. C'est ici que vous pouvez voir tous les objets utilisés dans votre scène et en ajouter de nouveaux. -![](/gdevelop5/objects-manager-tab.png) -Si vous avez fermé cette barre, vous pouvez l'ouvrir à nouveau en utilisant le bouton en haut. -![](/gdevelop5/objects-manager-button.png) - -## Propriétés de l'objet -Vous trouverez les propriétés de l'objet à gauche, sous le gestionnaire de projet. Fermez le gestionnaire de projet si vous ne pouvez pas le voir. -![](/gdevelop5/object-properties-bar.png) -Ici, vous pouvez modifier les propriétés des objets sélectionnés tels que la position, la rotation, l'échelle, l'ordre Z, etc. - -Si vous avez fermé cette barre, vous pouvez l'ouvrir en cliquant sur le bouton en haut. -![](/gdevelop5/object-properties-button.png) - -Dans ce cas, la barre peut s'ouvrir sur le côté droit, vous pouvez déplacer et mettre à l'échelle via les bords n'importe quel élément de l'écran en faisant glisser et en déplaçant. - -## Éditeur des Groupes d'objets -Dans l'éditeur des Groupes d'objets nous pouvons trouver la liste des groupes que nous avons dans notre scène et nous pouvons en créer de nouveaux. -![](/gdevelop5/objects-groups-editor.png) -Pour ouvrir l'éditeur, il faut cliquer sur le bouton en haut. -![](/gdevelop5/objects-groups-editor-button.png) - -Les groupes d'objets nous permettent de rassembler des objets dans des groupes, puis d'y faire appel à l'intérieur de nos événements. Cela sert à faire appel à un groupe plutôt qu' à des objets individuels. - -## Éditeur d'instances -L'éditeur d'instances affiche une liste de toutes les instances présentes dans notre scène et nous pouvons sélectionner n'importe quelle instance de la liste et voir sa position, angle, couche et ordre Z dans notre scène. -![](/gdevelop5/instances-editor.png) - -On peut ouvrir l'éditeur d'instances en cliquant sur le bouton en haut dans la barre d'outils. -![](/gdevelop5/instances-editor-button.png) - -## Éditeur de calques -L'éditeur de calques affiche la liste des calques dans nos scènes et nous permet d'en ajouter de nouveaux, de modifier leurs ordres, de les masquer et de les supprimer. -![](/gdevelop5/layers-editor.png) - -On peut ouvrir l'éditeur de calques en cliquant sur le bouton en haut dans la barre d'outils. -![](/gdevelop5/layers-editor-button.png) - -## Masque de fenêtre -En cliquant sur le bouton Masque de fenêtre situé en haut, nous pouvons activer et désactiver la bordure noire de notre scène qui indique la taille de notre fenêtre de jeu. -![](/gdevelop5/toggle-window-mask-button.png) - -## Editer la grille -En cliquant sur le bouton d'édition de la grille en haut, nous obtenons deux options: -![](/gdevelop5/toggle-grid-button.png) - - * **Toggle grid:** il nous permet d'activer et de désactiver la grille dans l'éditeur de scènes, la grille est utile lorsque nous avons besoin de placer des objets avec précision ou que nous avons à faire à des sprites de tuiles. - * **Setup grid:** il nous permet de personnaliser la taille de la grille. - -## Changer le zoom de l'éditeur -En cliquant sur le bouton Modifier le zoom, on peut changer le niveau de zoom dans l'éditeur de scène. -![](/gdevelop5/toggle-zoom-button.png) - -## Lancement de la prévisualisation de la scène -En cliquant sur le bouton Prévisualiser, nous pouvons lancer un aperçu de notre jeu et le tester avant de l'exporter. -![](/gdevelop5/preview-button.png) - -## Éditeur d'événements - -Lors de l'ouverture d'une scène (ou lors de l'ouverture d'événements externes), un éditeur d'événements est également ouvert. C'est ici que vous pouvez utiliser les événements pour créer le gameplay réel et permettre aux joueurs d'interagir avec votre jeu et de le jouer. -L'éditeur d'événements est un outil qui vous permet de programmer visuellement votre jeu sans aucune connaissance de programmation ou d'expérience requise afin que n'importe qui avec n'importe quel niveau puisse faire un jeu dans GDevelop. - -Pour basculer entre l'éditeur de scène et l'éditeur d'événements, vous pouvez utiliser les onglets en haut de l'écran. -![](/gdevelop5/scene-events-tab.png) - -Lorsque vous passez à l'éditeur d'événements, vous remarquerez peut-être qu'en haut un choix de différents outils est désormais disponible. -![](/gdevelop5/events-editor-toolset.png) - -## Ajouter un événement -Nous pouvons ajouter un événement en cliquant sur le bouton Ajouter un événement -![](/gdevelop5/add-event-button.png) - -En cliquant sur ce bouton, un évènement vide apparaît dans notre éditeur. -![](/gdevelop5/blank-event.png) - -Nous pouvons ajouter autant de blocs d'événements à notre éditeur et ajouter diverses conditions et actions à chaque bloc d'événements pour faire notre logique de jeu. Pour en savoir plus sur les événements, consultez cette page: [events](/gdevelop5/events) - -## Ajouter un sous-événement -En cliquant sur le bouton Ajouter un sous-événement, nous pouvons ajouter un bloc d'événement enfant à l'événement sélectionné. -![](/gdevelop5/sub-event-button.png) - -Après avoir cliqué sur le bouton, un sous-événement vide apparaît en dessous de l'événement sélectionné. -![](/gdevelop5/blank-sub-event.png) - -Les sous-événements ne sont exécutés que si l'événement parent est exécuté, de cette façon nous pouvons freiner nos événements et déclencher des événements seulement quand/si c'est nécessaire et ne pas les déclencher si ce n'est pas le cas. - -## Ajouter un commentaire -En cliquant sur le bouton ajouter un commentaire, nous pouvons ajouter des commentaires à nos événements afin que nous puissions nous rappeler quels événements correspondent à quel but. -![](/gdevelop5/add-comment-button.png) -Bien sûr, la plupart des événements s'expliquent d'eux-mêmes, mais dans les jeux gigantesques et complexes, il est toujours utile d'ajouter des commentaires pour nous rappeler ce que fait exactement cette partie. Dans un projet à plusieurs mettre des commentaires est utile pour que vos collègues comprennent la logique des évènements plus simplement. -![](/gdevelop5/comment-in-editor.png) - -## Ajouter des événements spéciaux -En cliquant sur le bouton Ajouter un événement, en plus de ceux que nous avons déjà mentionnés, nous avons accès à quelques événements spéciaux -![](/gdevelop5/add-special-events.png) - - * **For each object:** cet événement va être déclenché sur chaque instance d'un objet un par un et s'assurer que les actions sont appliquées à chaque instance individuellement. - * **Group:** Les groupes nous permettent de trier les événements dans des groupes, cela nous aide à rendre nos événements plus organisés. - * **Javascript code:** il nous permet d'utiliser le code Javascript dans l'éditeur d'événements - * **Link:** nous pouvons lier un événement externe en utilisant cette option - * **Repeat:** cet événement va être répété un nombre spécifié de fois. - * **While:** cet événement va être exécuté tant qu'une certaine condition est remplie - -## Supprimer les événements sélectionnés -En cliquant sur le bouton Supprimer les événements sélectionnés, ce bouton fait exactement ce qui est écrit. -![](/gdevelop5/delete-selected-events-button.png) - -## Annuler/Rétablir les modifications -En cliquant sur le bouton Annuler ou Rétablir les modifications, ceci sera fait. -![](/gdevelop5/undo-redo-buttons.png) - -## Rechercher dans les événements -En cliquant sur le bouton de recherche dans les événements, recherchez n'importe quelle expression dans les événements et trouvez ce que vous voulez. -![](/gdevelop5/search-events-button.png) \ No newline at end of file diff --git a/docs/fr/gdevelop5/interface/profile.md b/docs/fr/gdevelop5/interface/profile.md deleted file mode 100644 index 77724e503a..0000000000 --- a/docs/fr/gdevelop5/interface/profile.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: Mon profil ---- -# Mon profil - -Un compte GDevelop est nécessaire pour quelques fonctionnalités, notamment l'exportation en un clic de votre jeu pour Android, iOS, Windows, macOS and Linux.. - -Si vous n'avez pas de compte, créez-en un gratuitement: dans le menu Fichier (sur Windows et Linux) ou dans le menu GDevelop (sur macOS), choisissez Mon profil: - -![](/gdevelop5/interface/my-profile-menu.png) - -Dans la fenêtre, vous pouvez voir votre profil (ou en créer un si vous n'avez pas de compte) et aussi voir les dernières utilisations que vous avez faites des services en ligne. - -## Créer un compte - -Si vous n'avez pas de compte, vous pouvez en créer un gratuitement: - -![](/gdevelop5/interface/create-account.png) - -Cliquez sur **Créer mon compte**, puis entrez votre adresse email et choisissez un mot de passe: - -![](/gdevelop5/interface/login.png) - -Une fois connecté, vous pouvez voir votre profil et vous pouvez utiliser les services spécifiques de GDevelop, comme le packaging de votre jeu pour Android en un clic! - -## Obtenir un abonnement - -Par défaut, les comptes sont gratuits et il n' y a pas de limites sur les jeux que vous créez avec GDevelop. -Quelques services en ligne sont limités car ils s'appuient sur des serveurs qui peuvent être coûteux. En particulier, avec un compte gratuit vous pouvez faire 2 [packaging for Android](/gdevelop5/publishing/android_and_ios) exports par jour. - -En obtenant un abonnement, vous débloquerez plus de packagings (et à l'avenir, plus de packagings en un clic pour iOS, Windows, MacOS et Linux! Vous soutiendrez également GDevelop pour le développement futur. ✨ - -Une fois connecté, cliquez sur le bouton **Choisissez un abonnement**: - -![](/gdevelop5/interface/choose-subscription-button.png) - -Vous pourrez voir une description de chaque plan disponible. Choisissez celui qui convient à vos besoins: - -![](/gdevelop5/interface/subscription-plans.png) - -Une fois que vous avez cliqué sur Choisir ce forfait, on vous demandera votre numéro de carte de crédit afin que l'abonnement puisse être payé chaque mois. Les paiements sont effectués et protégés à l'aide de [Stripe. com](https://stripe.com), qui est le nouveau standard en matière de paiement en ligne. Tout est sécurisé et géré par l'infrastructure Stripe. - -## Modification de votre abonnement - -ISi vous souhaitez mettre à jour votre abonnement, soit pour passer à un abonnement avec plus de packagings, soit à un abonnement moins cher, il vous suffit d'ouvrir à nouveau votre profil et de cliquer sur **Mettre à jour/Modifier**. - -Le prochain paiement sera automatiquement adapté à votre nouvel abonnement! - -## Annulation de votre abonnement - -Il est facile d'annuler votre abonnement à tout moment: ouvrez à nouveau votre profil et cliquez sur **Mettre à jour/Modifier**. Choisissez l'abonnement Gratuit et votre abonnement actuel sera arrêté, et aucun nouveau paiement ne sera requis. - -Si vous le souhaitez, vous pouvez vous réabonner ultérieurement à un autre abonnement. En tout cas, vous ne perdrez rien de votre jeu ou de votre travail! \ No newline at end of file diff --git a/docs/fr/gdevelop5/interface/project-manager.md b/docs/fr/gdevelop5/interface/project-manager.md deleted file mode 100644 index 31f9208059..0000000000 --- a/docs/fr/gdevelop5/interface/project-manager.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: project-manager ---- -FIXME **Cette page contient peut-être des erreurs, vous pouvez contribuer pour les corriger.** - -*(Enlevez ce paragraphe si vous pensez qu'il n'y a plus d'erreurs.)* - -# Gestion des projets - -Quand un projet est ouvert, vous pouvez cliquer sur le bouton en haut à gauche pour accéder au menu **Gestion des projets** ![](/gdevelop5/project-manager-button.png) - -Le **menu gestion des projets** montre la structure de votre jeu. - -![](/gdevelop5/interface/projectmanager2.png) - -Vous pouvez plier et déplier chaque catégorie en cliquant sur la petite flèche. - -!!! note - - Le logiciel sur cet image est noir car il possède le thème **dark**, votre logiciel ne ressemble donc peut-être pas à ceci mais ne vous inquiétez pas, ils possèdent tout les deux les mêmes fonctions - -- **Paramètre du jeu:**C'est ici que vous pouvez personnaliser les **paramètres globaux du jeu**, comme par exemple la taille de la fenêtre de votre jeux ou le nom du package pour Android et iOS. Vous pouvez aussi [mettre en place un icône pour votre jeu](/gdevelop5/interface/project-manager/icons). - -  - -- **Scènes:** Les **scènes** sont les différents niveaux de votre jeu mais que ça, dans GDevelop tout est une [scène](/gdevelop5/interface/scene-editor), le menu principal, le splash screen, les crédits: Toutes ces catégories sont des scènes. - -  - -- **Événements extérieurs:**pour rendre le développement de notre jeu plus flexible, nous pouvons faire usage des [événements extérieurs](/gdevelop5/interface/events-editor) et les relier à chaque fois que nous en avons besoin. Considérez-les comme des méthodes de programmation, mais si vous n'êtes pas familier avec le terme, souvenez-vous que si vous devez utiliser une collection d'événements souvent et différents, vous pouvez les rendre externes et les appeler quand vous en avez besoin. - -* **Disposition externe: **similaire aux événements, vous pouvez concevoir des mises en page externes souvent utilisées à plusieurs reprises pour les charger même à plusieurs endroits de votre scène. - -## Menu Fichier - -Dans la version **bureau** de GDevelop, le **menu Fichier** vous permet d'enregistrer votre projet, d'en ouvrir un autre ou de le fermer. Vous pouvez aussi [exporter votre jeu](/gdevelop5/publishing). ![](/gdevelop5/file-menu.png) - -Dans **l'application web** de GDevelop, ces options sont dans le **menu options**. ![](/gdevelop5/web-project-manager-tab.png) diff --git a/docs/fr/gdevelop5/interface/scene-editor.md b/docs/fr/gdevelop5/interface/scene-editor.md deleted file mode 100644 index abf7780e41..0000000000 --- a/docs/fr/gdevelop5/interface/scene-editor.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: scene-editor ---- -FIXME **Cette page contient peut-être des erreurs, vous pouvez contribuer pour les corriger.** - -*(Enlevez ce paragraphe si vous pensez qu'il n'y a plus d'erreurs.)* - -# Éditeur de scène - -Quand vous ouvrez une scène (où une disposition extérieur), un éditeur de scène s'ouvre. C'est ici que vous pouvez créer les niveaux de votre jeu (ou menus, inventaires...) en créant et ajoutant des objets dans la scène. Le gameplay et les règles du jeu peuvent être crée avec des événements dans [l'éditeur d'événements](/gdevelop5/interface/events-editor). - -Nous avons une sélection d'outils et d'éditeurs disponibles dans l'éditeur de scène: ![](/gdevelop5/scene-editor-toolset.png) - -## Éditeur d'objets Vous pouvez trouver l'éditeur d'objets sur le côté droit. C'est là que vous pouvez voir tous [les objets](/gdevelop5/ objects) utilisés dans votre scène et en ajouter de nouveaux. ![](/gdevelop5/objects-manager-tab.png) - -Au cas où vous avez fermé ce panneau, vous pouvez le rouvrir en utilisant le bouton en haut ![](/gdevelop5/objects-manager-button.png) - -Lisez [l'aide à propos des objets](/gdevelop5/objects) pour en apprendre davantage sur les différents types d'objets que vous pouvez utiliser dans votre jeu. - -## Propriété des objets Vous pouvez trouver les propriétés de l'objet sur le côté gauche, sous le gestionnaire de projet. Fermez le gestionnaire de projet si vous ne pouvez pas le voir. ![](/gdevelop5/object-properties-bar.png) Ici vous pouvez modifier les propriétés des objets sélectionnés tels que la position, l'échelle, l'ordre Z. Si vous avez fermé cette barre, vous pouvez la rouvrir en cliquant sur le bouton en haut ![](/gdevelop5/object-properties-button.png) - -Dans ce cas, la barre peut s'ouvrir sur le côté droit, vous pouvez déplacer et mettre à l'échelle n'importe quel élément sur l'écran en le faisant glisser et en le déplaçant. - -## Éditeur des Groupes d'objets Dans l'éditeur des groupes d'objets, nous pouvons trouver la liste des groupes que nous avons dans notre scène et nous pouvons en créer de nouveaux. ![](/gdevelop5/objects-groups-editor.png) Pour ouvrir l'éditeur, nous devons cliquer sur le bouton en haut: ![](/gdevelop5/objects-groups-editor-button.png) - -Les groupes d'objets nous permettent de collecter des objets dans des groupes et à l'intérieur de nos événements se référer à un groupe au lieu d'objets individuels. - -## Éditeur d'instances L'éditeur d'instances affiche une liste de toutes les instances présentes dans notre scène et nous pouvons sélectionner n'importe quelle instance de la liste et voir leur position, angle, calque et ordre Z dans notre scène. ![](/gdevelop5/instances-editor.png) - -Nous pouvons ouvrir l'éditeur Instances en cliquant sur le bouton en haut ![](/gdevelop5/instances-editor-button.png) - -## Éditeur de couches L'éditeur de calques affiche la liste des calques dans nos scènes et nous permet d'en ajouter de nouveaux, de modifier leur ordre, de les masquer et de les supprimer. ![](/gdevelop5/layers-editor.png) - -Nous pouvons ouvrir l'éditeur de calques en cliquant sur le bouton en haut ![](/gdevelop5/layers-editor-button.png) - -## Autres outils - -Voici différents outils très complets qui vous aideront à la création de votre jeu: - -### Basculer / Modifier la grille En cliquant sur le bouton bascule / modifier la grille en haut, nous obtenons deux options: ![](/gdevelop5/toggle-grid-button.png) * **Masque**: Ceci affiche ou masque une bordure noire dans la scène, qui indique la taille de la fenêtre de jeu. * **Grille**: Elle nous permet d'activer et de désactiver la grille dans l'éditeur de scène, la grille est utile lorsque nous avons besoin de placer des objets avec précision ou nous avons affaire à des sprites de tuiles. - -- **Grille d'installation: **elle nous permet de personnaliser la taille de la grille - -### Zoom sur l'éditeur En cliquant sur le bouton Modifier le zoom de l'éditeur, nous pouvons changer le niveau de zoom dans l'éditeur de scène ![](/gdevelop5/toggle-zoom-button.png) - -## Aperçu du jeu - -En cliquant sur le bouton Aperçu, vous pouvez lancer un aperçu de votre jeu: - -![](/gdevelop5/preview-button.png) - -L'aperçu ouvre une fenêtre séparé. - -### Lancer un aperçu réseau (Aperçu sur WiFi / LAN) - -En cliquant sur le bouton "Aperçu du réseau (Aperçu sur WiFi / LAN)", nous pouvons prévisualiser notre jeu sur des appareils mobiles connectés sur le même réseau que l'éditeur: - -![](/gdevelop5/interface/preview-wifi-button.png) - -Après avoir cliqué sur le bouton, une fenêtre apparaîtra, nous montrant l'adresse sur laquelle l'aperçu est lancé ![](/gdevelop5/preview-wifi-window.png) - -Maintenant, nous devons écrire et entrer l'adresse donnée dans le navigateur de notre appareil mobile. L'aperçu devrait charger: ![](/gdevelop5/interface/preview-wifi-running.png) - -Maintenant nous pouvons fermer la fenêtre pop-up dans l'éditeur pour continuer à éditer notre jeu. Enfin, si nous lançons une nouvelle prévisualisation via wifi, notre appareil mobile actualisera automatiquement la page pour afficher les modifications apportées. - -### Lancer un aperçu avec un débogueur - -Le débogueur est un outil qui peut être utilisé pour inspecter le contenu de votre jeu (valeurs de variables, instances existantes et leurs propriétés ...) et même faire une édition en temps réel. - -Vous pouvez lancer le débogueur en utilisant cette icône: - -![](/gdevelop5/interface/debugger-button.png) - -[Voir cette page](/fr/gdevelop5/interface/debugger) pour en savoir plus sur l'utilisation du débogueur. diff --git a/docs/fr/gdevelop5/objects/admob.md b/docs/fr/gdevelop5/objects/admob.md deleted file mode 100644 index ac2281cc63..0000000000 --- a/docs/fr/gdevelop5/objects/admob.md +++ /dev/null @@ -1,10 +0,0 @@ ---- -title: L'objet Admob ---- -# L'objet Admob - -AdMob permet d'afficher des publicités dans votre jeu, sur Android ou iOS. - -!!! note - - L'objet AdMob a été modifié dans les dernières versions de GDevelop. **[Consultez plutôt la page Admob](/gdevelop5/all-features/admob)**. \ No newline at end of file diff --git a/docs/fr/gdevelop5/objects/base_object.md b/docs/fr/gdevelop5/objects/base_object.md deleted file mode 100644 index acd921ab94..0000000000 --- a/docs/fr/gdevelop5/objects/base_object.md +++ /dev/null @@ -1,159 +0,0 @@ ---- -title: base_object ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -Dans les jeux développés avec GDevelop, tout est lié aux objets. - -# Caractéristiques communes à tous les objets - -Dans un jeu GDevelop, tout ce qui apparaît à l'écran est un objet. - -## Ajouter un objet à votre jeu - -Vous pouvez ajouter des objets dans une scène en cliquant sur le bouton **Click to add an object** (Cliquez pour ajouter un objet) à droite, en bas de la liste des objets : - -![](/gdevelop5/objects/add-object-button.png) - -Vous pouvez choisir parmi de nombreux types d'objets, tous dotés de propriétés spécifiques et destinés à jouer un rôle bien défini : - -![](/gdevelop5/objects/object-types.png) - -En fonction du type d'objet choisi, l'éditeur, l'aspect de l'objet et les fonctionnalités disponibles dans les événements seront différents. Le but de cette page étant d'expliquer les objets en général, nous n'entrerons pas dans les détails des propriétés propres à chaque type d'objets. Vous pouvez trouver des [informations détaillées ici](http://wiki.compilgames.net/doku.php/gdevelop5/objects). - -# Les objets dans la scène - -## Ajouter une instance d'objet à la scène - -Un objet peut être placé sur la scène en le sélectionnant dans l'onglet **Object** (cliquez dessus), puis en le faisant glisser dans la scène pour placer une * instance * de cet objet. Une * instance * est fondamentalement une *copie* de l'objet vivant sur la scène. Chaque instance a ses propres variables, position, animations (pour les objets sprite), contenu (pour les textes), etc ... - -Nous pouvons modifier la position d'un objet en sélectionnant l'objet dans l'éditeur de scène et en le faisant glisser. Nous pouvons redimensionner l'objet en le sélectionnant et en faisant glisser l'une des poignées d'échelle blanches. - -![](/gdevelop5/objects/coin-selected.png) - -## Modifier les propriétés d'un objet - -Lorsque nous sélectionnons un objet dans l'éditeur de scène, le panneau de propriétés situé à gauche affiche des informations sur la ou les instances sélectionnées. S'il n'est pas ouvert, vous pouvez l'ouvrir en cliquant sur le bouton des propriétés situé dans la barre d'outils : - -![](/gdevelop5/objects/object-propeties-button.png) - -## Position de l'instance d'un objet - -Vous pouvez définir avec précision la position des instances sélectionnées en modifiant les valeurs **X** et **Y** dans le panneau des propriétés : - -![](/gdevelop5/objects/object-position-properties.png) - -## Angle (orientation) de l'instance d'un objet - -Vous pouvez définir l'angle (l'orientation) de l'instance en modifiant la valeur de l'angle : - -![](/gdevelop5/objects/object-angle-properties.png) - -L'angle peut prendre n'importe quelle valeur de 0 à 360 degrés. Rappelez-vous ce diagramme pour voir quelle est l'orientation d'un angle donné : - -![](/gdevelop5/objects/gdevelop_co.png) - -## L'ordre Z - -Vous pouvez modifier l'ordre Z d'une instance dans le panneau des propriétés : - -![](/gdevelop5/objects/object-zorder-properties.png) - -Le but de l'ordre Z est de permettre de spécifier quel objet sera affiché en premier, lorsque les instances se chevauchent. Plus précisément, nous pouvons contrôler si l'objet est derrière un autre objet ou s'il est devant en définissant des valeurs différentes : lorsque deux objets se chevauchent, l'objet avec la valeur d'ordre Z inférieure sera affiché derrière l'autre. - -Les valeurs peuvent être n'importe quel entier, y compris les nombres négatifs et 0. - -![](/gdevelop5/objects/coin-bush-zorder.png) - -Sur l'image ci-dessus, l'ordre Z du buisson à gauche est 2, l'ordre Z de la pièce est 1 et l'ordre Z du buisson à droite est 0. - -## Les calques (layers) - -Vous pouvez définir le calque d'une instance : - -![](/gdevelop5/objects/object-layer-properties.png) - -Par défaut, chaque scène de GDevelop est fournie avec un seul calque (ou couche) appelé **Base layer** (calque de base). C'est là que tous les objets de notre scène sont situés. Nous pouvons ajouter plus de calques à des fins diverses et mettre n'importe quelle instance sur n'importe quel calque. Par exemple, il peut y avoir un calque pour afficher les commandes à l'écran, une autre pour afficher un menu, une carte ou un arrière-plan. - -## Verrouiller la position / l'angle - -En cochant la case**Locked**(Verrouiller) la position / l'angle dans l'éditeur, vous pouvez rendre l'instance inamovible dans l'éditeur. - -![](/gdevelop5/objects/lock-sprite.png) - -Quand une instance est verrouillée, nous ne pouvons plus la sélectionner dans la scène. Il y a des moments où nous avons beaucoup d'objets qui se chevauchent dans la scène ce qui rend difficile la sélection de certains d'entre eux, car nous continuons à sélectionner ceux que nous n'avons pas l'intention de manipuler. Dans ce cas, nous pouvons verrouiller les instances. - -Vous pouvez déverrouiller une instance verrouillée en ouvrant le panneau d'instances, qui affiche toutes les instances de notre scène et en sélectionnant l'objet dans la liste. - -## Les variables d'instance - -Le bouton **Edit variables** (Editer les variables) permet de définir des variables spécifiques à l'instance sélectionnée : - -![](/gdevelop5/objects/instance-variables-property.png) - -Une variable est essentiellement un conteneur qui renferme une valeur (un nombre, un texte) pouvant être comparée et modifiée au cours du jeu. Il existe différents types de variables dans GDevelop, en particulier chaque objet peut contenir des variables. Lorsque le jeu est en cours d'exécution, chaque *instance* de l'objet vivant sur la scène aura ses propres variables. - -L'éditeur de variables permet de définir des variables spécifiques à l'instance sélectionnée. Par exemple, si vous avez sur la scène des objets représentant des coffres contenant de l'or, vous pouvez modifier la variable nommée "Or" de chaque instance pour définir un nombre différent. Ensuite, dans les événements, lorsque le joueur entre en collision avec un coffre, vous pouvez lire la valeur de la variable pour l’ajouter au montant en or du joueur. - -## Dimensions personnalisées - -Vous pouvez modifier la taille des objets en activant la taille personnalisée dans le panneau de propriétés, puis entrez les dimensions personnalisées **Width** (largeur) et **Height** (hauteur) en pixels : - -![](/gdevelop5/objects/customsize-properties.png) - -# Les groupes d'objets - -Un groupe d'objets est un ensemble d'objets. Par exemple, un groupe appelé "Ennemis" peut contenir des objets "Champignon", "Bombe", "Dinosaure". Vous pouvez ensuite utiliser le nom du groupe dans les événements pour faire référence à tous les objets contenus dans le groupe. - -Cela permet de créer des événements qui s'appliquent à un grand nombre d'objets sans les répéter plusieurs fois, ce qui augmente les performances du jeu, la facilité de maintenance et la lisibilité des événements. - -Pour ouvrir l’éditeur de groupes, cliquez sur l’icône des groupes dans la barre d’outils : - -![](/gdevelop5/objects/groups-button.png) - -L'éditeur de groupes répertorie tous les groupes de la scène (ainsi que les groupes globaux disponibles dans toutes les scènes du jeu). Pour ajouter un groupe, cliquez sur le bouton **Click to add a group** (Cliquez pour ajouter un groupe) en bas de la liste : - -![](/gdevelop5/objects/add-group-button.png) - -Un nouveau groupe est ajouté dans la liste : - -![](/gdevelop5/objects/group-group.png) - -* Pour renomer un groupe, faites un clic droit sur le groupe et sélectionnez **Rename** (Renommer). * Pour ajouter un objet au groupe, cliquez ou tapez sur le groupe. - -Dans la fenêtre qui s'ouvre pour éditer le groupe, cliquez sur le champ du bas et choisissez un objet (ou écrivez le nom d'un objet) pour l'ajouter au groupe. - -![](/gdevelop5/objects/edit-group.png) - -# Les variables - -Chaque objet peut contenir des variables, qui sont des cellules de mémoire que vous pouvez utiliser pour stocker des informations. Lorsque le jeu est en cours d'exécution, chaque *instance* de l'objet vivant sur la scène aura ses propres variables. - -Consultez [cette page](/gdevelop5/all-features/variables) pour en savoir plus sur les variables. - -# Les chronomètres ou minuteries - -Les objets peuvent contenir leurs propres chronomètres et chaque chronomètre sera unique pour chaque instance de l'objet vivant sur la scène. Les chronomètres d’objets sont utiles pour créer des instances permettant de lancer des actions toutes les X secondes. - -Par exemple, une utilisation classique consiste à simuler des balles tirées par une arme. Si vous avez un seul char sur la scène, vous pouvez utiliser un chronomètre de scène pour que ce char puisse tirer (créer une balle) toutes les 3 secondes, puis réinitialiser le chronomètre (pour que le char puisse tirer à nouveau). - -Le problème est que si vous avez 2 chars et utilisez un chronomètre de scène, vous remarquerez que les deux chars tirent en même temps, car ils partagent le même chronomètre de scène. Vous devez disposer de deux chronomètres distincts, indépendants l’un de l’autre, pour que le second char tire à son rythme. Mais que faire si vous avez 100 chars ? Vous ne voudrez certainement pas créer 100 chronomètres de scène, un par instance. - -C'est à ce moment que les chronomètres d'objets deviennent utiles : remplacez chaque condition / action utilisant le chronomètre de scène par des conditions / actions permettant d'utiliser les chronomètres d'objet. Pendant le jeu, GDevelop créera un chronomètre pour chaque instance de char. Lorsque vous utiliserez une condition pour vérifier la valeur d'un chronomètre, seule l'instance dont le chronomètre a une valeur en secondes supérieure au nombre que vous avez entré sera sélectionnée. - -Vous pouvez en apprendre plus sur les chronomètres en étudiant : [](/gdevelop5/all-features/timers) - -# La visibilité - -La visibilité d'un objet est la propriété qui lui permet d'être visible après sa création. La visibilité d'un objet peut être activée ou désactivée. Si l'objet n'est pas visible, cela ne signifie pas que l'objet n'existe pas. Par contre, si l'objet cesse d'exister, cela implique directement que l'objet n'est pas visible. Si l'objet existe, il est visible et inversement. - -Si l'objet existe et que sa visibilité est désactivée, toutes les actions et conditions auront lieu exactement comme si l'objet était visible. - -# Dans l'éditeur d'événements - -Vous pouvez modifier et manipuler les propriétés d'une instance d'objet ou de plusieurs instances à l'aide d'événements au cours du jeu. C’est même ce qu’est le gameplay dans GDevelop : manipuler des objets en temps réel pendant que nous jouons. Comme les événements et l’éditeur d’événements sortent du cadre de cette page, reportez-vous à la page [Concepts de base du jeu](/fr/gdevelop5/tutorials/basic-game-making-concepts) pour commencer. - -* Tous les objets partagent les mêmes caractéristiques communes (comme la position, l'angle et tout ce qui est décrit sur cette page). De nombreuses conditions et actions peuvent être utilisées pour tous les objets. Vous pouvez [en savoir plus sur les conditions / actions communes pour tous les objets ici.](/gdevelop5/ objects/ base_object/ events) -* Les objets peuvent également vous fournir une fonctionnalité spécifique. Par exemple, [les objets sprite](/[gdevelop5/ objects/ sprite) peuvent avoir des animations et l'animation en cours de lecture peut être modifiée à l'aide d'une action. diff --git a/docs/fr/gdevelop5/objects/index.md b/docs/fr/gdevelop5/objects/index.md deleted file mode 100644 index ca5de59e7a..0000000000 --- a/docs/fr/gdevelop5/objects/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Les objets ---- -# Les objets - -Les jeux GDevelop sont basés sur des objets affichés sur la scène. Ces objets peuvent être animés, déplacés et manipulés de différentes manières. Différents types d'objets sont disponibles et offrent des fonctionnalités spécifiques. Ce sont : - -* [Caractéristiques générales des objets](/fr/gdevelop5/objects/base_object) -* [Les objets Sprite](/fr/gdevelop5/objects/sprite) -* [Les objets tuile](/fr/gdevelop5/objects/tiled_sprite) -* [Les émetteurs de particules](/fr/gdevelop5/objects/particles_emitter) -* [Les objets texte](/fr/gdevelop5/objects/text) -* [Les objets Panel Sprite ("9 patch")](/fr/gdevelop5/objects/panel_sprite) -* [Les objets d'entrée de texte](/fr/gdevelop5/objects/text_entry) -* [Les objets Shape Painter](/fr/gdevelop5/objects/shape_painter) -* [Les objets vidéo](/fr/gdevelop5/objects/video) (encore en développement) - -Il existe également des fonctionnalités qui agissent sans objets, par exemple AdMob, qui permet d'afficher des publicités sur votre appareil Android ou iOS. Vous pouvez en savoir plus sur AdMob [ici](/gdevelop5/all-features/admob). - -➡️ Suite **[Caractéristiques communes à tous les objets](/fr/gdevelop5/objects/base_object)** ! \ No newline at end of file diff --git a/docs/fr/gdevelop5/objects/panel_sprite.md b/docs/fr/gdevelop5/objects/panel_sprite.md deleted file mode 100644 index e8a16a7707..0000000000 --- a/docs/fr/gdevelop5/objects/panel_sprite.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Objet Panel Sprite ("9 patch") ---- -# Objet Panel Sprite ("9 patch") - -Les objets **Panel Sprite** (Sprite de panneau) peuvent être utilisés pour afficher une texture avec des bordures répétées ou étirées. L'objet **Panel Sprite** est utile pour construire des objets ayant une taille dynamique. Les exemples d'objets **Panel Sprite** incluent des éléments tels que le cadre d'une interface. Les plates-formes peuvent également utiliser cette fonctionnalité. - -Pour utiliser un Sprite de panneau, créez un nouvel objet à partir de la liste d'objets à droite. Une fois que vous avez créé l'objet, vous pouvez définir la taille des marges pour chaque bordure autour de l'objet. Les marges sont en haut, à gauche, à droite et en bas. - -## Étapes pour créer un Pprite de panneau - -- 1. Dans la liste de l'Éditeur d'objets située à droite de l'éditeur de scène, cliquez sur le bouton plus (**+**) pour créer un nouveau sprite. - -![](/gdevelop5/objects/panelsprite-addanobject.png) - -- 2. Sélectionnez l'option **Panel Sprite** dans la liste qui apparaît. - -![](/gdevelop5/objects/panelspriteselector.png) - -- 3. Définissez les propriétés / paramètres de l'objet. - -![](/gdevelop5/objects/panelspriteselectors.png) \ No newline at end of file diff --git a/docs/fr/gdevelop5/objects/particles_emitter.md b/docs/fr/gdevelop5/objects/particles_emitter.md deleted file mode 100644 index 63b500c5c5..0000000000 --- a/docs/fr/gdevelop5/objects/particles_emitter.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: particles_emitter ---- -FIXME **Cette page n'est pas encore complètement traduite. De plus, la description de l'éditeur de particules n'est pas complète.** -*(remove this paragraph once the translation is finished)* - -# Les émetteurs de particules - -!!! note - - **Voir en action !** 🎮 - [J'aimerais voir des exemples d'émetteurs de particules ! SVP, montrez-les moi maintenant.](#Examples) - -Les émetteurs de particules sont utilisés pour afficher un grand nombre de petites particules. Ils simulent des effets dans un jeu. Les feux, les explosions, la fumée et la poussière sont des exemples d'émetteurs de particules. - -![](/gdevelop5/objects/particles-emitters-preview.png) - -L'objet **Particles Emitter** (Émetteur de particules) peut être configuré avec une multitude de paramètres différents pour créer les effets souhaités. - -## Les types de particules - -Pour pouvoir utiliser l'émetteur de particules, créez un nouvel objet à partir de la liste **Objects**. Ce qui ouvre le panneau suivant : - -![](/gdevelop5/objects/addnewobject-particlesemitter.png) - -Sélectionnez **Particles Emitter** (Émetteur de particules) dans la liste. - -Un nouveau panneau s'ouvre alors. Ce panneau contient les propriétés pouvant être définies pour votre émetteur. Vous devrez faire défiler l'écran vers le bas pour afficher toutes les propriétés disponibles. - -![](/gdevelop5/objects/particleemitterspanelofchoices.png) - -*GDevelop offre 3 types de rendu pour les émetteurs de particules : points, lignes et textures.* - -* Le type Points (**Point**) affiche des cercles avec la taille spécifiée. * Le type Lignes (**Line**) affiche des lignes de longueur et d'épaisseur spécifiées. * Le type Texturé (**Textured**) affiche une image de la taille spécifiée. - -## Les couleurs - -* Vous pouvez choisir une couleur de départ (**Particles start color**) et une couleur de fin (**Particles end color**) pour les particules. Vous pouvez également choisir une valeur de départ pour la transparence de l'objet (**Start opacity**) et une valeur de fin (**End opacity**). - -## Direction de l'émission - -Les particules seront émises dans la direction représentée par l'orientation des émetteurs sur la scène. Vous pouvez modifier l'angle du * cône de pulvérisation *, qui est également représenté dans l'éditeur de scène par deux lignes : une valeur élevée pour ce * cône de pulvérisation * entraînera une émission de particules dans une grande plages de directions. Une valeur de 0 n'émettra des particules que dans une seule direction. - -* Les particules apparaissent dans une sphère centrée sur la position de l'objet émetteur. Vous pouvez changer le rayon de la sphère. -* La gravité peut être appliquée sur des particules, sur les axes X et Y. Par exemple, une valeur négative sur l'axe des Y fera monter les particules en l'air. -* La friction influence la décélération des particules au cours du temps. - -## La durée de vie - -* Chaque particule a une durée de vie limitée qui est choisie aléatoirement entre deux valeurs. Ces deux valeurs peuvent être changées. -* Le nombre de particules contenues dans l'émetteur ("réservoir") peut être illimité (valeur -1) ou fixé à une certaine valeur. Si ce nombre est spécifié, l'émetteur cessera d'émettre après avoir émis le nombre spécifié de particules. -* Le flux est le nombre de particules créées chaque seconde. Vous pouvez entrer -1 pour tirer toutes les particules en un seul coup. - -Vous pouvez également modifier le nombre maximal de particules rendues par l'objet à l'écran. Notez que ce numéro modifie la mémoire utilisée par l'émetteur. // Si ce nombre est trop grand, le jeu risque de planter.// - -## Exemples - -!!! note - - **Voir en action !** 🎮 - Ouvrez ces exemples en ligne. - -[![](/gdevelop5/objects/particleemitterexplosionsnew.png)](https://editor.gdevelop.io/?project=example://particles-explosions) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-explosions){ .md-button .md-button--primary } - -[![](/gdevelop5/objects/particleemitervariousnew.png)](https://editor.gdevelop.io/?project=example://particles-various-effects) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-various-effects){ .md-button .md-button--primary } diff --git a/docs/fr/gdevelop5/objects/shape_painter.md b/docs/fr/gdevelop5/objects/shape_painter.md deleted file mode 100644 index e825824f21..0000000000 --- a/docs/fr/gdevelop5/objects/shape_painter.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: L'objet Shape painter ---- -# L'objet Shape painter - -!!! tip - - **Voir en action !** 🎮 - [Je préférerais examiner des exemples de l'objet Shape painter ! SVP, faites-les moi voir maintenant.](/#Examples) - - -Un objet **Shape painter** (peintre de formes) permet de dessiner des formes dans le jeu. Ce qui peut être utile pour créer des éléments d'interface utilisateur simples. Le **Shape painter** peut même être utilisé pour créer une boîte de sélection. - -#### Ajouter un objet Shape Painter - -Pour ajouter un objet **Shape painter**, créez un nouvel objet à partir de la liste **Properties Editor** (Editeur de propriétés) à droite de l'interface de l'Éditeur de scène. Sélectionnez-cliquez ensuite sur le nouvel objet, sélectionnez **Edit object** et dans la liste qui s'affiche, cliquez sur ** Shape painter**. -Vous devrez peut-être faire défiler la liste pour le trouver. - -![](/gdevelop5/objects/add-shape-painter-object.png) - -#### Éditer les propriétés - -Il s'agit ensuite d'éditer les propriétés de l'objet pour le faire correspondre à ce que nous voulons. De nouveau, cliquez sur l’objet créé dans la liste des propriétés à droite. Sélectionnez **Edit object** dans la liste déroulante qui s'affiche. Une nouvelle fenêtre s'ouvre. Elle affiche les propriétés de l'objet **Shape painter**. - -![](/gdevelop5/objects/shape-painter-properties.png) - -#### Changer la couleur et l'opacité - -La fenêtre des propriétés du **Shape painter** présente des options permettant de changer - -* la couleur du contour de l'objet (**Outline color**), -* l'opacité de contour de l'objet (**Outline opacity**), -* l'épaisseur de ce contour (**Outline size**), -* la couleur de remplissage de l'objet (**Fill color**), -* l'opacité du remplissage (**Fill opacity**). - -![](/gdevelop5/objects/change-color-of-shape-painter.png) - -#### Position relative de l'object - -La position par défaut des formes que nous dessinons à l'écran est relative à la positon de l'objet **Shape painter** dans la scène. - -![](/gdevelop5/objects/shape-painter-relative-position-property.png) - -Dans le cas d'une position relative activée (case cochée dans la figure ci-dessus), la position de la forme dessinée sur l'écran correspondra à la positon 0 sur les axes X et Y. Ce sera la position de l'objet **Shape painter**. Autrement dit, si nous voulons dessiner une forme dont la position sur l’écran est de 100 pixels sur X et de 100 pixels sur Y, sa position sera située à 100 pixels de l’objet **Shape painter** où que ce dernier se trouve sur l’écran. - -Lorsque la case est décochée, la position 0 sur les axes X et Y se trouve dans le coin supérieur gauche de la scène, quelle que soit la position de l'objet. - -#### Dessiner une forme - -Pour dessiner une forme, créez comme d'habitude un nouvel objet à l'aide de l'Éditeur d'objets. Ajoutez ensuite l'objet **Shape painter** à la scène. Si nous lançons l'aperçu maintenant, nous ne verrons rien. L'objet **Shape painter** ajoute simplement la fonctionnalité pour l'objet. Pour l'instant, il ne contient que les propriétés / paramètres du **Shape painter**. Pour dessiner une forme, nous devons utiliser l'Éditeur de scènes (**Scene Events Editor**). // Si vous n'êtes pas familier avec les événements, je vous recommande de consulter la page des événements sur le wiki .// - -Allons dans l'éditeur d'événements de scène (**Scene Events Editor**) pour ajouter un événement. Une fois l'événement ajouté, cliquez sur le texte **add action** (ajouter une action). -Les formes primitives sont listées dans le menu déroulant **Primitive drawing**. - -![](/gdevelop5/objects/primitivedrawingeventchoices.png) - -Nous avons le choix entre 3 types de formes à dessiner : le cercle, la ligne et le rectangle. Nous allons dessiner un rectangle. Sélectionnez **Rectangle** dans la liste déroulante. - -![](/gdevelop5/objects/draw-shape-event.png) - -Sur le côté droit, sélectionnez l'objet **Shape painter** à utiliser. Pour la position en haut à gauche (**Top left side**), entrez `0` pour **X** et pour **Y**. Pour la position en bas à droite (**Bottom right side**), entrez `100` pour **X** et **Y**. - -![](/gdevelop5/objects/draw-shape-event-properties.png) - -Maintenant, si nous lançons un aperçu de la scène, un rectangle de 100 pixels de large et 100 pixels de haut sera dessiné dans la scène. - -![](/gdevelop5/objects/rectanlge-shape-painter.png) - -Si nous laissons la position relative activée, nous remarquerons que le rectangle est à la même position que l'objet **Shape painter**, même si son point d'origine est 0. Si nous désactivons cette option et lançons à nouveau l'aperçu, nous verrons que l'objet est dessiné dans le coin supérieur gauche de la scène. - -L'utilisation des événements permet de modifier les propriétés d’une forme à la volée. - -![](/gdevelop5/objects/shapepaintereventsexample.png) - -## Exemple - -!!! tip - - **Voir en action !** 🎮 - Ouvrez cet exemple en ligne. - -[![](/gdevelop5/objects/shapepainterobject.png)](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter){ .md-button .md-button--primary } - - diff --git a/docs/fr/gdevelop5/objects/sprite.md b/docs/fr/gdevelop5/objects/sprite.md deleted file mode 100644 index 456517065b..0000000000 --- a/docs/fr/gdevelop5/objects/sprite.md +++ /dev/null @@ -1,163 +0,0 @@ ---- -title: sprite ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# Les objets sprite - -!!! note - - **Voir en action !** 🎮 - [Je préférerais examiner des exemples d'objet Sprite ! S'il vous plaît, faites-les moi voir maintenant.](#Examples) - -Les objets Sprite sont les objets les plus souvent utilisés dans GDevelop. - -Un objet sprite permet d'afficher une image ou d'afficher une série d'images sous forme d'animation. Il peut être utilisé pour représenter beaucoup de choses dans les jeux, comme des boutons, des personnages ou des plateformes. Tout ce qui peut être représenté par une image peut être un objet sprite. - -## Créer un objet sprite - -Pour ajouter un sprite à votre scène, sélectionnez l'option **Click to add an object** (Cliquez pour ajouter un objet) située à droite au bas de la liste des objets. - -![](/gdevelop5/objects/clicktoaddanobject.png) - -S'ouvre alors un nouveau panneau qui montre les différents types d'objets disponibles dans GDevelop. - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -Sélectionnez **Sprite** dans la liste pour créer un nouvel objet sprite dans votre scène de jeu. - -![](/gdevelop5/objects/select-sprite.png) - -Cette sélection ouvre la fenêtre des propriétés de l'objet. Cette fenêtre vous montre propriétés de l'objet sprite. - -![](/gdevelop5/objects/sprite-object-properties.png) - -## Ajouter une animation - -Une animation permet d'ajouter une image ou une série d'images à l'objet sprite. Pour ajouter une animation, cliquez sur le bouton **Click to add animation** (Cliquez pour ajouter une animation). - -![](/gdevelop5/objects/add-animation-button.png) - -Cette action agrandit la boîte de dialogue qui vous montre alors une grande variété d’options que vous pouvez modifier. - -![](/gdevelop5/objects/animation-properties.png) - -### Ajouter une image à l'animation - -Nous pouvons ajouter des images à l'animation de notre objet en cliquant sur le symbole plus (**+**). - -![](/gdevelop5/objects/add-symbol.png) - -Ce clic ouvria l'explorateur de fichiers afin que vous puissiez parcourir les fichiers et choisir une image appropriée pour votre animation. Après avoir choisi l'image, celle-ci s'affiche dans la fenêtre. - -![](/gdevelop5/objects/add-image.png) - -### Collisions et points - -Vous pouvez personnaliser la zone de collision du sprite à l'aide de la liste **EDIT HITBOXES** (Editer les boîtes de collision) située au bas de la boîte de dialogue. Cette liste vous permet de définir la zone à prendre en compte lors d'une collision. Vous pouvez en savoir plus sur [les masques de collision ici](/gdevelop5/ objects/ sprite/ collision-mask) - -À côté de l'option **EDIT HITBOXES**, vous trouverez l'option **EDIT POINTS** (Editer les points) au bas de la boîte de dialogue des propriétés du sprite. Cette option permet d’avoir des points de référence supplémentaires pour un objet. Ces points de référence peuvent être utilisés dans des événements en cas de besoin. [En savoir plus sur les points dans les sprite ici.](/gdevelop5/objects/sprite/edit-points) - -### Ajouter plusieurs animations - -Un objet peut parfois nécessiter plusieurs animations. Pour ajouter des animations, cliquez sur le bouton **Click to add an animation** (Cliquez pour ajouter une animation) de la même manière que nous l'avions fait la première fois. Cette fonctionnalité permet de séparer facilement les différentes animations. - -![](/gdevelop5/objects/multiple_animations.png) - -Plus tard, nous pourrons basculer entre les différentes animations en utilisant des événements. - -### Nommer une animation - -En haut de la section animation de la fenêtre, vous avez un champ à côté de **Animation \#** avec un "nom d'animation facultatif" grisé. Pour entrer un nom pour votre animation, cliquez dans le champ et entrez le nom désiré. - -![](/gdevelop5/objects/name-animation.png) - -!!! note - - Dans les objets comportant plusieurs animations, il peut être difficile de différencier les animations sans noms. Il est généralement recommandé d'utiliser des noms d'animation significatifs pour les objets comportant plusieurs animations. - - Si nous n'entrons pas de nom, nous devons utiliser le numéro d'animation pour faire référence à cette animation. - -### Ajouter plusieurs images dans une animation - -Pour ajouter plusieurs images à une animation, vous pouvez sélectionner toutes les images dans l'explorateur de fichier et les ajouter d'un coup à l'animation. - -![](/gdevelop5/objects/animation-multiple-images.png) - -Les images seront lues dans le même ordre que celui affiché. - -### Répéter l'animation - -Par défaut, chaque animation n'est jouée qu'une fois, ce qui signifie que l'animation s'arrête dès la fin de la dernière image. Pour répéter l'animation, nous pouvons faire *boucler* l'animation. Nous pouvons mettre l'animation en mode boucle en cliquant sur l'icône **Loop** (Boucle). - -![](/gdevelop5/objects/set-animation-loop.png) - -Une fois qu'une animation est configurée pour être en boucle, elle est lue en continu. - -### Régler la vitesse de l'animation - -La vitesse de l'animation peut être définie en modifiant la valeur à l'aide de l'icône d'horloge. - -![](/gdevelop5/objects/set-animation-speed.png) - -La valeur entrée dans le champ est le temps écoulé entre deux images consécutives. La valeur par défaut est 0,08 seconde. Pour une lecture plus rapide, utilisez une durée d'animation réduite, et pour une lecture plus lente, une durée d'animation plus élevée. - -## Donner un nom aux objets - -En haut de la boîte de dialogue est affiché le nom de l'objet dans le champ **Object name** (Nom de l'objet). Le nom de l'objet décrit généralement le contenu ou le rôle de cet objet, ce qui permet de le distinguer facilement des autres. - -![](/gdevelop5/objects/annotation_2019-06-09_152442.png) - -## Ajouter des objets à la scène - -Pour ajouter un objet sprite à la scène, sélectionnez-le dans la liste et cliquez dans la scène pour ajouter une occurrence de cet objet à la scène. - -Votre nouveau sprite est maintenant terminé, mais vous devez toujours l'ajouter à votre scène de jeu. Cliquez sur la nouvelle image-objet dans la liste des objets. Ensuite, cliquez sur la scène à laquelle vous souhaitez ajouter le sprite. Vous verrez maintenant votre sprite ajouté à la scène. Vous pouvez ajouter plusieurs *instances* de votre sprite à votre écran de jeu. Répétez simplement le processus pour ajouter le premier sprite. - -![](/gdevelop5/objects/addspritetoscene.gif) - -## Utiliser plusieurs animations à l'aide d'événements - -Après avoir créé plusieurs animations, chacune avec son propre ensemble d'images, vous pouvez utiliser des événements pour basculer entre les diverses animations. Régler la vitesse d'animation entre 0 et 1 garantira qu'elle reste active lors de l'utilisation d'événements. - -!!! note - - L'utilisation d'une durée d'animation négative désactive les actions d'événement. - - _Ne pas utiliser de valeurs négatives._ - -Lorsque vous avez défini plusieurs animations pour un objet, vous pouvez utiliser l'onglet événements pour **Change the animation (by name)** (Modifier l'animation (par le nom)). Ceci est contrôlé dans la section **Add action** (Ajouter une action) de la condition. Cela permet de passer à l'animation correcte chaque fois que la condition utilisée dans la section**Add condition**(Ajouter une condition) est vraie. - -![](/gdevelop5/objects/eventanimationexample.png) - -Comme conseillé précédemment, utilisez des noms d'animation significatifs pour plusieurs animations dans un objet afin de les différencier facilement. - -Pour ajouter une action permettant de modifier l'animation à l'aide du nom de l'animation, choisissez la condition **Change the animation (by name)** (Modifier l'animation (par le nom)). - -Placez ensuite ce nom dans le champ **Animation name** (Nom de l'animation) entouré de guillemets. - -![](/gdevelop5/objects/eventanimnameexample.png) - -Pour plus de détails, suivez [les tutoriaux ici](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials). - -## Exemples - -!!! note - - **Voir en action !** 🎮 - Cliquez sur les images pour ouvrir les exemples en ligne. - -[![](/gdevelop5/objects/createaspritenew.png)](https://editor.gdevelop.io/?project=example://change-scale-of-sprites) - ------------------------------------------------------------------------- - -[![](/gdevelop5/objects/changespriteanimationexamplenew.png)](https://editor.gdevelop.io/?project=example://change-sprite-animation) - ------------------------------------------------------------------------- - -[![](/gdevelop5/objects/changespritecolorexamplenew.png)](https://editor.gdevelop.io/?project=example://change-sprite-color) - ------------------------------------------------------------------------- - -[![](/gdevelop5/objects/changespriteanimationexample2new.png)](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation) diff --git a/docs/fr/gdevelop5/objects/text.md b/docs/fr/gdevelop5/objects/text.md deleted file mode 100644 index 16d47ea7e8..0000000000 --- a/docs/fr/gdevelop5/objects/text.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: L'objet Text ---- -# L'objet Text - -!!! note - - **Voir en action !** 🎮 - [Je préférerais examiner des exemples de l'objet Text ! SVP, faites-les moi voir maintenant.](#Examples) - -Comme son nom l'indique, un objet texte permet d'afficher du texte à l'écran. - -## Créer un objet texte - -Nous devons d'abord créer un objet texte en cliquant sur le bouton Ajouter un objet et sélectionner l'objet texte (**Text**) dans la liste. - -![](/gdevelop5/objects/add-text-object.png) - -## Modifier les propriétés - -Pour modifier les propriétés de l'objet texte, cliquez avec le bouton droit de la souris sur l'objet qui vient d'être créé et sélectionnez **Edit object** (Modifier objet) dans la liste. La fenêtre des propriétés de l'objet s'ouvre alors. - -![](/gdevelop5/objects/text-properties-window.png) - -## Modifier le texte - -Vous pouvez maintenant modifier le texte affiché par l'objet en cliquant simplement sur le champ de texte (**Text**) et entrez quelque chose d'autre. - -![](/gdevelop5/objects/change-text.png) - -## Modifier la taille - -La taille des caractères peut être modifiée en changeant la valeur du champ **Size** (Taille). - -![](/gdevelop5/objects/change-size-of-text.png) - -## Modifier la couleur - -On peut aussi changer la couleur du texte affiché en cliquant sur la case **Color** située à droite du champ **Size**. - -![](/gdevelop5/objects/change-color-of-text.png) - -## Modifier le style de la police - -Le style du texte affiché peut aussi être modifié. Nous pouvons choisir entre gras (**Bold**), italique (**Italic**) ou même choisir une police personnalisé dans le champ **Font**. - -![](/gdevelop5/objects/change-style-of-text.png) - -En outre, le texte peut être modifié à l'aide d'événements. Dans l'exemple ci-dessous, la taille de l'objet texte est modifié à 150px lorsque la scène est chargée. - -![](/gdevelop5/objects/changetextsizeviaevents.png) - -## Exemples - -!!! note - - **Voir en action !** 🎮 - Ouvrez ces exemples en ligne. - -Manipuler un object Text - -[![](/gdevelop5/objects/changetextexample1.png)](https://editor.gdevelop.io/?project=example://manipulate-text-object) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://manipulate-text-object){ .md-button .md-button--primary } - -Fondu–enchaîné d'u texte - -[![](/gdevelop5/objects/textfadeoutinexample.png)](https://editor.gdevelop.io/?project=example://text-fade-in-out) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-fade-in-out){ .md-button .md-button--primary } - -Entrée d'un texte - -[![](/gdevelop5/objects/type-ontexteffectexample.png)](https://editor.gdevelop.io/?project=example://type-on-text-effect) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://type-on-text-effect){ .md-button .md-button--primary } diff --git a/docs/fr/gdevelop5/objects/text_entry.md b/docs/fr/gdevelop5/objects/text_entry.md deleted file mode 100644 index 9cce88f564..0000000000 --- a/docs/fr/gdevelop5/objects/text_entry.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: L'objet Text entry ---- -# L'objet Text entry - -!!! tip - - **Voir en action !** 🎮 - [Je préférerais examiner des exemples d'objet Text entry ! SVPt, faites-les moi voir maintenant.](/#Examples) - - -L'objet **Text entry** (Saisie de texte) capture le texte entré (tapé) par le joueur et le stocke en mémoire. Vous pouvez utiliser cet objet pour simuler des champs de saisie de texte. Par exemple, vous pouvez utiliser l'objet de saisie de texte pour permettre au joueur d'entrer son nom ou toute autre information. - -## Ajouter un objet Text entry - -Après avoir créé un nouvel objet dans la liste de l'éditeur d'objets, sélectionnez **Text entry** dans la liste des choix affichée. - -![](/gdevelop5/objects/add-text-entry-object.png) - -Renommez ensuite l'objet **Text entry** comme bon vous semble, puis ajoutez l'objet **Text entry** dans la scène. - -Dès maintenant, si vous exécutez une pré-visualisation de la scène, toutes les touches sur lesquelles vous appuierez seront capturées par l'objet et stockées en mémoire. Pour lire les données stockées dans la mémoire, vous devez utiliser une expression comme celle-ci: **`TextEntry.String ()`** (voir un exemple ci-dessous). - -## Afficher une information à l'aide d'un objet Text - -Commencez par ajoute un objet **Text** à la scène. Ajoutez ensuite un événement pour modifier le contenu de l'objet Text : - -![](/gdevelop5/objects/text-entry-object-display-value.png) - -Pour le dernier paramètre, qui est le nouveau contenu du texte, utilisez l'expression mentionnée ci-dessus : - -![](/gdevelop5/objects/expression-get-text-entry-value.png) - -!!! note - - __Entry__ doit être le nom de l'objet **Text entry** . Vous devez remplacer ce nom par défaut par le nom de votre objet **Text entry**. - -Si vous exécutez maintenant une pré-visualisation de la scène, lorsque vous commencerz à taper, vous verrez l'objet **Text** afficher tout ce que vous tapez. - -En utilisant des événements, il est possible d'activer ou de désactiver l'objet **Text entry**. Les événements vous permettent également de contrôler quand saisir du texte et ne pas saisir du texte. - -![](/gdevelop5/objects/textentryobjectevents.png) - -## Exemple - -!!! tip - - **Voir en action !** 🎮 - Ouvrez cet exemple en ligne. - -![](/gdevelop5/objects/textexample.png) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-entry-object){ .md-button .md-button--primary } \ No newline at end of file diff --git a/docs/fr/gdevelop5/objects/tiled_sprite.md b/docs/fr/gdevelop5/objects/tiled_sprite.md deleted file mode 100644 index 7af846b235..0000000000 --- a/docs/fr/gdevelop5/objects/tiled_sprite.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: tiled_sprite ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# Les objets Tiled Sprite - -!!! note - - **Voir en action !** 🎮 - [Je préférerais examiner des exemples d'objet Tiled Sprite ! S'il vous plaît, faites-les moi voir maintenant.](#Examples) - -Un objet **tiled sprite** (que l'on pourrait traduire par_mosaïque de spirites_ ou *mosaïque de tuiles*) permet d'afficher une image sous la forme d'une mosaïque de sprites. Vous pouvez augmenter et diminuer la taille de la mosaïque en redimensionnant l'objet dans la scène. - -Un objet mosaïque de sprite peut être utilisé pour créer des plateformes dans un jeu de plateforme. Il peut également être utilisé en tant que groupe d'images identiques. Dans ce cas, il n'est pas nécessaire de manipuler plusieurs objets sprite. - -![](/gdevelop5/objects/tiled-sprite-object.png) - -## Ajouter un objet tiled sprite - -Pour ajouter un objet tiled sprite à une scène, créez un nouvel objet à partir de la liste **Objects**. Sélectionnez l'option **Tiled Sprite** dans le panneau qui s'ouvre. - -![add-tiled-sprite-object.png](/gdevelop5/objects/add-tiled-sprite-object.png) - -## Ouvrir les propriété de l'objet - -Ensuite, à nouveau dans la liste d'objets à droite, ouvrez les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet. Sélectionnez **Edit object** (Modifier l'objet) dans la liste déroulante qui apparaît. - -![tiled-sprite-properties.png](/gdevelop5/objects/tiled-sprite-properties.png) - -## Ajouter une image - -Pour ajouter une image à l'objet, cliquez sur le champ **Select an image** (Sélectionner une image). Votre navigateur de fichiers s'ouvre alors sur votre ordinateur. Sélectionnez l'image de votre choix. - -![add-image-to-tiled-sprite.png](/gdevelop5/objects/add-image-to-tiled-sprite.png) - -L'image sélectionnée sera affichée dans la fenêtre d'aperçu à droite. - -![tiled-sprite-image-preview.png](/gdevelop5/objects/tiled-sprite-image-preview.png) - -## Modifier la taille par défaut - -Nous pouvons changer la taille par défaut de l'objet mosaïque de sprites en modifiant les valeurs **Default width** (Largeur par défaut) et **Default height** (Hauteur par défaut). - -![](/gdevelop5/objects/tiled-sprite-default-size.png) - -La taille par défaut affecte la grandeur de l' image qui sera visible dans l'objet. Par exemple, voici à quoi ressemble mon image avec un objet de taille 32x32. - -![](/gdevelop5/objects/tiled-sprite-3232.png) - -Comme vous pouvez le constater, l’image ci-dessus n’est pas une mise à l'échelle de l’objet, elle ne montre qu'une partie de l'objet. - -Si la taille de l'objet est réglée sur 100x100 (comme indiqué ci-dessous), la taille de l'objet est supérieure à celle de l'image originelle, de sorte que l'objet continue à répéter l'image jusqu'à remplir tout l'espace vide. - -![](/gdevelop5/objects/tiled-sprite-100100.png) - -## Mettre l'objet à l'échelle - -Vous pouvez obtenir des résultats immédiats en mettant l'objet à l'échelle dans l'éditeur de scène pour créer l'aspect / la taille dont vous avez besoin. - -![](/gdevelop5/objects/scale-tiled-sprite.png) - -L'éditeur de scène (Events) peut également être utilisé pour modifier la taille d'une mosaïque de sprite. L'utilisation de l'éditeur de scène rend le jeu plus fluide et intéressant. - -![](/gdevelop5/objects/scaleasprite.png) - -## Exemples - -!!! note - - **Voir en action !** 🎮 - Ouvrir cet exemple en ligne. - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } diff --git a/docs/fr/gdevelop5/objects/video.md b/docs/fr/gdevelop5/objects/video.md deleted file mode 100644 index a430bff9f0..0000000000 --- a/docs/fr/gdevelop5/objects/video.md +++ /dev/null @@ -1,123 +0,0 @@ ---- -title: L'objet Video ---- -# L'objet Video - -Un objet vidéo affiche une vidéo à l'écran. Ce qui est parfait pour l'intégration d'une cinématique dans un jeu. - -!!! warning - - Les fichiers vidéo peuvent être très lourds, même pour de courtes vidéos, ce qui rend le jeu plus long à télécharger et à lancer. Veillez utiliser une compression correcte et limiter autant que possible la longueur de la vidéo. - -!!! warning - - Avant de pouvoir lire une vidéo, vous devez vous assurer que le joueur a d'abord interagi avec le jeu (un simple clic / toucher sur l'écran permet d'autoriser la lecture des vidéos). - -!!! warning - - - Le fichier doit être de format **.mp4** avec les codecs suivant : - - * **H264** pour la vidéo - * **AAC** pour l'audio - - -Les vidéos peuvent être contrôlées à l'aide d'événements : minutage, état (lecture / pause), volume audio ... - -## Ajouter une vidéo - -Lorsque vous créez un nouvel objet, cliquez sur le bouton **Show Experimental Objects** (Afficher les objets expérimentaux) puis choisissez **Video**. - -![](/gdevelop5/objects/video-object.png) - -Une fois l'objet créé, l'éditeur des propriété s'affiche pour vous permettre de configurer le nouvel objet **Video**. - -![](/gdevelop5/objects/video-object-editor.png) - -## Sélectionner un fichier vidée - -Cliquez sur le champ **Video resource** (Ressource vidéo), puis sur **Choose a new video file** (Choisir un nouveau fichier vidéo). Pour avoir une bonne compatibilité avec la plupart des navigateurs, suivez ces conseils pour le format vidéo : - - -!!! warning - - - Le fichier doit être de format **.mp4** avec les codecs suivant : - - * **H264** pour la vidéo - * **AAC** pour l'audio - - -Vous pouvez aussi choisir entre : - - * **Loop the video** (Boucler la vidée) : cette option permet de lire la vidéo en boucle. Si vous la cochez, la vidéo recommencera au début lorsque elle arrive à sa fin, et ce jusqu’à ce que vous l’arrêtiez. - * **Video opacity** (Opacité de la vidéo) : de 0 (invisible) à 255 (opaque — par défaut), cette option modifie la transparence de la vidéo sur la scène. - * **Video volume** (Volume de la vidéo) : de 0 (silence) à 100 (volume maximum — par défaut), cette option configure le volume sonore de la vidéo. - -## Les paramètres de la vidéo - -!!! note - - Toutes les conditions et actions suivantes font référence aux conditions et actions de la catégorie **Video**. - -Vous pourriez avoir besoin de sauvegarder une valeur correspondant à l'état d'une vidéo. Pour cela, il existe des fonctions pour la vidéo, que vous pouvez utiliser dans un champ d'expressions. Ces paramètres sont les suivants : - -### Durée de la vidéo - -La condition **Duration** (Durée) teste la longueur de la vidéo par rapport à la valeur entrée et du **Sign of the test** (Signe du test) utilisé. - -### Fin de la vidéo - -Il faut utiliser la condition **Is ended** (est terminée) pour exécuter une action lorsque la vidéo est terminée. Cette condition peut être utilisée pour passer de la vidéo au gameplay ou à quelque chose de similaire. - -## Temps de la vidéo - -Lorsqu'une vidéo est lue pendant le jeu, il peut arriver que le temps écoulé depuis le début de la vidéo doive être testé pour déclencher des actions telles que **Skip the video** (Sauter le reste de la vidéo) ou provoquer l'ouverture d'une boîte de dialogue du genre **Save the game** (Enregistrer le jeu). Ceci peut être réalisé en utilisant la condition de test **Current time** (Temps actuel). - -Vous pouvez également passer à un endroit précis de la vidéo en utilisant l'action **Set time** (Définir le temps). Lorsque la condition correspondant à l'action est vraie, la vidéo sautera à l'endroit voulu en fonction du temps entré et du **Modification's sign** (Signe de la modification). - -### Opacité de la vidéo - -L'opacité est la mesure de la transparence de la vidéo. Si la condition **Opacity** renvoie 255, cela signifie que la vidéo n'est pas du tout transparente et si elle renvoie 0, elle est totalement transparente. L'opacité par défaut d'une vidéo est de 255. - -Nous pouvons définir l'opacité d'une vidéo en utilisant l'action **Set opacité** (Définir l'opacité). Pour une opacité maximale, entrez 255, tandis que pour une transparence totale, entrez 0. - -### Vitesse de lecture de la vidéo - -La vitesse de lecture de la vidéo est le rapport entre la vitesse actuelle de la vidéo et la vitesse originale de la vidéo. Si la condition **Playback speed** (Vitesse de lecture) retourne une valeur supérieure à 1, la lecture de la vidéo est plus rapide que celle de la vidéo d'origine. Si la condition renvoie une valeur inférieure à 1, la lecture est plus lente que celle de la vidéo d'origine. La valeur par défaut pour la vitesse de lecture est 1. - -Pour définir la vitesse de lecture d'une vidéo, utilisez l'action **Set playback speed** (Définir la vitesse de lecture). Pour lire la vidéo à un débit plus rapide que le débit par défaut, définissez une valeur supérieure à 1, puis à une cadence plus lente, définissez la vitesse de lecture sur une valeur inférieure à 1. Pour le paramètre par défaut, utilisez la valeur 1. - -### Boucler une vidéo - -Lorsqu'une vidéo tourne en boucle, elle recommence depuis le début après avoir atteint la fin. Pour savoir si une vidéo tourne en boucle ou non, utilisez la condition **is looped** (en boucle). Si la vidéo tourne en boucle, la ou les actions correspondantes seront exécutées. - -Vous pouvez également mettre une vidéo en boucle dans GDevelop en utilisant l’action **Loop a video** (Faire boucler une vidéo) et en sélectionnant **Yes** pour **Activate loop** (Activer la boucle). Par défaut, une vidéo n'est pas en boucle. - -### Couper le son d'une vidéo - -Lorsqu'une vidéo est mise en sourdine, aucun son n'est audible dans le jeu. Pour vérifier si une vidéo est muette, utilisez la condition **is mute** (est muette). Si la vidéo est en mode muet, la ou les actions correspondantes seront exécutées. - -Vous pouvez mettre une vidéo en sourdine à l'aide de l'action **Mute a video** (Rendre une vidéo muette) et sélectionner **Yes** pour **Activate mute** (Activer muet). Le son de la vidéo est désactivé par défaut. - -### Mettre une vidéo en pause - -Pour savoir si une vidéo est en pause, utilisez la condition **is pause** (est en pause). Si la vidéo est en pause, les actions correspondantes seront exécutées. - -Vous pouvez mettre en pause une vidéo en utilisant l’action **Pause a video** (Mettre une vidéo en pause). Par défaut, la vidéo est en pause. - -### Lecture d'une vidéo - -Pour voir la vidéo, vous devez d'abord la lire. Pour vérifier si la vidéo est en cours de lecture, utilisez la condition **is played** (est jouée). Si la vidéo est en cours de lecture, la ou les actions correspondantes seront exécutées. - -Pour démarrer une vidéo ou reprendre la vidéo après l'avoir mise en pause, vous pouvez utiliser l'action **Play a video** (Lire une vidéo). Par défaut, la vidéo est en pause et a besoin de cette action pour être lue. - -### Volume d'une vidéo - -Vous pouvez également régler le volume d'une vidéo à l'aide de GDevelop. Pour connaître le volume d'une vidéo, utilisez la condition **Volume**. Le volume maximal d'une vidéo est 100 et le volume minimal est 0 (muet). - -Pour régler le volume d'une vidéo, utilisez la condition **Set volume** (Régler le volume). Vous pouvez définir un nombre compris entre 0 et 100. Le volume par défaut est défini à 100. - -## Exemple - - * Video player: https://editor.gdevelop.io/?project=example://video-player \ No newline at end of file diff --git a/docs/fr/gdevelop5/publishing/android_and_ios/index.md b/docs/fr/gdevelop5/publishing/android_and_ios/index.md deleted file mode 100644 index d6bd414f3f..0000000000 --- a/docs/fr/gdevelop5/publishing/android_and_ios/index.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Publier votre jeu sur Android ou iOS GDevelop permet de publier vos jeux sur plein de platformes différentes, y compris Android et iOS avec les services d'empaquetage ou [manuellement](/gdevelop5/publishing/android_and_ios_with_cordova). Pour exporter un jeu, cliquez/sélectionnez 'Fichier" depuis le menu qui se trouve en haut de l'interface GDevelop. Choisissez l'option d'export que vous voulez. Dans ce cas, nous allons choisir **Android et iOS** depuis le panneau des options d'export. ---- -# Publier votre jeu sur Android ou iOS GDevelop permet de publier vos jeux sur plein de platformes différentes, y compris Android et iOS avec les services d'empaquetage ou [manuellement](/gdevelop5/publishing/android_and_ios_with_cordova). Pour exporter un jeu, cliquez/sélectionnez 'Fichier" depuis le menu qui se trouve en haut de l'interface GDevelop. Choisissez l'option d'export que vous voulez. Dans ce cas, nous allons choisir **Android et iOS** depuis le panneau des options d'export. - -![](/fr/gdevelop5/publishing/gdevelop_export_fr.png) - -## Soyez sûr que votre jeu est prêt à être publié - -Il est important de vérifier que votre jeu est prêt a être exporté pour Android and iOS. * Dans les propriétés du jeu qui sont accessible depuis [Project Manager](/gdevelop5/interface)), soyez sûr que le *nom du paquet* est un nom comme `com.votrenom.nomdujeu`. C'est comme l'adresse d'un site web mais à l'envers. Vous pouvez choisir le nom de paquet que vous souhaitez mais il doit respecter certaines règles : - - * le nom de paquet ne doit pas être déjà utilisé par une autre application Android ou iOS. - * le nom du paquet ne contient que des lettres, nombres et points. Ne mettez qu'un seul point entre chaque mot (exemple de chose à ne **PAS** faire : `com..mygame` ou `..monjeu`) La limite de cet identifiant est de 2 à 5 mots maximums - * Vérifiez que vous avez inclus les icônes pour votre jeu - -. \## Lancer l'export - -Dans le menu "Fichier" Choisissez "Export". Puis choisissez **Android (& iOS à venir)** - -![](/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png) - -### Créez un compte GDevelop si vous n'en avez pas - -Pour utiliser l'outil d'exportation pour Android, vous devez [avoir un compte GDevelop](/gdevelop5/interface/profile) Si vous n'avez de compte GDevelop, cliquez sur "Créer mon compte", entrez votre email et choisissez un mot de passe. - -Choisissez **APK** ou **Android App Bundle**: - -- Un **APK** vous permet d'envoyer un fichier exécutable et installable sur votre téléphone Android. C'est efficace pour **tester rapidement votre jeu sur votre téléphone Android**. - Un **Android App Bundle** (AAB pour faire court) est le format obligatoire pour [publier sur Google Play](/gdevelop5/publishing/android_and_ios/play-store). Quand vous créez un jeu sur la console développeur Google Play, c'est ce fichier AAB que vous allez envoyer. - -Quand tout est prêt, exportez le jeu en **AAB** (*Android App Bundle*) pour Android. - -![](/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png) Attendez quelques minutes, le temps que le jeu soit exporté. Il y a quelques étapes durant laquelle le jeu est exporté, compressé, envoyé sur le service d'exportation en ligne, puis exporté. - -À la fin, vous pourrez **Télécharger** l'APK ou le fichier AAB qui pourra être installé sur Android ou être [publié sur Google Play](/gdevelop5/publishing/android_and_ios/play-store). - - \## Installez le jeu sur votre appareil Android (APK) \ Pour tester un jeu sur votre téléphone vous devez avoir exporté le jeu en APK. Si vous voulez distribuer votre jeu sur Google Play, [lisez plutôt cette page](/gdevelop5/publishing/android_and_ios/play-store). - -Branchez l'appareil android en USB sur votre ordinateur et mettez l'APK quelque part dans un dossier de votre appareil Anrdoid - -(solution alternative : envoyez votre jeu sur [Dropbox](https://www.dropbox.com/), [OneDrive](https://onedrive.live.com/about/en-in/) [mediafire](https://mediafire.com) ou [Google Drive](https://drive.google.com/)pour le télécharger sur votre téléphone depuis l'application ou le site web) - -Avant d'installer votre APK, allez dans Paramètres \> Sécurité et autorisez l'installation de *logiciels provenant de sources inconnues*. Cela vous permettera \[d'installer l'APK\]() et des logiciels ne provenant pas de Google Play - -Enfin, ouvrez votre *Explorateur de fichiers*, allez dans le dossier qui contient votre APK et cliquez dessus puis démarrez l'installation - -![](/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png) ![](/fr/gdevelop5/publishing/install_apk_on_device.png) - -Quand l'application est installée, cliquez sur *Ouvrir l'application* - -### Testez votre jeu - -Votre jeu est maintenant installé confortablement dans votre téléphone Vous pouvez le lancer comme n'importe quelle autre application ! - -Bravo vous avez créé un *jeu pour android* avec GDevelop ! Vous pouvez le mettre à jour facilement en l'exportant une autre fois et en recommençant le processus d'installation ! - -## S'abonner à GDevelop et avoir plus d'exports par jour... - -En tant qu'utilisateur connecté à GDevelop, vous pouvez exporter votre jeu 2 fois par jour pour Android - - Si vous voulez avoir plus d'exports par jour, vous pouvez améliorer votre compte pour obtenir plus d'exports par jour ! \**10 exports** par jour avec l'abonnement **Indie** et **70 exports** avec l'abonnement **Pro**. - -S'abonner permet de supporter l'auteur de GDevelop et de l'encourager à continuer de travailler dessus ! (GDevelop est open source) En retour, vous obtiendrez plein d'autres fonctionnalités, comme plus d'exports pour Mobile/PC , un debugger en ligne etc... - -## Publiez votre jeu sur des "Stores" ("Android App Bundles") - -Quand vous avez exporté votre jeu pour Android (et que vous l'avez testé), vous pouvez l'exporter en tant que **Android App Bundle** et le publier sur Google Play. Voir [Cette page pour en savoir plus à propos de la publication sur Google Play](/gdevelop5/publishing/android_and_ios/play-store). - -Vous pouvez aussi publier votre app sur [l'Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) en exportant votre jeu comme **APK** diff --git a/docs/fr/gdevelop5/publishing/android_and_ios/play-store.md b/docs/fr/gdevelop5/publishing/android_and_ios/play-store.md deleted file mode 100644 index 163d6f877b..0000000000 --- a/docs/fr/gdevelop5/publishing/android_and_ios/play-store.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: play-store ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Publish your game on the Play Store - -After building your game with Android (either using the [one-click build for Android](/gdevelop5/publishing/android_and_ios) or [the manual process with Cordova for advanced users](/gdevelop5/publishing/android_and_ios_with_cordova)), you can publish it on the Google Play Store. - -To do this, you need to have an account on Google Play Store. There is a one-time \$25 registration fee asked by Google. - -## Create your Google Play Store Develop account - -To create your account, go there: - -## Package your game - -Package your game as explained here. At the end, you'll have a **Download button** to get the .apk file that can be installed on Android. - -Download this APK and keep it somewhere on your computer. - -## Create the app and fill in the app details - -Connect to the Play Store Developer Console (). On the pages listing your applications, click on **Create Application**: - -![](/gdevelop5/publishing/android_and_ios/create-application-button_2x.png) - -Enter a title and choose a language. The application is created on the Play Store and you're now able to complete the information that will be displayed on the Play Store: - -![](/gdevelop5/publishing/android_and_ios/application-store-listing.png) - -Don't forget to add screenshots and promo graphics: - -![](/gdevelop5/publishing/android_and_ios/bub-screenshots-play-store.png) - -Click on the button on the bottom of the page to submit all that you've entered. - -## Upload the game .apk file - -In the menu on the left, click on App Releases. Then, on the right, choose **Manage Production**: - -![](/gdevelop5/publishing/android_and_ios/app-releases-play-store.png) - -Click then on **Create Release**. - -A new form appears. If you're asked for Google Play App Signing, click on **Opt Out**, than on **Confirm** for now. - -In **APKs to add**, choose **Browse files**, then select the .apk file that you downloaded earlier: ![](/gdevelop5/publishing/android_and_ios/choose-apk-play-store.png) - -The APK is uploaded to the Play Store. Wait a bit. Once it's finished, you should see a message telling that the upload finished successfully. - -If there is an error telling you that the upload failed, read the error message to know more about what went wrong. Usually it means that: - -* The package name is not correct. In GDevelop, using [the project manager](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager), enter a new, unique package name -* Or you used the same package name as an existing application. Choose another in the [the project manager](http://wiki.compilgames.net/doku.php/gdevelop5/interface/project-manager) and package again your game to create a new APK. - -If the upload is a success, you can see your APK file listed below: ![](/gdevelop5/publishing/android_and_ios/apk-uploaded.png) - -In **What's new in this release?**, enter the release notes that should be displayed on the play store. Finish by clicking on Save: - -![](/gdevelop5/publishing/android_and_ios/releases-notes-play-store.png) - -## Finish entering all the details about the game - -Before making your game public, you must finish the enter all the details about your game, including the price and find a rating for the content. Everything that you must still complete is listed in the menu and can be seen thanks to a "warning" icon: - -![](/gdevelop5/publishing/android_and_ios/menu-to-fill-play-store.png) - -## Publish the game! - -Once you've completed everything, entered a nice description, set up beautiful screenshots and uploaded the .apk of your game, you can go back to the **App Releases** page. Click on **Manage Production** or **Edit release**. In the page where you've uploaded your apk, you can still upload a new apk if you want to change it (if you made changes in your game). - -When you're ready, click on **Review** (or **Save** and then **Review**) at the bottom of the page. - -A final screen is shown: ![](/gdevelop5/publishing/android_and_ios/review-before-rollout-play-store.png) - -When you're ready, click on **Roll out to production** (if it's grayed, then you forgot to complete something, check again everything in the menu on the left). - -## Congratulations! The game is on the Play Store. - -**Congrats!** You've made it and published your game. Some users can have to wait for a few hours before seeing the game in the Play Store. - -Remember to send some Tweets to GDevelop and/or a messages on the forum to let the community know that you've published a game 🚀 diff --git a/docs/fr/gdevelop5/publishing/android_and_ios_with_cordova.md b/docs/fr/gdevelop5/publishing/android_and_ios_with_cordova.md deleted file mode 100644 index 9d9260c328..0000000000 --- a/docs/fr/gdevelop5/publishing/android_and_ios_with_cordova.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: Publication Android et iOS manuel avec Cordova ---- -# Publication Android et iOS manuel avec Cordova - -Depuis GDevelop vous pouvez publier vos jeux sur Android et iOS. Pour exporter notre jeu, cliquez sur Fichier en haut et sélectionnez l'option Exporter. Vous pouvez alors choisir la première **[Android et iOS](/gdevelop5/publishing/android_and_ios)** option, qui utilisera les services en ligne de GDevelop pour créer automatiquement votre jeu pour Android et iOS. - -Si vous voulez plus de contrôle ou si vous avez des besoins particuliers, vous pouvez également choisir l'option **iOS et Android (manuel)**. Cette option exporte votre jeu en tant que projet Cordova. [Cordova](https://cordova.apache.org/), également connu sous le nom de PhoneGap, est une technologie permettant aux jeux et applications HTML5 de fonctionner sur Android et iOS et d'être packagés en tant qu'applications (APK et IPA ), puis distribués sur l'App Store ou Play Store. - -## Choisissez un dossier - -Tout d'abord, choisissez un dossier dans lequel le jeu sera exporté. Il est recommandé de choisir un dossier vide, au moins pour la première fois, afin d'éviter de perdre tout fichier qui pourrait être écrasé par l'exportation. - -## Lancez l'exportation - -Vous pouvez ensuite cliquer sur Exporter. Le jeu sera exporté en comme un projet Cordova. - -Vous pouvez ensuite utiliser [Cordova](https://cordova.apache.org/) ou PhoneGap Build pour conditionner votre jeu sous forme d'application Android ou iOS. - -## Exportation vers d'autres plateformes (Web, Windows, MacOS, Linux) - -Voir [les autres options](/gdevelop5/publishing) d'exportation pour apprendre comment publier votre jeu sur d'autres plateformes! \ No newline at end of file diff --git a/docs/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png b/docs/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png deleted file mode 100644 index f0e4c61100..0000000000 Binary files a/docs/fr/gdevelop5/publishing/choix_type_export_android_gdevelop_fr.png and /dev/null differ diff --git a/docs/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png b/docs/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png deleted file mode 100644 index 4422023098..0000000000 Binary files a/docs/fr/gdevelop5/publishing/export_android_gdevelop_fr_choix.png and /dev/null differ diff --git a/docs/fr/gdevelop5/publishing/gdevelop_export_fr.png b/docs/fr/gdevelop5/publishing/gdevelop_export_fr.png deleted file mode 100644 index 917739d61d..0000000000 Binary files a/docs/fr/gdevelop5/publishing/gdevelop_export_fr.png and /dev/null differ diff --git a/docs/fr/gdevelop5/publishing/index.md b/docs/fr/gdevelop5/publishing/index.md deleted file mode 100644 index a676a681b3..0000000000 --- a/docs/fr/gdevelop5/publishing/index.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: Publier des jeux ---- -# Publier des jeux - -De GDevelop vous pouvez publier vos jeux sur toutes les plateformes modernes! Tout d'abord, elle doit être exportée. - -Pour exporter votre jeu, cliquez sur Fichier en haut de la page et sélectionnez l'option Exporter. -![](/gdevelop5/file-export-menu.png) - -Ensuite, de multiples options vous seront proposées: -![](/gdevelop5/export-options.png) - - * **[Android (et iOS bientôt disponible)](/gdevelop5/publishing/android_and_ios):** cela prépare votre jeu pour Android (et la prise en charge d'iOS arrive bientôt), faites un export en ligne, en utilisant les services de GDevelop, puis envoyez un lien pour que vous puissiez l'installer sur Android et [le publier sur le Play Store](/fr/gdevelop5/publishing/android_and_ios/play-store) (ou l'App Store plus tard pour iOS). - - * **[Facebook Instant Games (Messenger)](/fr/gdevelop5/publishing/publishing-to-facebook-instant-games):​** Préparez votre jeu pour qu'il puisse être téléchargé sur Facebook Instant Games et joué sur Messenger, partagé avec vos amis et ensuite publié dans le monde entier. - - * **[Web (téléchargement en ligne)](/fr/gdevelop5/publishing/web)**: cette option chargera votre jeu sur l'hébergement GDevelop, gratuitement. Vous pouvez ensuite le partager avec n'importe qui en cliquant sur un bouton. - - * **Windows/macOS/Linux(Bientôt disponible)**: Cette option regroupe votre jeu sous forme d'application Windows, MacOS ou Linux, exportez le en ligne, en utilisant les services de GDevelop, puis envoyez un lien pour que vous puissiez distribuer le jeu. - -Il y a aussi des exportations pour les utilisateurs avancés: - - * **[Exportation vers un dossier local](/gdevelop5/publishing/html5_game_in_a_local_folder):** Cette option vous permet d'exporter votre jeu dans un dossier et de le télécharger manuellement vers n'importe quel hôte que vous voulez ou de l'envelopper dans un bureau ou une application mobile manuellement en utilisant n'importe quel outil que vous préférez, comme peut le faire Electron. - * **[iOS & android (manuel)](/fr/gdevelop5/publishing/android_and_ios_with_cordova):** cette option va exporter votre jeu prêt à être utilisé comme un projet Cordova. Vous pouvez ensuite utiliser les outils de ligne de commande Cordova pour créer votre jeu pour Android et iOS. diff --git a/docs/fr/gdevelop5/publishing/install_apk_on_device.png b/docs/fr/gdevelop5/publishing/install_apk_on_device.png deleted file mode 100644 index bc153a9093..0000000000 Binary files a/docs/fr/gdevelop5/publishing/install_apk_on_device.png and /dev/null differ diff --git a/docs/fr/gdevelop5/publishing/publishing-to-facebook-instant-games.md b/docs/fr/gdevelop5/publishing/publishing-to-facebook-instant-games.md deleted file mode 100644 index e3bdb27fc0..0000000000 --- a/docs/fr/gdevelop5/publishing/publishing-to-facebook-instant-games.md +++ /dev/null @@ -1,80 +0,0 @@ ---- -title: Publiez votre jeu sur Messenger avec Facebook Instant Games. ---- -# Publiez votre jeu sur Messenger avec Facebook Instant Games. - -Les jeux Facebook Instant Games sont des jeux auxquels vous pouvez jouer avec vos amis sur Facebook Messenger. - -## Créez un compte et une application sur Facebook Developers. - -Allez sur [Facebook Developers](https://developers.facebook.com/apps/) et créez une application : -![](/gdevelop5/publishing/facebook-add-new-app.png) - -Entrez le nom de votre jeu et votre email de contact : -![](/gdevelop5/publishing/facebook-create-app.png) - -Ouvrez les *paramètres de base* de votre application : - -![](/gdevelop5/publishing/facebook-games-settings-basic.png) - -Et choisissez Jeux comme catégorie : - -![](/gdevelop5/publishing/facebook-games-category.png) - -Remplissez également les autres champs nécessaires à la publication de votre jeu. C'est aussi sur cette page que vous pouvez télécharger les icônes et entrer d'autres détails de votre jeu. - -Une fois que vous avez terminé, activez Instant Games. Cliquez sur le bouton + à proximité des produits : - -![](/gdevelop5/publishing/facebook-app-add-product.png) - -et choisissez **Instant Games**. Votre application est maintenant prête à télécharger le jeu ! - -## Exportez et téléchargez votre jeu - -Dans GDevelop, ouvrez la fenêtre d'exportation. Choisissez Facebook Instant Games : - -![](/gdevelop5/publishing/gdevelop-export-facebook.png) - -Dans la fenêtre, cliquez sur **Export**. Après quelques secondes, lorsque l'exportation est terminée, cliquez sur Ouvrir le dossier pour voir le fichier contenant votre jeu : - -![](/gdevelop5/publishing/gdevelop-export-facebook-done-with-file.png) - -Retournez sur Facebook Developers et choisissez **Hébergement Web** dans le menu Instant Games : - -![](/gdevelop5/publishing/facebook-web-hosting-menu.png) - -Cliquez sur le bouton **Upload Version** à droite et choisissez le fichier qui a été créé par GDevelop. -Lorsque le téléchargement est terminé, attendez quelques secondes pour que Facebook traite votre jeu. - -Cliquez sur l'icône Étoile pour marquer la version que vous avez téléchargée comme étant prête pour la production : -![](/gdevelop5/publishing/facebook-instant-game-production.png) - -!!! note - - Il est important de le faire *même si vous ne voulez pas encore publier le jeu* ! Si vous n'avez pas une version marquée avec l'étoile comme étant prête pour la production, vous ne pourrez pas tester votre jeu. - -## (Facultatif) Ajouter des testeurs - -Pour permettre à vos amis ou collègues de tester le jeu, ajoutez-les comme testeurs. Dans le menu de gauche, cliquez sur Rôles : - -![](/gdevelop5/publishing/facebook-games-roles-menu.png) - -Cliquez ensuite sur le bouton **Ajouter des testeurs** et ajoutez vos amis/collaborateurs. - -## Testez votre jeu ! - -Sur votre téléphone, ouvrez Facebook Messenger. Allez à une conversation, cliquez sur le bouton **+** et choisissez **Jeux** : - -![](/gdevelop5/publishing/messenger-games-option.png) - -Choisissez votre jeu dans la liste : - -![](/gdevelop5/publishing/messenger-games-list.jpg) - -**Votre jeu commence ! ** Si pour une raison quelconque, vous ne pouvez pas voir votre jeu, assurez-vous d'avoir correctement rempli les informations et envoyé le fichier zip sur Facebook Developers. Assurez-vous que le téléphone que vous utilisez est connecté à votre compte Facebook ou à celui d'un testeur. - -## Envoyez votre jeu pour l'évaluer et le publier - -Envoyez les nouvelles versions de votre jeu jusqu'à ce que vous en soyez satisfait. Assurez-vous de remplir toutes les informations et d'ajouter des images de haute qualité. Une fois que vous êtes prêt, cliquez sur le menu **Review** pour envoyer votre jeu afin qu'il soit évalué par Facebook. - -Lisez [cette liste de contrôle pour le lancement du jeu avec Facebook](https://developers.facebook.com/docs/games/instant-games/getting-started/launch-checklist) et assurez-vous d'avoir suivi toutes les directives pour maximiser vos chances de voir votre jeu approuvé. \ No newline at end of file diff --git a/docs/fr/gdevelop5/publishing/publishing-to-itch-io.md b/docs/fr/gdevelop5/publishing/publishing-to-itch-io.md deleted file mode 100644 index 2119d2b9e2..0000000000 --- a/docs/fr/gdevelop5/publishing/publishing-to-itch-io.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: Publier votre jeu sur itch.io ---- -# Publier votre jeu sur itch.io - -## Qu'est-ce que itch.io ? - -![](/gdevelop5/publishing/app-iecon_copy.png) [itch.io](https://itch.io) est un site d'hébergement et de vente de jeux ouvert à tous avec une attention particulière portée sur les développeurs indépendants. - -Les développeurs ont accès à une analyse détaillée sur les visites de leurs créations comme le nombre de téléchargement ou les sites de provenance. - ------------------------------------------------------------------------- - -## Pourquoi itch.io ? - -- Il est complètement **gratuit et ouvert à tous**. -- La **préparation du contenu** à envoyer est simple -- Les **mises à jour** de contenu sont tout aussi simple. -- Un carnet de bord "Devlog" est intégré. -- Il laisse le choix **d'activer les commentaire** et de mettre en place un **forum pour la communauté**. -- Il n'y aucune restriction sur la qualité du contenu. -- Le contenu envoyé est optimisé pour les moteurs de recherches. -- Les jeux partagés peuvent être compatible Windows, Linux, Mac, Android ou des jeux HTML5 jouables directement dans un navigateur. -- Il permet de **gagner de l'argent** sans officialiser une structure juridique. itch.io gère les paiements, les demandes de remboursement, paye les taxes pour vous et les bénéfices peuvent être récupéré à tout moment. -- Dans le cas d'une officialisation de structure, itch.io continue de gérer les transactions mais les taxes et les demandes de remboursement sont à votre responsabilité. -- Un **prix** peut être défini pour vos créations mais il est possible de les distribuer **gratuitement** ou d'accepter les dons. La décision du prix peut également être laissé à l'acheteur. -- La part de bénéfice reversé à l'hébergeur est aussi flexible. C'est ce rend itch.io unique en son genre. Cette part peut être de 0%. itch.io hébergera néanmoins vos créations gratuitement en espérant qu'un futur succès vous donnera envie de les remercier. -- **Aucune publicité** ne vient perturber l'exploration des jeux. -- Il est compatible avec Patreon et permet de donner l'accès à votre contenu aux personnes qui vous soutiennent. - -Il est cependant uniquement en anglais : amis non-anglophones, passez votre chemin ! - -## Exporter un projet - -![](/gdevelop5/publishing/screenshot_20190602191918.png) Commençons par exporter notre jeu dans une version prête à être publiée et jouable depuis un navigateur ou exécutable sur un ordinateur. **Cliquez** sur l’icône à gauche de ce texte. Elle est **en haut à gauche** de la fenêtre de GDevelop. - -![](/gdevelop5/publishing/screenshot_20190602192225.png) - -Une boite de dialogue apparait et permet de choisir pour quelle plateforme exporter le jeu. Ce tutoriel se concentre sur l'export HTML5 qui permet de jouer directement depuis un navigateur. Défilez vers le bas si nécessaire jusqu'à voir apparaitre **Advanced** et choisissez **Dossier local**. - -![](/gdevelop5/publishing/screenshot_20190602192758.png) - -Créez un dossier vide sur votre ordinateur et choisissez-le en cliquant sur **Choose Folder**. Ici, le dossier **Endless Runner** a été choisi. - -## Créer une archive Zip du projet exporté - -Préparer un jeu pour itch.io est très simple. La seule chose à faire est d'archiver le dossier exporté dans un fichier ZIP. Il faut tout de même bien veiller à ce que le fichier "index.html" soit dans le dossier archivé et non dans un sous-dossier. - -Pour compresser le dossier au format ZIP, vous aurez besoin d'un logiciel de compression. Il en existe de nombreux. En voici un très couramment utilisé : [7-Zip](http://www.7-zip.org), il est complètement gratuit et facile à utiliser. Téléchargez donc 7-Zip et installez-le. Une fois cela fait, faites un clic droit sur le dossier contenant votre jeu : vous devriez voir apparaitre 7-Zip dans la liste des choix. Cliquez sur "Ajouter à l'archive". - -![](/gdevelop5/7zip-add-to-archive.png) - -Si le clic droit sur le dossier ne permet de faire apparaitre 7-Zip dans la liste de choix, lancez 7-Zip normalement, puis cliquez sur le bouton "Ajouter". - -![](/gdevelop5/7zip-add-button.png) - -Différentes options s'offrent alors à vous, ne vous en préoccupez pas ! Cliquez simplement sur "OK" afin de lancer la création de votre fichier Zip. Une fois cela fait, le fichier Zip obtenu sera prêt à être chargé sur itch.io - -## Envoyer votre projet sur itch.io - -Vous allez ensuite devoir [créer votre compte itch.io](https://itch.io/register). Il s'agit là d'une procédure classique, suivez simplement les instructions qui vous sont données par le site. (nous ne détaillerons pas toute la procédure dans cet article) - -Une fois votre comte itch.io créé, connectez-vous, allez sur la page "Dashboard", puis cliquez sur le bouton "Create new project" - -![](/gdevelop5/itchio-create-new-project-button.png) - -Vous pouvez à présent paramétrer votre projet. Voici les rubriques principales : - -- **Title :** C'est le titre de votre jeu, il doit être unique. -- **Project URL :** C'est l'adresse URL où votre jeu sera sur itch.io. Ordinairement, ce devrait être proche de cela : votrenom.itch.io/nom-de-votre-jeu. Le nom du jeu dans l'URL peut être ce que vous désirez, c'est à vous de choisir librement. -- **Classification :** Vous choisissez ici le type de contenu que vous voulez charger : jeu, livre.... (dans notre exemple, nous choisirons bien entendu "game" ) -- **Kind of project :** vous choisissez ici le type de projet que vous désirez charger : jeu télechargeable, HTML, ... Nous choisirons pour notre exemple "HTML" -- **Pricing :** C'est ici que vous choisissez si votre jeu : accepte les dons, est payant ou est gratuit. -- **Uploads :** C'est grâce à ce bouton que vous pouvez charger votre jeu sur itch.io - -![](/gdevelop5/itchio-upload-files-button.png) - -Cliquez sur le bouton "Uploads", et sélectionnez le fichier ZIP que vous venez de créer : le chargement commence. Une fois terminé, vous aurez le choix entre différentes options : - -![](/gdevelop5/ithio-upload-file-options.png) - -Vous pouvez choisir si le fichier que vous venez de charger est un exécutable, un livre, un code source ou un mode. Vous pouvez également choisir la plateforme et le prix pour chaque fichier que vous aurez chargé. L'option la plus importante pour nous dans notre exemple est "This file will be played in the browser". - -![](/gdevelop5/itchio-play-in-browser-option.png) - -En cochant la case, cela permettra de pouvoir lancer notre jeu HTML dans les navigateurs. - -Enfin, cliquez sur le bouton "Save and view page". - -![](/gdevelop5/itchio-save-view-page-button.png) - -Après avoir chargé un aperçu de la page de notre jeu, le jeu se lancera dans votre navigateur (si vous n'avez pas fait d'erreur !). - -## Partager votre projet - -La dernière chose restante à faire est à présent de rendre le jeu public afin que tout le monde puiss y jouer. Pour faire ceci, cliquez sur le bouton "Edit game" en haut (ou retournez sur le Dashboard) La page de création de projet va s'ouvrir, et vous pourrez activer l'option afin de rendre votre jeu public. - -![](/gdevelop5/itchio-set-public.png) - -Cliquez ensuite sur le bouton "Save". - -Voilà, c'est terminé ! Tout le monde est à présent en mesure de trouver et jouer à votre jeu ! Vous avez également la possibilité de partager un lien afin qu’un maximum de personnes joue à votre jeu ! - -!!! note - - N'oubliez pas de renseigner GDevelop comme moteur utilisé dans les métadonnées. Il apparaitra sur [la page "made with GDevelop"](https://itch.io/games/made-with-gdevelop) diff --git a/docs/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png b/docs/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png deleted file mode 100644 index 948f14d030..0000000000 Binary files a/docs/fr/gdevelop5/publishing/screenshot_apk_on_android_fr.png and /dev/null differ diff --git a/docs/fr/gdevelop5/publishing/web.md b/docs/fr/gdevelop5/publishing/web.md deleted file mode 100644 index e459a1dee7..0000000000 --- a/docs/fr/gdevelop5/publishing/web.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Publier votre jeu sur le web (télécharger en ligne) ---- -# Publier votre jeu sur le web (télécharger en ligne) - -A partir de GDevelop, vous pouvez exporter votre jeu et le publier sur le web, en utilisant les serveurs d'hébergement de GDevelop. Cet hébergement est gratuit et votre jeu sera disponible pour quelques jours ! - -Pour ce faire, dans le menu Fichier, sélectionnez Exporter. Ensuite, choisissez **Web (télécharger en ligne)** et cliquez simplement sur **Exporter et télécharger mon jeu**. - -![](/gdevelop5/publishing/export-online.png) - -Le jeu sera hébergé sur des serveurs d'hébergement GDevelop (soutenus par des services Amazon ) et disponible pour quelques jours gratuitement afin que vous puissiez partager votre jeu. - -Notez que le lien est **privé** par défaut, et n'est partagé nulle part : vous pouvez alors partager le lien vers le jeu à quelques personnes ou à un public plus large selon vos besoins. - -## Exportation vers d'autres plates-formes (iOS, Android, Windows, macOS, Linux) - -Voir les [autres options d'exportation](/fr/gdevelop5/publishing) pour apprendre à publier votre jeu sur d'autres plates-formes ! \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/fr/gdevelop5/tutorials/basic-game-making-concepts.md deleted file mode 100644 index f4c59f5496..0000000000 --- a/docs/fr/gdevelop5/tutorials/basic-game-making-concepts.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: Concepts de base pour créer un jeu - ce dont vous avez besoin pour démarrer avec GDevelop ---- -# Concepts de base pour créer un jeu : ce dont vous avez besoin pour démarrer avec GDevelop - -Les concepts de base de GDevelop sont simples. Lisez les informations suivante pour commencer sereinement avec cette application. Si vous n'avez pas encore GDevelop, [Téléchargez le depuis le site](https://gdevelop.io/download)! - -## Coordonnées - -Les objets sont repérés sur la scène à partir de leurs coordonnées X et Y correspondant respectivement à la position horizontale (axe-X) et la position verticale (axe-Y) sur un plan cartésien. - -Les coordonnées en abscisse (axe des X) sont croissantes de gauche à droite et les coordonnées en ordonnées (axe des Y) sont croissantes de haut en bas. - -![](/wiki/pres_coord1.png) - -Parallèlement, pour déplacer ou tourner des objets, vous avez besoin de spécifier un angle en degré. Observez le schéma suivant pour comprendre comment sont ordonnés les degrés de 0 à 360° (en tournant dans le sens des aiguilles d’une montre à partir de 3h): - -![](/wiki/pres_coord2.png) - -Si vous utilisez des fonctions trigonométriques comme le **sinus** ou le **cosinus**, notez que vous devrez exprimer les angles en **radians** (1 radian =180/Π degrés et 1 degré= Π/180 radians, Π(Pi) étant approximativement égal à 3.14159) - -## Comment les événements affectent les objets - -Les événements, que vous utilisez pour créer les règles et interaction de votre jeu, sont composés de conditions et d’actions. -La majorité des conditions et actions se réfèrent à des objets. Les conditions effectuent des tests sur les objets et les actions les manipulent, les transforment. - - * Une action sans condition s’appliquera à tous les objets. - * Si vous utilisez un objet pour la première fois dans un événement, GDevelop testera et modifiera **tous les objets** qui portent le même nom dans la scène. - * Si vous ré-utilisez cet objet dans le même événement, GDevelop ne testera et ne modifiera que les objets qui ont été affectés par la condition initiale. - -Ce processus est au cœur de la logique de l’application. -Ainsi l’exemple suivant supprimera **tous** les objets nommés "Square" (Carré): - -![](/gdevelop5/tutorials/delete-square.png) - -Tandis que l’événement suivant supprimera **seulement** les objets "Square"(Carré) dont la position X est inférieur à 100 pixels: - -![](/gdevelop5/tutorials/delete-square-condition.png) - -!!! tip - - **À voir en action!** 🎮Ouvrez cet exemple en ligne et allez observer les événements: https://editor.gdevelop.io/?project=example://object-selection - -## Événement: L'importance de l'ordre - -L'ordre dans lequel sont listés les événement est important: Les événement du haut de la liste sont exécutés les premiers. Chaque fois que votre jeu est affiché (appelé "Vue"), 60 fois par seconde les événements sont exécutés. -Les exemples suivantes ne sont pas équivalents: - -![](/gdevelop5/tutorials/create-then-delete-square.png) - -![](/gdevelop5/tutorials/delete-then-create-square.png) - -* La première paire d'événements crée un objet "Square" (Carré) à la position 200;100 et le supprime immédiatement. **Aucun** "Square" n'est affiché à l'écran (car il a été supprimé dans la fraction de seconde de sa création). -* La seconde paire d'événements supprimera tous les objets "Square" de la scène et en créera un à la position 200;100. Ainsi un carré sera visible sur la scène (avant d'être effacé et recréé immédiatement lors du prochain affichage de la vue) - -!!! note - - Par exemple: Un jeu tournant à 60 images par seconde, si vous avez un seul événement, sans condition à l'intérieur et juste une action pour créer un objet sur la scène, alors cette action sera exécuté 60 fois en une seconde. - Vous aurez donc à chaque seconde 60 objets de plus sur la scène. - -## Déplacer les objets en leur intégrant des forces - -Les objets peuvent se déplacer en leur intégrant à des **forces** qui les "poussent". - -Vous pouvez spécifier des coordonnées cartésiennes à une force (par exemple en spécifiant des X et des Y en pixels). Ces coordonnées polaires définissent une longueur et une direction vectorielle (un angle) qui sera soumis à une force de glissement (le contraire d’une force de résistance). Cette **force de glissement** aura un coefficient compris entre 0 et 1. Chaque seconde, la puissance (longueur) de la force est multipliée par ce coefficient. Ainsi si la valeur est de 1, la puissance ne diminue pas et la vitesse reste constante. Au contraire, si le coefficient est 0, la résistance est totale et l’objet stoppe immédiatement. Les valeurs intermédiaires feront que l’objet ralentira de plus en plus jusqu’à s’arrêter. - -Certains [comportements](http://www.wiki.compilgames.net/doku.php/fr/gdevelop5/behaviors) que vous pouvez affecter à des objets pour les déplacer "par défaut" (par exemple un objet déplacé à l’aide de la souris). Vous n’aurez pas besoin d’utiliser les forces (voir plus loin). - -### Exemple - -Comment faire bouger ce personnage vers le bas: - -![](/wiki/pres_vector.png) - -Vous pouvez ajouter une force à l’aide des coordonnées X/Y en indiquant 0 pour X (on ne va ni à droite ni à gauche) et en précisant 150 (pixels) pour Y. Vous pourriez aussi utiliser les coordonnées polaires (vectorielles) en ajoutant une force avec un angle de 90 (degrés) et une longueur de 150 (pixels). - -### Autres façons de déplacer les objets - -Certains comportements, comme le comportement Physique ou le Détecteur de chemin peuvent déplacer les objets eux-mêmes. Dans ces cas, il est préférable de ne pas utiliser les forces "internes" mais de s'en remettre seulement aux actions qui sont gérées au niveau du comportement lui-même. - -!!! tip - - **À voir!** 🎮Ouvrez et décortiquez cet exemple en ligne: https://editor.gdevelop.io/?project=example://move-object-with-physics - -## Les variables - -Les variables vous servent à stocker des **données**, comme des nombres ou du texte. On pourrait les comparer à des tiroirs ou des boites dans lesquels on garderait en mémoire quelques petites notes et informations à réutiliser plus tard. Toutes les données qui peuvent être stockées si on peut les exprimer en _texte_ ou en _nombre_: Nombre de vies restantes, meilleur score, nombre de balles en réserve, nombre d’ennemis neutralisés, pseudo de la personne qui joue… Vous allez probablement souvent utiliser des nombres, mais pas seulement si vous voulez personnaliser l’expérience :) - -![](/wiki/pres_variable.png) - -La _valeur_ d’une variable pourra donc être testée par des conditions ou modifiée par des actions. - -#### Où sont les variables? (Typologie des "variables") - -Il existe plusieurs types de variable qui différencient leur rayon d’utilisation. Il y a trois types de variable dans GDevelop qui détermineront quand et comment elles sont utilisables.: - -* **Globale**: variable accessible par toutes les scènes d’un jeu. Typiquement on les utilisera pour stocker le score du joueur d’un niveau à l’autre ou encore son pseudo tout au long de la partie. -* **Scène** : variable qu’on utilisera uniquement au sein d’une scène (ou d’un niveau). Par exemple pour compter le nombre d’ennemis encore présents dans le niveau, pour gérer le temps qu’il reste pour sortir de la scène.; -* **Objet**: chaque objet peut contenir ses propres variables. Par exemple un compteur de "santé" pour un objet qui à chaque fois qu’il sera touché diminuera. Ainsi si on génère automatiquement une horde d’ennemis, chacun aura sa propre variable "Santé". - -!!! note - - Lisez le chapître des [Variables](/gdevelop5/all-features/variables). Les variables sont très utilisées et de nombreux exemples et tutoriaux illustreront une partie des infinies possibilités qu’elles offrent.. -## Une notion avancée : le "temps écoulé" depuis la dernière image (TimeDelta) - -Le jeu évalue les événements et repeint l'écran plusieurs fois par seconde : on dit que le jeu est _rafraîchi_, _mis à jour_ lors d'un "tick". La fréquence de ce phénomène dépend des ressources de votre ordinateur : un ordinateur lent peut rendre 25 images par seconde, un ordinateur rapide 60. GDevelop peut généralement s'assurer que cette valeur est la même sur tous les ordinateurs. Cependant, la vitesse de certaines opérations peut changer d'un ordinateur à l'autre, par exemple, les opérations mathématiques et le rendu des mouvements. - -Pour rendre la vitesse des changements constante, utilisez l'expression //`TimeDelta()`//, qui retourne le temps en secondes depuis la dernière image. - -Par exemple, ne faites pas : - -![](/gdevelop5/tutorials/update-life-no-timedelta.png) - -Mais plutôt : - -![](/gdevelop5/tutorials/update-life-timedelta.png) - -* Le premier événement consiste à ajouter 20 à la variable à chaque fois que le jeu est rafraîchi (c'est-à-dire autant que possible, jusqu'à 60 fois par seconde). Il n'est **pas correct** d'utiliser un tel événement car la vitesse d'augmentation de la variable ne sera pas la même d'un ordinateur à l'autre : nous ne pouvons pas prédire la valeur de la variable après 10 secondes par exemple - car elle dépend du nombre d'images du jeu peintes. - -* Le deuxième événement est **correct et fiable** : le nombre 300 est multiplié par TimeDelta(). Ainsi, la variable sera augmentée en même temps sur tous les ordinateurs. Comme TimeDelta() renvoie un temps en seconde, il vous permet de quantifier exactement l'accroissement : dans notre cas, la variable augmentera à 300 unités/seconde. Ainsi, nous pouvons prédire que les points de vie augmenteront de 3000 unités en 10 secondes - indépendament du nombre de rafraîchissements effectués durant cette période. - -!!! tip - - Comme GDevelop exécute votre jeu à un maximum de 60 images par seconde, vous ne remarquerez généralement pas de problème si vous utilisez le premier événement. C'est toujours une bonne idée de garder un oeil sur cela et d'utiliser la version avec `TimeDelta()` à la place. - -**Règle de base : ** Utilisez _TimeDelta()_ lorsque vous souhaitez ajouter continuellement un certain montant à une valeur. Si votre action est censée être lancée une seule fois (par exemple, lors d'une collision où vous effacez ensuite l'objet), vous pouvez utiliser une valeur discrète sans TimeDelta - car elle ne dépend pas de la vitesse du jeu. - -!!! danger - - Lorsque vous déplacez un objet en utilisant des forces, il n'est pas nécessaire d'utiliser TimeDelta() car GDevelop l'utilise automatiquement. - -## Et… c’est l’essentiel de ce que vous devez savoir (ou presque) - -➡️ Mais vous pouvez peut-être poursuivre votre lecture par **[les tutoriels](/fr/gdevelop5/tutorials)** pour en savoir un peu plus à propos de la création de jeux interactifs, inventifs et puissants avec GDevelop! \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/beginner-tutorial.md b/docs/fr/gdevelop5/tutorials/beginner-tutorial.md deleted file mode 100644 index b0d5ea5edf..0000000000 --- a/docs/fr/gdevelop5/tutorials/beginner-tutorial.md +++ /dev/null @@ -1,218 +0,0 @@ ---- -title: beginner-tutorial ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -##Beginner tutorial - -This tutorial will help you to begin to use GDevelop: You will create a very simple game where enemies are moving toward the player, and we can shot the enemies which is going to explode. ![](/gdevelop5/tutorials/beginner-tutorial-screenshot.png) - -To get an overview of the software I recommend to read the [](/gdevelop5/getting_started) page first. - -### Download GDevelop - -If you do not have GDevelop, download it from the official website : [Compilgames.net](http://compilgames.net) Always download GD from this page to be sure to have the latest version. Ounce you have GDevelop installed and launched, the start page is displayed: ![](/gdevelop5/start_page.png) - -### Download the source - -You can download the finished project from here ![](/gdevelop5/tutorials/beginner-tutorial.zip) so you can see how it done in case you get stuck or don't understand something. - -### Create a new project - -Click create new project on the start page. Next you have the option to create a new project using an example or create an empty project. ![](/gdevelop5/create-new-project-window.png) In this case we need an empty project but before select it, we need to choose a folder on the bottom of this page to select where our project is going to be stored. ![](/gdevelop5/tutorials/select-project-folder.png) To select a custom location, we need to click the choose folder button and browse the file system of our computer to find the folder we want to use. ![](/gdevelop5/choose-folder-button.png) - -Once we have a folder selected, just click the blank project option in the list. ![](/gdevelop5/empty-game-button.png) - -### Create a new scene - -The first thing we want to do is create a new scene. Just click the add scene button in the Project manager ![](/gdevelop5/tutorials/add-scene-button.png) - -Next, click on the NewScene we have just created and it should open the scene editor. - -### Get the images and resources - -Before going further, we'll need some images for our game. You can download them here : [Download images](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip) - -Once you have downloaded this file, extract its content in the folder where you created the project. - -### Create the player turret - -The player will be controlling a turret to shot on the enemies. In the Objects editor choose Add a new object. ![](/gdevelop5/tutorials/add_new_object.png) A window pop up so as to choose the type of the object to create: ![](/gdevelop5/objects/object-types.png) - -We want to create a sprite object so let select that one from the list. Next, the object properties panel should be displayed by default. If it not, just right click on the NewObject in the Object editor and select Edit object from the list. - -Next we want to add an animation to the object so let click the add animation button in the properties window. ![](/gdevelop5/tutorials/add-animation.png) - -Now we should see the animation properties of the object. ![](/gdevelop5/objects/animation-properties.png) - -Next we want to add the turret image as an animation, so let click the big plus symbol and browse our project folder for the image aaguntopdown.png. Next the image should be displayed in the window. ![](/gdevelop5/tutorials/turret-animation-window.png) - -Finally, just click apply to save the changes. - -Next, let rename the object if we haven't done it already. Right click on the turret object in the Object editor and select Rename from the list and type the name turret in place so later we can refer to this object using the name turret. ![](/gdevelop5/tutorials/rename-turret.png) - -### Add turret to the scene - -To add the turret to the scene, select the turret in the Object editor then click in the scene editor. It should create a turret in the scene that we can select, move around and rotate. ![](/gdevelop5/tutorials/turret-selected-inscene.png) - -### First events - -We are going to create the events used to animate the whole game. First, the turret must be turned toward the player mouse. - -Go to the events editor by clicking on the events tab: ![](/gdevelop5/tutorials/scene-events-tab.png) - -Than, on the top click the add event button to create a new event. ![](/gdevelop5/add-event-button.png) - -The event is created, with an empty list of condition ( on the left part ) and an empty list of actions ( on the right ). Put your cursor over the action list and click add action: ![](/gdevelop5/tutorials/add-action.png) - -The first action will turn the turret toward the mouse: In the next window, choose the action Common action for all objects \> Angle \> Rotate toward position. ![](/gdevelop5/tutorials/rotate-toward-position-action.png) When selected, the right part of the window show the name of the action as well as the parameters. Fill the first parameter by clicking the parameter and select turret from the available objects. ![](/gdevelop5/tutorials/select-turret-object-parameter.png) For the next parameters, enter MouseX() and MouseY() so that the object turns toward the mouse position. When the game will be launched, these two expressions will get the current X and Y position of the mouse. For the angular speed 0 means immediate rotation which is what we need in this case. But in case you want the turret to slowly rotate toward the position of the mouse, you may want to enter a small value here, something like 100. - -At this point the parameters of this event should look like this: ![](/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png) To save the changes, press OK at the bottom right corner of this page. - -Now we can run preview by pressing the preview button on the top. ![](/gdevelop5/preview-button.png) - -If we did it right, our turret should rotate toward the position of the mouse. ![](/gdevelop5/tutorials/turret-rotate-toward-mouse.png) - -### Shoot bullets with the turret - -The player must be able to shoot some bullets on the enemies. First, we need a bullet object: In the objects list on the right, make a right click on the turret object and choose Add a new object or click the add new object button. ![](/gdevelop5/tutorials/turret-add-new-object.png) Next choose a Sprite, then add an animation and select the bullet.png image, finally rename the object to bullet. Just the way we did with the turret before. - -What we want to do next is create the bullets when the left mouse button is pressed. Go to the events tab, and add a new event just the way we did with the turret. The first action will be a Create a new object action, which is available in Common actions for all objects \> Objects category. ![](/gdevelop5/tutorials/create-object-action.png) On the right side the first parameter must be bullet, as we want to create a bullet object. The other parameters are the position of the turret: Enter Turret.X() and Turret.Y() in the 2nd and 3rd parameters. ![](/gdevelop5/tutorials/create-object-action-parameters.png) - -The layer parameter is not required in this case as we have only one layer in our game. Click on Ok to finalize the action. - -Then add another action after this first action. Do not create another event only click Add action below the first action! ![](/gdevelop5/tutorials/add-second-action.png) This time, choose the action called Common action for all objects \> Movement \> Add a force ( Angle ). ![](/gdevelop5/tutorials/add-force-angle-action.png) GDevelop provide a built-in forces system allowing to easily move the objects. This action will be used to move the bullet toward the mouse when fired. As the first parameter, enter bullet so that GDevelop will move the bullet just created in the last action. As of angle of movement we are going to use the direction of the turret so enter turret.Direction() in the 2nd parameter. For the 3rd parameter, enter 400 so that the bullet will move with a speed of 400 pixels per seconds. Finally, enter 1 in the last parameter so the force is constantly applied to the bullet and the bullet will keep moving after the moment started. ![](/gdevelop5/tutorials/add-force-angle-parameters.png) - -Our two actions must be launched only when the player is firing ( i.e: Pressing the left button of the mouse ). To do that, we need to add a condition to the event, click the Add condition in the event. ![](/gdevelop5/tutorials/add-condition.png) - -Choose the condition Mouse and touch \> Mouse button pressed or touch held. ![](/gdevelop5/tutorials/mouse-button-pressed-condition.png) On the right side click the Button to test parameter and select Left from the list ![](/gdevelop5/tutorials/mouse-button-pressed-parameter.png) Finally, close the window by clicking the OK button. The condition is now added to the event. - -If you preview the game now, you'll see that we have two problems: The bullet are fired too fast, and the appear at the object's origin, which is not very realistic. - -To address the first issue, we're going to use a timer: Add a second condition to the last event we've created. Choose the condition Timers and time \> Value of a timer ![](/gdevelop5/tutorials/timer-value-condition.png) On the right side, enter 0.25 in the first parameter which the elapsed time in seconds, and “firerate” in the second parameter, which is the name of the timer we're going to use ( Do not forget the quotes around the timer's name! ). ![](/gdevelop5/tutorials/timer-value-condition-parameters.png) - -But we are not done yet, as we want to shoot bullets every 0.25 seconds, we need to reset the timer to start from 0 after rich 0.25. So let add an action Timers and time \> Reset a timer just below our movement action in the same event. ![](/gdevelop5/tutorials/reset-timer-action.png) Enter “firerate” as parameter which is the name of our timer ( again, beware of the quotes! ). ![](/gdevelop5/tutorials/reset-timer-action-parameter.png) This pair of condition and action will ensure that the actions used to fire the bullet are repeated when at least 0.25 seconds is elapsed since the last bullet creation : ![](/gdevelop5/tutorials/shoot-bullet-event1.png) - -We must now ensure that the bullets are fired from the canon of the turret. - -In order to do that, we are going to add a custom point to our turret object and create the bullets in position of that point. Let open the object properties by right clicking the turret object on the right side and select Edit object from the list. It brings up the window where we can add animations to our objects and we should see button called EDIT POINTS. ![](/gdevelop5/tutorials/edit-point-button.png) - -After clicking the button, we can see that our object currently has 2 points by default, the Origin point and the Centre point. ![](/gdevelop5/tutorials/default-points.png) We can not rename these points but we can change their default position if we need to. But what we are here for is to add one more point to the object. - -Let click the add button (plus symbol) to add a custom point to our turret object. We immediately see the new point added to the list with the name Point and position 0,0. Let rename this point to Canon and set the X position to be 110 and the Y position to be 35 ![](/gdevelop5/tutorials/custom-point-name-position.png) - -Now in the preview on the top we should see our custom point is located at the end of our canon ![](/gdevelop5/tutorials/custom-point-preview.png) Now we can close the window and apply the changes we made. - -The only thing is left to do is to tell GDevelop to fire the bullets from the Canon point of the turret. So in our create bullet action we need to change turret.X() and turret.Y() expressions, to turret.PointX(Canon) and turret.PointY(Canon). We can change them by clicking the expressions inside the editor. ![](/gdevelop5/tutorials/replace-expression-in-editor.png) Don't forget the capital C in Canon as the name of the points are case sensitive. - -If we run the preview now, our bullets should be fired from the canon of the turret. - -### Creating enemies attacking the turret - -First, we must create the objects used for the enemies: Add an object to the object list ( Right click on an existing object \> Add an object. Choose a Sprite object as before. ). Name it enemy. - -Edit the object (right click in the list and select Edit object from the list) next add an animation to the object and two images: tank2fr1.png and tank2fr2.png. ![](/gdevelop5/tutorials/enemy-animation.png) Then, change the time between the images to 0.05 and change the animation to Loop to make the animation repeat. ![](/gdevelop5/tutorials/enemy-animation-speed.png) - -Click Apply when you done. - -### Stop! Save time! - -Before going any further, remember to save frequently: Click File and then Save to save your project. ![](/gdevelop5/tutorials/save-project.png) - -### Enemy AI - -Let's go back to the game. We want the enemies moving toward the turret: Go to the event editor and add a new event. What we want to do is creating an enemy every second: Let add a condition Timers and time \> Value of a timer. Enter 1 in the first parameter and “EnemyCreation” for the name of the timer. Don't forget the quotes when you enter the name of the timer. - -Next let add the action to create an enemy object: Add an action Common action for all objects \> Objects \> Create an object. Select enemy in the first parameter. For the second parameter, the X position of the new object to be created, enter the expression Random(800): This will return a random number between 0 and 800, so that each enemy we create will have a different position when they are created. For the Y position, enter -50. This will create the enemy outside the screen, so that the player won't have the feeling that an enemy tank just appeared from nowhere. - -Finally, let add the action to reset the timer ( Timers and time \> Reset a timer with “EnemyCreation” as parameter ). Again, don't forget the quotes when you enter the name of the timer. At this point, our event should look like this: ![](/gdevelop5/tutorials/create-enemy-event.png) - -If we run a preview now, probably we won't notice anything as the enemy is created outside the screen. Let move the enemies toward the player. Add another event without any condition and choose the action Common action for all objects \> Movement \> Add a force to move toward an object. ![](/gdevelop5/tutorials/move-object-toward-other-event.png) On the right side, for the first parameter, select enemy, and select turret for the second parameter. Enter 150 pixels per second for speed, and damping is 0, as the force will be continuously applied. ![](/gdevelop5/tutorials/move-object-toward-another-parameters.png) - -Now if we run a preview we should see that our enemies are moving toward the turret, but you may notice that they don't actually rotate toward the turret so let do something about that. Let add a second action after the movement which is the Common action for all objects \> Angle \> Rotate toward position and for the first parameter on the right select enemy as we are rotating the enemy and for the X and Y position we are going to use an expression to get the Centre point of the turret and make the enemies rotate toward that point and the angular speed is 0 so it is going to rotate immediately. ![](/gdevelop5/tutorials/rotate-object-toward-position.png) At this point our enemy event should look like this: ![](/gdevelop5/tutorials/create-rotate-move-enemies-event.png) - -If we run the preview now, our enemies should move and rotate toward the turret. ![](/gdevelop5/tutorials/turret-screenshot-enemies-moving.png) - -### Adding explosions - -It time to destroy the tanks. The first thing we want to do is create an explosion in position of the tanks when they are collided with the bullet. So let add a new sprite object, name it explosion and add all the images to an animation beginning with Explosion_ ![](/gdevelop5/tutorials/select-all-explosion-images.png) - -After all the images are added to the animation, set the time between the images to 0.01 seconds. ![](/gdevelop5/tutorials/explosion-animation-speed.png) - -Save it by clicking Apply. - -Next, we want to create the explosion when the bullet is in collision with the enemy. Let add a new blank event and add the condition Common conditions for all objects \> Collision \> Collision ![](/gdevelop5/tutorials/collision-check-event.png) And on the right side for the first parameter select bullet and the second parameter select enemy ![](/gdevelop5/tutorials/collision-between-object-condition-parameters.png) - -When it done, let add an action to create the explosion object just the way we have created the bullets and the enemies before but for X and Y position let use the expression enemy.X() and enemy.Y() which is going to get the X and Y position of the enemy object that is in collision with the bullet. ![](/gdevelop5/tutorials/create-explosion-event-parameters.png) - -Finally, add the action after creating the explosion Common actions for all objects \> Object \> Delete an object and on the right side for parameter select the object enemy as we want to delete the enemy. Add the same action again, to also delete the bullet right after the enemy is deleted. At this point our event should look like this ![](/gdevelop5/tutorials/enemy-moving-rotating-exploding.png) - -If we run a preview now, we should notice a few problems. Our explosion objects are not created exactly in the position of the enemy and once it created the explosion object remain in the scene. To solve the second problem, let delete the explosion object after the animations is finished. Add a new empty event and the condition Sprite \> Animations and Images \> Animation finished ![](/gdevelop5/tutorials/animation-finished-event.png) For the parameter on the right select the explosion object as we want to do something if the animation of the explosion object is finished. ![](/gdevelop5/tutorials/check-animation-finished-event-parameter.png) And what we want to do is delete the explosion object so next let add the action, delete the explosion object. - -To solve the first problem we need to understand what is the cause of the problem. When we create the explosion object by using the expression enemy.X() and enemy.Y() we are creating the objects at the origin point of the enemy object which is the top left corner of the enemy and we also creating the explosions from their origin point which is the top left corner of the explosion object. - -To solve the problem, what we need to do is, change the position of the Origin point of the explosion to be in the middle of the object. Let edit the explosion object by right clicking the explosion object and select Edit object from the list. In the next window, select EDIT POINTS. Next we want to change the X and Y position of the Origin point to 120 which is right in the middle of the image ![](/gdevelop5/tutorials/change-origin-point-position.png) - -Next, what we want to do, instead of creating the explosion object at the Origin point of the enemy, we want to create the object at the Centre point. So let change the expression in the create explosion action from enemy.X() to enemy.PointX(Centre) and form enemy.Y() to enemy.PointY(Centre) ![](/gdevelop5/tutorials/create-explosion-new-expression.png) - -If we run a preview now, our enemies should explode and it should also look right. ![](/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png) - -### Adding more explosions and a Game Over - -Until now, the player could not die. We want the player's turret to be destroyed when an enemy tank is hitting it. First, add a new event, and do as we did for the event used to destroy the enemies: Add a condition testing for a collision between a tank and the turret. Then create an explosion at the turret position. Finally, add an action to destroy the turret: ![](/gdevelop5/tutorials/delete-turret-on-collision-event.png) - -It would be also interesting to display a “Game Over” text when the turret is destroyed: Add an object to the object list. This time, choose a Text object and name it GameOver. ![](/gdevelop5/tutorials/select-text-object-from-list.png) - -Edit the object by right clicking on the object and and select Edit object from the list. Let change the text to Game Over, the text color to red and the text size to 40. ![](/gdevelop5/tutorials/edit-text-object.png) Finally, let add a text object to our scene. - -What we want to do next, is hide the text object and display it if there is no turret in the scene meaning the turret is destroyed. Let add a new blank event and add the condition Scene \> At the beginning of the scene ![](/gdevelop5/tutorials/at-the-beginning-of-the-scene-condition.png) - -This condition has no parameters because the only thing it does is execute the action only once at the beginning of the scene. Next, add the action to the same event Common Actions for all objects \> Visibility \> Hide ![](/gdevelop5/tutorials/hide-object-event.png) For parameter select the GameOver object as we want to hide this object ![](/gdevelop5/tutorials/hide-object-event-parameter.png) - -Now what we want to do is show the text object if there is no turret in the scene Add a new empty event and add the condition Common conditions for all objects \> Objects \> Objects count ![](/gdevelop5/tutorials/objects-count-condition.png) - -For the first parameter on the right side select the turret object, for sign of test select the equal sign and for value of test enter 0 as we want to test if the number of turret in the scene is 0. ![](/gdevelop5/tutorials/object-count-condition-parameters.png) - -And what we want to do is show the text GameOver if there is no turret in the scene, so add the action Common action for all objects \> Visibility \> Show and for parameter we want to select the GameOver object. ![](/gdevelop5/tutorials/destroy-turret-event.png) - -Finally, an interesting effect is to stop the game and display Game Over with a little delay. Add a second condition Timers and time \> Value of a timer for time parameter enter 0.1 and for name parameter enter "GameOver". Then, add a second action: Timers and time \> Change time scale and enter 0 as parameter to stop the game and display the Game Over text after 0.1 seconds. - -This is what all the events should look like at this point. ![](/gdevelop5/tutorials/all-events.png) You can preview the game and should see that once the turret is destroyed, with a little delay the Game Over text is displayed and the game is stopped. ![](/gdevelop5/tutorials/gameover-screenshot.png) - -### Optimizing the game - -When a bullet get outside the screen, we no longer need that bullet but we still apply movement to it and we are checking collision between the bullet and the tank. Every device has limited resources such as memory and processing power and we are wasting this valuable resources that we need to address otherwise our game may slow down, crash and become unplayable when it rich the limit of the device we are playing our game on. You want your game to be playable on as many devices as possible so you always need to optimize your game and one way to do that is to delete objects that no longer required in our game and this way limit the amount of memory and processing power used by the game. - -We could add an event to destroy the bullets when they are too far from the turret, that is quite easy. But we can also use a behavior. A behavior in GDevelop is adds a certain behavior and feature to an object, in this case we are going to add the Destroy outside screen behavior to the bullets so they get destroyed outside the screen. - -Make a right click on the object in the object list and choose Edit object from the list. In the next window on the top, click the Behaviors tab, this tab going to display all the behaviors we have added to our object. It is empty now. ![](/gdevelop5/behaviors-tab.png) - -Click on the add behavior button ![](/gdevelop5/add-behavior-button.png) - -Next select from the list the Destroy outside screen behavior ![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -Next you are going to see the behavior is added to the list. Normally if the behavior has any parameters it is also display here so you can change it, but this behavior has no parameters as the only think it does is destroy the object when it outside the screen. Click Apply and we are done. - -If you run the preview now, probably you won't notice any difference as the game is very simple and you most likely using a device with at least 2GB of RAM and a dual core CPU. So there is plenty of resources for our simple game but in case we would create hundreds and thousands of bullets that you are free to try you may notice a little slow down after a while without destroying them. - -### Adding a background - -One last thing to make the game good looking is to add a background. - -Add a Sprite object, name it background and add the background.jpg image to the object. Next, you can add the object to the scene as usual and make sure it fills the entire scene. To make it easier, you can enable the grid using the button on the top and it should help with positioning the object. ![](/gdevelop5/toggle-grid-button.png) But you may notice the background object cover all the other objects, to solve this problem we need to change the Z-order of the object. While the background object is selected, on the left you should notice the object properties. In case you have closed this tab, you can re-open it using the button on the top. ![](/gdevelop5/object-properties-button.png) We can change all kind of properties here such as the positon, angle and size of the object but what we are interested in is the Z-order. ![](/gdevelop5/objects/object-zorder-properties.png) Change the value of the Z-order to a low number, in this case we need a negative number something like - 1. The reason for the negative value is that when we are creating the bullets, enemies and explosions we are creating them at Z-order 0 by default and so we need to position the background below 0 otherwise we won't see anything but the turret in our game. An other way to fix it is to tell GDevelop to position the tanks and explosions and bullets on a higher Z-order so we can position the background at 0 but it is something that you the developer need to decide for your self how you want to do it. Every problem can have number of different solutions. - -And we are done. The game is complete and ready to be shared. - -### Add comments - -So, our game is done and playable but what if you want to share the source with someone else? Let say you are working in a team and someone else would like to make modifications to the game. How that person know where to look for the events for enemies, bullets, the turret? Of course it may sound silly to you as most of the events in GDevelop are self explaining and our game is simple enough to see it through but imagine the situation you have a game made out of hundreds and thousands of events. This is where comments come in handy as we can leave reminders in our game for others and also for our self. Trust me, even though you are the one who made it, in a big complex game, even you won't remember where to find different things especially months later. So always use comments regardless how small or big your project is. - -To add comments, you can simply click the add comment button on the top. ![](/gdevelop5/add-comment-button.png) After you should see a yellow box in the events editor, by clicking in the box you can start writing a comment ![](/gdevelop5/tutorials/comment.png) - -You can change the position of each event and comment by moving the mouse over the blue edge on the left and drag it up and down. Once you done it, you should have something like this: ![](/gdevelop5/tutorials/all-events-with-comments.png) - -### Let's discover GDevelop by yourself - -You can browse the other [](/gdevelop5/tutorials) and read the [](/gdevelop5/getting_started) page. There is also lots of examples and templates bundled with GDevelop and you can find more by visiting: [gametemplates.itch.io](https://gametemplates.itch.io) And you can also ask questions on the [official forum](http://forum.compilgames.net/) diff --git a/docs/fr/gdevelop5/tutorials/breakout.md b/docs/fr/gdevelop5/tutorials/breakout.md deleted file mode 100644 index b15b71b0ba..0000000000 --- a/docs/fr/gdevelop5/tutorials/breakout.md +++ /dev/null @@ -1,650 +0,0 @@ ---- -title: Comment faire un jeu de casse-briques ---- -# Comment faire un jeu de casse-briques - -!!! warning - - Avant de commencer ce tutoriel, vous devriez lire [Commencer](/fr/gdevelop5/getting_started) et [Concepts de base pour créer un jeu](/fr/gdevelop5/tutorials/basic-game-making-concepts) pour avoir un aperçu de GDevelop et une compréhension des principaux concepts. - -Avec ce tutoriel, vous apprendrez quelques tâches de base dans GDevelop tout en créant un jeu amusant. Comme dans le jeu d'arcade classique Breakout, vous allez créer un ensemble de briques qui peuvent être brisées par une balle rebondissante. Le joueur contrôle la balle avec une raquette - une fois que la balle est tombée, c'est la fin du jeu. - -![](/gdevelop5/tutorials/breakout-game/breakout_game_shot.png) - - ----- - -## Créer un nouveau jeu - -Cliquez sur **Create a new project** sur la page d'accueil. Faites défiler vers le bas et choisissez un dossier pour votre projet, puis sélectionnez **Empty game**. - -## Ajouter des ressources de jeu - -!!! tip - - Vous rencontrerez souvent le terme " ressources" lorsque vous travaillerez avec GDevelop. En langage de développement de jeux vidéo, les _ressources_ sont les fichiers qui constituent le contenu du jeu - des choses comme les personnages, les plateformes, les fichiers audio, etc. - -Pour un jeu de casse-briques, vous aurez besoin des ressources suivantes : - - * Fichier image d'une balle - * Fichier image d'une raquette - * Fichier image d'une barrière - * Fichiers d'images de différentes briques - -Téléchargez-les en cliquant sur le lien ci-dessous et extrayez les fichiers dans votre dossier de projet. (Merci à Eric Matyas de soundimage.org pour l'image de la barrière !) -http://www.wiki.compilgames.net/lib/exe/fetch.php/gdevelop5/tutorials/breakout-game/breakout-images.zip - - ----- - -## Ajouter une nouvelle scène - -Les _scènes_ sont les écrans de votre jeu. Par exemple, les différents niveaux d'un jeu sont souvent créés comme des scènes différentes, tout comme les menus de démarrage ou de pause. - -Les scènes contiennent des _objets_ affichés à l'écran en tant que contenu du jeu. Chaque objet que vous placez sur une scène est appelé une _instance_. Votre jeu de casse-briques aura plusieurs instances de l'objet brique sur une scène de niveau de jeu. Les scènes contiennent également des _événements_ - des actions qui se produisent dans des conditions spécifiques - pour animer la scène. - -Pour ajouter une nouvelle scène : - - - Dans le panneau **Project** sur la gauche, cliquez sur **+** pour ajouter une scène. - -![](/gdevelop5/tutorials/breakout-game/newscene.jpg) - - - Une nouvelle scène est ajoutée à la liste. Cliquez sur **NewScene** pour l'ouvrir. - -![](/gdevelop5/tutorials/breakout-game/blank_scene.jpg) - - ----- - -## Créer l'objet raquette -Commencez par ajouter la raquette à la scène. Le joueur déplace cette raquette en ligne droite vers la gauche et vers la droite afin de faire rebondir la balle et d'éviter qu'elle ne tombe hors du jeu. - - - Dans le panneau **Objects** sur la droite, cliquez sur **+** pour ajouter un objet. - -![](/gdevelop5/tutorials/breakout-game/add-object.jpg) - -Une fenêtre apparaîtra, affichant les différents types d'objets que vous pouvez ajouter. Chaque type d'objet possède son propre ensemble de caractéristiques. - -![](/gdevelop5/tutorials/object_types.jpg) - - - Pour la raquette, vous avez besoin du type d'objet Sprite. Cliquez sur **Sprite**. -!!! tip - - Les _Sprites_ sont des objets animés qui sont utilisés pour de nombreux éléments de jeu courants (joueurs, plateformes, ennemis, briques, etc.). - -Le nouvel objet est ajouté à votre scène et la boîte de dialogue de l'éditeur d'objet s'ouvre. - -![](/gdevelop5/tutorials/empty_object_editor.jpg) - -Pour l'instant, votre objet sprite n'a pas d'animations, ni d'images associées. - - - Cliquez sur **+** pour ajouter une animation. - - Cliquez sur **+** dans la vignette vierge pour ajouter une image à l'animation. - - Sélectionnez l'image appelée "paddle.png" dans votre dossier de projet et cliquez sur **Ouvrir**. L'image est ajoutée à l'objet. - -![](/gdevelop5/tutorials/paddle_animation.jpg) - - - - Dans le champ **Object Name**, tapez **Paddle** pour renommer votre objet. - - - Cliquez sur **Apply** pour enregistrer et fermer l'éditeur. - -!!! warning - - Les noms d'objets sont sensibles à la casse, tout comme les autres éléments de GDevelop. Soyez cohérent dans votre dénomination pour éviter les erreurs fréquentes comme taper "Paddle" quand vous voulez dire "paddle". Il en va de même pour les noms d'animation comme "Run" ou "run" - peu importe la convention de nommage que vous utilisez tant que vous êtes cohérent. - - ----- - -### Ajouter l'objet raquette à la scène - -Pour afficher la raquette dans votre jeu, vous devez l'ajouter à votre scène. Comme une seule raquette est nécessaire, on l'appelle une instance _unique_. D'autres objets, comme les briques, auront plusieurs instances dans votre scène. - - - Pour ajouter la raquette à la scène, cliquez et faites-la glisser du panneau **Objets** vers la scène. Placez-la près du fond. - -![](/gdevelop5/tutorials/paddle_drag.gif) - ----- - -## Créer l'objet barrière - -Ensuite, vous ajouterez une barrière visuelle qui apparaîtra pour empêcher la balle de rebondir sur l'écran. La barrière sera faite avec un sprite en mosaïque. Les sprites en mosaïque sont des objets répétables et évolutifs, utiles pour créer des plateformes, des murs et d'autres objets inanimés. - -Pour créer l'objet barrière : - - - Dans le panneau **Objects** à droite, cliquez sur **+** pour ajouter un objet. - - Cliquez sur **Tiled Sprite**. - - Dans la boîte de dialogue **Object Editor**, cliquez sur **+** pour ajouter une animation. - - Cliquez sur **+** dans la vignette vierge pour ajouter une image. - - Sélectionnez "barrier.jpg" dans le dossier de votre projet et cliquez sur **Open**. - - Dans le champ **Object Name**, renommez votre objet "Barrier". - - Cliquez sur **Apply** pour enregistrer et fermer l'éditeur d'objet. - ----- - -### Ajouter l'objet barrière à la scène - -Vous devrez ajouter trois instances de votre objet barrière à votre scène - une barrière gauche, une barrière droite et une barrière supérieure. La taille par défaut de la fenêtre du jeu est de 800 x 600 pixels, ce qui correspond au contour gris de votre vue de la scène. Créez votre barrière légèrement à l'intérieur de ces limites. - -!!! note - - Déplacez et redimensionnez les objets avec précision en utilisant le **panneau des propriétés** qui s'ouvre lorsque vous cliquez sur une instance d'objet. - - - - Glissez et déposez la première instance de la barrière sur la scène. - - Cliquez sur la barrière. Redimensionnez-la à 15 x 585 avec le panneau Propriétés ou en faisant glisser la poignée en bas à droite. Placez-la sur le côté gauche de l'écran à (15, 15). - - Créez une barrière correspondante sur le côté droit et positionnez-la à (770,15). - - Ajoutez une dernière barrière en haut pour relier les deux. Redimensionnez-la à 770 x 15, et positionnez-la à (15, 15). - -![](/gdevelop5/tutorials/breakout-game/barriers_added.jpg) - ----- - - -## Faire bouger la raquette - -Le joueur contrôlera la raquette en utilisant les flèches gauche et droite du clavier. Vous pouvez créer ces contrôles à l'aide d'_événements_ (actions qui se produisent si les conditions sont vraies). - -Créez un événement pour lequel si le joueur appuie sur la flèche gauche du clavier, la raquette se déplace vers la gauche : - - - Cliquez sur l'onglet **NewScene (Events)** pour ouvrir l'**Events Editor**. - - Cliquez sur **Add a new empty event** ![](/gdevelop5/tutorials/breakout-game/empty_event_button.jpg). - - Cliquez sur **Add condition**. -![](/gdevelop5/tutorials/breakout-game/add-condition.jpg) - - - Cliquez sur **Keyboard > Key pressed**. -![](/gdevelop5/tutorials/breakout-game/keyboard-key-pressed.jpg) - - - Dans le champ **Key**, tapez **Left** et cliquez sur **OK**. Cette condition est vraie si le joueur appuie sur la flèche gauche du clavier. - -Vous devez maintenant ajouter une action correspondante à la condition. La raquette doit se déplacer vers la gauche sur un axe horizontal si la condition est remplie. - -!!! tip - - Pour déplacer des objets avec une force appliquée, vous devez spécifier un angle. L'image ci-dessous illustre comment GDevelop comprend l'angle de rotation. - Sur un axe horizontal, la gauche est de 180°, la droite est de 0°. - ![](/gdevelop5/tutorials/breakout-game/angles.png) - - - Cliquez sur **Add action**. - - - Cliquez sur **Common actions for all objects > Movement > Add a force (angle).** - - - Sélectionnez **Paddle** dans le champ **Object**. - - - Dans le champ **Angle**, tapez **180**. - - - Dans le champ **Speed (in pixels per second)**, tapez **300**. - - - Cliquez sur **Instant**. - - - Cliquez sur **OK**. - -![](/{ /gdevelop5/tutorials/breakout-game/add_force_to_paddle.jpg) - -!!! tip - - C'est le bon moment pour sauvegarder votre travail. Prenez l'habitude de sauvegarder régulièrement. Vous pouvez appuyer sur **Ctrl+S** pour sauvegarder votre jeu, ou utiliser votre souris et aller sur **File>Save**. - ----- - - -Utilisez la fonction de prévisualisation pour vérifier votre travail. Cliquez sur le bouton **Launch a preview of the scene** ![](/{/gdevelop5/tutorials/breakout-game/preview-button.jpg) - -Appuyez sur votre flèche gauche pour déplacer la raquette. Vous verrez que la raquette ne s'arrête pas lorsqu'elle atteint la barrière - elle continue juste hors de l'écran. Vous pouvez y remédier en fermant la fenêtre de prévisualisation et en ajoutant une autre condition au mouvement de la raquette. - -Pour ajouter une autre condition pour arrêter la raquette : - - - Dans le même condition, sous votre première condition, cliquez sur **Add condition**. - - - Cliquez sur **Common conditions for all objects > Position > Compare X position of an object**. - - - Dans le champ **Objet**, sélectionnez **Paddle**. - - - Dans le champ **Sign of the test**, sélectionnez **> (greater than)**. - - - Dans le champ **X Position**, saisissez la coordonnée X du côté droit de la barrière gauche. Dans cet exemple, il s'agit de 30. - - - Cliquez sur **OK**. - -![](/gdevelop5/tutorials/breakout-game/x_position.jpg) - - -Prévisualisez à nouveau votre jeu. La raquette doit s'arrêter au moment où elle heurte la barrière de gauche. - -Vous devez maintenant créer le même événement pour le côté droit. Essayez-le vous-même avant de lire le processus ci-dessous. - - * Cliquez sur **Add a new empty event**. - * Cliquez sur **Add condition**. - * Cliquez sur **Keyboard > Key pressed**. - * Dans le champ **Key**, tapez **Right**. - * Cliquez sur **OK**. ----- - - * Cliquez sur **Add action**. - * Cliquez sur **Common actions for all objects > Movement > Add a force (angle).** - * Dans le champ **Object**, sélectionnez **Paddle**. - * Dans le champ **Angle**, tapez **0**. - * Dans le champ **Speed (in pixels per second)**, tapez **300**. - * Dans le champ **OK**, tapez **OK**. ----- - - * Cliquez sur **Add condition**. - * Cliquez sur **Common conditions for all objects > Position > Compare X position of an object**. - * Dans le champ **Object**, sélectionnez **Paddle**. - * Dans le champ **Sign of the test**, sélectionnez **< (less than)**. - * Dans le champ **X position**, saisissez la coordonnée X du côté gauche de la barrière droite. Dans cet exemple, il s'agit de 770. - * Cliquez sur **OK**. - - -Prévisualisez votre jeu pour vous assurer qu'il fonctionne. - -!!! tip - - Trouvez-vous que votre raquette passe toujours la barrière de droite ? C'est parce que GDevelop utilise le point le plus haut à gauche d'un objet pour comparer les positions X. Une façon simple de résoudre ce problème est de soustraire la largeur de la raquette de la coordonnée X de votre barrière. Dans notre exemple, la raquette a une largeur de 58 px, donc la nouvelle position X pour arrêter la raquette sur le côté droit devrait être **< 712** (770 - 58). Modifiez-la maintenant. - - ----- - - -## Ajouter des commentaires dans l'éditeur d'événements -Lorsque vous travaillez dans votre éditeur d'événements, il est bon d'ajouter des commentaires pour chaque série d'événements. Vous pourrez trouver et comprendre rapidement vos événements au fur et à mesure de l'évolution de votre jeu si vous les commentez au fur et à mesure de votre travail. - - - Pour ajouter une ligne de commentaire, cliquez sur **Add a comment**. ![](/gdevelop5/tutorials/breakout-game/add_a_comment.jpg) - - - Saisissez le texte de votre commentaire et utilisez la barre bleue à gauche du commentaire pour le faire glisser et le déposer où vous le souhaitez. - -![](/gdevelop5/tutorials/breakout-game/moved_comment.jpg) - - ----- - - -## Bougez la balle - Partie 1 - -La prochaine étape consistera à ajouter l'objet en forme de balle à la scène. Comme vous l'avez fait avec la raquette, ajoutez l'objet balle comme un sprite en utilisant ball-1.png comme animation. Glissez et déposez la balle juste au-dessus de la raquette dans la scène. - -Lorsque vous pensez au jeu, la balle devra faire quatre choses : - - * Se déplacer lorsque le joueur commence le jeu - * Rebondir lorsqu'elle entre en collision avec la raquette ou avec la barrière - * Casser les briques et rebondir lorsqu'elle entre en collision avec des briques - * Fin du jeu quand elle tombe de l'écran sous la raquette - - -### Mettre la balle en mouvement - - -Pour faire bouger la balle lorsque le joueur appuie sur la barre d'espace pour démarrer : - - - * Dans l'onglet **NewScene (Events)**, cliquez sur **Add a new empty event**. - - * Cliquez sur **Add condition**. - - * Cliquez sur **Keyboard > Key pressed**. - - * Dans le champ **Key**, tapez **Space** et cliquez sur **OK**. - - -![](/gdevelop5/tutorials/breakout-game/space_bar.jpg) - ----- - - * Cliquez sur **Add action**. - * Cliquez sur **Common actions for all objects > Movement > Add a force (angle)**. - * Dans le champ **Object**, sélectionnez **Ball**. - * Dans le champ **Angle**, tapez **-45+RandomInRange(-5, 5)**. Cela lancera la balle à un angle de -45 degrés, avec une variation aléatoire supplémentaire de 5 degrés dans les deux sens pour ajouter un défi au joueur. - -!!! tip - - Vous n'avez pas besoin de mémoriser toutes les expressions. Vous pouvez ouvrir l' **Éditeur d'expressions** pour vous aider à remplir les champs. ![](/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg) Dans ce cas, vous pourriez taper **-45** dans le champ **Angle** puis cliquer sur **Expression Editor** et rechercher par **Random**. L'expression **Random integer in range** avec une valeur minimale de -5 et une valeur maximale de 5 générera RandomInRange(-5, 5) dans votre champ. Vous pouvez l'utiliser dans votre calcul de vitesse comme vous le souhaitez. - - * Dans le champ **Speed (in pixels per second)**, tapez **300**. Ajustez cela comme vous le souhaitez ; plus le chiffre est élevé, plus l'objet est rapide. - * Cliquez sur **Permanent**, car vous voulez que la balle continue à se déplacer tout au long du jeu. - * Cliquez sur **OK**. - -![](/{ /gdevelop5/tutorials/breakout-game/ball-start-movement.jpg) - -C'est le bon moment pour ajouter un commentaire, enregistrer et prévisualiser votre jeu. La balle doit se déplacer lorsque vous appuyez sur la barre d'espace. - - ----- - - -### Faire rebondir la balle sur la barrière et la raquette - -Pour une bonne jouabilité, votre balle doit rebondir de manière réaliste chaque fois qu'elle entre en collision avec la barrière, la raquette ou une brique. GDevelop a un comportement de rebond facile que vous pouvez appliquer à n'importe quel objet pour simuler un rebond réel. - -#### Ajouter un comportement de rebond - -Pour ajouter un comportement de rebond à votre objet balle : - - * Dans l'onglet **NewScene**, cliquez sur **⋮** à côté de votre objet "Balle" et cliquez sur **Edit object**. - * Cliquez sur l'onglet **Behaviors**. - * Cliquez sur **+** pour ajouter un nouveau comportement à l'objet. - * Le comportement de rebond n'est pas un comportement installé, vous devez donc le trouver. Cliquez sur l'onglet **Recherche de nouveaux comportements**. - * Dans la liste du bas, sélectionnez **Bounce** et cliquez sur **Install in project**. -![](/gdevelop5/tutorials/breakout-game/add_bounce_behaviour.png) - - * Vous pouvez maintenant ajouter le nouveau comportement à l'objet. Faites défiler vers le bas, sélectionnez **Bounce**, et cliquez sur **Apply**. - -![](/gdevelop5/tutorials/apply_bounce.png) - -Votre balle est maintenant prête à rebondir ! - ----- - -#### Ajouter les événements de collision - -Ensuite, ajoutez des événements pour faire rebondir la balle sur la barrière et la raquette. Il est temps d'ajouter une condition que vous utiliserez beaucoup dans la création de jeux : une condition de _collision_. - -Pour créer une condition de collision entre la balle et la barrière : - - * Dans l'onglet **NewScene (Events)**, cliquez sur **Add a new empty event**. - * Cliquez sur **Add condition**. - * Cliquez sur **Common conditions for all objects > Collision > Collision**. - * Dans le premier champ **Object**, sélectionnez **Ball**. Dans le deuxième champ **Object**, sélectionnez **Barrier**. - * Cliquez sur **OK**. - ----- - -Pour ajouter l'action qui fait que la balle rebondit sur la barrière en cas de collision : - - * Cliquez sur **Add action**. - * Cliquez sur **Bounce > Bounce > Bounce off another object**. - * Dans le champ **Object**, sélectionnez **Ball**. - * Dans le champ **Object to bounce on**, sélectionnez **Barrier**. - * Cliquez sur **OK**. - -![](/gdevelop5/tutorials/breakout-game/add_bounce_action_in_event.png) - ----- - -Vous devez maintenant faire exactement la même chose pour faire rebondir la balle sur la raquette. Créez un nouvel événement, définissez votre condition de collision et ajoutez l'action pour faire rebondir la balle. - -!!! tip - - Vous pouvez faire un clic droit et copier une condition ou une action précédente, puis faire un clic droit pour la coller dans un nouvel événement. C'est un moyen facile d'économiser du temps et des efforts, surtout lorsque vous avez affaire à des événements similaires ! - - -Enregistrez et prévisualisez votre jeu. Ça commence à devenir amusant... - - ----- - -## Ajoutez les briques - - -Votre balle doit casser quelque chose ! La prochaine étape consistera à ajouter des briques à la scène. Pour en apprendre plus sur les calques externes, ce tutoriel fera apparaître les briques dans différents calques. - -Pour ajouter vos briques : - - * Cliquez sur l'onglet **NewScene** pour accéder à l'éditeur de scène. - * Dans le panneau **Object**, cliquez sur **+** pour ajouter un nouvel objet. - * Nommez cet objet **Brick**. Donnez-lui trois animations séparées en utilisant les fichiers brick-green.png, brick-red.png et brick-yellow.png de votre dossier de projet. Nommez les animations en conséquence. - * Cliquez sur **Appliquer**. - -![](/gdevelop5/tutorials/brick_colours.png) - ----- - -### Créer des mises en page externes - -Vous pouvez utiliser des mises en page externes pour créer différents niveaux avec différentes formations de briques. - Une _mise en page externe_ est une couche d'objets qui est créée en dehors d'une scène, mais qui peut être insérée dynamiquement à n'importe quel endroit. - -Pour créer une mise en page externe : - - * Cliquez sur le bouton **Project manager** en haut à gauche. ![](/{/gdevelop5/tutorials/breakout-game/project_manager.jpg) - * Cliquez sur **External layouts** et **+** pour ajouter une mise en page externe. - * Cliquez sur **⋮** à côté de votre nouvelle mise en page et renommez-la **Layout1**. - -![](/gdevelop5/tutorials/breakout-game/external_layout_add.png) - - * Cliquez sur **Layout1**. Il vous sera demandé de choisir la scène dans laquelle il sera inclus. Choisissez **NewScene** - c'est la scène où se déroule tout le jeu. Un nouvel onglet s'ouvrira et ressemblera à votre NewScene existante. - * Ajoutez des briques dans la configuration de votre choix. Amusez-vous bien avec cette partie - soyez créatif ! - -!!! tip - - Pour accélérer les choses, cliquez ou sélectionnez des objets puis maintenez la touche Ctrl enfoncée, cliquez et faites glisser pour reproduire les instances à l'écran. En maintenant Ctrl+Maj enfoncé, les nouvelles instances restent sur le même axe X ou Y. - - - ![](/gdevelop5/tutorials/breakout-game/duplating_objects.gif) - - - * Créez deux ou plusieurs nouvelles mises en page et nommez-les Layout1, Layout2, etc. - -!!! warning - - Suivez la convention d'appellation Layout1, Layout2, etc. Elle sera bientôt liée à une variable. - - ----- - -### Faire apparaître une disposition aléatoire des briques - -Pour faire apparaître une disposition aléatoire au début de chaque scène, ajoutez d'abord votre condition : - - * Cliquez sur l'onglet **NewScene (Events)** pour retourner dans votre éditeur d'événements. - * Cliquez sur le bouton **Add a new empty event** (Ajouter un nouvel événement vide). - * Cliquez sur le bouton **Add condition**. - * Cliquez sur **Scene > At the beginning of the scene** (Scène > Au début de la scène). - - ---- - -Plutôt que d'attacher des actions à cette condition, vous allez maintenant créer des sous-événements qui se produisent au début de la scène. - -Pour commencer, créez une nouvelle variable de scène appelée Random_layout : - - * Cliquez sur un espace vide dans l'événement que vous venez de créer et cliquez sur le bouton **Add a sub-event to the selected event**. ![](/gdevelop5/tutorials/breakout-game/subevent_button.jpg) - * Dans le nouveau sous-événement, cliquez sur **Add action**. - * Cliquez sur **Variables > Value of a scene variable**. - * Dans le champ **Variable**, tapez **Random_layout** pour créer une nouvelle variable de scène. - * Dans le champ **Modification's sign**, sélectionnez **= (set to)**. - * Dans le champ **Valeur**, tapez **Random(2)+1**. - * Cliquez sur **OK**. - -![](/gdevelop5/tutorials/breakout-game/modify_scene_variable_value.jpg) - -!!! tip - - Essayez d'utiliser l'éditeur d'expression pour créer vos expressions. ![](/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg) - - Plus vous jouerez avec les expressions, plus vous comprendrez la logique qui les sous-tend. N'ayez pas peur d'expérimenter ! - ----- - -Vous allez maintenant associer votre numéro de variable au nom de la mise en page externe Layout. Ce nom déterminera la mise en page qui apparaîtra à l'écran. (C'est pourquoi il était important d'être cohérent en les nommant plus tôt). - -Pour ajouter une disposition aléatoire de briques au début de la scène : - - * Ajoutez un autre sous-événement pour le début de la scène, puis cliquez sur **Add action**. - * Cliquez sur **External layouts > Create objects from an external layout**. - * Dans le champ **Name of the external layout**, tapez **" Layout " + ToString(Variable(Random_layout))**. Cela ajoutera aléatoirement un des modèles externes à la scène. - * Cliquez sur **OK**. - -![](/gdevelop5/tutorials/breakout-game/random_layout_selection.jpg) - - ----- - -Vous pouvez ajouter de l'intérêt en rendant la couleur de la brique aléatoire au début de chaque scène. - -Pour choisir une couleur de brique aléatoire : - - * Ajoutez un autre sous-événement pour le début de la scène, puis cliquez sur **Add action**. - * Cliquez sur **Variables > Value of a scene variable**. - * Dans le champ **Variable**, tapez **Brick_colour**. - * Dans le champ **Signe de modification**, sélectionnez **= (set to)**. - * Dans le champ **Value**, tapez **Random(2)**. - * Cliquez sur **OK**. - -![](/gdevelop5/tutorials/modify_scene_variable_value2.png) - - ----- - - * Ajoutez un dernier sous-événement pour le début de la scène, puis cliquez sur **Add action**. - * Cliquez sur **Sprite > Animations et images > Change the animation**. - * Dans le champ **Object**, sélectionnez **Brick**. - * Dans le champ **Modification's sign**, sélectionnez **= (set to)**. - * Dans le champ **Value**, tapez **Variable( Brick_colour)**. - * Cliquez sur **OK**. - -![](/gdevelop5/tutorials/breakout-game/brick_colour_change.jpg) - -Enregistrez et prévisualisez votre jeu. Un joueur verra maintenant une disposition externe choisie au hasard avec des briques d'une couleur aléatoire à chaque fois que le jeu sera lancé. - - ----- - -## Déplacez la balle - Partie 2 -### Faire rebondir la balle sur les briques - -Maintenant que vous avez des briques sur la scène, vous voulez que la balle rebondisse sur les briques lorsqu'elle les frappe. Exactement comme vous l'avez fait avec la raquette et la barrière, vous devrez : - - - Créer un nouvel événement. - - Ajouter une condition de collision entre la balle et la brique. - - Faire rebondir votre balle loin des briques. - - Objects > Delete an object**. - * Dans le champ Objet, sélectionnez **Brick**. - * Cliquez sur **OK**. - -![](/gdevelop5/tutorials/breakout-game/delete_a_brick.jpg) - -Enregistrez et prévisualisez votre jeu. Vous devriez être capable de faire rebondir la balle sur la raquette et de détruire les briques. C'est le bon moment pour vérifier à nouveau votre vitesse - voulez-vous que la balle ou la raquette soit plus rapide ou plus lente ? Si oui, jouez avec vos valeurs de vitesse jusqu'à ce que vous soyez satisfait du jeu. - ----- -## Gagner ou perdre le jeu - -Si le joueur casse toutes les briques, le jeu doit le féliciter en lui offrant la possibilité de jouer à nouveau. Si le joueur rate la balle avec la raquette, il doit dire au joueur qu'il a perdu et lui donner la possibilité de jouer à nouveau. - -### Créer un message de félicitations - -Vous voulez que le message de félicitations soit caché, pour n'apparaître que lorsque toutes les briques ont disparu. - -Pour ajouter un objet texte à la scène : - - * Cliquez sur l'onglet **NewScene**. - * Dans le panneau **Objects**, cliquez sur **+** pour ajouter un nouvel objet et sélectionnez **Text**. - * Dans le champ **Nom de l'objet**, tapez **Congratulations**. - * Dans le champ **Text**, tapez un message de félicitations (par exemple : Félicitations ! Vous avez effacé tous les blocs !). Incluez également une ligne disant au joueur "Appuyez sur Entrée pour rejouer". - * Cliquez sur **Apply**. - -![](/gdevelop5/tutorials/breakout-game/congratulations_message.jpg) - - * Glissez et déposez votre objet Congratulations au milieu de la scène. - - ----- - -Pour cacher votre objet texte au début de la scène : - - * Cliquez sur **NewScene (Events)**. - * Allez à l'événement existant contenant la condition "At the beginning of the scene" et cliquez sur **Add action**. - * Cliquez sur **Common actions for all objects > Visibility > Hide**. - * Dans le champ **Object**, sélectionnez **Congratulations**. - * Cliquez sur **OK**. - -![](/{ /gdevelop5/tutorials/breakout-game/hide_congratulations.jpg) - - ----- - -Pour faire apparaître votre objet texte lorsque toutes les briques sont détruites : - - * Cliquez sur le bouton **Add a new empty event**. - * Cliquez sur **Add condition**. - * Cliquez sur **Common conditions for all objects > Objects > Number of objects**. - * Dans le champ **Object**, sélectionnez **Brick**. - * Dans le champ **Sign of the test**, sélectionnez **= (égal à)**. - * Dans le champ **Value**, tapez **0**. - * Cliquez sur **OK**. - ----- - -S'il y a 0 brique, la balle doit être supprimée et l'objet de félicitations doit être rendu visible. -Ces deux actions sont communes à tous les objets. Ajoutez-les maintenant. - -![](/gdevelop5/tutorials/breakout-game/if_no_bricks.png) - ----- - -Vous voulez également donner au joueur la possibilité de commencer une nouvelle partie : - - * Créer un nouveau sous-événement ![](/gdevelop5/tutorials/breakout-game/subevent_button.jpg) à l'événement que vous venez de créer où le nombre d'objets brique est =0. - * Cliquez sur **Add Condition**. - * Cliquez sur **Keyboard > Key pressed**. - * Dans le champ **Key**, tapez **Return**. (N'oubliez pas que le message de félicitations indique au joueur d'appuyer sur la touche Entrée pour recommencer). - * Cliquez sur **OK**. - ----- - -Ajoutez une action pour revenir à la première scène : - - * Cliquez sur **Add action**. - * Cliquez sur **Scene > Change the scene**. - * Dans le champ **Name of the new scene**, tapez **"NewScene"**. N'oubliez pas les guillemets ! - * Cliquez sur **OK**. - -Maintenant, lorsque le joueur casse toutes les briques, il recevra un message de félicitations et la possibilité de recommencer ! - ----- - -### Créer un message de fin de partie - -Si le joueur rate la balle, la partie est terminée. Tout comme si un joueur gagne, il s'agira de rendre un message visible au moment opportun et de donner au joueur la possibilité de rejouer. - -Tout d'abord, ajoutez un objet texte à la scène qui restera caché à moins que le joueur ne rate la balle. - -Suivez les mêmes étapes que pour créer l'objet Félicitations à l'écran, mais changez le message en "Game Over". Incluez la ligne concernant le fait de recommencer. Appelez cet objet texte **GameOver**. - -Glissez et déposez votre objet GameOver au milieu de la scène. C'est bon s'il est au-dessus de l'objet Congratulations. - ----- - -Ensuite, allez dans l'éditeur d'événements pour cacher votre objet GameOver au début de la scène. - -Suivez les mêmes étapes pour cacher l'objet GameOver que pour l'objet Congratulations. Ajoutez-le comme deuxième action à l'événement. -![](/gdevelop5/tutorials/breakout-game/gameover_hide.png) - ----- - -L'étape suivante consistera à faire réapparaître le message si le joueur rate la balle. Pour ce faire, vous avez besoin d'une condition qui vérifie si la position Y de la balle se trouve en dehors de la fenêtre de jeu. - -Pour ajouter une condition permettant de vérifier si le joueur a manqué la balle : - - * Cliquez sur le bouton **Add a new empty event**. - * Cliquez sur le bouton **Add condition**. - * Cliquer sur **Common conditions for all objects > Position > Compare Y position of an object**. - * Dans le champ **Object**, sélectionnez **Ball**. - * Dans le champ **Sign of the test**, sélectionnez **> (greater than)**. - * Dans le champ **Value**, tapez **600**. (600 est la hauteur de la fenêtre de jeu par défaut, ce qui signifie que la balle est hors écran). - * Cliquez sur **OK**. - -Ajoutez une action correspondante pour rendre l'objet GameOver visible. Vous devez également ajouter un sous-événement qui entraîne la suppression de la balle et le redémarrage du jeu si le joueur appuie sur Entrée. Ajoutez-les maintenant. - -![](/gdevelop5/tutorials/breakout-game/player_misses_ball.png) - - -Enregistrez et prévisualisez votre jeu. - ----- - -#### C'est bon ! Vous avez terminé votre premier jeu de base. - -Maintenant que vous avez appris les bases, essayez de changer les vitesses, la disposition des briques, etc. pour le rendre plus difficile. Vous pouvez ajouter un système de points où les points augmentent avec chaque brique détruite, ou vous pouvez faire en sorte que la balle augmente de vitesse avec chaque scène. Comme le comportement de rebondissement dépend de l'angle et de la vitesse de la force appliquée, vous pouvez aussi vous amuser à jouer avec la forme de la raquette, à ajouter des obstacles plus difficiles, etc. - -Ce serait également un bon exercice d'ajouter des instructions au début de la scène qui disparaissent lorsque le jeu commence (voir la toute première image de ce tutoriel). - -**D'autres tutoriels seront bientôt disponibles, mais en attendant, expérimentez et jouez ! \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/endless-runner.md b/docs/fr/gdevelop5/tutorials/endless-runner.md deleted file mode 100644 index a303a0e365..0000000000 --- a/docs/fr/gdevelop5/tutorials/endless-runner.md +++ /dev/null @@ -1,392 +0,0 @@ ---- -title: Un tutoriel pour débutants de jeu de course infinie ---- -# Un tutoriel pour débutants de jeu de course infinie - -> ![](/gdevelop5/tutorials/endlessrunnergame_intro.png) Ce tutoriel vous aidera à vous familiariser avec le fonctionnement de GDevelop. Dans ce tutoriel, nous allons créer un jeu de course sans fin très basique où **les plateformes sont générées de manière aléatoire** et où le joueur doit se déplacer pour éviter d'être poussé hors de l'écran. Il y a également un **système de score** qui met à jour le score lorsque le joueur est en action. -> -> Pour connaître les bases du fonctionnement du logiciel, vous pouvez vous référer à la page [Commencer](/fr/gdevelop5/getting_started) pour plus d'informations. -> - - -## Télécharger GDevelop - -Si vous n'avez pas encore installé GDevelop, téléchargez-le depuis le site officiel : [GDevelop App](https://gdevelop.io/fr-fr/download/). - -Il est conseillé de toujours vérifier la page ci-dessus pour les dernières versions de GDevelop et de garder le logiciel à jour à tout moment. Une fois que vous avez téléchargé et installé le logiciel, lorsque vous lancez le programme, vous serez accueilli par un écran "Start". - -![](/gdevelop5/tutorials/gdevelopstartscreen.png) - -Pour plus de confort, vous pouvez changer la langue par défaut pour le français. - -## Principaux éléments du jeu - -#### ☆Player Sprite - -![](/gdevelop5/tutorials/p1_stand.png) C'est le personnage principal que l'utilisateur va contrôler. Le sprite joueur doit "sauter" pour éviter les obstacles et rester dans l'écran. Il possède des animations **Idle**, **Run** et **Jump**. - -#### ☆Platformes/Obstacles - -![](/gdevelop5/tutorials/endlessrunnerplatform.png) Ce sont les blocs mobiles que le sprite du joueur doit éviter. Ces blocs seront rencontrés par le joueur de manière aléatoire. - -#### ☆Affichage du score - -Ce bloc de texte met à jour et affiche le score pendant que le Sprite joueur est en action. - -> -> -> #### Télécharger les ressources -> -Vous aurez besoin d'images que vous pourrez utiliser pour créer les personnages, les plateformes et les arrière-plans du jeu. Trouvez toutes les ressources dont vous avez besoin pour ce jeu par ![ici](/gdevelop5/tutorials/endless_runner_resources.rar). - -## Étape 1 : Créer un nouveau projet - -Une fois sur l'écran de démarrage, cliquez sur le bouton "Créer un nouveau projet". - -Une boîte de dialogue "Créer un nouveau jeu" apparaît. - -Vous pouvez choisir de personnaliser l'emplacement de votre projet. - -![](/gdevelop5/tutorials/store_location_for_endless_runner.png) - -Cliquez sur l'option "Choisir un dossier" pour choisir l'emplacement de votre choix. Les fichiers du projet de jeu seront stockés à cet emplacement. - -Ensuite, faites défiler la liste et trouvez l'onglet "Jeu vide". Cliquez dessus pour ouvrir un nouveau projet. - -![](/gdevelop5/tutorials/screeenshot_na_test.png) - -## Etape 2 : Création d'une nouvelle scène - -Un jeu repose sur des scènes pour différents scénarios de jeu. Nous pouvons créer et utiliser plusieurs scènes, mais pour ce tutoriel, nous n'avons besoin que de **1 Scène**. Créons une nouvelle scène. - -![](/gdevelop5/tutorials/new_scene_creation_for_endless_runner.png) - -Cliquez sur la zone où il est indiqué `Cliquez pour ajouter une Scène` pour créer votre première scène vide. - -Vous pouvez personnaliser le nom de votre scène en cliquant sur les trois points à côté de la scène créée et en cliquant sur `Renommer`. - -> Vérifiez que vous avez déjà téléchargé l'archive mentionnée précédemment. Vous en aurez besoin pour les sprites du jeu.tip - -## Étape 3 : travailler sur la nouvelle scène - -Cliquez sur la scène que nous avons créée à l'étape précédente pour ouvrir l' **Éditeur de scène**. C'est ici que nous allons créer les éléments du jeu. - -![](/gdevelop5/tutorials/new_scene_for_endless_runner.png) - -Vous devriez voir l'onglet **Objet** et l'onglet **Propriétés**. ![](/gdevelop5/tutorials/screenshot_20190523182052.png) ![](/gdevelop5/tutorials/screenshot_20190523182628.png) Si par hasard, vous ne voyez pas ces onglets, cliquez sur l'icône affichée à gauche pour ouvrir l'onglet "Objets". De même, cliquez sur l'icône de droite pour ouvrir l'onglet "Propriétés". - -> La dernière version de GDevelop vous avertira si vous essayez de charger une ressource qui n'est pas dans l'emplacement de votre projet de jeu. Veillez à toujours placer vos images dans le même dossier que le jeu (ou un sous-dossier). Sinon, si vous déplacez votre jeu, cela brisera les liens vers les images. Décompressez l'archive fournie dans le dossier du jeu et utilisez ces images. tip - -## Etape 4 : Création d'un sprite de joueur - -Comme mentionné dans la section **Éléments principaux du jeu**, nous avons besoin d'un personnage que l'utilisateur peut contrôler. Notez que, comme il s'agit d'un jeu de course sans fin, nous voulons seulement que le personnage saute pour éviter les obstacles qui se présentent sur son chemin afin de rester en vie. - -![](/gdevelop5/tutorials/screenshot_20190523183140.png) - -Cliquez sur la zone `Ajouter un nouvel objet` dans l'onglet Objets pour créer votre premier objet. Une boîte de dialogue s'ouvre et présente les différents types d'objets. cliquez sur l'onglet "Nouvel objet à partir de zéro". Pour notre personnage, nous avons besoin d'un objet de type **Sprite**, où nous pouvons ajouter des animations pour que le personnage soit **Idle**, **Jump**, ou **Running**. - -![](/gdevelop5/tutorials/screenshot_20190523183646.png) - -En cliquant sur "Sprite(image animée)", une boîte de dialogue permettant de modifier les propriétés de l'objet Sprite apparaît. Nous allons maintenant ajouter des animations pour notre personnage. Pour ajouter votre première animation, cliquez simplement sur le bouton "+Ajouter une animation". - -![](/gdevelop5/tutorials/screenshot_20190523184135.png) - -Un nouvel emplacement Animation vide apparaît. Nous allons maintenant charger nos images Sprite pour créer notre animation. Comme vous pouvez le remarquer, notre animation a un identifiant `0`. Nous pouvons également donner un nom à notre animation. - -Pour notre première animation, nous voulons créer une animation Idle. Cliquez sur le gros bouton **+Ajouter** qui ouvrira une boîte de dialogue pour charger une image. Notez que nous pouvons également ajouter plusieurs images, mais pour cette animation, nous n'en avons besoin que d'une seule. - -Choisissez l'image `p1_stand.png` dans l'archive que vous avez téléchargée et décompressée. Après avoir choisi le fichier, le placeholder de l'animation ressemble maintenant à ceci. - -![](/gdevelop5/tutorials/screenshot_20190523184730.png) - -Notez que j'ai donné à notre objet Sprite le nom "Player". De la même manière, j'ai également attribué un nom à notre animation : " Idle ". L'attribution d'un nom est facultative, mais le fait de nommer les sprites dans votre projet permet de l'organiser et de le rendre plus facile à utiliser. - -Notre première animation est terminée. Maintenant, ajoutons les animations **Jumping** et **Running**. Essayez de le faire en utilisant les images fournies dans l'archive que vous avez téléchargée. Il y aura plusieurs images pour l'animation Running, tandis que l'animation Jumping n'aura qu'une seule image selon le fichier archivé fourni. Une fois que vous aurez terminé les trois animations, cela ressemblera un peu à ceci. - -![](/gdevelop5/tutorials/screenshot_20190523185739.png) - -Comme vous pouvez le voir, l'animation **Run** comporte plusieurs images. ![](/gdevelop5/tutorials/output_xfxzmp.gif) Chaque image a un fichier image séparé. Lorsqu'elles sont exécutées, toutes les images sont lues séquentiellement, créant ainsi une animation en cours. L'animation Run ressemblera à l'action montrée dans l'image de gauche. - -Nous allons maintenant ajouter un **Comportement** à notre Sprite de joueur. Les comportements ajoutent des capacités supplémentaires aux objets. Cliquez sur l'onglet Comportements dans la boîte de dialogue Player Sprite. Créez ensuite un comportement en cliquant sur la zone " Ajouter un comportement à l'objet ". Sélectionnez ensuite le type de comportement **Objet se déplaçant sur des plateformes**. - -![](/gdevelop5/tutorials/screenshot_20190524121809.png) - -Le menu de l'éditeur de comportement va s'ouvrir. Ici, assurez-vous de décocher la fonction **Touches par défaut** pour ce comportement. La propriété des contrôles par défaut ajoute tous les mouvements nécessaires pour un personnage de plateforme, y compris le déplacement à gauche, à droite et le saut. Puisque nous ne voulons pas que notre personnage se déplace à gauche ou à droite, mais que nous avons seulement besoin de l'action Sauter, nous désactivons cette propriété et créons le mouvement Sauter en utilisant les événements. - -![](/gdevelop5/tutorials/screenshot_20190524122246.png) - -Nous avons maintenant terminé de créer notre Sprite de joueur. N'oubliez pas d'activer la fonction **Loop** pour les animations où plusieurs images ont été utilisées, c'est-à-dire pour l'animation Running dans notre cas. Si nous ne la mettons pas en boucle, l'animation sera jouée une fois et s'arrêtera à la dernière image. - -## Étape 5 : Création d'une plateforme - -Une plateforme est un objet avec lequel un personnage peut entrer en collision et/ou sur lequel il peut marcher. Pour notre jeu, la plateforme sera les obstacles que le Sprite du joueur doit éviter. Pour créer un objet Plate-forme, cliquez pour ajouter un nouvel objet dans l'onglet Objets et choisissez un type d'objet **Mosaïque**. Il s'agit d'une image qui se répète comme une mosaïque. - -![](/gdevelop5/tutorials/tiled_sprite_for_endless_runner.png) - -Nous obtenons une boîte de dialogue similaire à celle du Sprite Player que nous avons créé. Cliquez sur la zone "Selectionnez une image" pour choisir l'image de notre plateforme/obstacle. Une fois que vous avez fini de charger l'actif `Platform.png`, la boîte de dialogue ressemblera à ceci. - -![](/gdevelop5/tutorials/screenshot_20190615205900.png) - -Remarquez que j'ai également changé le nom de l'objet par défaut en "Platform". Changez votre largeur par défaut à *193* et votre hauteur par défaut à *40*, pour le moment. Maintenant, nous devons ajouter un **Comportement** pour cet objet, de la même manière que nous avons ajouté un comportement pour notre Sprite de joueur. Allez dans l'onglet Comportements, cliquez pour "Ajouter un comportement à l'objet" et choisissez le type de comportement **Platforme**. - -![](/gdevelop5/tutorials/screenshot_20190524122730.png) - -Cliquez sur **Appliquer**, une fois que vous avez terminé. Il est maintenant temps de placer nos objets créés dans l'espace **Scène**. - -## Etape 6 : Ajout d'objets à la scène - -Glissez et déposez les sprites **Platform** et **Player** de l'onglet Objets et placez-les dans votre scène. - -![](/gdevelop5/tutorials/screenshot_20190523193203.png) - -Voici à quoi ressemble l'espace Scène après que j'ai placé les deux objets. Notez que la bordure noire que vous pouvez voir est la taille de la **Fenêtre de jeu**. Seuls les éléments situés dans cet espace sont visibles par le joueur. Nous pouvons modifier la taille de la fenêtre en allant dans le **Gestionnaire de projet**-\>**Propriétés**, mais pour l'instant, laissons-la telle quelle. - -Cliquez sur l'objet Platform dans l'espace de la scène et faites un **Clic droit**-\>**Copie** ou **Ctrl**+**C** (pour Windows) pour copier l'objet. Nous allons créer plusieurs plateformes pour remplir l'espace de la scène. Après avoir copié, faites **Clic droit**-\>**Coller** pour dupliquer l'objet dans la scène. Faites-le plusieurs fois pour remplir la scène. La scène ressemble maintenant à ceci. - -![](/gdevelop5/tutorials/screenshot_20190523193924.png) - -Nous devons créer quelques Obstacles/Plateformes supplémentaires vers la droite de l'espace de la scène pour une génération aléatoire plus douce des obstacles. Enfin, nous ajoutons une **Skybox** ou un fond pour notre jeu. Il s'agit d'un objet de type **Sprite**. Essayez d'ajouter cet objet par vous-même. L'objet utilisé ici est `background2.png`. La scène ressemble maintenant à ceci. Remarquez les obstacles supplémentaires créés. Pour placer l'image de fond **derrière** tous les autres objets, nous voulons que son **Z-Order** soit minimal. L'ordre Z peut être modifié dans l'onglet **Propriétés** à gauche. - -![](/gdevelop5/tutorials/screenshot_20190523194718.png) - -Maintenant vient la partie la plus intéressante. Il est maintenant temps de rendre notre jeu fonctionnel. Apprenez quelques trucs sur les [événements](http://wiki.compilgames.net/doku.php/fr/gdevelop5/events) avant de passer à l'étape suivante. - -## Étape 7 : créer des événements/ Rendre le jeu fonctionnel - -Les événements sont ce que nous utilisons pour créer les règles de n'importe quel jeu dans GDevelop. C'est ce qui rend GDevelop spécial par rapport aux moteurs de jeu traditionnels. Les événements dans GDevelop vous permettent de programmer visuellement votre jeu sans aucune connaissance ou expérience de programmation, ainsi les personnes de n'importe quel niveau seront capables de créer le jeu réel et de permettre aux joueurs d'interagir avec le jeu. - -![](/gdevelop5/tutorials/screenshot_20190523232323.png) - -![](/gdevelop5/tutorials/screenshot_20190523232911.png) Ceci étant dit, créons notre premier événement. Cliquez sur l'onglet **NewScene(Events)**. Cliquez ensuite sur l'icône affichée à gauche pour créer un **Evénement** vide. - -Pour notre premier événement, nous voulons que notre sprite joueur saute lorsque la touche flèche **Haut** est pressée. Pour ce faire, nous devons ajouter une condition pour détecter si la touche Up est enfoncée ou non. Cliquez sur **Add a condition** et recherchez la catégorie "Keyboard". Choisissez la condition **Key pressed** et faites-lui vérifier la touche Up comme indiqué ci-dessous. - -![](/gdevelop5/tutorials/screenshot_s20190523235134.png) - -Cliquez sur **OK** pour confirmer et nous aurons notre première condition d'événement. Ensuite, nous devons "Ajouter une action" qui aura lieu si la condition est remplie. Nous voulons que notre personnage saute lorsque la condition spécifiée est remplie. Pour ajouter cette action, cherchez et cliquez sur **Comportement de la plate-forme**-\>**Contrôle**-\>**Simuler la pression sur la touche de saut**. - -![](/gdevelop5/tutorials/screenshot_20190524000351.png) - -Notez que l'objet doit être défini sur Player car nous voulons que le joueur effectue l'action. Maintenant, nous voulons également que l'animation de saut soit jouée lorsque le Sprite du joueur saute. Pour ce faire, nous ajoutons une autre action pour la même condition d'événement. Cliquez sur **Ajouter une action**-\>**Sprite**-\>**Animation et images**-\>**Changer l'animation** et définissez-la comme indiqué. Notez qu'au lieu d'utiliser des numéros d'identifiant, vous pouvez également utiliser le nom de l'animation. Pour faire référence aux animations en utilisant leur nom, vous devez utiliser l'option **Changer l'animation (par son nom)**. Le nom doit être entre guillemets. - -![](/gdevelop5/tutorials/screenshot_20190524000821.png) - -![](/gdevelop5/tutorials/screenshot_20190524001313.png) L'onglet Événements ressemblera à quelque chose comme ceci maintenant. - -> Ajouter des **Commentaires** est un bon moyen de garder l'éditeur d'événements organisé. Pour ajouter un commentaire, cliquez sur l'icône affichée à gauche. Les commentaires sont utilisés pour décrire ce qui est vérifié et exécuté dans cet événement particulier pour le débogage plus tard.tip - -![](/gdevelop5/tutorials/screenshot_20190524001533.png) - -![](/gdevelop5/tutorials/screenshot_20190524003448.png) Il est maintenant temps de voir comment l'événement créé fonctionne. Cliquez sur le bouton `Play` pour **Prévisualiser** le projet. Une fenêtre de prévisualisation s'ouvre, dans laquelle nous pouvons tester les différentes fonctions de notre jeu. La fenêtre de prévisualisation nous montre exactement comment le jeu se présente et se comporte lorsqu'il tourne. - -![](/gdevelop5/tutorials/bandicam20190524002201609.gif) Pour l'instant, nous voulons tester l'événement que nous venons de créer, c'est-à-dire faire sauter notre personnage et jouer l'animation de saut en sautant. Utilisez la touche de déplacement vers le haut pour tester l'action de saut. - -Nous pouvons voir notre personnage sauter et l'animation a maintenant changé pour l'animation de saut spécifiée. Notez que le personnage reste dans l'état d'animation de saut même après être revenu au sol. Nous traiterons ce problème lorsque nous créerons d'autres événements. - -## Faire bouger les obstacles - -Pour le deuxième événement, nous allons maintenant faire en sorte que les obstacles/plates-formes se déplacent vers la gauche de l'écran. Pour ce faire, nous devons spécifier une force grâce à laquelle les obstacles se déplacent à une certaine vitesse. Tout d'abord, cliquez pour ajouter un nouvel événement comme vous l'avez fait pour notre premier événement. Il n'est pas nécessaire de spécifier une quelconque condition pour l'instant. Concentrons-nous sur les actions. - -![](/gdevelop5/tutorials/screenshot_20190604123755.png) - -![](/gdevelop5/tutorials/bandicam201905gg24124850768.gif) Pour notre première action, choisissez l'objet **Plateforme** puiscliquez sur l'action **Mouvement**-\>**Ajouter une Force(Angle)**. et attribuez-lui un angle **180** (en spécifiant la direction gauche) et une vitesse **250**. Vous pouvez tester l'action que nous venons de créer en utilisant le bouton Play pour voir un aperçu. Vous pouvez voir les obstacles se déplacer vers la gauche. Remarquez que lorsque le Sprite du joueur entre en contact avec la Plate-forme/Obstacle, il se déplace également (glisse) vers la gauche. Nous ne voulons pas que notre personnage bouge lorsqu'il **est sur le sol** de la plateforme. Notre prochain événement s'occupe de cela. - ------------------------------------------------------------------------- - -Comme mentionné ci-dessus, nous devons résoudre le problème de glissement du Player Sprite. Pour ce faire, nous allons utiliser un nouvel événement. Cliquez pour ajouter un nouvel événement, et "Ajouter une condition", **Comportement de la plateforme**-\>**Options**-\>**Is on floor**. Choisissez l'objet **Player** car c'est ce que nous essayons de vérifier, c'est-à-dire si le personnage "st "sur le sol". - -![](/gdevelop5/tutorials/screenshot_20190524130158.png) - -Maintenant, nous devons ajouter une action correspondante. Ajoutez une action à cet événement, similaire à celle que nous avons ajoutée pour l'obstacle/plateforme pour le faire se déplacer vers la gauche. Cette fois, nous devons faire en sorte que notre personnage se déplace vers la droite lorsqu'il se trouve sur le sol de la plate-forme. Nous disons "se déplacer vers la droite" mais notre personnage ne se déplace pas vraiment. Il équilibre simplement le mouvement négatif de la plate-forme ou de l'obstacle afin que le personnage ne glisse pas. Essayez d'ajouter cette action vous-même. - -> Introduction : Cliquez sur Ajouter une action. Trouvez **Actions communes à tous les objets**-\>**Mouvement**-\>**Ajouter une Force(Angle)**. Puis choisissez **Joueur** comme objet et attribuez-lui un angle **0**(spécifiant la direction de droite) et une vitesse **250**.tip - -![](/gdevelop5/tutorials/screenshot_20190604124748.png) - -![](/gdevelop5/tutorials/bandicam201fg90524131437905.gif) Maintenant vous pouvez lancer l'aperçu des événements que nous avons créés. Vous pouvez voir que le problème de glissement a été résolu et que la mécanique de base du jeu a été créée avec succès, c'est-à-dire que le personnage peut sauter pour éviter les obstacles et que les obstacles se déplacent constamment vers le personnage. Notez qu'à ce stade, les obstacles sont limités et le personnage se retrouve rapidement à court de plateformes sur lesquelles sauter. Nous allons travailler sur ce problème lors de notre prochaine étape. - ------------------------------------------------------------------------- - -Nous devons également faire en sorte que le personnage joue l'animation **Run** lorsqu'il est au sol. Puisque nous avons déjà créé un événement pour vérifier la condition "Is on floor", nous pouvons simplement ajouter une autre action pour ce même événement. Cliquez sur **Ajouter une action**-\>**Sprites**-\>**Animation et images**-\>**Changer l'animation**. Indiquez ensuite l'objet et l'identifiant d'animation correct pour jouer cette animation particulière. Pour ce jeu, nous avons enregistré notre animation Run avec l'identifiant `2`. Vous pouvez également utiliser le nom de l'animation comme identifiant. Pour faire référence aux animations en utilisant leur nom, vous devez plutôt utiliser l'option **Changer l'animation (par son nom)**. Si vous utilisez un nom, n'oubliez pas de le mettre entre guillemets (") car il s'agit d'une chaîne de caractères. - -![](/gdevelop5/tutorials/screenshot_20190524155500.png) - -## Rendre le jeu infini - -Créez un nouvel événement. Dans cet événement, nous allons rendre les plateformes **infinies**. Avant de continuer, retournez dans l'espace de la scène et analysez la position X de la **dernière** tuile de plateforme/obstacle. - -![](/gdevelop5/tutorials/screenshot_20190524165044.png) - -Comme vous pouvez le voir, la position X de la dernière tuile est *1550* pour moi. Ne vous inquiétez pas si c'est différent pour vous. Quelle que soit la valeur, nous l'utiliserons pour rendre les plateformes infinies. Maintenant, `Ajoutez une condition` pour ce nouvel évènement. Trouvez **Conditions communes à tous les objets**-\>**Position**-\>**Comparez la position X d'un objet**. Choisissez l'objet "Plateforme" avec le signe de modification **≤ (inférieur ou égal à)** et la valeur disons **-200**. - -Nous vérifions et **comparons** la position X de la **première** tuile de la plateforme. La condition est que si la position X de la plateforme est ≤-200, alors l'action correspondante sera exécutée. Maintenant, vous vous demandez peut-être pourquoi la valeur __ -200__ ? Eh bien, notre espace de scène position X commence à partir de la valeur *0*. Nous devons détecter quand la tuile la plus à gauche de notre plateforme sort de l'espace de scène. Nous avons choisi -200 comme position X arbitraire, qui est hors de l'espace de la scène. - -![](/gdevelop5/tutorials/screenshot_20190614211353.png) - -Une fois que la condition est en place, nous allons **Ajouter une action**. Trouvez **Les conditions communes à tous les objets**-\>**Position**-\>**Changer la position X d'un objet**. Maintenant, nous utilisons la valeur de la position X de la dernière tuile que je vous ai demandé de mémoriser. Pour moi, c'était *1550*. Maintenant, nous choisissons "Platform" comme objet, le signe de modification est **= (égal)** et la valeur est **1550**. Cliquez sur **OK** pour confirmer et voilà notre événement terminé. - -![](/gdevelop5/tutorials/bandicam20190614211720602_1_.gif) Ce que nous avons fait dans cet événement, c'est que nous avons mis en place une **Loop** pour nos tuiles Obstacle/Plateforme. Dès qu'une tuile sortait des limites, c'est-à-dire de l'espace de la scène, elle était **téléportée** à une position X (*1550* dans mon cas) vers la droite. Ainsi, les tuiles Obstacle continuent à tourner en boucle et le jeu tourne sans fin. - -## États de jeu - -Nous allons maintenant ajouter des **états** à notre jeu. Les états décrivent le statut de notre jeu. Il peut être considéré comme un drapeau, pour détecter quand le personnage est en action ou quand le personnage est tombé de la plate-forme. Cela est nécessaire pour décider d'un état de "Game Over" et donc de redémarrer le jeu. Nous pouvons enregistrer l'état en créant simplement une **variable de scène**. Il y aura 3 états pour notre jeu. - -- Le premier état ou l'état initial est celui où le jeu n'a pas encore commencé et où l'utilisateur doit le démarrer. Nous allons nous référer à cet état en utilisant la valeur **0**. - -  - -- Le deuxième état est celui où le personnage ou Player Sprite est en action. Nous allons nous référer à cet état en utilisant la valeur **1**. - -  - -- Le troisième état est l'état "Game Over" lorsque le personnage tombe de la plate-forme. Nous allons nous référer à cet état en utilisant la valeur **2**. - -![](/gdevelop5/tutorials/0endlessrunner_flow.jpg) - -Tout d'abord, nous devons configurer une variable pour stocker l'état actuel du jeu. Créez un nouvel événement. **Ajoutez une condition**-\>**Scène**-\>**Au début de la scène**. - -Ensuite, **Ajoutez une action**-\>**Variables**-\>**Valeur d'une variable de scène**. Donnez un nom à votre variable, **Etat** par exemple, et attribuez-lui la valeur **0**. Cela place le jeu dans l'état initial d'avant le jeu au début de la scène. - -![](/gdevelop5/tutorials/screenshot_20190621003505.png) - -Nous ne voulons pas que notre jeu commence immédiatement. Nous voulons qu'il démarre après que l'utilisateur ait appuyé sur une touche. - -En d'autres termes, nous voulons que le jeu **démarre** lorsque la valeur de la variable de scène state est à **1**. Modifions nos événements. - -> Introduction : dans l'événement où nous avons spécifié une force pour que la plate-forme se déplace, nous allons maintenant ajouter une condition. Cliquez sur **Ajouter une condition**-\>**Variables**-\>**Valeur d'une variable de scène**. Définissez-la pour vérifier si la valeur est égale à **1**.tip - -![](/gdevelop5/tutorials/screenshot_20190621000230.png) - -Voyez les modifications que j'ai apportées à nos événements : j'ai ajouté une nouvelle condition et créé quelques **sous-événements**. La condition d'un sous-événement n'est testée que si la condition de l'événement parent donne un résultat `vrai`. Dans notre cas, si le jeu est dans l'état **initial** (événement), ce n'est qu'alors que les sous-événements vérifieront les conditions respectives et effectueront les actions correspondantes. - -Pour convertir un événement en sous-événement, vous devez faire glisser cet événement pour le placer sous un événement parent auquel il est associé. Vous remarquerez une indentation dans l'échelle événement-sous-événement qui confirme que les événements en indentation sont des "sous-événements" par rapport à l'événement parent. - -Les sous-événements **fonctionnent** uniquement si la condition de l'événement est vraie. Si la condition de l'événement parent résulte en `faux`, les conditions des sous-événements ne seront pas vérifiées et donc, leurs actions correspondantes ne seront pas exécutées même si les conditions des sous-événements résultent en `vrai`. - -> ![](/gdevelop5/tutorials/screenshot_20190621002408.png) Pour ajouter un nouveau sous-événement au complet, cliquez pour choisir l'événement pour lequel nous créons les sous-événements. Ensuite, cliquez sur l'icône affichée à gauche. Vous pouvez trouver cela dans le menu de navigation de GDevelop. - -Maintenant, à moins que la valeur de la variable scène soit **1**, le jeu ne démarrera pas, c'est-à-dire que les plateformes ne bougeront pas et que le joueur ne pourra pas sauter. - -Nous avons besoin que l'utilisateur démarre le jeu en appuyant sur une touche. Pour ce faire, ajoutez un nouvel événement. Nous avons besoin de deux conditions ici. Une pour vérifier la valeur de la variable scène et une autre pour détecter si la touche est pressée ou non. Ces deux conditions ont déjà été ajoutées sous une forme ou une autre dans les autres événements. Essayez de le faire vous-même ;-) - -![](/gdevelop5/tutorials/screenshot_20190524233235.png) - -> Astuce : Pour la première condition, nous devons vérifier la valeur de l'état de la variable de scène. Cliquez sur **Ajouter une condition**→**Variables**→**Valeur d'une variable de scène**. Paramétrez-la pour vérifier si la valeur est égale à **0**. Pour la deuxième condition, **Ajoutez une condition**-\>**Clavier**-\>**Touche enfoncée**, puis paramétrez-la pour vérifier si la touche **Haut**. tip - -Maintenant, nous ajoutons l'action pour changer l'état du jeu. Nous voulons changer la valeur de la variable de scène à 1. Cliquez sur **Ajouter une action**-\>**Variables**-\>**Valeur d'une variable de scène**. Puis donnez un nom à votre variable, **Etat** par exemple, et attribuez-lui la valeur **1**. Cela ressemblera à quelque chose comme ceci. - -![](/gdevelop5/tutorials/screenshot_20190524234531.png) - -Vous pouvez maintenant tester le fonctionnement du jeu. Vous remarquerez que le jeu ne démarre pas dès que vous cliquez sur le bouton Play. Vous devez appuyer sur la touche Haut pour lancer le jeu. Revoyez ce que nous avons fait ci-dessus si vous n'avez pas compris ce qui s'est passé :-P - -Maintenant, nous devons travailler sur le troisième état, c'est-à-dire lorsque le jeu se termine parce que le personnage tombe de la plate-forme. Nous devons vérifier les positions X et Y de notre personnage, c'est-à-dire vérifier si le personnage est à l'intérieur de l'espace scénique. S'il se trouve à l'extérieur, il est évident qu'il est tombé de la plate-forme ou qu'il a été poussé hors de l'écran. Nous vérifions ces conditions et changeons l'état du jeu en état **Game Over**. - -![](/gdevelop5/tutorials/screenshot_20190614213834.png) - -Dans cet événement, nous utilisons le concept d'une condition et d'une sous-condition. Avant d'entrer plus avant dans la logique, mettons d'abord en place cette échelle condition-sous-condition. **Ajouter une condition**-\>**Avancé**-\>**Or**. C'est la condition principale que nous utilisons. Après avoir confirmé et établi cette condition, vous remarquerez que vous pouvez maintenant ajouter des **sous-conditions**. Essayez de le faire vous-même en regardant l'image ci-dessus. - -> Conseil : Trouvez les **conditions communes à tous les objets**-\>**Position**-\>**Comparez la position X d'un objet**. Choisissez l'objet "Player" avec le signe de modification **≤ (inférieur ou égal à)** et la valeur disons **-69**. De même, pour la sous-condition suivante, trouvez **Conditions communes à tous les objets**-\>**Position**-\>**Comparez la position Y d'un objet**. Choisissez l'objet "Joueur" avec le signe de modification **≥ (supérieur ou égal à)** et la valeur disons **-550**. tip - -Maintenant, comprenons ce que nous avons fait ici. La condition que nous avons ajoutée spécifie une règle telle que si même une des sous-conditions est vraie, alors l'action associée à cet événement sera exécutée. Puisque le jeu se termine s'il tombe (position Y) **ou** est poussé en dehors de l'écran (position X), nous vérifions donc la position X et la position Y. - -Maintenant nous voulons changer l'état du jeu quand cela se produit, donc nous ajoutons une action pour changer la valeur de la variable de scène en **2**, le troisième état requis. - -![](/gdevelop5/tutorials/bandicam20190525005610196.gif) Vous pouvez maintenant tester le jeu. Vous remarquerez que si vous tombez ou êtes poussé, le mouvement des obstacles s'arrête. Cela montre que le jeu a atteint avec succès l'état **Game Over**. Dans notre prochain événement, nous allons travailler sur le **redémarrage** du jeu, lorsque l'utilisateur appuie sur une touche. - ---- - -## Redémarrer le jeu - -![](/gdevelop5/tutorials/screenshot_20190526175455.png) Nous voulons que le jeu redémarre lorsque l'utilisateur appuie sur un bouton après avoir atteint l'état **Game Over**. Pour ce faire, créons un nouvel événement. Nous voulons vérifier si l'état du jeu est **2**. Si c'est le cas, nous voulons que l'utilisateur appuie sur la touche **Entrée/Retour** pour redémarrer le jeu. Pour cela, nous ajoutons deux conditions, une pour vérifier la valeur de la variable d'état et une autre pour vérifier si la touche Entrée est enfoncée. Essayez d'ajouter les conditions vous-même ou consultez l'astuce si vous êtes bloqué. - -> Astuce : Pour la première condition, nous devons vérifier la valeur de la variable d'état de la scène. Cliquez sur **Ajouter une condition**→**Variables**→**Valeur d'une variable de scène**. Paramétrez-la pour vérifier si la valeur est égale à **2**. Pour la deuxième condition, **Ajoutez une condition**-\>**Clavier**-\>**Touche enfoncée**, puis paramétrez-la pour vérifier si la touche **Retour** est enfoncée. tip - -Ensuite, nous devons ajouter une action pour redémarrer le jeu ou la **scène**. Pour ce faire, **Ajouter une action**-\> **Scène**-\> **Changer la scène**. Puis indiquez le nom de notre scène entre guillemets. Sélectionnez l'option **Stop any other paused scenes**. Cette option n'est pas nécessaire pour notre jeu puisqu'il ne contient qu'une seule scène, mais elle peut être bénéfique pour augmenter les performances des jeux ayant un grand nombre de scènes. - -![](/gdevelop5/tutorials/screenshot_20190526174010.png) - -Maintenant, après avoir atteint l'état **Game Over**, lorsque l'utilisateur appuie sur la touche **Entrée**, le jeu redémarre et passe à l'état **initial**, c'est-à-dire l'état où l'utilisateur doit appuyer sur le bouton Up pour démarrer le jeu. - -Vous pouvez maintenant tester votre jeu et remarquer le changement d'état. Il ne reste plus qu'à ajouter un système de **score** et quelques **instructions textuelles** pour aider l'utilisateur à connaître les états du jeu. - ------------------------------------------------------------------------- - -## Ajout d'un système de score - -Un système de score est un élément nécessaire dans chaque jeu. L'ajouter à notre jeu est très facile car nous n'avons pas besoin d'ajouter de nouveaux événements. Nous allons modifier certains des événements que nous avons déjà créés pour les adapter à ce système. Nous voulons que le score commence à 0 à chaque fois que le jeu commence. Le score continue de s'actualiser jusqu'à ce que l'état Game Over soit atteint. Tout d'abord, créons une variable **objet** pour stocker cette valeur de score. - -> Vous pouvez également utiliser d'autres types de variables comme les **variables de scène** et les **variables globales** au lieu des variables d'objet que nous utilisons ici. La façon dont ces variables diffèrent est qu'elles ont des *scopes* différents pour le jeu. Vous pouvez en savoir plus sur les variables [ici](/gdevelop5/all-features/variables). tip - -Allez dans l'onglet Objets du panneau de l'éditeur de scène. Choisissez l'objet de votre choix. Nous choisissons ici **Platform**. Cliquez sur les **trois points** à côté de l'onglet Objet Plateforme et choisissez **Modifier les variables de l'objet**. Une nouvelle boîte de dialogue s'ouvre dans laquelle nous pouvons ajouter et configurer des variables pour un objet. Cliquez sur le gros bouton Plus pour ajouter une nouvelle variable. Puis personnalisez le nom et la valeur de la variable comme indiqué ci-dessous. - -![](/gdevelop5/tutorials/screenshot_20190526181228.png) - -Comme vous pouvez le voir, nous avons fixé sa valeur par défaut à 0. Maintenant, nous devons créer une action pour mettre à jour le score. Trouvez l'événement montré ci-dessous que nous avions déjà créé auparavant. - -![](/gdevelop5/tutorials/screenshot_20190621000502.png) - -Nous allons ajouter cette action ici. Cliquez sur **Add an action**. Trouvez **Actions communes à tous les objets**-\>**Variables**-\>**Modifier une variable d'un objet**. Puis faites comme indiqué ci-dessous. - -![](/gdevelop5/tutorials/screenshot_20190526204732.png) - -Nous voulons modifier la variable de l'objet que nous venons de créer. En ajoutant cette action, nous demandons au jeu de mettre à jour la valeur en continu pendant que le personnage est en action. - -Nous avons besoin d'un objet Text pour montrer ce changement de valeur. Allez dans l'éditeur de scène. Ajoutez un nouvel objet de type **Text**. - -![](/gdevelop5/tutorials/screenshot_20190526205106.png) - -Faites les modifications nécessaires comme indiqué ci-dessus. Vous pouvez le personnaliser comme vous le souhaitez. Une fois que vous avez terminé de modifier le texte, cliquez sur Appliquer. Ensuite, il suffit de faire glisser et de déposer l'objet texte dans l'espace de la scène. Ce sera quelque chose comme ceci. - -![](/gdevelop5/tutorials/screenshot_20190526205123.png) - -Revenons à l'événement que nous étions en train de modifier. Nous devons ajouter une autre action pour mettre à jour ce texte. - -Une fois que nous sommes de retour à cet événement particulier, cliquez sur **Add an Action**-\>**Text Object**-\>**Modify the text**. Maintenant, regardez attentivement l'image ci-dessous. Maintenant, l'objet texte a une valeur de type String mais notre variable score stocke des valeurs numériques. Nous devons utiliser une fonction de la bibliothèque pour convertir cet Integer en String et ensuite mettre à jour le texte de l'objet Text. - -![](/gdevelop5/tutorials/screenshot_20190526205906.png) - -![](/gdevelop5/tutorials/bandicam20190526210601391.gif) Nous utilisons la fonction `VariableString(variable)` pour faire notre travail. Vous pouvez en apprendre davantage sur les fonctions des bibliothèques dans leurs tutoriels respectifs. Vous pouvez maintenant tester le jeu. Vous pouvez voir le score se mettre à jour pendant que le joueur est en action. Dès que l'état Game Over est atteint, le score cesse de s'actualiser. - -L'événement que nous avons modifié ressemblera à ceci maintenant. - -![](/gdevelop5/tutorials/screenshot_20190526210158.png) - ------------------------------------------------------------------------- - -Maintenant nous allons ajouter d'autres objets texte nécessaires à notre jeu comme un texte **Game Over**, un texte **Score**, un texte **Press Enter to Restart** et **Press Up to Start**. Pour chacun d'entre eux, nous allons créer des objets **Texte** distincts. Comme pour l'étape précédente, ajoutez de nouveaux objets texte et modifiez le texte dans l'éditeur d'objets. Il suffit de les faire glisser et de les déposer dans votre espace de scène pour les afficher. - -![](/gdevelop5/tutorials/screenshot_20190526211448.png) - -Remarquez comment j'ai créé des objets texte séparés pour des textes séparés. Mais nous ne voulons pas que notre jeu affiche le texte `Game Over` au début. Le texte Game Over ne doit être visible qu'à l'état **Game Over**, c'est-à-dire lorsque la valeur de la variable d'état est **2**. De même, nous voulons que le texte Appuyer sur la touche Entrée pour redémarrer apparaisse également à ce stade, tandis que les autres textes doivent être masqués. À l'étape 0, le texte Appuyer sur le haut pour entrer doit être visible. Lorsque le joueur est en mouvement, nous voulons cacher les textes. Pour cela, nous devons agir sur la visibilité de ces objets texte. - -Pour cette modification de visibilité, nous utilisons l'action **Action commune à tous les objets**-\> Action **Visibilité**. Après avoir ajouté toutes les actions à leurs endroits respectifs comme indiqué ci-dessus, la page de l'éditeur d'événements ressemblera à ceci. - -![](/gdevelop5/tutorials/screenshot_20190526212127.png) - -Ici, au début de l'événement de scène, que nous avons déjà fait, nous ajoutons deux nouvelles actions pour cacher les textes Game Over et Restart. Pour ajouter ces actions, cliquez sur **Add an action**-\> **Common action for all objects**-\> **Visibility**-\> Puis Hide ou Show en conséquence. - -![](/gdevelop5/tutorials/screenshot_20190526212329.png) - -Maintenant, nous voulons aussi cacher le texte Start, quand le jeu a déjà commencé. Pour cela, nous ajoutons une autre action à l'action déjà créée ci-dessus. - -![](/gdevelop5/tutorials/screenshot_20190614213634.png) - -Enfin, nous ajoutons deux événements pour **montrer** le texte **Game Over** et **Restart** lorsque le jeu se termine, c'est-à-dire lorsque l'état Game Over est atteint. - -![](/gdevelop5/tutorials/bandicam20190gg526213134987.gif) Voilà, c'est fait ! Tu as appris avec succès comment créer un jeu Endless Runner. Créer des jeux avec GDevelop est très facile une fois que vous avez compris comment utiliser les fonctionnalités. Il m'a fallu environ trois jours pour écrire ce tutoriel en détail, alors qu'il ne m'a fallu qu'une heure pour créer ce jeu. Oui, c'est aussi simple que cela de créer des jeux avec GDevelop💓. - -## Bonus : Rendre le jeu plus stimulant - -Le jeu est-il trop facile à jouer ? Vous voulez que votre jeu soit un peu plus difficile ? Ne vous inquiétez pas. Travaillons-y ensemble. - -Nous allons travailler sur la vitesse des plateformes/obstacles mobiles. Nous voulons qu'ils se déplacent plus rapidement à mesure que le score augmente. - -Tout d'abord, nous voulons ajouter une nouvelle variable de scène pour stocker la vitesse initiale à laquelle les plates-formes se déplacent. Pour ajouter une variable de scène, allons à l'événement qui a la condition `Au début de la scène`. Comme nous l'avons fait précédemment, ajoutez une nouvelle variable. Cliquez sur Ajouter une action→Variables→Valeur d'une variable de scène. Ensuite, nommez votre variable quelque chose, **vitesse** par exemple et donnez-lui la valeur **250** qui est la vitesse initiale. - -Maintenant, nous voulons modifier l'événement : où nous avons spécifié la valeur de la force avec laquelle les plateformes se déplacent. Au lieu de spécifier une valeur, nous allons utiliser la variable de scène **speed**. Pour utiliser la variable de scène ici, nous devons suivre cette syntaxe : `Variable(speed)`, où speed est la variable de scène spécifiée. - -Faites la même chose pour l'action où nous avons spécifié la vitesse du sprite du joueur pour éviter qu'il ne glisse. Maintenant, nous pouvons travailler sur le changement de vitesse au fur et à mesure que le score augmente. - -Maintenant, nous voulons vérifier la valeur de la variable objet `score`, et changer la valeur de la variable scène `speed` en conséquence. Ajoutez de nouveaux événements et spécifiez les conditions pour augmenter la vitesse des plateformes. Un exemple est présenté ci-dessous : - -![](/gdevelop5/tutorials/screenshot_20190615230009.png) diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md b/docs/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md deleted file mode 100644 index 981d966ab0..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md +++ /dev/null @@ -1,54 +0,0 @@ ---- -title: 1-install-and-setup ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -➡️ **[Étape suivante : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** - -# 1. Installation et configuration - -**GDevelop** est un moteur de jeu multiplateforme gratuit et open source pour tout le monde - vous n'avez pas besoin de savoir comment coder pour créer votre premier jeu. Il peut être utilisé à la fois pour des projets de loisirs et pour la création de jeux à but lucratif. - -Pour obtenir une copie de GDevelop, il vous suffit de vous rendre sur la [page de téléchargement](https://gdevelop.io/download/) où les versions pour Windows, Mac OS et Linux sont disponibles. - -Vous pouvez également essayer [l'éditeur en ligne](https://editor.gdevelop.io/) directement dans votre navigateur si vous ne souhaitez pas installer le logiciel. Pour ce tutoriel, il est cependant recommandé de télécharger la version complète. - -Continuons avec l'installation de la version pour Windows - cliquez sur le bouton "**Windows**" pour commencer à télécharger le programme d'installation pour ce système d'exploitation. - -![](/gdevelop5/tutorials/geometry-monster/01_5.png) Cliquez sur "**Enregistrer**" dans la fenêtre contextuelle qui apparaît après avoir cliqué sur ce bouton - pour lancer le téléchargement réel du fichier `exe`. Une fois le programme d'installation téléchargé, accédez au dossier où il a été enregistré et cliquez deux fois dessus pour lancer le processus d'installation. - -![](/gdevelop5/tutorials/geometry-monster/04.png) - -Attendez la fin du processus. Accédez alors à l'emplacement d'installation de tous vos nouveaux programmes et double-cliquez sur l'application `GDevelop` pour lancer l'éditeur. - -![](/gdevelop5/tutorials/geometry-monster/05.png) - -Vous serez accueilli avec l'écran d'accueil sur la page d'accueil. - -![](/gdevelop5/tutorials/geometry-monster/06.png) - -De là, vous pouvez soit ouvrir un projet déjà existant "(**OPEN A PROJECT**", soit en créer un nouveau "**CREATE A NEW PROJECT**" — Sélectionnez cette deuxième option. - -![](/gdevelop5/tutorials/geometry-monster/07.png) - -À côté de l'onglet "**STARTERS**" (en haut de la fenêtre contextuelle) vous pouvez consulter les exemples et les tutoriels dans leurs onglets respectifs . - -![](/gdevelop5/tutorials/geometry-monster/09.png) - -Après avoir cliqué sur le bouton **Empty Game** 640(Jeu vide), le nouveau projet nous est présenté et la fenêtre **Project** devrait apparaître dans le panneau de gauche. Dans celui-ci, sélectionnez **Game settings** (Paramètres du jeu) puis **Properties** pour accéder à la configuration de base de notre jeu. - -![](/gdevelop5/tutorials/geometry-monster/10.png) - -Le nom de notre jeu **Game name** est `Geometry Monster`, la largeur de la fenêtre est de `640` pixels (**Game resolution width**) et sa hauteur `960` pixels (**Game resolution height**). Ces commandes créeront une zone de jeu qui convient au mode portrait sur un appareil mobile, choix que nous confirmerons dans une seconde. Vous pouvez entrer votre nom ou votre pseudo dans le champ **Author name** situé en dessous. - -![](/gdevelop5/tutorials/geometry-monster/11.png) - -Okus bas dans la fenêtre, vous avez une option pour spécifier le mode **Device orientation (for iOS and Android)** (Orientation de l'appareil) - Sélectionnez **Portrait** afin que nous puissions jouer sur nos téléphones en les tenant d'une seule main et en touchant l'écran. - -Nous devons également changer l'option **Change width ...** en **No changes to the game size** (Aucune modification de la taille du jeu). Ce paramètre sera traité plus tard. - -Une fois toutes ces informations entrées dans les champs respectifs, vous pouvez cliquer sur **APPLY** (Appliquer) pour enregistrer ces paramètres. - -![](/gdevelop5/tutorials/geometry-monster/12_5.png) - -➡️ **[Étape suivante : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/10-more-lives.md b/docs/fr/gdevelop5/tutorials/geometry-monster/10-more-lives.md deleted file mode 100644 index 434ade0db5..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/10-more-lives.md +++ /dev/null @@ -1,142 +0,0 @@ ---- -title: 10-more-lives ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)** ➡️ **[Étape suivante : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)** - -# 10. Plus de vies - -Avec des ***vies supplémentaires***, le joueur ne sera pas immédiatement pénalisé par un ***jeu terminé*** (Game over) lorsqu'il est touché par une bombe au lieu de l'être par une forme. Cette collision ne sera plus fatale mais supprimera une vie parmi celles disponibles, nombre que nous allons définir à 3. - -Ce sera également une bonne occasion d'utiliser des ***des extensions***, qui ont l'avantage de faire que nous n'avons pas besoin de tout créer nous-mêmes. - -!!! note - - Saviez-vous que les extensions sont également faites d'événements ? Vous pouvez inspecter la façon dont elles sont construites et fonctionnent en cliquant sur l'une d'entre-elles dans le gestionnaire de projets et en inspectant ses comportements, qui sont composés d'événements pour créer les conditions et les actions du comportement. - -Cliquez sur l'icône **Project manager** (Gestionnaire de projet) qui se trouve dans le coin supérieur gauche de l'éditeur. - -![](/gdevelop5/tutorials/geometry-monster/136.png) - -Cette action ouvre un panneau où la barre de recherche est dans le bas. Cliquez sur **Search for new extensions** (Rechercher de nouvelles extensions). - -![](/gdevelop5/tutorials/geometry-monster/137.png) - -L'extension que nous recherchons s'appelle **life** (la vie). - -![](/gdevelop5/tutorials/geometry-monster/138.png) - -Cette extension contient un **behavior** (comportement) appelé **Health** (Santé), que nous pouvons ensuite manipuler dans le jeu pour gérer la vie d'un objet. Cliquez sur **INSTALL IN PROJECT** (Installer dans le projet) pour pouvoir l'utiliser. - -![](/gdevelop5/tutorials/geometry-monster/139.png) - -!!! note - - Les comportements (behaviors) permettent d'ajouter de nouvelles fonctionnalités et de la logique aux objets. Elles sont utiles pour créer des objets en assemblant quelques comportements que l'on peut ensuite manipuler avec des événements. - -Pendant que nous y sommes, ajoutons une autre extension utile : **Flash**. Lorsque le monstre est touché par une bombe et perd une vie, nous le faisons cligner des yeux pendant une courte période pour donner au joueur des informations supplémentaires sur ce qui s'est passé. - -![](/gdevelop5/tutorials/geometry-monster/140.png) - -Installez-le également. - -![](/gdevelop5/tutorials/geometry-monster/141.png) - -Maintenant que nous avons installé les deux extensions, elles doivent être répertoriées dans le panneau de gauche, sous **Functions/Behaviors** (Fonctions/Comportements). - -![](/gdevelop5/tutorials/geometry-monster/142.png) - -Cliquez sur l'onglet **LEVEL1** pour revenir dans l'éditeur de scène puis, dans le panneau de droite **Objects**, double-cliquez sur **Monster**, ce qui ouvre une fenêtre contextuelle. - -![](/gdevelop5/tutorials/geometry-monster/143.png) - -Dans celle-ci, cliquez sur l'onglet **BEHAVIORS** (Comportements), car nous voulons ajouter ces comportements à l'objet ... - -![](/gdevelop5/tutorials/geometry-monster/144.png) - -... en cliquant sur **Add a behavior to the object**. - -![](/gdevelop5/tutorials/geometry-monster/145.png) - -Les deux extensions personnalisées que nous venons d'ajouter doivent être répertoriées dans la fenêtre **Ad a new behavior to the object** et disponibles pour utilisation. Cliquez sur l'extension **Health**. - -![](/gdevelop5/tutorials/geometry-monster/146.png) - -Nous fixons **Damage cooldown** (Temps de recharge des dégâts) à `0,8` secondes (durée pendant laquelle le monstre touché est indestructible afin qu'il ne soit pas immédiatement touché à nouveau par une autre bombe), **Health** (Santé) à `3` (nombre actuel de vies), et **Maximum health** (Santé maximale)n aussi à `3` (le monstre aura donc trois vies au total). - -Cliquez finalement sur **Add behavior to the object** (Ajouter un comportement à l'objet) pour en activer un autre. - -![](/gdevelop5/tutorials/geometry-monster/147.png) - -Ce second comportement est **Flash**. - -![](/gdevelop5/tutorials/geometry-monster/148.png) - -Le paramètre **Half period** (demi-période) spécifie la durée pendant laquelle l'objet est invisible, et nous allons la fixer à `0,1` secondes. Dans le champ juste en dessous, vous pouvez voir le comportement **Health** que nous avons entré précédemment. Cliquez sur **APPLY** pour les enregistrer. - -![](/gdevelop5/tutorials/geometry-monster/149.png) - -Cliquez maintenant sur l'onglet **Level1 (Events)**, puis sur le label **Collision** (un commentaire) pour vous assurer que c'est bien celui qui est actif. Dans le menu en haut à droite, cliquez sur l'icône **Choose and add an event** (Choisir et ajouter un événement), puis sur **For each object** (Pour chaque objet) dans la liste déroulante qui s'est ouverte. - -![](/gdevelop5/tutorials/geometry-monster/150.png) - -Cela nous permet d'avoir la condition spécifique **Repeat for each Obstacle object** (Répéter pour chaque objet Obstacle). - -![](/gdevelop5/tutorials/geometry-monster/152.png) - -Cliquez sur **Add condition**. Sélectionnez **Obstacle**, **Collision** et **Monster** puis cliquez **OK**. De cette façon, les bombes entreront en collision avec le monstre, et nous pourrons soustraire le nombre actuel de vies lorsque cela se produira. - -![](/gdevelop5/tutorials/geometry-monster/153.png) - -Toujours pour **Obstacle**, sélectionnez l'action **Delete an object** (Supprimer un objet) pour supprimer la bombe. Chaque fois qu'une bombe frappe le monstre, elle est supprimée du jeu. - -![](/gdevelop5/tutorials/geometry-monster/154.png) - -Une autre action va être utilisée pour que le monstre soit endommagé par la bombe. Cliquez sur **Add action**. Sélectionnez **Monster**, **Damage the object** (Endommager l'objet), en entrez `1` dans le champ **Value of the damage to do** (Valeur du dommage). Cela signifie que chaque fois que la bombe frappe le monstre, il perd une vie. - -![](/gdevelop5/tutorials/geometry-monster/155.png) - -Dans l'onglet **OTHER ACTIONS**, ajoutons un son différent lorsque cela se produit. Sélectionnez **Audio**, **Play a sound** (Jouer un son), et **Choose a new audio file** (Choisir un nouveau fichier audio) pour ouvrir la fenêtre de l'explorateur de fichiers. - -![](/gdevelop5/tutorials/geometry-monster/156.png) - -Sélectionnez le fichier `kill.wav` et ouvrez-le pour l'ajouter au projet. - -![](/gdevelop5/tutorials/geometry-monster/157.png) - -Assurez-vous que le nom du fichier est bien là puis cliquez **OK**. - -![](/gdevelop5/tutorials/geometry-monster/158.png) - -Bien que les événements fonctionnent, ils ne font que changer la vie du monstre en mémoire. Affichons donc un compteur de vie à l'écran ! - -Cliquez sur l'onglet **LEVEL1**, puis dans la liste **Objects** sur **Add a new object** (Ajouter un nouvel objet). - -![](/gdevelop5/tutorials/geometry-monster/160.png) - -Faites-en un autre **Sprite**. - -![](/gdevelop5/tutorials/geometry-monster/161.png) - -Le nom de l'objet **Object Name:** est `Life`, l'animation **Animation \#0** s'appelle `Life3` (puisque l'état initial de l'animation a trois vies), puis ajoutez l'image avec 3 cœurs. - -![](/gdevelop5/tutorials/geometry-monster/162.png) - -Répétez l'opération pour l'animation `Life2` ... - -![](/gdevelop5/tutorials/geometry-monster/163.png) - -... et encore une fois pour `Life1`. - -![](/gdevelop5/tutorials/geometry-monster/164.png) - -Le dernier est **Life0** (sans images) lorsque toutes les vies sont perdues. Appliquez (**APPLY**) les modifications. - -![](/gdevelop5/tutorials/geometry-monster/165.png) - -Faites glisser et déposez l'objet **Life** sur la scène et placez-le dans le coin supérieur droit. Nous verrons au chapitre suivant comment animer cet objet en créant un écran **game over** lorsqu'il atteindra zéro. - -![](/gdevelop5/tutorials/geometry-monster/166.png) - -⬅️ **[Étape précédente : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)** ➡️ **[Étape suivante : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/11-game-over.md b/docs/fr/gdevelop5/tutorials/geometry-monster/11-game-over.md deleted file mode 100644 index 25441fe80c..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/11-game-over.md +++ /dev/null @@ -1,192 +0,0 @@ ---- -title: 11-game-over ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)** ➡️ **[Étape suivante : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)** - -# 11. Jeu terminé - -Avec le monstre ayant [plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives), capable de [détecter les collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) et devant faire au danger de [bombes](/fr/gdevelop5/tutorials/geometry-monster/9-add-bombs) tombant avec les formes, nous arrivons à un point où le joueur peut perdre toutes les vies : qu'advient-il alors ? C'est **Jeu terminé** ! - -Ajoutons un nouvel objet, qui sera à nouveau un sprite. - -![](/gdevelop5/tutorials/geometry-monster/167.png) - -Appelez-le `GameOver`, ajoutez l'image respective et enregistrez-la. - -![](/gdevelop5/tutorials/geometry-monster/168.png) - -Faites-la glisser du panneau des objets sur la scène. - -![](/gdevelop5/tutorials/geometry-monster/169.png) - -Ajoutez un autre sprite, qui sera le bouton permettant de rejouer. Nommez-le `ButtonTryAgain` (Bouton réessayer) et nommez l'animation `TryAgainNormal` pour l'état du bouton par défaut. Importez l'image. - -![](/gdevelop5/tutorials/geometry-monster/171.png) - -Ajoutez une deuxième animation appelée `Try AgainHover` (RéessayerSurvol) qui sera utilisée pour indiquer que l'utilisateur a positionné le curseur de la souris sur le bouton. - -![](/gdevelop5/tutorials/geometry-monster/172.png) - -La troisième et dernière animation est `TryAgainPressed` (RéessayerPressé), montrant que le joueur veut recommencer. - -![](/gdevelop5/tutorials/geometry-monster/173.png) - -Faites glisser le bouton sur la scène. - -![](/gdevelop5/tutorials/geometry-monster/174.png) - -Répétez cette opération pour le `ButtonMainMenu` (BoutonMenuPrincipal) qui amènera le lecteur au menu principal que nous allons créer bientôt en tant que scène séparée. - -![](/gdevelop5/tutorials/geometry-monster/176.png) - -Après **MainMenuNormal**, le deuxième nom de l'animation est `MainMenuHover` (MenuPrincipalSurvol) ... - -![](/gdevelop5/tutorials/geometry-monster/177.png) - -... et le troisième `MainMenuPressed`, appliquez les modifications. - -![](/gdevelop5/tutorials/geometry-monster/178.png) - -Faites glisser le bouton du menu principal sur la scène. - -![](/gdevelop5/tutorials/geometry-monster/179.png) - -Double-cliquez sur le monstre et ajoutez-lui une deuxième animation (bouton **ADD AN ANIMATION**). - -![](/gdevelop5/tutorials/geometry-monster/180.png) - -C'est l'animation `MonsterDead` qui sera utilisée lorsque le monstre est à court de vies disponibles. - -![](/gdevelop5/tutorials/geometry-monster/181.png) - -Créez un commentaire `Health` dans le panneau de l'onglet **Level1 (Events)**. - -![](/gdevelop5/tutorials/geometry-monster/182.png) - -Ajoutez ensuite un nouvel événement avec une nouvelle condition. - -![](/gdevelop5/tutorials/geometry-monster/183.png) - -Sélectionnez **Monster**, puis **Is just damaged** (Vient juste d'être endommagé) et **OK**. - -![](/gdevelop5/tutorials/geometry-monster/184.png) - -!!! note - - Cette condition **Is just damaged** se trouve ici car elle fait partie du comportement **Health** que nous avions précédemment ajouté à l'objet. - -Cliquez ensuite sur **Life**, **Change the animation (by name)** (Changer l'animation (par son nom), entrez `"Vie" +` dans le champ **Animation name**, puis cliquez sur le bouton **ABC** à droite. Choisissez **Conversion**, puis **Nombre \> Text** (parce que nous voulons transformer la santé du joueur, qui est un nombre, en un texte qui sera utilisé pour choisir l'animation à afficher). - -![](/gdevelop5/tutorials/geometry-monster/185_1.png) - -Dans la fenêtre contextuelle, cliquez sur le bouton **123** ... - -![](/gdevelop5/tutorials/geometry-monster/185_2.png) - -... puis choisissez **Health**. - -![](/gdevelop5/tutorials/geometry-monster/185_3.png) - -Vous serez ensuite invité à entrer le nom de l'objet et le comportement (qui est automatiquement rempli pour vous après avoir sélectionné l'objet). - -![](/gdevelop5/tutorials/geometry-monster/185_4.png) - -Optez pour **Monster**. **Health** est automatiquement écrit dans le deuxième champ. Cliquez sur **APPLY**. - -![](/gdevelop5/tutorials/geometry-monster/185_5.png) - -!!! note - - Il est possible d'avoir plusieurs comportements de même nature pour un objet ! Par exemple, un énorme vaisseau spatial dans un jeu de tir peut avoir plusieurs comportements de santé, correspondant à différentes parties du vaisseau. En général cependant, un seul comportement suffit ! - -GDevelop vous présente la fonction **Monster.Health::Health()** qui retourne la variable de santé. Cette expression sera convertie en texte. - -![](/gdevelop5/tutorials/geometry-monster/185_6.png) - -!!! note - - Confus par la notation `Monster.Health::Health()` ? Le premier **Health** est le nom du comportement, tandis que le second **Health** correspond à la fonction à appeler sur le comportement. - -La valeur finale de **Animation name** sera `"Life" + ToString (Monster.Health::Health())`. - -![](/gdevelop5/tutorials/geometry-monster/185_7.png) - -!!! note - - La fonction **ToString()** est importante, car elle convertit la valeur de la santé (un nombre) en un texte. Sinon, GDevelop essaiera d'ajouter un texte à un nombre, ce qui n'a pas de sens. - -De retour à **Monster**, recherchez l'action **Flash (blink)** (Flash (clignotement)), puis réglez la durée du clignotement sur `1,5` secondes, et cliquez **OK**. - -![](/gdevelop5/tutorials/geometry-monster/186.png) - -Sous le commentaire **Health**, ajoutez une autre condition. - -![](/gdevelop5/tutorials/geometry-monster/187.png) - -Sélectionnez **Monster**, puis **Is dead** (Est mort), et **OK**. - -![](/gdevelop5/tutorials/geometry-monster/188.png) - -!!! note - - Il s'agit là encore d'une condition fournie par le comportement **Health**. - -Cliquez **Add action**. Sélectionnez **Life**, **Change the animation (by name)** (Changer l'animation (par son nom)), puis `"Life0"`. Ainsi, quand le monstre meurt, l'image de vie montre qu'il n'y a plus de cœurs disponibles. - -![](/gdevelop5/tutorials/geometry-monster/189.png) - -Ajoutez encore une autre action, cette fois pour **Monster**, puis **Change the animation (by name)**, et **MonsterDead**. Cela montre l'image du monstre lorsqu'il est à court de vies. - -![](/gdevelop5/tutorials/geometry-monster/190.png) - -L'action suivante dont nous avons besoin consiste à supprimer le groupe **Shapes** en en activant **Delete an object** (Supprimer un objet) ... - -![](/gdevelop5/tutorials/geometry-monster/191.png) - -... et faire de même avec **Obstacle**. - -![](/gdevelop5/tutorials/geometry-monster/192.png) - -Sélectionnez ensuite le sprite **GameOver** et affichez-le à l'écran avec **Show**. - -![](/gdevelop5/tutorials/geometry-monster/193.png) - -Faites de même avec le sprite **ButtonTryAgain** ... - -![](/gdevelop5/tutorials/geometry-monster/194.png) - -... et le sprite **ButtonMainMenu**. - -Tous ces sprites seront affichés en fin de partie, mais nous devons les cacher au début du jeu. - -![](/gdevelop5/tutorials/geometry-monster/195.png) - -Créez un nouveau commentaire appelé **Game Over**, un nouvel événement et ajoutez-y une condition. - -![](/gdevelop5/tutorials/geometry-monster/196.png) - -Recherchez **At the beginning of the scene** (Au début de la scène). - -![](/gdevelop5/tutorials/geometry-monster/198.png) - -Créez ensuite une action où **Hide** (Masquer) est appliqué à l'objet **GameOver**. - -![](/gdevelop5/tutorials/geometry-monster/199.png) - -Faites de même pour le sprite **ButtonTryAgain** ... - -![](/gdevelop5/tutorials/geometry-monster/200.png) - -... et pour le sprite **ButtonMainMenu**. - -![](/gdevelop5/tutorials/geometry-monster/201.png) - -De cette façon, lorsque vous lancez le jeu et perdez toutes vos vies, les cœurs sont presque entièrement transparents, les formes et les bombes disparaissent, l'animation de Monster devient inerte et le message **"Game Over"** est affiché avec le bouton avec une maison et le bouton Réessayez. - -![](/gdevelop5/tutorials/geometry-monster/202.png) - -Le gameplay lui-même est terminé, mais nous aimerions ajouter plus de possibilités dans le jeu. Il serait bien d'introduire plus de scènes dans le jeu en ayant un [Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu) au début, et permettre au joueur de démarrer le jeu par lui-même. - -⬅️ **[Étape précédente : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)** ➡️ **[Étape suivante : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/12-main-menu.md b/docs/fr/gdevelop5/tutorials/geometry-monster/12-main-menu.md deleted file mode 100644 index 2afe64dcd1..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/12-main-menu.md +++ /dev/null @@ -1,162 +0,0 @@ ---- -title: 12-main-menu ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)** ➡️ **[Étape suivante : 13. Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it)** - -# 12. Menu principal - -Pour compléter l'expérience de jeu, nous devrions avoir au moins les écrans du menu principal et du gameplay. Si vous pouvez créer plus d'une scène, en avoir des distinctes concernant les paramètres, les crédits ou toute autre chose ne devrait pas être un problème. Créons donc la scène du menu principal, différente de celle du gameplay. - -Cliquez sur le boutoin **Project manager** (Gestionnaire de projet) pour ouvrir le panneau de gauche. - -![](/gdevelop5/tutorials/geometry-monster/203.png) - -Ensuite, sous la section **Scènes**, où apparaît **Level1**, sélectionnez **Click to add a scene** (Cliquez pour ajouter une scène). - -![](/gdevelop5/tutorials/geometry-monster/204.png) - -Le nom par défaut de la nouvelle scène est **NewScene**, mais vous pouvez cliquer avec le bouton droit sur les trois points verticaux à droite pour ouvrir le menu contextuel et sélectionner **Rename** (Renommer). - -![](/gdevelop5/tutorials/geometry-monster/205.png) - -Nommez notre nouvelle scène `MainMenu`. - -![](/gdevelop5/tutorials/geometry-monster/206.png) - -Cliquez sur l'onglet **MAIN MENU** (Menu principal), puis cliquez avec le bouton droit sur la scène et sélectionnez **Scene properties** (Propriétés de la scène). - -![](/gdevelop5/tutorials/geometry-monster/207.png) - -Changez la couleur de la scène à l'aide du sélecteur de couleurs : dans notre cas, c'est `#560921`. - -![](/gdevelop5/tutorials/geometry-monster/208.png) - -Elle devrait ressembler à cela. Cliquez sur le panneau de droite (**Objects**) pour ajouter un nouvel objet et sélectionnez **Sprite**. - -![](/gdevelop5/tutorials/geometry-monster/209.png) - -Le nom de l'objet est `GameTitle` et celui de l'animation `GeometryMonster`. Ajoutez l'image du titre et cliquez sur **BEHAVIORS** (Comportements). - -![](/gdevelop5/tutorials/geometry-monster/211.png) - -Cliquez sur le bouton **ADD A BEHAVIOR TO THE OBJECT**. - -![](/gdevelop5/tutorials/geometry-monster/212.png) - -Cliquez ensuite sur l'onglet **SEARCH NEW BEHAVIORS** ... - -![](/gdevelop5/tutorials/geometry-monster/213.png) - -... et recherchez et sélectionnez **movement**. Nous utiliserons le mouvement **Sine (or ellipsis) movement** (Mouvement sinusoïdal (ou elliptique)) pour animer l'image du titre, qui ne sera donc pas statique, et tout le menu principal aura meilleure allure. - -![](/gdevelop5/tutorials/geometry-monster/214.png) - -Cette extension fonctionne de la même manière que les extensions que nous avons déjà utilisées. Installez-le dans le projet. - -![](/gdevelop5/tutorials/geometry-monster/215.png) - -Parcourez la liste des comportements et cliquez sur le nouveau **Sine movement** (Mouvement sinusoïdal). - -![](/gdevelop5/tutorials/geometry-monster/216.png) - -Configurez-le comme suit : (**Object name**) a pour nom `GameTitle`, **Amplitude of the movement on the X axis to** (Amplitude du mouvement sur l'axe X) à `20`, **Amplitude of the movement on the Y axis** (Amplitude du mouvement sur l'axe Y) à `10` et **Speed** (Vitesse) à `60` degrés par seconde, puis cliquez sur **APPLY**. - -![](/gdevelop5/tutorials/geometry-monster/217.png) - -Il est maintenant temps d'ajouter le bouton Démarrer. Créez un nouvel objet (**New object**) de type **Sprite**. Nommez-le `ButtonStart` et l'animation `StartNormal` pour l'animation et l'image du bouton lui-même. - -![](/gdevelop5/tutorials/geometry-monster/219.png) - -Ajoutez deux autres animations avec leurs images respectives : `StartHover` et `StartPressed`. - -![](/gdevelop5/tutorials/geometry-monster/221.png) - -Faites glisser le titre sur la scène puis faites de même avec le bouton. - -![](/gdevelop5/tutorials/geometry-monster/222_5.png) - -Activez l'onglet **MAINMENU (EVENTS)**, et créez un nouvel événement (bouton en haut à droite). - -![](/gdevelop5/tutorials/geometry-monster/224.png) - -Ajoutez une nouvelle condition : cliquez sur **OTHER CONDITIONS** (Autres conditions), puis sur **The cursor/touch is on an object** (Le curseur/toucher est sur un objet), et affectez-le à `ButtonStart`. N'oubliez pas de sélectionner **Invert condition** (Inverser la condition) pour que cela fonctionne comme nous le voulons. - -![](/gdevelop5/tutorials/geometry-monster/226.png) - -Ajoutons les animations à ce bouton. Sélectionnez **ButtonStart** dans le panneau de gauche, cliquez sur **Change the animation (by name)** (Modifier l'animation (par son nom)) dans celui du milieu et entrez `StartNormal` dans le panneau de droite. - -![](/gdevelop5/tutorials/geometry-monster/227.png) - -Ajoutez une nouvelle condition. - -![](/gdevelop5/tutorials/geometry-monster/228.png) - -Dans le panneau **OTHER CONDITIONS**, sélectionnnez **The cursor/touch is on an object** entrez `ButtonStart`. - -![](/gdevelop5/tutorials/geometry-monster/230.png) - -Répétez ces étapes pour **Change the animation (by name)** et entrez `"StartHover"`. - -![](/gdevelop5/tutorials/geometry-monster/231.png) - -Créez un sous-événement (bouton **Add a sub-event...**), ajoutez la condition **Mouse button pressed or touch held** (Bouton de la souris enfoncé ou touché maintenu), le bouton à tester (**Button to test**) est **Left (primary)** (Gauche (principal)). - -![](/gdevelop5/tutorials/geometry-monster/232.png) - -Maintenant **ButtonStart**, **Change the animation (by name)**, `"StartPressed"` ... - -![](/gdevelop5/tutorials/geometry-monster/232_1.png) - -... et **Mouse button released**, **Left (primary)**. - -![](/gdevelop5/tutorials/geometry-monster/232_2.png) - -L'action que ce bouton va effectuer consiste à changer de scène pour passer à celle du jeu proprement dit. Recherchez **Change the scene** (Changer la scène), puis sélectionnez `"Level1"`. - -![](/gdevelop5/tutorials/geometry-monster/233.png) - -Lancez le jeu et voyez si le menu principal se comporte comme prévu (titre en vol stationnaire, bouton Démarrer fonctionnel), et le gameplay réel est lancé après avoir cliqué sur le bouton. - -![](/gdevelop5/tutorials/geometry-monster/234.png) - -Puisque nous savons maintenant comment passer d'une scène à l'autre, faisons-le pour le bouton Réessayer que nous avons créé plus tôt, mais pour lequel nous n'avons pas encore implémenté l'action réelle. Cliquez sur l'onglet **Level1 (Events)** et **Add condition**. - -![](/gdevelop5/tutorials/geometry-monster/235.png) - -Cliquez sur **OTHER CONDITIONS**, **The cursor/touch is on an object**, puis spécifiez l'objet `ButtonTryAgain`, activez **Invert condition** et finalement pressez **OK**. - -![](/gdevelop5/tutorials/geometry-monster/236.png) - -Maintenant ajoutez une action : **ButtonTryAgain**, **Change the animation (by name)**, et `"TryAgainNormal"`. - -![](/gdevelop5/tutorials/geometry-monster/236_1.png) - -Répétez pour `"TryAgainHover"`. - -![](/gdevelop5/tutorials/geometry-monster/237.png) - -Créez un sous-événement et sa condition. Sélectionnez le **ButtonTryAgain** puis **OTHER CONDITIONS**, **Mouse button pressed or touch held**, `Left (primary)`. - -![](/gdevelop5/tutorials/geometry-monster/238.png) - -Répétez l'action : **ButtonTryAgain**, **Change the animation (by name)**, `"TryAgainPressed"`. - -![](/gdevelop5/tutorials/geometry-monster/239.png) - -Un autre sous-événement, la condition **Left mouse button was released** puis l'action : **Change the scene** pour `"Level1"`, de sorte que le bouton pour réessayer le jeu redémarre le gameplay. - -![](/gdevelop5/tutorials/geometry-monster/240.png) - -Maintenant, pour vous laisser un peu faire par vous-même, compte tenu de ce que vous avez appris jusqu'à présent, essayez d'ajouter de l'interactivité au bouton **ButtonMainMenu**, de sorte qu'il changera son animation pour planer une fois survolé, détecter la pression du bouton gauche, changer l'animation en **MainMenuPressed**, détectez le relâchement du bouton et changez la scène en **MainMenu**. - -![](/gdevelop5/tutorials/geometry-monster/241.png) - -À la fin, cela devrait ressembler à cette capture d'écran ci-dessus. - -Ça marche ! La prochaine étape sera consacrée à l'ajout de la touche finale au jeu : [Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it). - -![](/gdevelop5/tutorials/geometry-monster/247.png) - -⬅️ **[Étape précédente : 11. Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over)** ➡️ **[Étape suivante : 13. Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/13-juice-it.md b/docs/fr/gdevelop5/tutorials/geometry-monster/13-juice-it.md deleted file mode 100644 index 88616639b2..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/13-juice-it.md +++ /dev/null @@ -1,110 +0,0 @@ ---- -title: 13-juice-it ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)** ⬅️ **[Retour à l'index](/fr/gdevelop5/tutorials/geometry-monster)** - -# 13. Améliorations ! - -Dans cette dernière partie, nous allons programmer de petites choses qui peuvent rendre le jeu vraiment intéressant : augmenter progressivement le niveau de difficulté et engendrer des effets de particules lorsque Monster collecte les formes. - -Nous allons commencer par la première. Ajoutez un commentaire et intitulez-le `Progressively increase game speed` (Augmenter progressivement la vitesse de jeu). - -![](/gdevelop5/tutorials/geometry-monster/291.png) - -Créez un nouvel événement, ajoutez-y une action **Value of a scene variable** (Valeur d'une variable de scène), appelez cette variable `"GameSpeed"` (Vitesse de la scène) , réglez le signe des modifications sur **+ (add)** et sa valeur à `7 * TimeDelta()`. - -![](/gdevelop5/tutorials/geometry-monster/293.png) - -Ajoutez un autre commentaire, mais plus haut dans la liste des événements, juste en dessous de **Shapes**. Intitulez-le `Move shape according to the game speed` (Déplacer la forme en fonction de la vitesse du jeu). L'augmentation du niveau de difficulté fera tomber les formes plus rapidement. - -![](/gdevelop5/tutorials/geometry-monster/294.png) - -Modifiez l'action et remplacez `100` pixels par `Variable(GameSpeed)`. - -![](/gdevelop5/tutorials/geometry-monster/295.png) - -Cette modification doit être répétée pour l'obstacle bombe. Ajoutez le commentaire `"Déplacer l'obstacle en fonction de la vitesse de jeu"` ... - -![](/gdevelop5/tutorials/geometry-monster/296.png) - -... puis remplacez `100` pixels par `1.5 * Variable(GameSpeed)`, afin que les bombes tombent plus vite que les formes. - -![](/gdevelop5/tutorials/geometry-monster/297.png) - -Testez le jeu et jouez un peu pour voir si cela fonctionne vraiment comme prévu. - -![](/gdevelop5/tutorials/geometry-monster/298.png) - -!!! note - - Vous pouvez rendre le jeu plus facile ou plus difficile en modifiant vous-même la variable **GameSpeed**. - -Passons maintenant aux particules. Cliquez sur **Add a new object** dans le panneau de droite ... - -![](/gdevelop5/tutorials/geometry-monster/299.png) - -... est sélectionnez **Particles emitter** (Émetteur de particules). - -![](/gdevelop5/tutorials/geometry-monster/300.png) - -Ces émetteurs engendrent de petites formes sous l'aspect de particules dès que le monstre ramasse une forme. Le nom de l'objet (**Object name:**) est `Shape1Explosion`, le type de particules : `Textured` (texturé). Sélectionnez ensuite l'image `geometry1.png` et entrez les valeurs des différents paramètres. **Particles start width** (largeur initiale des particules) : `20`, **Particles start height** (hauteur initiale des particules) : `20` pixels, l'opacité du début et de la fin **Start opacity** et **End opacity** est de `255` ; elles seront donc toujours entièrement visibles. - -![](/gdevelop5/tutorials/geometry-monster/301.png) - -Faites défiler vers le bas pour entrer d'autres valeurs. Assurez-vous de sélectionner **Delete when out of particles** (Supprimer quand il n'y a plus de particules) : l'émetteur fera apparaître toutes les particules qui lui sont attribuées et elles seront ensuite supprimées si elles ne sont plus nécessaires. Réglez le nombre maximum de particules (**Maximum number of particles displayed**) à `10`, le nombre de particules dans le réservoir (**Number of particles in tank**) à `5`, le débit (**Flow of particles**) à `45` particules par seconde, la force d'émission minimale appliquée sur les particules (**Minimum emitter force applied on particles**) également à `45`, et le maximum à `85`, l'angle du cône de pulvérisation à `360` degrés (de sorte que l'émetteur génère les particules dans toutes les directions) et le rayon de l'émetteur (**Radius of the emitter**) à `10`. - -![](/gdevelop5/tutorials/geometry-monster/302.png) - -Faites défiler encore plus vers le bas. Réglez la gravité des particules (**Gravity on particles**) sur les axes X et Y à `0` (nous n'avons pas besoin de la gravité dans ce jeu), le frottement sur les particules (**Friction on particles**) à `2`, la durée de vie minimale des particules (**Particle minimum lifetime**) à `0,5` secondes et la durée maximale (**Particle maximum lifetime**) à `1,5` secondes, la taille initiale des particules (**Particle start size**) à `100` pourcent et taille finale (**Particle start size**) à `80` pourcent (elles deviennent donc un peu plus petites après leur apparition), la vitesse de rotation minimale (**Particle minimum rotation speed**) à `0` degrés par seconde et la vitesse maximale à `40` degrés par seconde (donc certains d'entre-elles peuvent tourner un peu). - -Confirmez le tout cela en cliquant sur **APPLY**. - -![](/gdevelop5/tutorials/geometry-monster/303.png) - -Répétez ces étapes pour les trois autres formes : **geometry2**, **geometry3** et **geometry4**. - -![](/gdevelop5/tutorials/geometry-monster/304.png) - -Créez un sous-commentaire pour générer les particules (`CREATE PARTICLES`), puis ajoutez une nouvelle condition. - -![](/gdevelop5/tutorials/geometry-monster/305.png) - -Sélectionnez **Shape1** dans la liste des objets, recherchez et sélectionnez **Number of objects** (Nombre d'objets), puis `≠(not equal to)` (différent de) et comparez à `0` dans le panneau de droite. - -![](/gdevelop5/tutorials/geometry-monster/307.png) - -Ajoutez une nouvelle action `Shape1Explosion` qui apparaît dans la liste des objets, recherchez et sélectionnez **Create and object** (Créer un objet), puis positionnez X (**X position**) sur `Shape1.PointX("Center")` et positionnez Y (**Y position**) sur `Shape1.PointY("Center")`. Elles apparaissent donc au milieu de la forme qu'elles vont remplacer. - -![](/gdevelop5/tutorials/geometry-monster/309.png) - -Ajoutez une autre action **Shape1Explosion**, avec **Size, parameter 1** (Taille, paramètre 1) puis `= (set to)` avec pour valeur `Shape1.Width()`. Confirmez avec **OK** - -![](/gdevelop5/tutorials/geometry-monster/311.png) - -Répétez ces étapes pour les trois autres formes. - -![](/gdevelop5/tutorials/geometry-monster/312.png) - -Nous allons maintenant, ajouter le sous-commentaire de la section concernant la suppression de la forme lorsqu'elle est récoltée, et ensuite déplacer la partie responsable de l'augmentation du score. - -![](/gdevelop5/tutorials/geometry-monster/313.png) - -Faites glisser la partie **Delete object Shapes** (Supprimer les formes des objets) vers le bas ... - -![](/gdevelop5/tutorials/geometry-monster/314.png) - -... pour que cela ressemble à ça. - -![](/gdevelop5/tutorials/geometry-monster/315.png) - -C'est ça ! Les treize étapes sont maintenant terminées et vous avez construit le jeu **Geometry Monster** à partir de zéro. **Félicitations !** - -![](/gdevelop5/tutorials/geometry-monster/316.png) - -Le jeu propose une quantité infinie de formes à collecter, des bombes pour le rendre un peu plus difficile, des vies pour contrer ces difficultés et "adoucir" les erreurs, suivre le score, terminer le jeu lorsque Monster est à court de vies, basculer entre le menu principal et les scènes de gameplay , augmentant le niveau de difficulté, les effets de particules et bien plus encore! - -N'hésitez pas à l'utiliser comme base et à le compléter. Ajoutez des fonctionnalités, modifiez celles existantes et jouez pour en apprendre le plus possible. - -⬅️ **[Étape précédente : 12. Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu)** ⬅️ **[Retour à l'index](/fr/gdevelop5/tutorials/geometry-monster)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md b/docs/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md deleted file mode 100644 index e0029f951a..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 2-creating-first-scene ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 1. Installation et configuration](/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Étape suivante : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** - -# 2. Création de la première scène - -Maintenant, quand nous avons [installé l'éditeur GDevelop](/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup) et que la configuration de base est terminée, nous pouvons commencer à créer. Pour ajouter des composants au jeu, nous devons commencer par une scène - celle-ci fonctionnera comme un panier contenant divers objets et fera en sorte de les montrer à l'écran. - -Pour ajouter une nouvelle scène, cliquez sur le menu déroulant **Scenes** dans le panneau de gauche et lorsque son contenu est développé, cliquez le bouton **Click to add a scene** (Cliquez pour ajouter une scène), qui est suffisamment explicite puis cliquez sur les trois points à gauche et sélectionnez **Rename**. - -![](/gdevelop5/tutorials/geometry-monster/14.png) - -Appelons notre première scène `Level1`. - -![](/gdevelop5/tutorials/geometry-monster/15.png) - -Après la création réussie de la scène, nous y sommes directement dirigés. Remarquez les onglets **Level1** et **Level1 (Events)** (événements) dans le haut de l'éditeur, onglets que vous pouvez sélectionner séparément. Dans le panneau de gauche, vous pouvez configurer les propriétés de n'importe laquelle des instances sélectionnées dans la scène, dont le contenu réel est visible dans la partie centrale de l'écran (la zone de jeu est déjà en mode portrait), et dans le panneau de droite s'affiche la liste des objets (**Objects**). - -![](/gdevelop5/tutorials/geometry-monster/16.png) - -⬅️ **[Étape précédente : 1. Installation et configuration](/gdevelop5/tutorials/geometry-monster/1-install-and-setup)** ➡️ **[Étape suivante : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md b/docs/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md deleted file mode 100644 index bde425f236..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: 3-introducing-main-character ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** ➡️ **[Étape suivante : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)** - -# 3. Création du personnage principal - -Maintenant que la scène elle-même est prête, elle est plutôt vide - ajoutons-y quelque chose ! - -Nous pouvons le faire en cliquant sur le bouton **Add a new object** (Ajouter un nouvel objet) dans le panneau **Objects** à droite. - -![](/gdevelop5/tutorials/geometry-monster/17.png) - -Il ouvre une fenêtre contextuelle où une liste des options disponibles est affichée. Celles-ci vont des **Sprites** à l'option **Text entry** (Entrées de texte) en passant par l'option **Tiled Sprite**, **Text**, **Particles emitter** (émetteurs de particules), **Panel Sprite** et **Shape painter** (dessinateur de formes). Sélectionnez **Sprite**, vocable utilisé pour désigner les objets animés qui peuvent être utilisés pour la plupart des éléments d'un jeu. - -![](/gdevelop5/tutorials/geometry-monster/18.png) - -Une autre fenêtre apparaît alors, mais contenant cette fois-ci les options pour personnaliser le nouvel objet. Nous l'appellerons `Monster`. Il sera notre personnage principal dans le jeu, chargé de collecter des objets et tout en étant en même temps *mignon*. - -![](/gdevelop5/tutorials/geometry-monster/19.png) - -Après lui avoir donné un nom, ajoutons quelques images qui le représenteront sur la scène et dans le jeu. Cliquez sur le bouton **ADD AN ANIMATION** (Ajouter une animation) puis sur le gros bouton **ADD** à gauche pour ouvrir une fenêtre de sélection de fichier. - -![](/gdevelop5/tutorials/geometry-monster/20.png) - -Accédez au dossier où se trouvent les images (vous pouvez les télécharger à partir de ![ici](/gdevelop5/tutorials/geometry-monster-sources.zip)), sélectionnez tout ce que vous souhaitez ajouter (Ici` **monster-idle1.png**` à `monster-idle11.png`), puis cliquez sur **Ouvrir**. - -![](/gdevelop5/tutorials/geometry-monster/21.png) - -Si vos images ne se trouvent pas dans le dossier du projet, GDevelop affiche un message disant que ces fichiers sont en dehors du dossier du projet, donc la prochaine étape recommandée est de permettre de les copier dans le dossier du projet avant de faire quoi que ce soit avec eux. Cliquez sur **OK** pour le faire. - -![](/gdevelop5/tutorials/geometry-monster/22.png) - -Toutes les images que nous venons d'importer serviront pour animer le personnage inactif – celle qui est lue lorsque rien ne se passe. L'animation étant en boucle, il semblera que le monstre ferme et ouvre les yeux de temps en temps, et ce indéfiniment. - -Nous nommerons cette animation `MonsterIdle` (Monstre au repos), et chaque nouvelle image sera rendue après chaque dixième de seconde. - -!!! note - - N'oubliez pas de sélectionner l'option **Loop** (Boucle) pour que l'animation se répète indéfiniment. - -![](/gdevelop5/tutorials/geometry-monster/23.png) - -Vous pouvez également modifier des images dans Piskel (**EDIT IN PISKEL**) ou prévisualiser (**PREVIEW**) l'animation si vous le souhaitez. - -Lorsque tout est terminé, cliquez sur **APPLY** (Appliquer) pour enregistrer les modifications. - -![](/gdevelop5/tutorials/geometry-monster/24.png) - -Vous pouvez maintenant voir l'icône de notre petit monstre dans le panneau de droite, sous la liste **Objects**. N'est-il pas mignon ? - -Pour rendre la scène un peu plus intéressante, ajoutons-lui une couleur d'arrière-plan. Faites un clic droit sur la scène et sélectionnez **Scene properties** (Propriétés de la scène) dans le menu contextuel. - -![](/gdevelop5/tutorials/geometry-monster/25.png) - -Cette commande ouvre une fenêtre contextuelle avec quelques options. Nous sommes intéressés à définir une couleur d'arrière-plan de la scène (**Scene background color**) de sorte que le monstre ait l'air élégant. - -Cliquez sur le sélecteur de couleurs à droite et choisissez une couleur - la nôtre est `#560921`. - -![](/gdevelop5/tutorials/geometry-monster/26.png) - -Après confirmation, la couleur d'arrière-plan de la scène changera pour celle qui a été sélectionnée - succès ! - -![](/gdevelop5/tutorials/geometry-monster/27.png) - -⬅️ **[Étape précédente : 2. Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene)** ➡️ **[Étape suivante : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md b/docs/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md deleted file mode 100644 index 36de6bbacb..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: 4-desktop-and-mobile-controls ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** ➡️ **[Étape suivante : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)** - -# 4. Commandes pour ordinateurs et téléphones mobiles - -Maintenant que nous avons créer Monster, ce serait bien de pouvoir le contrôler. - -Faites glisser le monstre du panneau de droite (contenant les objets) sur la scène et cliquez sur l'onglet **Level1 (Events)** pour passer à l'édition des événements. - -![](/gdevelop5/tutorials/geometry-monster/28_5.png) - -La liste des événements est videpar défaut – le message contextuel explique que les événements sont composés de **conditions **et d'**actions**. - -![](/gdevelop5/tutorials/geometry-monster/30.png) - -Dans la partie supérieure droite de l'éditeur sont affichées maintenant quelques icônes. Cliquez sur la troisième à partir de la gauche : un carré bleu clair avec un signe **+** blanc sur fond bleu foncé. Lorsque vous lui passez la souris dessus, l'infobulle indique **Add a new empty event** (Ajouter un nouvel événement vide). - -![](/gdevelop5/tutorials/geometry-monster/31.png) - -Quand l'événement vide est ajouté, cliquez sur **Add condition** (Ajouter une condition), ce qui ouvre une fenêtre contextuelle. - -![](/gdevelop5/tutorials/geometry-monster/32.png) - -Dans la fenêtre contextuelle, vous voyez que notre monstre figure dans la liste des objets. Mais, pour le moment, il ne nous intéresse pas. Cliquez sur l'onglet **OTHER CONDITIONS** (Autres conditions) pour développer la liste des options. - -![](/gdevelop5/tutorials/geometry-monster/33.png) - -!!! note - - Vous n'avez pas l'onglet **OTHER CONDITIONS** ? Pas de panique ! Allez dans les préférences de GDevelop (cliquez sur le menu **File**, ou **GDevelop 5** sur macOS, puis sur **Preferences**). Activez **Use the new action/condition editor** (Utiliser le nouvel éditeur d'action/condition). Vous pouvez ensuite revenir au didacticiel. - - ![](/gdevelop5/tutorials/geometry-monster/activate_new_editor.png) - -Les conditions incluent entre autres les collisions, les opérations sur les variables, la souris et les commandes tactiles. Cliquez sur l'option **Keyboard** (Clavier) pour développer la liste, puis sélectionnez **Key pressed** (Touche pressée). - -![](/gdevelop5/tutorials/geometry-monster/34.png) - -Cette condition teste si une touche spécifique a été pressée. Entrez **Left** (Gauche) dans le champ **Key** (Touche), puis cliquez sur **OK**. - -![](/gdevelop5/tutorials/geometry-monster/35_5.png) - -Revenons maintenant à notre Monster. Cliquez sur **Add an action** (Ajouter une action). - -![](/gdevelop5/tutorials/geometry-monster/37.png) - -Sélectionnez **Monster** dans la liste de gauche, recherchez puis cliquez **Add a force** (Ajouter une force), puis réglez la vitesse **Speed on X axis** sur `-450` et à `0` pour l'axe Y. - -![](/gdevelop5/tutorials/geometry-monster/38.png) - -!!! note - - Assurez-vous que l'option **INSTANT** (Instantané) est sélectionnée, car nous voulons que le monstre se déplace uniquement lorsque vous appuyez sur la touche gauche et s'arrête lorsqu'elle est relâchée. - -Quand vous avez terminé, cliquez sur **OK** pour confirmer. - -GDevelop affiche la version finale de l'événement que nous venons de terminer, avec les conditions à gauche et une action à droite. En langage courant, cela veut dire que lorsque vous appuyez sur la touche gauche, le monstre se déplace horizontalement (en appliquant la force de -450 unités le long de l'Axe X tout en ignorant l'axe Y doté d'une force valant 0) vers le bord gauche de l'écran. - -![](/gdevelop5/tutorials/geometry-monster/45.png) - -**Félicitations**, le monstre se déplace vers la gauche ! Maintenant, ajoutons le déplacement vers la droite. Essayez de le faire vous-même en suivant exactement les mêmes étapes que vous avez faites pour le mouvement vers la gauche. - -![](/gdevelop5/tutorials/geometry-monster/51.png) - -Lorsque vous avez terminé le mouvement vers la droite, les deux événements avec leurs conditions et actions devraient maintenant être en place, afin que le monstre puisse se déplacer dans les deux sens - vers la gauche ou vers la droite. - -Cliquez sur le bouton **Add a comment** (Ajouter un commentaire) dans la barre des outils pour faire apparaître un champ supplémentaire. - -![](/gdevelop5/tutorials/geometry-monster/52.png) - -Faites-le glisser en haut des deux événements (avec la souris sur la barre bleue à gauche). - -![](/gdevelop5/tutorials/geometry-monster/53.png) - -Entrez ensuite le commentaire `Monster`. Ce commentaire nous permet clairement voir à qui s'adresse ces commandes quand nous avons beaucoup d'événements dans la liste. - -Il nous faut maintenant limiter le mouvement du monstre à la partie visible de l'écran, de manière à ce qu'il ne se déplace pas à l'extérieur de celui-ci lorsque nous appuyons sur les touches du clavier. - -![](/gdevelop5/tutorials/geometry-monster/54.png) - -Cliquez sur l'onglet **Level1** pour revenir dans la fenêtre de configuration de la scène et double-cliquez **Monster** dans la liste de droite. - -![](/gdevelop5/tutorials/geometry-monster/54_1.png) - -Cliquez l'onglet **BEHAVIORS** (Comportements) dans la fenêtre qui s'ouvre. - -![](/gdevelop5/tutorials/geometry-monster/54_2.png) - -Puis ajouter un comportement à l'objet en cliquant **ADD A BEHAVIOR TO THE OBJECT** dans la nouvelle fenêtre. - -![](/gdevelop5/tutorials/geometry-monster/54_3.png) - -Cliquez sur l'onglet **SEARCH NEW BEHAVIORS** (Rechercher nouveaux comportements) dans la nouvelle fenêtre. - -![](/gdevelop5/tutorials/geometry-monster/54_4.png) - -Sélectionnez **Screen** (Écran) dans la liste des comportements disponibles. - -![](/gdevelop5/tutorials/geometry-monster/54_5.png) - -Cliquez sur le comportement personnalisé **Stay On Screen** (Rester sur l'écran) que nous allons utiliser pour le monstre. - -![](/gdevelop5/tutorials/geometry-monster/54_6.png) - -Installez-le dans notre projet (**INSTALL IN PROJECT**). Il sera ainsi disponible pour une utilisation ultérieure. - -![](/gdevelop5/tutorials/geometry-monster/54_7.png) - -Sélectionnez-le ensuite dans la liste. - -![](/gdevelop5/tutorials/geometry-monster/54_8.png) - -Entrez `133` pour la marge de droite (dans **Right margin, in pixels**).Cette valeur correspond à la largeur du monstre (en pixels), de manière à ce qu'il ne sorte pas de l'écran vers la droite (son origine se trouve dans la partie supérieure gauche du sprite), puis cliquez sur **APPLY**. - -![](/gdevelop5/tutorials/geometry-monster/54_9.png) - -Dans la barre d'outils (en haut à droite), cliquez sur le premier bouton – **Launch a preview of the scene** (Lancer un aperçu de la scène). - -![](/gdevelop5/tutorials/geometry-monster/55.png) - -Si tout à été fait correctement , l'aperçu du jeu Geometry Monster est lancé, et vous pouvez déjà contrôler le personnage principal ! - -![](/gdevelop5/tutorials/geometry-monster/56.png) - -Maintenant que nous avons des commandes pour un ordinateur (déplacer le monstre avec le clavier), il serait génial d'ajouter la possibilité de le déplacer avec la souris ou avec les doigts sur un écran tactile. Le jeu sera plus facile à jouer avec la souris, et il sera également jouable sur un mobile. - -Cliquez sur l'onglet **Level1 (Events)** puis sur le bouton sur **Add a new empty event** et ajoutez une condition (**(Add condition**). - -![](/gdevelop5/tutorials/geometry-monster/56_1.png) - -Dans l'onglet **OTHER CONDITIONS**, Recherchez **Mouse and touch** (Souris et touché) puis **Mouse button pressed or touch held** (Bouton de la souris enfoncé ou appuyé de manière prolongée), et le bouton à tester (**Button to test**) sera **Left (primary)** (Gauche (principal)). - -![](/gdevelop5/tutorials/geometry-monster/56_2.png) - -Ajoutez maintenant une sous-condition en cliquant dans le quatrième bouton de la barre d'outils en haut à droite. - -![](/gdevelop5/tutorials/geometry-monster/56_3.png) - -Sélectionnez **Monster**, puis **"Compare X position of an object** (Comparer la position X d'un objet) et entrez `> (greater than)` (supérieur à) pour **Sign of the test** (Signe du test) et `MouseX() + 5` pour la **Position X**. - -* `MouseX ()` est une *expression* (aussi appelée *fonction*, comme les fonctions mathématiques). Elle renvoie la position de la souris, ou du toucher sur un écran tactile, en pixels sur l'axe X. - -* Le `5` est un décalage en pixels, de manière à ce que le monstre ne saute pas entre les deux états s'il est cliqué ou touché au centre (vous verrez comment cela est utile en programmant le prochain événement). - -![](/gdevelop5/tutorials/geometry-monster/56_4.png) - -Copiez l'action effectuée à partir de la condition testant une pression sur la touche gauche du clavier. (Faites un clic droit dans zone et sélectionnez **Copy** dans le menu contextuel, comme montré dans la figure.) ... - -![](/gdevelop5/tutorials/geometry-monster/56_5.png) - -... et collez-la dans la condition de nous venons de créer. - -![](/gdevelop5/tutorials/geometry-monster/56_6.png) - -Créez ensuite une nouvelle sous-condition. - -![](/gdevelop5/tutorials/geometry-monster/56_7.png) - -Suivez le même schéma : **Monster**, **Compare X position of an object**, puis **\< (less than)** et **MouseX() - 5** pour le décalage de l'autre côté. - -![](/gdevelop5/tutorials/geometry-monster/56_8.png) - -Copiez et collez l'action de la condition pour la touche droite du clavier et collez-la ici. - -![](/gdevelop5/tutorials/geometry-monster/56_9.png) - -Excellent! Le monstre devrait maintenant se déplacer avec les commandes du clavier et de la souris! - -![](/gdevelop5/tutorials/geometry-monster/56_10.png) - -⬅️ **[Étape précédente : 3. Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character)** ➡️ **[Étape suivante : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md b/docs/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md deleted file mode 100644 index 7c1d253dca..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md +++ /dev/null @@ -1,174 +0,0 @@ ---- -title: 5-adding-and-moving-shapes ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)** ➡️ **[Étape suivante : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)** - -# 5. Ajout et déplacement de formes - -Après avoir réussi [l'implementation des déplacements](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls) du monstre, il serait bien d'ajouter les formes qui vont tomber et de les déplacer vers le bas de le scène. - -!!! note - - Notez qu'au lieu d'avoir un nombre fixe d'objets placés sur la scène, nous les générerons de manière à ce que le jeu soit de type réellement **sans fin**. - -Dans le panneau **Level1**, cliquez sur **Add a new object** (Ajouter un nouvel objet) dans le panneau de droite pour ouvrir une fenêtre contextuelle. - -![](/gdevelop5/tutorials/geometry-monster/57.png) - -Sélectionnez un **Sprite**, comme nous l'avons fait auparavant avec Monster . - -![](/gdevelop5/tutorials/geometry-monster/58.png) - -Nommez-le `Shape1` et cliquez sur le bouton **ADD AN ANIMATION** (Ajouter une animation). - -![](/gdevelop5/tutorials/geometry-monster/59.png) - -L'animation de cet objet s'appelle **NewObject1**. Chargez l'image du triangle à partir du disque. Le temps de rendu n'est pas important car c'est la seule image que nous avons, il en va de même pour l'animation en boucle. Cliquez sur **APPLY** (Appliquer) pour l'enregistrer. - -![](/gdevelop5/tutorials/geometry-monster/60.png) - -Cliquez encore une fois sur **Add a new object**. - -![](/gdevelop5/tutorials/geometry-monster/61.png) - -Faites de même pour la deuxième forme **Shape2** avec comme nom d'animation **NewObject2**, importez l'image du carré, puis cliquez **APPLY**. - -![](/gdevelop5/tutorials/geometry-monster/62.png) - -Répétez les mêmes opérations pour le cercle. - -![](/gdevelop5/tutorials/geometry-monster/63.png) - -Répétez encore une fois pour la dernière et quatrième forme, un pentagone. - -![](/gdevelop5/tutorials/geometry-monster/64.png) - -Les quatre formes sont maintenant visibles dans la liste **Objects** dans le panneau de droite. Nous allons les regrouper avec l'éditeur de groupes d'objets **Object groups**. Pour ce faire, cliquez sur la quatrième icône située dans le menu en haut à droite, celle qui a trois cubes. - -![](/gdevelop5/tutorials/geometry-monster/65.png) - -Cette opération ajoute un panneau supplémentaire à droite du panneau **Objects**, intitulé **Object Groups**. Cliquez sur **Group** pour ouvrir une fenêtre contextuelle. - -![](/gdevelop5/tutorials/geometry-monster/66.png) - -Cliquez sur **Choose an object to add to the group** (Choisir un objet à ajouter au groupe), puis sélectionnez la première forme. - -![](/gdevelop5/tutorials/geometry-monster/67.png) - -Continuez à ajouter les formes jusqu'à ce que toutes soient répertoriées dans le groupe, puis cliquez sur **APPLY**. - -!!! note - - Prenez garde de ne pas ajouter le monstre à ce groupe, uniquement les formes. - -![](/gdevelop5/tutorials/geometry-monster/69.png) - -Cliquez maintenant sur les trois points verticaux à côté de **Group** dans le panneau **Object Groups**pour ouvrir un menu contextuel et cliquez sur **Remane** (Renommer). - -![](/gdevelop5/tutorials/geometry-monster/70.png) - -Renommez le groupe `Shapes` (Formes) et confirmez. - -![](/gdevelop5/tutorials/geometry-monster/71.png) - -Activez le panneau **Level1 (Events)**, cliquez le quatrième bouton dans la barre des menus en haut à droite pour ajouter un commentaire indiquant que cette nouvelle section concerne les formes. Inscrivez `Shapes` dans ce commentaire. - -![](/gdevelop5/tutorials/geometry-monster/73.png) - -Cliquez ensuite sur le bouton **Add a new event** (Ajouter un nouvel événement) puis ajoutez une condition (**Add condition**) pour ouvrir une fenêtre contextuelle. - -![](/gdevelop5/tutorials/geometry-monster/74.png) - -Dans l'onglet **OTHER CONDITIONS** (Autres conditions), recherchez **Timers and time** (Temps et chronomètre), puis cliquez pour le sélectionner. - -![](/gdevelop5/tutorials/geometry-monster/76.png) - -!!! note - - Vous n'avez pas l'onglet **OTHER CONDITIONS** ? Pas de panique ! Allez dans les préférences de GDevelop (cliquez sur le menu **File**, ou **GDevelop 5** sur macOS, puis sur **Preferences**). Activez **Use the new action/condition editor** (Utiliser le nouvel éditeur d'action/condition). Vous pouvez ensuite revenir au didacticiel. ![](/gdevelop5/tutorials/geometry-monster/activate_new_editor.png) - -Ensuite, dans la liste déroulante, sélectionnez **Value of a scene timer** (Valeur d'un chronomètre de scène) et entrez deux valeurs. La première est `1,3` dans le champ **Time in seconds** (Temps en secondes) qui spécifie la durée de la minuterie en secondes. Autrement dit, toutes les 1,3 secondes, nous déposons une nouvelle forme sur la scène. - -Le deuxième est le nom de la minuterie **Timer's name** que vous appelez `"ShapeCreation"`, puis cliquez sur **OK** lorsque vous avez entré ces deux valeurs. - -![](/gdevelop5/tutorials/geometry-monster/77_5.png) - -Maintenant que la condition est définie, ajoutons l'action en cliquant sur **Add action**:. - -![](/gdevelop5/tutorials/geometry-monster/79.png) - -Cliquez sur **Other actions** (Autres actions). - -![](/gdevelop5/tutorials/geometry-monster/80.png) - -Recherchez ensuite **Create an object from its name** (Créer un objet à partir de son nom) qui se trouve dans la liste déroulante **Non-objects and other actions** (Non-objets et autres actions). - -![](/gdevelop5/tutorials/geometry-monster/81.png) - -Dans le panneau de droite, recherchez le groupe **Shapes** et cliquez-lui dessus. - -![](/gdevelop5/tutorials/geometry-monster/82.png) - -Les trois valeurs que nous devons spécifier sont : **Text representing the name of the object to create** (Texte représentant le nom de l'objet à créer), **X position** et **Y position**. La première est `"Shape"+ ToString (RandomInRange(1,4))`, de sorte que chaque fois qu'un nouvel objet est créé, ce sera l'une des quatre formes disponibles choisie au hasard. - -La position X est `RandomInRange(80,640-80)` - ce qui signifie que nous choisissons une position aléatoire entre 80 et 560 pixels. Pourquoi ces valeurs spécifiques ? Pour nous assurer que les formes sont entièrement restituées sur la scène et ne soient pas partiellement découpées si elles sont rendues sur l'un des bords de l'écran. - -La position Y est `-100`, donc la nouvelle forme apparaît au-dessus de la zone visible, puis descend. Cela semble plus naturel que de la faire apparaître directement dans la zone de jeu. - -![](/gdevelop5/tutorials/geometry-monster/83.png) - -!!! note - - Un peu perdu au sujet des positions sur l'écran ? Si vous déplacez votre curseur dans l'éditeur de scène, vous verrez en bas à gauche les positions X et Y du curseur. Utile pour se faire une idée de l'emplacement d'un objet tout en travaillant avec des événements comme ceux-ci. - -Ajoutons une autre action (**Add action**) à celle que nous venons de créer. - -![](/gdevelop5/tutorials/geometry-monster/84.png) - -Assurez-vous que les formes **Shapes** sont bien sélectionnées, puis recherchez **Angle** dans le panneau à droite. Cette commancde change l'angle de rotation d'un objet. Dans **Modification's sign** (Signe de la modification), sélectionnez **= (set to)** (= (défini à)) et la valeur `RandomInRange(0, 360)`. - -Désormais, chaque fois qu'une nouvelle forme est créée et déposée dans la zone de jeu, elle sera tournée d'une valeur aléatoire comprise entre 0 et 360 degrés. Cela ajoutera de la variété à la façon dont les formes apparaissent dans le jeu. - -![](/gdevelop5/tutorials/geometry-monster/85.png) - -Allons encore plus loin avec les personnalisations - cliquez à nouveau sur **Add action**. - -![](/gdevelop5/tutorials/geometry-monster/86.png) - -Cliquez sur **Shapes**, puis recherchez **Scale** (Echelle). Sélectionnez **= (set to)** et entrez `RandomInRange(0.8, 1.6)`. Cela personnalisera encore plus les formes en introduisant une mise à l'échelle aléatoire : certaines d'entre elles seront un peu plus petites que l'original (80% de l'original), et certaines seront plus grandes (160%). - -![](/gdevelop5/tutorials/geometry-monster/87.png) - -!!! note - - La rotation et la mise à l'échelle sont un excellent moyen de rendre le jeu plus amusant même si nous n'avons encore que quatre formes de base dans le jeu. - -Cliquez **Add action** puis **OTHER ACTIONS** (Autres actions). Recherchez **Timers and time** (Temps et chronomètre), et sélectionnez **Start (or reset) a scene timer** "Démarrer (ou réinitialiser) un chronomètre de scène). - -![](/gdevelop5/tutorials/geometry-monster/89.png) - -Le nom du minuteur étant **ShapeCreation**, chaque fois qu'une nouvelle forme est créée, le minuteur est réinitialisé et nous attendons 1,3 seconde avant qu'une nouvelle forme ne soit créée à nouveau et cela indéfiniment. - -![](/gdevelop5/tutorials/geometry-monster/90.png) - -Nous avons presque terminé avec les formes. Créez un commentaire intitulé **Move shapes** (Déplacer les formes), cliquez sur **Add a new empty event** (Ajouter un nouvel événement vide), puis sur **Add action**. - -![](/gdevelop5/tutorials/geometry-monster/91.png) - -Définissez l'action de la manière suivante : sélectionnez **Shapes**, puis à droite **Add a force (angle)** (Ajouter une force (angle)), et réglez **Angle** sur` **90**` et **Speed (in pixels per second)** (Vitesse en (pixels par seconde)) sur `100`. - -![](/gdevelop5/tutorials/geometry-monster/92.png) - -Ajoutez une autre action : **Shapes**, puis **Rotate** (Rotation) et réglez la vitesse angulaire **Angular speed (in degrees per second)** sur `90`. - -![](/gdevelop5/tutorials/geometry-monster/92_2.png) - -C'est fait ! Non seulement less formes sont générées de manière aléatoire et indéfinie, elles ont non seulement une rotation et une mise à l'échelle aléatoires au début, mais elles tournent aussi en tombant. - -![](/gdevelop5/tutorials/geometry-monster/94.png) - -Lancez le jeu pour voir tout cela en action : les formes devraient tomber sur la scène. Mais on dirait que quelque chose manque, non ? Les formes passent sur le monstre. Nous devons donc introduire [la détection des collisions](/gdevelop5/tutorials/geometry-monster/6-collision-detection) pour pouvoir les collecter. - -⬅️ **[Étape précédente : 4. Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls)** ➡️ **[Étape suivante : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection.md b/docs/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection.md deleted file mode 100644 index aff175f37c..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: 6-collision-detection ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)** ➡️ **[Étape suivante : 7. Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun)** - -# 6. Détection des collisions - -Les formes tombent, mais elles n'interagissent pas avec le monstre. Nous aimerions pouvoir contrôler le monstre et lui permettre de collecter les formes qui tombent - c'est à cela que sert la ***détection des collisions***. - -Ajoutez un nouveau commentaire et appelez-le `Collision`. - -![](/gdevelop5/tutorials/geometry-monster/95.png) - -Ajoutez ensuite une nouvelle condition (**Add condition**). - -![](/gdevelop5/tutorials/geometry-monster/96.png) - -Comme toujours, assurez-vous que **Shapes** soit sélectionné, puis recherchez **Collision** (qui testera la collision entre deux objets). Dans le panneau de droite, entrez `Monster` et cliquez sur **OK**. - -![](/gdevelop5/tutorials/geometry-monster/97.png) - -Nous avons la condition, il est maintenant temps d'ajouter une action (**Add action**). - -![](/gdevelop5/tutorials/geometry-monster/99.png) - -Activez **Shapes**, recherchez et activez **Delete an object** (Supprimer un objet) puis cliquez **OK**: - -![](/gdevelop5/tutorials/geometry-monster/100.png) - -Ce fut rapide ! La détection de collisions en elle-même est simple, mais sa puissance se révélera dans les chapitres suivants, où nous ajouterons de nombreuses actions à la condition de collision créée ci-dessus. - -⬅️ **[Étape précédente : 5. Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes)** ➡️ **[fr/gdevelop5:tutorials:geometry-monster:7-sounds-fun\|Étape suivante : 7. Bruitages amusants](/gdevelop5/tutorials/geometry-monster/7-sounds-fun)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md b/docs/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md deleted file mode 100644 index c9afb614a6..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: 7-sounds-fun ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)** ➡️ **[Étape suivante : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)** - -# 7. Bruitages amusants - -La [détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) est à elle seule brève et "nue", mais lorsque Monster et la forme entrent en collision, rien ne se passe mise à part la destruction de la forme. Nous pouvons profiter de cette condition (la détection d'une collision) et y ajouter quelque chose de plus, un ***son*** (bruitage). - -Ajoutez une action, sélectionnez **Monster** puis l'onglet **OTHER ACTIONS** (Autres actions). - -![](/gdevelop5/tutorials/geometry-monster/101.png) - -Recherchez **Audio** dans le menu déroulant qui s'ouvre, optez pour **Play a sound** (Jouer un son). Dans le panneau de droite, cliquez sur **Choose a new audio file** (Choisir un nouveau fichier audio). - -![](/gdevelop5/tutorials/geometry-monster/102.png) - -Cette action ouvre une fenêtre contextuelle où vous pourrez choisir et charger un fichier audio qui sera joué lorsque une forme est collectée par le monstre. Pour nous, il s'agit du fichier `monster.wav`. - -![](/gdevelop5/tutorials/geometry-monster/103.png) - -Si vous l'avez sélectionné correctement, vous devriez voir le nom du fichier son qui sera utilisé. - -![](/gdevelop5/tutorials/geometry-monster/104.png) - -!!! note - - Assurez-vous que **Repeat the sound** (Répéter le son) est réglé sur **NO** car nous voulons que le son ne soit joué qu'une seule fois lorsque le monstre récupère la forme. Le volume par défaut est `100`. - -![](/gdevelop5/tutorials/geometry-monster/105.png) - -Maintenant que le bruitage est programmé, nous pouvons commencer à penser à [suivre le score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score). - -⬅️ **[\|Étape précédente : 6. Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection)** ➡️ **[Étape suivante : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score.md b/docs/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score.md deleted file mode 100644 index 732db19f7d..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 8-tracking-score ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 7. Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun)** ➡️ **[Étape suivante : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)** - -# 8. Suivi du score - -C'est génial d'avoir déjà [des bruitages](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun), mais la partie la plus importante est en fait de compter le nombre de formes que le monstre a pu collecter. Nous allons profiter de la [détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) de la même manière : lorsque une forme est collectée, non seulement nous jouons un son, mais nous augmentons également le ***score***. - -Pour commencer, ajoutons une action après les actions servant à supprimer une forme et jouer un son, que nous avions ajoutées dans les chapitres précédents. Choisissez **Add an action** (Ajouter une action). - -Cliquez sur **OTHER ACTIONS** (Autres actions), recherchez **Variables** et sélectionnez **Value of a scene variable** (Valeur d'une variable de scène). Ensuite, dans le panneau de droite, mettez `Score` dans le champ **Variable**, **Modification's sign** (signe de la modification) sur `+ (add)` et **value** à `1`. Ces réglages signifient que chaque fois qu'une forme est collectée par le monstre, la forme disparaît et le joueur obtient un point. - -![](/gdevelop5/tutorials/geometry-monster/107.png) - -!!! note - - Ces instructions sont en fait un peu incomplètes : au cas où nous collecterions deux formes en même temps, nous n'obtiendrions qu'un seul point ! En effet, la condition sera considérée comme "vraie" pour les deux formes qui entrent en collision avec le monstre, mais l'action n'est alors exécutée qu'une seule fois. Nous corrigerons cela dans quelques instants avec un événement **For Each**. - -Nous avons maintenant la possibilité de suivre le score, mais le joueur ne peut pas le voir. Pour afficher le score, nous avons besoin de créer un objet de type texte. - -Cliquez sur l'onglet **Level1**, puis sur **Add a new object** (Ajouter un nouvel objet). - -![](/gdevelop5/tutorials/geometry-monster/108.png) - -Dans la fenêtre contextuelle **Add a new object**, sélectionnez **Text**. - -![](/gdevelop5/tutorials/geometry-monster/109.png) - -Entrez maintenant les propriétés de l'objet texte : **Object Name** (Nom de l'objet) est `Score`, la taille du texte **Size** est `30`, la couleur **Color** jaune, et le style est **Bold** (gras). Le texte lui-même est `Score :` . Confirmez en cliquant **APPLY**. - -![](/gdevelop5/tutorials/geometry-monster/110.png) - -Activez l'onglet **Level1 (Events)**, cliquez sur **Add an action**, et dans la fenêtre contextuelle, sélectionnez notre nouvelle variable **Score**. Recherchez et sélectionnez **Modify the text** (Modifier le texte), et dans le panneau de droite, sélectionnez **= (set to)** pour **Modification's sign**, en entrez dans le champ **Text** : `" Score : " + ToString(Variable(Score))`. - -![](/gdevelop5/tutorials/geometry-monster/112.png) - -Ces instructions mettent à jour le texte **Score** avec la valeur actuelle de la variable chaque fois qu'une forme entre en collision avec le monstre. - -!!! note - - Comme mentionné précédemment, cela est quelque peu incomplet car si le monstre entre en collision avec deux objets en même temps, les actions d'événement ne seront exécutées qu'une seule fois, donc un seul point sera ajouté au score. Nous devons dire à GDevelop d'exécuter les actions pour chaque forme entrée en collision à un moment donné. Faisons-le donc ! - -Activez l'onglet **Level1 (Events)**. Cliquez ensuite sur le bouton **Choose and add an event** (Choisir et ajouter un événement) dans la barre des outils, puis sur **For each object** (Pour chaque objet) dans le menu contextuel. - -![](/gdevelop5/tutorials/geometry-monster/113_5.png) - -Entrez le nom de l'objet, qui dans notre cas est le groupe appelé **Shapes**. - -![](/gdevelop5/tutorials/geometry-monster/115.png) - -Assurez-vous de faire glisser **Shapes in collision with Monster** (Formes en collision avec Monster) afin que cette instruction soit répétée pour chaque objet **Shapes**. - -![](/gdevelop5/tutorials/geometry-monster/116.png) - -Enfin, faites glisser toutes les actions dans le nouvel événement **For Each**. - -![](/gdevelop5/tutorials/geometry-monster/117.png) - -Vous pouvez ensuite supprimer l'événement vide. - -![](/gdevelop5/tutorials/geometry-monster/118.png) - -Activez maintenant l'onglet **Level1**, prenez l'objet **Score** dans le panneau de droite et faites-le glisser sur la scène. - -![](/gdevelop5/tutorials/geometry-monster/119_5.png) - -Lancez le jeu pour tester si le comptage du score et l'affichage des informations mises à jour fonctionnent comme prévu. - -![](/gdevelop5/tutorials/geometry-monster/121.png) - -⬅️ **[Étape précédente : 7. Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun)** ➡️ **[Étape suivante : 9. Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md b/docs/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md deleted file mode 100644 index eeea72c8e4..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: 9-adding-bombs ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -⬅️ **[Étape précédente : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)** ➡️ **[Étape suivante : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)** - -# 9. Ajout de bombes - -Bien que ce soit génial d'avoir le mécanisme de base pour collecter les formes, cela devient ennuyeux assez rapidement, et c'est beaucoup trop facile. Et si nous pouvions augmenter le niveau de difficulté en introduisant des objets que vous ne devriez pas collecter ? Voici les **bombes** ! - -Cliquez le bouton **Add a new object** (Ajouter un nouvel objet) ... - -![](/gdevelop5/tutorials/geometry-monster/122.png) - -... et sélectionnez **Sprite**. - -![](/gdevelop5/tutorials/geometry-monster/123.png) - -Le nom de l'objet bombe **Object name** est `Obstacle`. Il en va de même pour le nom de l'animation (**Animation \#0**). L'animation est constituée de deux images, à charger. L'animation doit durer `0,1` secondes et se dérouler en boucle (**Loop**). - -![](/gdevelop5/tutorials/geometry-monster/124.png) - -Ajoutez un autre commentaire et appelez-le `Obstacle`. - -![](/gdevelop5/tutorials/geometry-monster/125.png) - -Ajouter un nouvel événement vide (bouton **Add a new empty event**) puis une nouvelle condition (**Add condition**) et activez l'onglet **OTHER CONDITIONS** (Autres conditions). - -![](/gdevelop5/tutorials/geometry-monster/127.png) - -Activez **Timers and time** (Temps et chronomètre), sélectionnez **Value of a scene timer** (Valeur d'un chronomètre de scène). Dans le panneau de droite, entrez `5` pour **Time in seconds** (Durée en secondes) et `"ObstacleCreation"` pour **Timer's name** . - -![](/gdevelop5/tutorials/geometry-monster/128.png) - -Ces instructions créent une nouvelle minuterie qui engendre une bombe indépendamment de la génération des formes.Une nouvelle bombe apparaîtra toutes les 5 secondes. - -!!! note - - N'hésitez pas à modifier cette valeur pour rendre le jeu plus difficile. Nous verrons dans un prochain chapitre comment accélérer les bombes au fil du temps – pour rendre le jeu plus difficile. Vous pouvez également utiliser une variable au lieu d'un nombre, de sorte que vous pouvez changer pendant le jeu le temps écoulé entre la création des bombes ! - -Maintenant, passons à l'action ! Sélectionnez **Obstacle** dans l'onglet **OBJECTS** puis **Create an object** (Créer un objet) dans la liste à droite, et réglez la position X (**X position**) sur `RandomInRange(80, 640-80)` et la position Y (**Y position**) sur `-100`. C'est exactement la même approche que celle utilisée pour les formes. - -![](/gdevelop5/tutorials/geometry-monster/129.png) - -La deuxième action à ajouter (clic sur **Add action** puis **OTHER ACTIONS**) est **Start (or reset) a scene timer** (Démarrer (ou réinitialiser) un chronomètre de scène) dans la liste de **Timers and time** (Temps et chronomètres), puis lui donner le nom **Timer's name** de `ObstacleCreation`. - -![](/gdevelop5/tutorials/geometry-monster/131.png) - -Le panneau des événements devrait ressembler la figure ci-dessous après avoir terminé avec succès les différentes étapes. Si c'est le cas, ajoutez un commentaire intitulé `Move obstacles` (déplacement des obstacles) puis un autre événement vide dans lequel vous créez une nouvelle action (**Add action**). - -![](/gdevelop5/tutorials/geometry-monster/132.png) - -Dans le panneau **OBJECTS**, sélectionnez **Obstacle**, recherchez et sélectionnez **Add a force (angle)** (Ajouter une force (angle)). Entrez `90` dans le champ **Angle** et `100` dans le champ **Speed**. - -![](/gdevelop5/tutorials/geometry-monster/133.png) - -Nous voulons être sûr que la bombe soit devant les formes, et non derrière elles. À cet effet, nous allons utiliser **Z order**. C'est une manière de dire au jeu comment nous voulons que les objets soient rendus les uns au-dessus des autres. Sélectionnez **Obstacle**, puis **Z order** (PLan) dans la liste à droite, puis **= (set to)** pour le signe de la modification et pour terminer entrez **4** dans **Value**. - -![](/gdevelop5/tutorials/geometry-monster/134.png) - -Lancez le jeu et observez les formes tomber sur l'écran, avec des bombes apparaissant et tombant indépendamment une fois toutes les quelques formes. La récolte des formes vous donne des points, tandis que les bombes ne font encore rien. - -![](/gdevelop5/tutorials/geometry-monster/135.png) - -Les bombes sont une menace importante pour la vie du monstre. Rendons le gameplay un peu plus facile en introduisant des [vies](/gdevelop5/tutorials/geometry-monster/10-more-lives). - -⬅️ **[Étape précédente : 8. Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score)** ➡️ **[Étape suivante : 10. Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives)** diff --git a/docs/fr/gdevelop5/tutorials/geometry-monster/index.md b/docs/fr/gdevelop5/tutorials/geometry-monster/index.md deleted file mode 100644 index 757cf79110..0000000000 --- a/docs/fr/gdevelop5/tutorials/geometry-monster/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: geometry-monster ---- -FIXME **Cette page est entièrement traduite. Veuillez cependant corriger toutes les erreurs et les éventuelles imprécisions.**_(supprimer ce paragraphe une fois les modifications terminées)_ - -# Geometry Monster - -Bienvenue dans le didacticiel du jeu **Geometry Monster**. Dans cette suite de chapitres, vous apprendrez à créer un jeu hyper-décontracté adapté aux appareils mobiles. - -![](/gdevelop5/tutorials/geometry-monster-banner.png) - -À partir de la création du personnage principal et de son animation, nous passerons par l'ajout de commandes et d'objets à récolter, la détection des collisions, le suivi du score et la génération de vies multiples. Nous mettrons également en œuvre plusieurs scènes, notamment le menu principal et le gameplay, les effets sonores et le niveau de difficulté qui augmente avec le temps. - -![](/gdevelop5/tutorials/game-preview.png) - -!!! note - - Ce tutoriel utilise le nouvel éditeur d'action/condition ! Si vous avez déjà installé GDevelop, allez dans les préférences de GDevelop (cliquez sur le menu "Fichier" ou "GDevelop 5" sur macOS), puis "Préférences". Activez «Utiliser le nouvel éditeur d'action/condition» (Use the new action/condition editor). Vous pouvez ensuite revenir au didacticiel. ![](/gdevelop5/tutorials/geometry-monster/activate_new_editor.png) - -## Table des matières - -1\. [Installation et configuration](/fr/gdevelop5/tutorials/geometry-monster/1-install-and-setup) 2. [Création de la première scène](/fr/gdevelop5/tutorials/geometry-monster/2-creating-first-scene) 3. [Création du personnage principal](/fr/gdevelop5/tutorials/geometry-monster/3-introducing-main-character) 4. [Commandes pour ordinateurs et téléphones mobiles](/fr/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls) 5. [Ajout et déplacement de formes](/fr/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes) 6. [Détection des collisions](/fr/gdevelop5/tutorials/geometry-monster/6-collision-detection) 7. [Bruitages amusants](/fr/gdevelop5/tutorials/geometry-monster/7-sounds-fun) 8. [Suivi du score](/fr/gdevelop5/tutorials/geometry-monster/8-tracking-score) 9. [Ajout de bombes](/fr/gdevelop5/tutorials/geometry-monster/9-adding-bombs) 10. [Plus de vies](/fr/gdevelop5/tutorials/geometry-monster/10-more-lives) 11. [Jeu terminé](/fr/gdevelop5/tutorials/geometry-monster/11-game-over) 12. [Menu principal](/fr/gdevelop5/tutorials/geometry-monster/12-main-menu) 13. [Améliorations !](/fr/gdevelop5/tutorials/geometry-monster/13-juice-it) - -!!! note - - Des chapitres bonus permettant d'ajouter de nouvelles fonctionnalités au jeu seront ajoutés ! N'oubliez pas de vérifier cette page de temps en temps. - -## Obtenir les sources - -Téléchargez les ![sources du jeu Geometry Monster](/gdevelop5/tutorials/geometry-monster-sources.zip) contenant toutes les images dont vous avez besoin pour terminer le jeu, et le fichier `json` du projet final si vous souhaitez tout vérifier vous-même. - -## Jouer à Geometry Monster - -Vous pouvez également essayer le jeu et le jouer en ligne dès maintenant si vous voulez avoir une idée du gameplay - il peut être lancé en cliquant [geometry.enclavegames.com](https://geometry.enclavegames.com/). diff --git a/docs/fr/gdevelop5/tutorials/index.md b/docs/fr/gdevelop5/tutorials/index.md deleted file mode 100644 index a87e436f50..0000000000 --- a/docs/fr/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: GDevelop 5 tutoriels ---- -# GDevelop 5 tutoriels - -Ces tutoriels sont des guides qui expliquent, étape par étape, comment créer un jeu à partir de zéro : - -!!! note - - Si vous utilisez GDevelop pour la première fois, il est recommandé de commencer avec ces tutoriels - -* **[Concepts de base : ce que vous devez savoir pour commencer avec GDevelop](/fr/gdevelop5/tutorials/basic-game-making-concepts)** -* **[Créer un jeu de plateforme](/fr/gdevelop5/tutorials/platform-game/start)** -* **[Geometry Monster : un jeu mobile simple et complet](/gdevelop5/tutorials/geometry-monster)** (anglais) - -Tutoriels communautaires : - -- [Créer un jeu simple de Tank Shooter](/fr/gdevelop5/tutorials/tank-shooter) -- [Créer un jeu simple de Course Infinie](/fr/gdevelop5/tutorials/endless-runner) -- [Créer un jeu simple de casse-briques](/fr/gdevelop5/tutorials/breakout) -- [Créer un rpg isometric](/fr/gdevelop5/tutorials/isometric-rpg/start) - ------------------------------------------------------------------------- - -# Les guides "Comment faire" de GDevelop Les guides suivants fournissent des explications pour certaines parties de GDevelop. Ils vous montrent également quelques mécanismes avancés pour la conception de vos jeux : - -(Remarque : tous ces guides sont en anglais) - -- [Comment déplacer des objets dans votre jeu (toutes les possibilités)](/gdevelop5/tutorials/how-to-move-objects) -- [Comment animer le saut et la chute d'un personnage dans un jeu de plateformes](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) -- [Comment afficher un grand fond dans votre jeu](/gdevelop5/tutorials/how-to-display-big-background) -- [Comment déboguer de mauvaises performances de jeu](/gdevelop5/tutorials/how-to-debug-poor-performance) -- [Comment réduire la taille de votre jeu](/gdevelop5/tutorials/reduce-size-game) -- [Comment gérer une logique complexe - La machine d'états finis (FSM)](/gdevelop5/tutorials/finite_state_machine) -- [Comment utiliser GDevelop en équipe (plusieurs développeurs et coéquipiers)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team) - ------------------------------------------------------------------------- - -# Autres guides Les guides ci-dessous fournissent des explications relatives au développement des jeux. Ils ne sont pas spécifiques à GDevelop. - -* [Publier votre jeu sur itch.io](/fr/gdevelop5/publishing/publishing-to-itch-io) -* [Publier votre jeu sur Amazon Store](/gdevelop5/publishing/publishing-to-amazon-app-store) (anglais) -* [Publier votre jeu sur Gamejost](/gdevelop5/publishing/publishing-to-gamejolt-store) (anglais) -* [Publier votre jeu sur Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) (anglais) - ------------------------------------------------------------------------- - -# Tutoriels vidéo - -- [La liste des tutoriels vidéo réalisé par la Communauté francophone](https://www.youtube.com/watch?list=PL3YlZTdKiS8_S_BaL5NNMyYDwKlQjnfU9) -- [La liste des tutoriels vidéo réalisés par la Communauté anglophone](/gdevelop5/tutorials/videos). - ------------------------------------------------------------------------- - -# Ressources - -Liens vers des sites web tiers où vous pouvez trouver des sprites, de la musique et des effets sonores pour vos jeux, ainsi que des exemples de jeux, des modèles et des logiciels pour vous aider à développer des jeux. - -- [Liste des ressources](/gdevelop5/tutorials/resources) (anglais) diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/2-decor.md b/docs/fr/gdevelop5/tutorials/isometric-rpg/2-decor.md deleted file mode 100644 index 1bb710bf7a..0000000000 --- a/docs/fr/gdevelop5/tutorials/isometric-rpg/2-decor.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: Étape numéro 2 - Ajout du décors ---- -# Étape numéro 2 : Ajout du décors - -### Résumé - - * Ajout des décors, comme des objets de type sprite. Utilisation des numéros d'animation pour chaque partie de l'image du fond du jeu. - -## Ajout de l'objet Decor de type Sprite : - - * Nous allons ajouter les décors de la même manière que précédemment avec l'objet du personnage. - -Cliquez dans l'onglet Object, Add an object puis Sprite. Renommez l'objet en Decor puis cliquez sur le **+** et encore le **+** au milieu du carré pour ajouter une première image à cet objet, sélectionnez l'image row-1-col-1.jpg dans le répertoire tiled-bg, vous obtenez : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png) - -Apply - -Puis recommencez, cliquez tout en bas à droite sur Add an animation puis **+** et sélectionnez l'image row-1-col-2.jpg. L'objet Decor contient maintenant deux "animations" référencées respectivement **Animation #0** et **#1** . - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png) - -Maintenant revenons à notre scène, il suffit alors de sélectionner l'objet Decor et de le poser sur la scène comme ceci : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png) - -Le panneau Properties est ouvert, on y retrouve le nom de l'objet, la position relative au point en haut à gauche de notre scène, dans l'image au-dessus X=14 et Y=7. Cela signifie que le pixel en haut et à gauche de ce bout de décor est un peu décalé. -En sélectionnant l'instance 0 de l'objet Decor je peux la faire bouger avec les flèches du clavier pour que les coordonnées deviennent X=0 et Y=0 comme ceci : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png) - -Pour la deuxième partie du décor, il y a plusieurs manières de faire : - - * Soit en refaisant un glisser-déposer de l'objet Decor vers la scène. - * Soit en appuyant sur la touche ctrl et en cliquant sur la première instance Decor et en faisant un glisser déposer, pour faire une copie du même objet automatiquement. - -Une erreur ? Aucune importance, ctrl+Z permet bien sûr de revenir en arrière, et pour effacer une instance d'un objet, il suffit de le sélectionner et de le supprimer. - -Et n'oubliez pas : - -> -> Sauvegardez avec Ctrl + s -warning - - -Maintenant nous avons donc deux fois la même image, pour avoir la deuxième "animation" de l'objet Decor, il faut regarder dans les propriétés de l'instance, et descendre tout en bas, pour écrire animation : 1. - -Vous devez maintenant avoir : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png) -Apply - -Et de même déplacez cette deuxième instance de l'objet Decor avec les flèches. Vous devriez avoir dans les coordonnées de cette instance dans les propriétés, X=0 et Y=256. - -Renouvelez l'opération avec les images jusqu'à row-1-col-8.jpg. Pour cela aidez-vous de l'outil de zoom (molette de la souris), et également des poignées bleues ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png) pour déplacer l'affichage dans votre scène. - -Vous devez obtenir : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png) -## Finalisation du décor de la première scène. - -Continuez la même opération que pour la première ligne, avec l'image row-2-col-1.jpg jusqu'à row-2-col-8.jpg et ainsi de suite jusqu'à l'image row-2-col-1.jpg. Bravo ! L'étape la plus fastidieuse de ce tutoriel est réalisée. -Pensez à sauvegarder. - -Il est possible de gagner du temps, en sélectionnant l'ensemble de la première ligne des images de fond à l'aide de la souris (les images deviennent grisées), et en appuyant sur Ctrl puis clic sur cette zone grisée, vous copiez d'un coup les 8 images. - -Il suffit alors de changer la valeur de l'animation, de 8 à 15. Vous obtenez : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png) - -Pour résumé, l'objet Decor, est composée de 64 "animations", placée en carré de 256x256 pixels. -L'image globale composant le décor est donc de 2048*2048 pixels. Il est à noté que normalement chaque animation de cet objet se retrouve dans la couche (layer) Base Layer. \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/index.md b/docs/fr/gdevelop5/tutorials/isometric-rpg/index.md deleted file mode 100644 index a1134707b8..0000000000 --- a/docs/fr/gdevelop5/tutorials/isometric-rpg/index.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: start ---- -!!! note - - Tutoriel en cours de création (9/11/2018), revenez plus tard ? - -# Comment faire un jeu de type RPG isometric - -Ce tutoriel vous aidera à commencer à utiliser **GDevelop**: Vous allez créer un jeu de type RPG en vue isometric très simple où le joueur se déplacera dans un décor pour combattre des monstres et ramasser des trésors. - -Notez que vous pouvez lire la page [Commencer](/fr/gdevelop5/getting_started) pour avoir une vue d'ensemble du logiciel : elle explique les principaux concepts et décrit l'interface de **GDevelop**. - -## Télécharger GDevelop - -Si vous n'avez pas **GDevelop 5**, téléchargez-le à partir du site officiel (\]. Il est disponible pour Windows, MacOS et Linux. - -Téléchargez toujours GDevelop à partir de cette page pour être sûr d'avoir la dernière version. Installez ou extrayez GDevelop et lancez-le. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_22.57.02.png) - -## Créer un nouveau jeu - -Cliquez sur **CREATE A NEW PROJECT** sur la page d'accueil. Dans la fenêtre **Create a new game**, choisissez un dossier pour votre projet (dans le champ **CHOOSE FOLDER** situé au bas de la fenêtre) et sélectionnez **Empty game** pour démarrer un nouveau jeu à partir de zéro. - -Pour faire notre jeu, nous aurons besoin de ressources pour représenter les objets ( images du personnage, éléments de décor, objets à récolter ...). - -Vous pouvez télécharger les ressources ici : - -- Les images du décor pour la première scène : ![](/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip) -- Les sprites pour les personnages : ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip) -- Images généreusement prêtée par le studio indé japonais ![](/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png)[SmokymonkeyS](http://www.smokymonkeys.com) - -Une fois ce fichier téléchargé, extrayez son contenu dans le dossier où vous avez créé le projet. - -## Propriétés générales du jeu - -Dans votre onglet Project, sélectionnez Game Settings, puis Properties. Remplissez ensuite les champs comme ci-dessous. La taille de la largeur et de la longueur du jeu exprimée en pixels sera la taille de la fenêtre du jeu. ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png) - -## Ajouter une scène - -Les ***scènes*** sont les différentes parties du jeu. Typiquement, chaque écran apparaissant dans le jeu est une scène : le menu principal, le menu pause et les niveaux sont des scènes. - -Les ***scènes*** contiennent les objets qui sont affichés à l'écran. Les ***objets*** peuvent être mis en scène pour créer les niveaux (ces objets sont appelés ***instances***). Les scènes contiennent également les ***événements*** qui sont exécutés pour animer la scène. - -Dans le gestionnaire de projet qui s'ouvre à gauche, cliquez sur le bouton **+** à droite de **Click to add a scene**. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.26.09.png) - -Une nouvelle scène, appelée **NEWSCENE** est ajoutée à la liste. Cliquez dessus pour l'ouvrir. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.30.40.png) - -Puis éditez les paramètres de la scène (clic droit sur scène), et renommez-là en Scene1, vous pouvez maintenant fermer la fenêtre Project Manager. - -## Création des calques (layer) - -Les calques permettent de modifier la façon dont les objets sont affichés : Lors de l'affichage, les calques sont visualisés les uns après les autres (c'est à dire en rendu dans le jeu, les uns au-dessus des autres), et chaque calque n'affiche que les objets qui sont positionnés sur ce calque. - -Dans cet exemple nous allons utiliser 4 calques qui s'afficheront ainsi : - -1. Le calque **UI** (interface du joueur): Toujours visible et au-dessus de tout le reste. -2. Le calque **Effets** qui contiendra quelques effets visuels qui s'afficheront juste en-dessous du calque UI mais au-dessus du reste. -3. Le calque **Personnage** : Il contiendra uniquement les images de l'animation et des mouvements). -4. Le calque **Base Layer** : Il contiendra l'image de fond du jeu, c'est aussi celui qui est créé par défaut à la création du jeu. - -Pour ouvrir l'onglet calque (layer), cliquez sur ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png), (Open the layer editor). Puis ajoutez un calque avec le **+**., nommez-le UI puis continuez avec Effet et Personnage. Vous devez maintenant voir cela : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png) - -Reste maintenant à les mettre dans le bon ordre, celui en haut étant celui qui contiendra les objets (images et autres) qui resteront toujours visible au-dessus du reste. Nous allons les mettre dans l'ordre : - -- UI -- Personnage -- Effet -- Base layer - -En utilisant la poignée de déplacement : ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png) - -Et ainsi obtenir : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png) - -Il est temps de fermer cet onglet de calques pour revenir à notre scène. - -## Créer l'objet du personnage - -Le joueur contrôlera un personnage qui peut sauter et se déplacer dans le jeu. Nous allons créer cet objet. - -Sur la droite, vous pouvez voir un panneau intitulé **Objects**. Cliquez sur le bouton **+** pour ajouter un objet. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.32.40.png) - -Ensuite, une fenêtre s'ouvre et affiche différents types d'objets parmi lesquels vous pouvez choisir. - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -Les différents types d'objets présentent des caractéristiques spécifiques. Pour la plupart de nos objets, nous utiliserons les objets **Sprite** qui sont des objets animés ou fixes pouvant être utilisés pour de nombreux éléments (joueur, plates-formes, ennemis, objets...). - -Cliquez sur **Sprite** dans la liste. Le nouvel objet est ajouté à la scène et les propriété de l'objet s'ouvrent : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.34.34.png) - -L'objet est actuellement vide. Les objets **Sprite** sont composés d'animations, et chaque animation peut contenir une ou plusieurs images. Ajoutons une animation. Cliquez sur le bouton **+**. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.35.50.png) - -L'animation est ajoutée mais toujours vide, sans images. Pour ajouter une image, cliquez sur le **+** dans la vignette vierge. - -Choisissez l'image appelée `goblin_frame_0.png` dans le dossier player du projet. L'image est ajoutée à l'objet : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png) - -C'est le moment de nommer cet objet, par exemple **LeGobelin** ;-). Vous pouvez maintenant fermer les propriétés en cliquant sur le bouton **APPLY** dans le coin inférieur droit. Cet objet n'est pas encore intégré à la scène, pour cela, sélectionnez l'objet **LeGobelin** et déplacez-le dans la fenêtre de votre scène vous obtiendrez : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png) - -L'objet LeGobelin devient maintenant une **instance** incorporée dans votre scène. Vous pouvez en voir les propriétés, en sélectionannt l'instance du Gobelin dans votre scène et en cliquant ensuite sur l'icône ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png) propriété : ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png) - -## Ajout des animations au personnage - -Il est un peu fade ce Gobelin, pour lui ajouter des animations, il faut retourner aux propriétés de l'objet. Pour cela , cliquez sur ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png), puis sélectionnez Edit Object. Nous allons ajouter avec le **+**, et ajouter goblin_frame_1.png, goblin_frame_2.png et goblin_frame_3.png, soit : - -![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png) - -Il est alors possible de voir l'animation en cliquant sur PREVIEW, puis régler la vitesse à 0.2 en cliquant sur le chiffre pour régler la vitesse d'animation avec 0.2. L'option boucle (Loop) est désactivée par défaut, en cliquant sur Don't Loop, cela permet de faire tourner l'animation en continue. Ré-essayez PREVIEW maintenant, notre Gobelin respire ! - -> Sauvegarde warning - -A cette étape, il est grand temps de faire une sauvegarde du projet ! Menu File Save ou Ctrl S. - -Un des points forts de Gdevelop, c'est qu'il permet de visualiser le rendu du jeu à n'importe quelle étape. Simplement en cliquant sur ![](/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png). - -Puis fermer cette fenêtre de prévisualisation. - -## Étape suivante : Placer les images du décor - -Pour le moment, notre jeu est très basique : Juste un Gobelin qui s'anime ! L'étape suivante de ce tutoriel vous montrera comment ajouter des images pour le décor. - -➡️ Lisez **[la suite du tutoriel se trouve ici !](/fr/gdevelop5/tutorials/isometric-rpg/2-decor)** diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png deleted file mode 100644 index 6ce1dbf63e..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/smokymonkeys_foot_logo.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip b/docs/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip deleted file mode 100644 index 366597bc17..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tiled-bg.zip and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png deleted file mode 100644 index 82159df590..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-1.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png deleted file mode 100644 index d4a8c708cc..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-2.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png deleted file mode 100644 index e00d81165c..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-3.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png deleted file mode 100644 index aacafa4cbc..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-4.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png deleted file mode 100644 index d90095ed6d..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-5.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png deleted file mode 100644 index 050c4e0800..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-decor-deux-lignes.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png deleted file mode 100644 index 4668305e39..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste-ordonnee.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png deleted file mode 100644 index 76c955afe7..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-liste.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png deleted file mode 100644 index 1bf4c4f20d..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques-poignee.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png deleted file mode 100644 index c081b272f2..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-calques.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png deleted file mode 100644 index fa5a3f51d0..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-launch-game-preview.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png deleted file mode 100644 index 98f65718f7..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-objet-trois-points.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png deleted file mode 100644 index 6d1f88a6ab..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-propriete.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png deleted file mode 100644 index 28d8069c10..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-icone-scene-legobelin.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png deleted file mode 100644 index ca739ccb2a..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-images-fond-ligne-1.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png deleted file mode 100644 index ab1ce74e9c..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-molette-bleue.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png deleted file mode 100644 index bd1f90eb95..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-objet-fenetre-proprietes.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png deleted file mode 100644 index ac520275e1..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-player1.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png deleted file mode 100644 index 2cca772321..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-propriete-jeu.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png deleted file mode 100644 index 6584b05a6e..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprite-gobelin-animations.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip b/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip deleted file mode 100644 index f3cb68fdae..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/isometric-rpg/tuto-rpg-sprites.zip and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/2-player-animations.md b/docs/fr/gdevelop5/tutorials/platform-game/2-player-animations.md deleted file mode 100644 index ce8a241226..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/2-player-animations.md +++ /dev/null @@ -1,200 +0,0 @@ ---- -title: Comment faire un jeu de plateforme - animations du joueur ---- -# Comment faire un jeu de plateforme : animations du joueur - -Ce tutoriel explique comment ajouter différentes animations et comment utiliser les événements pour changer les animations lorsque l'état du joueur change. - -[Cliquez ici pour lire l'étape précédente](/fr/gdevelop5/tutorials/platform-game) si vous ne l'avez par encore accomplie. - -## Ajouter des animations - -Pour le moment, le joueur montre toujours la même « animation statique » ; nous allons changer cette situation en utilisant les événements. - -Mais nous devons d'abord ajouter les animations appropriées à l'objet `Player`. - -### Animation du saut - -Ouvrez l'éditeur de l'objet `Player` (clic-droit sur son nom dans la liste des objets). Assurez-vous que le panneau **PROPERTIES** de l'éditeur soit sélectionné et cliquez le bouton **+** au bas de la fenêtre pour ajouter une animation. - -Cliquez ensuite sur le gros bouton portant un signe **+** dans la nouvelle zone d'animation et sélectionnez `p1_jump.png` dans le navigateur de fichiers qui s'est ouvert pour charger l'image dans le jeu. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.56.03.png) - -Il est recommandé de donner un nom significatif à chaque animation afin de pouvoir différencier facilement les diverses animations et les référencer sans ambiguïté dans les événements. -Il suffit de cliquer à la suite de **Animation #0** et d'écrire le nom que vous voulez. - -Entrez `Idle` pour l'animation n° 0 et `Jumping` pour l'animation n°2. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.56.53.png) - -### Animation de la marche - -Nous devons aussi ajouter l'animation à afficher lorsque le personnage marche sur une plateforme. Ajoutez une autre animation de la même manière que ci-dessus, et , lorsque vous chargez les images, sélectionnez les 5 images `p1walk03.png`, `p1walk04.png`, ... , et `p1walk07.png`. Vous pouvez sélectionner les 5 images d'un seul coup ou les charger les unes après les autres. Finalement, nommez cette animation `Running`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.59.15.png) - -Ces images seront affichées les unes après les autres pour créer l'animation. Pour que le cycle de la marche se répète, nous devons modifier quelques options : cliquez d'abord **Don't loop** pour commuter sur **Loop**. Cette option fera boucler l'animation sur elle-même pour qu'elle soit jouée de manière continue. -Dans le cas contraire, l'animation ne sera jouée qu'une seule fois chaque fois qu'elle sera appelée, et dans le cas d'un marche continue, ce n'est pas ce que nous voulons. Le minuteur affiche le temps écoulé en secondes entre chaque images, en d'autres mots, la vitesse de l'animation. Entrez `0.05` à la place de `1` afin que l'animation soit jouée plus rapidement. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_01.02.03.png) - -Notre objet étant terminé, cliquez le bouton **APPLY** situé dans le coin inférieur droit. - -## Utiliser des événements pour changer les animations - -### Le premier événement : animation du saut - -Nous devons maintenant changer l'animation montrée par l'objet en fonction de ce que fait le joueur. À cet effet, nous allons nous servir des **_événements_**, qui sont utilisés pour décrire les règles du jeu ainsi que pour spécifier comment les objets sont animés, se déplacent et répondent aux sollicitations du joueur. -Pour décrire ces règles, GDevelop met à notre disposition une « programmation visuelle » dont l'apprentissage est rapide et accessible à tous. - -Ouvrez l'éditeur des événements de la scène en cliquant l'onglet **NEWSCENE (EVENTS)**. - -Pour le moment, l'éditeur d'événements est encore vide. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_01.05.29.png) - -Ajoutez le premier événement en cliquant le bouton **Add a new empty event** dans la barre d'outils. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.40.43.png) - -Un événement est composé d'une liste de conditions (qui peuvent être utilisées pour tester si une collision s'est produite, si une touche a été pressée, si le niveau de vie du joueur est bas, …) et d'une liste d'actions qui sont exécutées lorsque la ou les conditions sont remplies. - -Il n'y a actuellement aucun événement défini. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.41.32.png) - -Dans le premier événement, nous allons tester si le joueur saute, et dans ce cas, modifier son animation. - -Commencez par cliquer sur **Add condition** dans le coin supérieur gauche de la fenêtre. - -La fenêtre qui vient de s'ouvrir présente dans sa partie gauche une liste de toutes les conditions disponibles pour programmer votre jeu. -Nous voulons tester si l'objet `Player`, qui possède le comportement de personnage de plateforme, est en train de sauter. -Ouvrez la catégorie **Platform Behavior** puis sélectionnez **Is jumping**. - -La partie droite de la fenêtre affiche les paramètres qui sont nécessaires à la configuration de la condition. Ici, comme nous voulons tester si l'objet `Player` saute, sélectionnez `Player` pour le premier paramètre (intitulé **Object**). Le second paramètre est rempli automatiquement. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.45.29.png) - -Le condition est maintenant prête. Cliquez le bouton **OK** dans le coin inférieur droit de la fenêtre pour la fermer et voir la condition ajoutée à l'événement. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.47.17.png) - -Ajoutons maintenant l'action pour changer l'animation du joueur lorsque le personnage saute. Cliquez sur **Add action**. - -La fenêtre qui s'ouvre est semblable à celle ouverte avec **Add condition**, à ceci près qu'elle affiche toutes les actions disponibles. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.51.10.png) - -Nous allons changer l'animation de l'objet `Player`, qui est un objet de type **Sprite**. - -Ouvrez la catégorie **Sprite**, puis **Animations and images** et sélectionnez finalement **Change the animation (by name)**. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.52.28.png) - -Dans la fenêtre de droite, sélectionnez l'objet `Player` pour le premier paramètre et écrivez `"Jumping"` dans le champ **Animation name**. - -!!! warning - - **Attention !** Vous devez entourer le nom de guillemets anglais doubles car tout texte dans les actions ou les conditions de GDevelop peut aussi être généré par une formule. Il est donc nécessaire d'utiliser ces guillemets pour indiquer à GDevelop qu'il s'agit d'un texte et pas d'une formule quelconque. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.54.51.png) - -Lorsque vous avez terminé, cliquez le bouton **OK** dans le coin inférieur droit. Le premier événement est maintenant prêt. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.56.10.png) - -### Jetons un coup d'oeil au résultat - -Cliquez le bouton **Launch a preview of the scene** de la barre des outils pour démarrer la prévisualisation. Observez le changement de l'animation quand le joueur saute. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.58.31.png) - -Mais lorsque le joueur retourne sur le sol, vous pouvez voir que l'animation n'a pas été remise à la position au repos. C'est tout simplement parce que nous n'avons pas dit à GDevelop de le faire ! Ajoutons une autre événement pour corriger cela. - -## Animations de la pause et de la course - -Ajoutez un nouvel événement vide en cliquant le bouton **Add a new empty event** dans la barre d'outils. - -Cliquez **Add condition** et sélectionnez cette fois la condition **Is on floor** dans la catégorie **Platform Behavior**. Notez que vous pouvez utiliser l'outil de recherche **Search** dans le haut de la liste pour trouvez rapidement la condition désirée si vous connaissez son nom. - -Remplissez le premier paramètre en sélectionnant l'objet `Player`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.52.02.png) - -Cliquez **OK** pour valider la condition. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.54.47.png) - -Ici, nous avons l'opportunité de faire que notre personnage n'affiche pas seulement son état inactif et son saut, mais aussi sa course. - -Nous pouvons construire deux événements comprenant chacun deux conditions et une action : - - * Lorsque le joueur est sur le sol **et** ne court pas, c'est l'animation `Idle` qui doit être montrée. - - - * Lorsque le joueur est sur le sol **et** court, c'est l'animation `Running` qui doit être montrée. - -mais nous pouvons utiliser des *sous-événements* pour n'avoir à tester qu'une seule fois si le joueur est sur le sol. - -Faisons donc comme nous l'avons dit. Nous pouvons maintenant ajouter deux autres événements qui seront des sous-événements de cet événement. Cela signifie qu'ils ne seront lancés que si leur *parent* (l'événement que nous venons juste de créer) a satisfait à ses conditions. - -Sélectionnez l'événement que nous avons créé avec un clic droit dans un espace vide près de **Add condition** ou **Add action**. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.59.36.png) - -Cliquez ensuite deux fois sur le bouton **Add a sub-event to the selected event** pour ajouter deux sous-événements. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.05.49.png) - -Deux événements « enfant » ont été ajoutés sous l'événement sélectionné qui est maintenant considéré comme l'événement « parent ». GDevelopp a mis ces deux événements en retraits (indentation) et les a reliés par une ligne pour confirmer visuellement qu'il sont bien connectés. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.07.02.png) - -Vous pouvez maintenant ajouter des conditions dans ces événements . - -Cliquez sur **Add condition** du premier sous-événement. Sélectionnez **Platform Behavior** dans la liste des comportements puis sur **Is moving** pour tester si le joueur est en train de courir. N'oubliez pas de spécifier que l'objet à tester est le `Player` (à mettre dans le premier paramètre, à gauche). - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.08.06.png) - -Faites de même pour le second sous-évémenent, mais activez en plus le commutateur **Invert condition**. C'est ainsi que nous inversons techniquement la condition de manière à ce que les actions de l'événement ne seront lancées que lorsque le joueur n'est **PAS** en train de se déplacer. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.09.30.png) - -Notre séquence d'événements doit maintenant ressembler à quelque chose comme : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.10.03.png) - -Nous en avons presque terminé : il reste encore à spécifier l'action requise par chaque événement. Les opérations à effectuer sont les mêmes que celles faites pour le saut. - -Cliquez **Add action** du premier sous-événement, sélectionnez **Sprite** dans la liste, puis **Animations and images** et finalement **Change the animation (by name)**. Sélectionnez l'objet `Player` dans le premier paramètre et entrez `"Running"` dans le paramètre **Animation by name**. N'oubliez pas les guillemets anglais doubles autour de `Running`. - -Répétez ces opération pour le second sous-événement. Le nom de l'animation est ici `"Idle"`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.15.20.png) - -## Il est temps de tester (et de sauvegarder) - -Testez le jeu et voyez si l'animation du joueur change lorsqu'il court ou qu'il saute. - -Vous avez peut-être remarqué un petit bug quand vous avez essayé de sauter d'une plateforme : le joueur continue de courir même lorsqu'il est en train de tomber. Ce n'est peut-être pas ce que nous voulons car nous préférerions avoir une animation de chute lorsque le joueur tombe. Pour corriger ce bug, nous pouvons aussi activer l'animation du saut `Jumping` lorsque le joueur tombe, tout comme nous l'avons fait avant avec les autres animations. Cela ne devrait pas poser de problèmes : il suffit d'ajouter un nouvel événement et de le configurer comme indiqué ci-dessous. - - * Ouvrez le panneau **NEWSCENE (EVENTS)**. - * Activez le premier événement en cliquant dans la zone vide à droite de **Player is jumping**. - * Créez un nouvel événement en cliquant le bouton **Add a new empty event**. - * Cliquez **Add condition** dans le nouvel événement qui vient de se placer sous le premier. - * Activez les événements **Platform Behavior** et sélectionnez **Is falling**. - * Mettez `Player` dans le premier paramètre et cliquez **OK** pour confirmer. - * Cliquez sur **Add action** pour spécifier l'action à accomplir. - * Sélectionnez `Sprite` dans la liste de gauche qui vient de s'ouvrir puis - * **Animations and images** et **Change the animation (by name)**. - * Sélectionnez l'objet `Player` dans le premier paramètre du panneau de droite et inscrivez `"Jumping"` dans **Animation name**. (N'oubliez pas les guillemets doubles !) - * Cliquez **OK** et comparez votre programme à la figure ci-dessous. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.23.10.png) -} -## Étape suivante : la caméra doit suivre le joueur - -Pour le moment, il est difficile de construire un grand niveau à explorer car le joueur quitte rapidement l'écran ! L'étape suivante de ce tutoriel vous montrera comment faire que la caméra suive le joueur. C'est très simple : un seul événement suffira. - -➡️ Lisez **[l'étape suivante de ce tutoriel ici !](/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player)** \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md b/docs/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md deleted file mode 100644 index 9a1b52ff6f..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: Suivre le joueur avec la caméra ---- -# Suivre le joueur avec la caméra - -!!! note - - Ce tutoriel fait partie de [start](/gdevelop5/tutorials/platform-game) , mais vous pouvez aussi le réutiliser pour n'importe quel autre jeu ! - -Pour l'instant, il est difficile de construire un grand niveau à explorer car le joueur peut rapidement sortir de l'écran ! - -Ajoutons un autre événement pour que la caméra suive le joueur. Il y a plusieurs façons d'y parvenir. Le plus simple est d'ajouter un événement sans condition et de mettre l'action appelée **Center the camera on an object** : - - * Créez un nouvel événement vide ; n'y ajoutez aucune condition et cliquez sur **Add action**. - * Dans la liste des actions, sélectionnez **Layers and cameras** puis **Center the camera on an object**. - *Laissez les paramètres par défaut et cliquez sur **OK**. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.25.53.png) - -Le nouvel événement ressemble à ceci : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.26.20.png) - -Vous pouvez lancer un aperçu pour voir que la caméra est désormais centrée sur le joueur : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.27.31.png) - -## C'est tout ! - -C'était facile, non ? D'autres actions peuvent être utiles. Par exemple, des actions peuvent être utilisées pour modifier les coordonnées de la caméra uniquement sur l'axe X ou Y. Cela peut être utile pour les jeux de plates-formes où vous ne pouvez pas monter/descendre, mais juste traverser le niveau avec un défilement latéral. - -## Prochaine étape : ajouter un saut à travers la plate-forme - -C'est assez ennuyeux d'avoir un seul type de plateforme. Ajoutons une autre plateforme sur laquelle nous pourrons monter en arrivant d'en dessous en sautant pour la traverser. - -➡️ Lisez **[la suite par ici](/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms)**! \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md b/docs/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md deleted file mode 100644 index cd1387a452..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: Ajouter des objets à l'arrière-plan ---- -# Ajouter des objets à l'arrière-plan - -!!! note - - Ce tutoriel fait partie du tutoriel [start](/gdevelop5/tutorials/platform-game), mais vous pouvez aussi l'utiliser pour n'importe quel autre jeu. - -Pour le moment, le niveau est assez simple, sans attraits particuliers. Ajoutons quelques objets statiques à l'arrière plan. - -## Créer des objets - -Ajouter des objets à l'arrière-plan est vraiment facile : il suffit d'ajouter quelques sprites avec les images à votre convenance puis les mettre dans la scène. - -Par exemple, créez un objet de type **Sprite** en - - * cliquant le **+** à droite de **Click to add an object** au bas de la listes des objets et en sélectionnant `Sprite` dans la liste qui s'affiche ; - * cliquant le **+** dans le fenêtre qui s'ouvre puis le bouton **+** dans la nouvelle fenêtre et sélectionnez l'image `bush.png` dans le navigateur de fichiers. - * Renommez ensuite ce sprite `Bush`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.45.14.png) - -Ajoutez de la même manière un sprite de nuage (fichier `cloud2.png`) et renommez-le `Cloud`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.46.01.png) - -## Placer des objets sur la scène et modifier leur position z - -Ajoutez quelques nuages dans le ciel et deux ou trois buissons sur la plateforme. -Vous pouvez constater que la joueur est affiché derrière les objets ajoutés. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.52.10.png) - -Chaque instance d'un objet placé sur la scène possède une propriété appelée **z order** . Ce paramètre est un nombre et les objets ayant une valeur **z** plus grande sont affichés au-dessus (ou devant) les objets ayant un z plus petit. La valeur de z peut être n'importe quel nombre entier, même négatif. - -Vous pouvez maintenant changer le **z order** des buissons et des nuages en leur donnant des valeurs négatives de manière à ce que le personnage du joueur (dont le z vaut 1 puisque c'est le premier objet placé sur la scène) soit toujours affiché devant les autres objets. - -À cet effet, sélectionnez les instances sur la scène (vous pouvez faire une sélection multiple en maintenant la touche Majuscule pressée pendant la sélection) - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.59.47.png) - -Changez ensuite la valeur du champ **Z Order** dans le panneau des propriétés **Properties** dans la partie droite de la fenêtre. Donnez-lui par exemple la valeur -2 (ou n'importe quel nombre négatif) de manière à ce que ces objets soient bien toujours derrière le joueur. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_23.00.40.png) - -**Remarque** : si ce panneau n'est pas ouvert, cliquez la cinquième icône **Open the propreties pannel** dans la barre des outils. - -Nous avons maintenant l'aspect visuel que nous voulions. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_23.01.44.png) - -Vous pouvez lancer le jeu pour tester si tout fonctionne bien, et n'oubliez pas de sauvegarder. - -## Étape suivante : ajouter des pièces de monnaie et afficher combien ont été récoltées - -Donnons une tâche à accomplir à notre joueur : récolter autant de pièce de monnaie que possible. À cet effet, nous utiliserons des événements pour stocker le score du joueur, jouer des sons et effacer les pièces récoltées. - -➡️Lisez **[l'étape suivante de ce tutoriel ici !](/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins)** \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md b/docs/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md deleted file mode 100644 index 77b8c6213f..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 4-add-jump-thru-platforms ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Ajouter une plateforme 'Jump through' - -!!! note - - Ce tutoriel fait partie du tutoriel [](/gdevelop5/tutorials/platform-game/start) mais vous pouvez également l'utiliser pour tout autre jeu de plateforme ! - -Pour l'instant, toutes les plateformes sont solides (c'est-à-dire « imperméables », mais nous pouvons également créer une plate-forme à travers laquelle vous pouvez passer. - -## Créer le nouvel objet - -Créez un nouvel objet **Sprite**, ajoutez une animation et choisissez l'image appelée `bridgeLogs` : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.40.34.png) - -Renommez l'objet et appelez-le `SmallBridge` : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.42.01.png) - -## Faites-en une plate-forme "jump-thru" - -Pour le moment, l'objet n'est pas considéré comme une plate-forme. Ouvrez l'éditeur d'objet (clic droit sur le nom `SmallBridge` puis sur **Edit Object** et activez l'onglet **Behaviors** dans l'éditeur. Ajoutez le comportement appelé **Platform** puis sélectionnez **Jumpthru Platform** dans la liste qui s'ouvre lorsque vous cliquez le champ **Type** - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.44.30.png) - -## Testez votre travail - -Vous pouvez maintenant lancer un aperçu et constater que vous pouvez sauter sur le pont mais aussi passez à travers ! - -![](/gdevelop5/tutorials/platform-game/jumpthru.gif) - -Et, comme d'habitude, n'oubliez pas de sauvegarder votre jeu ! - -## Étape suivante : ajouter des objets d'arrière-plan - -Le niveau est encore passablement vide. Ajoutons quelques objets d'arrière-plan pour le rendre plus joli. Nous ajouterons ensuite des pièces de monnaie à collectionner et des ennemis ! - -➡️ Lisez **[4-add-backgrounds-objects](/fr/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects) !** diff --git a/docs/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md b/docs/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md deleted file mode 100644 index 1eeec1cd32..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md +++ /dev/null @@ -1,228 +0,0 @@ ---- -title: Ajouter des pièces de monnaie et afficher le nombre de pièces récoltées ---- -# Ajouter des pièces de monnaie et afficher le nombre de pièces récoltées - -!!! note - - Ce tutoriel fait partie du tutoriel [start](/gdevelop5/tutorials/platform-game) , mais vous pouvez aussi le réutiliser pour n'importe quel jeu dans lequel vous récoltez des objets. - -Dans le jeu de plateforme que nous avons créé jusqu'ici, le joueur n'a pas grand chose à faire : ajoutons des pièces de monnaie que le joueur devra récolter. - -## Ajouter des pièces de monnaie - -Commencez par créer un nouvel objet **Sprite** et donnez-lui une animation contenant une image `coinGold.png`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.29.30.png) - -Nommez ce sprite `Coin`. - -Vous pouvez placer plusieurs pièces de monnaie dans ce niveau. Si vous avez besoin de nombreuses pièces, il vaut la peine d'utiliser la technique **_drag and clone_** offerte par l'éditeur de scène : sélectionnez une pièce déjà placée sur la scène et, tout en maintenant la touche CTRL (ou CMD sur macOS), tirez la pièce avec la touche gauche de la souris. La pièce sera dupliquée à chaque relâché de la touche gauche. - -Si vous maintenez aussi la touche MAJ, la pièce dupliquée sera à la même hauteur que la pièce d'origine (cela marche aussi bien horizontalement que verticalement). - -![](/gdevelop5/tutorials/platform-game/clone.gif) - -## Effacer les pièces récoltées - -Il faut faire disparaître les objets pièces de monnaie lorsque le joueur les touche. - -Créer un nouvel événement et ajoutez-y une nouvelle condition (**Add condition**). Sélectionnez **Common conditions for all objects** dans la liste de gauche, puis **Collision** et enfin **Collision** pour tester la survenue d'une collision entre deux objets. Sélectionnez `Player` pour le premier paramètre et `Coin` pour le second. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.36.12.png) - -Cliquez **OK** pour confirmer. - -Il faut maintenant ajouter une action pour supprimer la pièce touchée. Seuls les objets `Coin` qui ont rempli la première condition seront utilisés par cette action, ce qui fait que seule la pièce touchée par le joueur sera effacée. - -Activez les actions **Add action** et sélectionnez dans la liste de gauche **Common action for all objects**, **Objects** et **Delete an object**. Sélectionnez `Coin` dans le premier paramètre pour spécifier l'objet à détruire. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.41.46.png) - -L'événement doit ressembler à : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.42.34.png) - -Vous pouvez maintenant faire un test et voir si les pièces disparaissent lorsque le joueur les touche. - -## Jouer un son lors de la collecte d'une pièce - -Pour que le jeu soit plus dynamique et gratifiant, faisons jouer un son lorsqu'une pièce est récoltée. C'est facile : nous avons déjà un fichier son appelé `sound.wav` dans le dossier des ressources de notre jeu (si ce n'est pas le cas, vous pouvez télécharger les ressources à l'adresse [http://www.compilgames.net/dl/PlatformerTutorialResources.zip](http://www.compilgames.net/dl/PlatformerTutorialResources.zip) et les extraire dans le dossier adéquat). - - -Pour jour un son, il faut ajouter une autre action à l'événement que nous avons utilisé pour effacer les pièces. - -Cliquez **Add action** juste en dessous de l'action **Delete object Coin** et activez l'action **Play a sound** dans la catégorie **Audio**, ce qui fera jouer un son en même temps q'une pièce est effacée. - -L'action **Play a sound** présente plusieurs paramètres. Entrez le nom du fichier son `coin.wav` dans le premier paramètre. Laissez les autres paramètres tels qu'ils sont (par exemple, ne répétez pas le son, laissez le volume à 100 par défaut et le **Pitch** à 1 par défaut. ) - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.50.22.png) - -C'est tout ! Lancez une test et le son sera joué chaque fois qu'une pièce est récoltée. 👍 - -## Augmenter un score en utilisant des variables - -Nous allons utiliser une variable pour mettre à jour et mémoriser le score du joueur. - -Les variables sont des conteneurs que nous pouvons utiliser pour stocker et mémoriser certaines informations telles que des nombres et des chaînes de caractères. - -GDevelop utilise différents types de variables. - -* __**Les variables d'objet**__ sont privées à chaque instance d'un objet, ce qui a pour conséquence que chaque instance peut stocker ses propres valeurs qui ne sont pas partagées avec les autres instances. Cette « privatisation » est par exemple utile lorsqu'on veut gérer séparément la vie de chaque ennemi. - -* __**Les variables de scène**__ (les plus fréquemment utilisées) sont privées (réservées) à chaque scène : leurs valeurs ne sont pas partagées avec les autres scènes de notre jeu. Elles sont utiles pour stocker des informations pertinentes pour la scène actuellement en cours, comme par exemple la vie du joueur ou un score. - -* __**Les variables globales**__ sont, comme leur nom l'indique, globales (c'est à dire visibles et atteignables) dans l'ensemble du jeu. Leurs valeurs sont partagées entre toutes les scènes et les objets de l'ensemble du jeu. Elles sont utiles pour stocker des informations que nous voulons partager entre plusieurs ou toutes les scènes du jeu, par exemple la quantité de balles ou la somme d'argent accumulée par le joueur. - -La variable que nous allons utiliser est une variable **Scene** que nous appellerons `Score`. - -Ajoutons une action dans le dernier événement que nous avons créé. Sélectionnez l'action **Variables > Value of a variable**. Cette action sera utilisée pour ajouter 100 à la variable `Score`. - -Renseignez les paramètres comme montré ci-dessous. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.52.43.png) - -Dans GDevelop, il n'est pas nécessaire de déclarer les variables avant de les utiliser : nous pouvons utiliser n'importe quelle variable sans la déclarer, il suffit de lui donner un nom dans une action ou une condition. Dans le cas où nous utilisons une action sur une variable qui n'est pas déclarée, GDevelop la crée automatiquement pour nous en lui affectant la valeur par défaut `0` ou une chaîne vide `""` puis exécute ensuite l'action sur la variable pour nous éviter tout problème. - -Toutefois, pour mieux organiser notre jeu, il vaut toujours mieux déclarer les variables avant de les utiliser. Cette bonne pratique permet de se souvenir plus facilement des variables utilisées et nous permet aussi de changer leur valeur par défaut si nous voulons qu'elle soit différente de 0 ou d'une chaine vide. - -Pour déclarer une variable, cliquez sur le bouton **…** à droite du nom de la variable pour afficher la liste des variables déclarées. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.54.46.png) - -La liste qui s'affiche est vide car aucune variable n'a encore été déclarée. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.55.27.png) - -Vous pouvez cliquez sur le bouton **+** pour ajouter une variable et entrer `Score` pour son nom. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.56.23.png) - -Rappelez-vous que ceci est facultatif, ce n'est qu'une bonne pratique fortement recommandée ! - -## Afficher un score à l'aide d'un objet texte - -### Ajouter un objet texte - -Pour le moment, la variable `Score` ne peut pas être vue, ce qui fait que nous ne pouvons pas vérifier si le score a augmenté. - -Nous avons besoin d'un objet **Text** pour afficher la valeur de la variable `Score`. Ajoutez un nouvel objet dans la liste des objets (en cliquant sur le signe **+** au bas de la liste) et sélectionnez le type **Text** quand GDevelop vous demande quel type d'objet créer. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.58.27.png) - -Dans la fenêtre qui vient de s'ouvrir, modifiez les propriétés de l'objet `Score` afin que le texte soit affiché en noir et plus grand que la taille de la police par défaut. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.09.28.png) - -Vous pouvez ensuite placer l'objet sur la scène. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.20.23.png) -### Modifier du calque du texte - -Si vous lancez le jeu, vous pouvez constater que le texte `Score:` est affiché avec le reste des objets et que sa position n'est pas fixe sur l'écran. - -Nous pouvons résoudre facilement ce problème en créant un nouveau calque au-dessus du calque de base. Pour ce faire, ouvrez l'éditeur de calques en cliquant ce bouton : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.34.33.png) - -La liste des calques est alors affichée, mais elle ne contient pour le moment que le calque de base. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.35.00.png) - -Cliquez sur le bouton **+** pour ajouter un calque. Entrez `UI` pour son nom (UI pour User Interface ou Interface Utilisateur) : - -Pour finir, déplacez l'objet texte `Score` sur ce nouveau calque en sélectionnant l'objet texte sur la scène -(ce qui ouvre son panneau des propriétés sur la gauche de l'écran. - -Cliquez sur **Base layer** et sélectionnez `UI` dans la liste : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.40.44.png) - -Assurez-vous que l'objet texte soit affiché de manière visible quelque part sur l'écran, par exemple en le déplaçant dans le coin supérieur gauche de la scène. - -Le rectangle noir de l'éditeur de scène représente la taille de la scène (ce que l'on voit quand le jeu est lancé). - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.42.46.png) - -### Afficher la valeur du score - -Maintenant que nous avons un objet texte sur l'écran, il est temps de lui faire afficher la valeur de la variable `Score`. - -Ajoutez un nouvel événement (Ouvrez le panneau **NEWSCENE (EVENTS)** et cliquez le bouton **Add a new empty event** dans le haut de la fenêtre.) - -Cet événement n'aura aucune condition, ce qui signifie que l'action sera exécutée à chaque image, soit environ 60 fois par seconde. - -Ajoutez une action **Add action** et sélectionnez l'action **Modify the text** dans la catégorie appelée **Text object**. - -Pour le premier paramètre, sélectionnez l'objet `Score` car c'est cet objet que nous voulons mettre à jour. - -Pour le deuxième paramètre, sélectionnez l'opérateur `= (set to)` dans la liste `Modification's sign` (nous voulons donner une autre valeur au texte). - -Finalement, le dernier paramètre représente le nouveau contenu du texte. Ce contenu est une expression de type chaîne de caractères qui sera évaluée par GDevelop pendant le jeu lorsque l'action sera exécutée. - -Nous pouvons spécifier un texte en le plaçant entre guillemets (comme ceci `"Hello World"`). Mais nous pouvons aussi utiliser quelque chose appelée **_expression_**, qui est une fonction qui retourne une certaine valeur que nous pouvons utiliser d'une manière ou d'une autre. - -Dans notre cas, nous avons besoin de la valeur de la variable `Score` que nous voulons utiliser pour mettre à jour l'objet texte. - -Les expressions étant un sujet quelque peu avancé, je ne pense pas que ce soit le bon moment pour s'y atteler. - -Tout ce que vous devez savoir pour le moment est que, pour obtenir la valeur d'une variable de scène, nous devons utiliser l'expression `Variable(nom_de_la_variable)`. Mais la variable obtenue est une valeur numérique (ici un nombre entier) alors que nous voulons une valeur de type texte. C'est pourquoi nous devons convertir la valeur retournée par cette expression en une chaîne de caractères, conversion qui sera faite en utilisant une autre expression appelée `ToString(valeur_a_convertir)`. - -Ce qui fait que l'expression finale dont nous avons besoin est `ToString(Variable(Score))`. - -Finalement, nous pouvons ajouter cette pression à la suite d'un texte statique en utilisant l'opérateur **+** pour obtenir : - -`"Score : " + ToString(Variable(Score))` - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.58.12.png) - -Bien d'autres fonctions ou expressions sont disponibles dans GDevelop. En les combinant, vous pouvez obtenir des actions puissantes qui peuvent effectuer un travail complexe. - -Voici l'élément final : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.59.31.png) - -Vous pouvez maintenant tester le jeu et constater que le score est affiché et mis à jour chaque fois que vous récoltez une pièce de monnaie. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_19.00.24.png) - -## Bonus : corriger le bug de score - -Vous avez peut-être remarqué que si vous collectez deux pièces en même temps, le score n'augmente que d'une unité. Par exemple, si chaque pièce vaut 100 points et que vous collectez 2 pièces, le score n'augmentera que de 100 au lieu de 200. La correction est facile ; il suffit d'utiliser une fonction que nous n'avons pas encore rencontrée : un événement appelé **For each object**. Cette fonction nous permet de dire au moteur du jeu qu'il doit ajouter 100 au score pour chaque pièce ramassée. - -Pour commencer, cliquez sur la bouton **+** dans le barre des outils. - -![](/gdevelop5/tutorials/platform-game/gdevelop_5_2018-05-30_11-30-39.png) - -Sélectionnez **For each object** dans le menu : - -![](/gdevelop5/tutorials/platform-game/2018-05-30_11-33-09.png) - -et GDevelop ajoute un événement au bas de la page de l'événement. - -Faites-le glisser vers le haut pour en faire un sous-événement de la collision du joueur avec la pièce : - -![](/gdevelop5/tutorials/platform-game/click-to-choose-4.png) - -Cliquez `_Click to chose for which object this event will be repeted_`. - -Tapez `coin` dans le champ qui apparaît et cliquez sur l'objet. - -![](/gdevelop5/tutorials/platform-game/click-to-choose2.png) - -Maintenant que l'objet a été ajouté au sous-événement, déplaçons les actions vers ce sous-événement. Sélectionnez la première action avec la souris, cliquez ave son bouton droit et coupez la sélection. Placez le curseur dans l'action du sous-événement et collez avec le bouton droit (il s'agit donc d'un banal couper-coller). -Faites la même chose pour les eux autres actions - -![](/gdevelop5/tutorials/platform-game/move-to-sub1.png) - -Voilà à quoi devrait ressembler l'événement final : - -![](/gdevelop5/tutorials/platform-game/move-to-sub2.png) - -Lancez le jeu, et vous verrez que si vous récoltez deux pièces en même temps, le score sera mis à jour pour refléter le fait que vous avez effectivement récolté deux pièces plutôt qu'une. - -## Prochaine étape : ajouter des ennemis - -Chaque jeu de plateforme comporte des ennemis qu'il faut éviter ou tuer en leur sautant dessus ! Ajoutons-en et voyons comment nous pouvons les faire bouger. - -➡️ Pour continuer **[6 add enemies](/fr/gdevelop5/tutorials/platform-game/6-add-enemies)**! \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/platform-game/6-add-enemies.md b/docs/fr/gdevelop5/tutorials/platform-game/6-add-enemies.md deleted file mode 100644 index 57b9e9732c..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/6-add-enemies.md +++ /dev/null @@ -1,206 +0,0 @@ ---- -title: Ajouter des ennemis à notre jeu de plateforme ---- -# Ajouter des ennemis à notre jeu de plateforme -Terminons ce tutoriel en ajoutant un ennemi qui se déplacera à gauche et à droite et que nous pourrons détruire en lui sautant dessus. - - -##Créer et ajouter un objet ennemi à notre scène - -Créons d'abord un nouvel objet **Sprite** et ajoutons-y les images `slimeWalk1.png` et `slimeWalk2.png` dans une seule animation. Appelons cette animation `Walk`. - -Puisque cet ennemi est constamment en mouvement, nous n'avons pas besoin d'une animation « immobile » ou d'une quelconque autre animation. - -Activez l'animation en boucle en cliquant le bouton **Don't Loop** (en haut à droite) et réglez la vitesse d'animation (à droite du symbole d'un chronomètre) à `0.5`. - -La fenêtre devrait ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platormertut_slimeeditor.png) - -Confirmez ensuite les modifications en cliquant le bouton **Apply** dans le coin inférieur droit. - -Renommez finalement l'objet en `Slime` et ajoutez-le à la scène. Assurez-vous qu'il repose bien sur le dessus de la plateforme et qu'il se trouve sur le calque `Base`. - -Si vous lancez maintenant un aperçu, il ne se passe pas grand chose. L'ennemi se pose gentiment sur la plateforme et joue l'animation `Walk`. Faisons-le bouger. - - -##Déplacer l'ennemi à gauche et à droite -Dans ce tutoriel, l'ennemi devra se déplacer à gauche à et droite. Les changements de directions se feront lorsque l'ennemi entre en collision avec un obstacle. - -Il nous faut donc ajouter deux objets qui serviront d'obstacle et permettront de détecter les collisions avec l'ennemi. - -Créez un premier objet **Sprite**, ajoutez-lui l'image `Left.png` et renommez cet objet `left`. Créez ensuite un second objet **Sprite**, ajoutez-lui l'image `Right.png` et renommez-le `right`. - -Placez enfin l'objet `left` sur l'extrémité droite de la plateforme et l'objet `right` sur l'extrémité gauche de la plateforme. - -La plateforme devrait alors ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_slimedirection.png) - -Vous devinez peut-être ce que nous allons faire avec ces deux objets. Si ce n'est pas le cas, je vais vous l'expliquer. L'idée est que, si la bave rose `Slime` entre en collision avec l'objet appelé `left`, nous changeons sa direction pour la faire aller à gauche et si elle entre en collision avec l'objet appelé `right`, nous changeons sa direction pour la faire aller à droite. Passons donc à l'action. - -Nous allons commencer par créer une variable objet appelée `direction` en lui donnant la valeur `left` par défaut. Cette variable nous permettra de stocker le sens du déplacement de la bave et de la faire changer de direction. Pour ajouter une variable d'objet à la bave `Slime`: - -sélectionnez une bave dans la scène et, dans l'onglet **Properties**, cliquez sur **EDIT VARIABLES**. - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable1.png) - -GDevelop affiche une fenêtre vide qui contient la liste des variables d'objet déjà déclarées pour l'objet `Slime`. Elle est évidemment vide puisque, jusqu'à maintenant, nous n'en avons déclaré aucune. Pour ajouter une variable d'objet : - -cliquez sur le signe **+** **Click to add a variable** dans le coin inférieur droit. - -GDevelop affiche maintenant une variable appelée `Variable` dans le champ **Name**. - -Cliquez sur ce nom et remplacez-le par `direction`. Cliquez ensuite dans le champ **Value** et entrez `left`. La fenêtre devrait alors ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable2.png) - -Confirmez les modifications en cliquant sur le bouton **APPLY**. - -Nous avons maintenant une variable d'objet appelée `direction` ayant la valeur par défaut `left`. Utilisons cette variable pour faire bouger la bave. L'idée est que, si la valeur de `direction` est `left` la bave doit se déplacer vers la gauche et si la valeur est `right` la bave doit se déplacer vers la droite. - -Ouvrez l'onglet des événements **NEWSCENE (EVENTS)** et créez un nouvel événement vide (bouton **Add a new empty event** dans la barre du haut). - -Ajoutez-y une condition en cliquant **Add condition** pour tester le contenu texte d'une variable d'objet. Vous la trouverez dans **Common condition for all objects > Variables > Text of an object's variable** dans la liste de gauche. - -Dans le panneau de droite, cliquez sur **Object** et sélectionnez `Slime` dans la liste des objets. Dans le champ **Variable**, sélectionnez `direction` ou, s'il n'y figure pas pour une raison ou l'autre, écrivez-le. Pour le champ **Sign of the test**, choisissez **= (equal to)** ou tapez simplement le signe `=` et finalement, pour le champ **Text to test**, tapez `"left"`. N'oubliez pas de mettre cette valeur **entre guillemets** ! - -La fenêtre devrait ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable3.png) - -Pressez **OK** pour confirmer et ajouter la condition à l'événement. - -La condition étant fixée, ajoutons une action pour déplacer la bave vers la gauche. - -Cliquez sur **Add an action** pour paramétrer le déplacement vers la gauche. Sélectionnez **Common action for all objects > Movement > Add a force (angle)** dans le menu de gauche. - -Rappelons que vous pouvez toujours utiliser la boîte de recherche **Search** pour trouver ce que vous cherchez à condition de savoir ce que vous cherchez. - -Dans le panneau de droite, sélectionnez `Slime` dans le champ **Object**. Entrez la valeur `180` dans **Angle**, angle qui correspond à la direction vers la gauche dans le système de coordonnées de GDevelop. Pour la vitesse, entrez `100` dans le champ **Speed (in pixels per second)**. - -La fenêtre devrait ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeleft.png) - -Pressez **OK** pour confirmer et ajouter l'action. - -Si nous lançons maintenant un test, la bave devrait commencer par se déplacer vers la gauche, mais vous constaterez probablement qu'elle continue à se déplacer sans jamais changer de direction. Il est temps de remédier à cet situation. - -À cet effet, nous devons tester s'il y a collision entre l'objet `Slime` et l'objet appelé `right` et, si c'est le cas, changer la valeur de la variable `direction` en `"right"`. - -La suite des opérations est, à quelques détails près, la même que pour le déplacement vers la gauche. - -Ajoutez un événement vide (bouton **Add a new empty event**) puis une condition (**Add condition**) pour tester la collision entre l'objet `Slime` et l'objet `Right`. - -Sélectionnez **Common conditions for all objects > Variables > Text of a variable** dans la liste de gauche. Dans le panneau de droite, sélectionnez `Slime` dans le champ **Object**, `direction` dans le champ **Variable** (entrez ce nom manuellement s'il ne figure pas dans la liste). Sélectionnez **= (equal to)** ou tapez un signe égal `=` dans le champ **Sign of the test**. Pour finir, entrez `"right"` dans le champ **Text to test** (n'oubliez pas les guillemets doubles !). - -La fenêtre devrait ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_checkobjectvariable.png) - -Il reste encore à dire à GDevelop ce qu'il faut faire quand la variable `direction` vaut `right`. - -Cliquez **Add action** dans la condition qui vient d'être créée. Sélectionnez **Common action for all objects > Movement > Add a force (angle)** dans la liste de gauche. Sélectionnez `Slime` dans le champ **Object**, mettez **Angle** à `0` et **Speed (in pixels per second)** à `100`, puis cliquez **OK** pour confirmer. - -La figure ci-dessous, qui représente le système de coordonnées utilisé par GDevelop, montre que le déplacement vers la droite correspond bien à un angle de 0°. - -![](/gdevelop5/tutorials/platform-game/gdevelop_co.png) - -Si nous testons maintenant le jeu, nous constatons que rien ne se passe comme prévu : bien que GDevelop sache ce qu'il faut faire quand `direction` vaut `right` ou `left`, la bave poursuit son chemin vers la gauche sans se préoccuper des limites. - -Il faut donc tester les conditions les collisions avec les objets limite `Right` et `Left` et ajuster la variable `direction` en conséquence. - -Créez un nouvel événement et ajoutez-y une condition (**Add condition**) pour tester la collision avec la borne située à gauche appelée `Right`. - -Sélectionnez **Common condition for all objects > Collision > Collision** dans la liste de gauche. Sélectionnez `Slime` dans le premier champ **Object** et `Right` dans le second. Cliquez **OK** pour confirmer. - -Indiquez à GDevelop ce qu'il doit faire quand il y a collision en ajoutant une action en cliquant **Add action**. - -Sélectionnez **Common action for all objects > Variables > Modify the text of a variable of an object** dans la liste de gauche. Dans le panneau de droite, sélectionnez `Slime` dans le champ **Object**, écrivez `direction` dans le champ **Variable**, sélectionnez `= (set to)` dans le champ **Modification's sign** et tapez `"right"` dans le champ **Text**. Cliquez **OK** pour confirmer. - -Il reste à dire à GDevelop ce qu'il doit faire en cas de collision à droite (donc avec la borne `Left`). - -Répétez ce que vous venez de faire pour la borne `Right` en utilisant l'objet `Left` et la valeur `"left"`. - -Si vous avez bien suivi, les événement devraient ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeevent1.png) - -Si vous testez maintenant le jeu, la bave devrait changer de direction chaque fois qu'elle touche une limite, mais elle continue de regarder vers la gauche quelle que soit la direction de son déplacement. Il s'agit dont de retourner l'image de la bave chaque fois que c'est nécessaire. - -Il suffit d'ajouter une action de retournement horizontal du sprite de la bave dans les événements spécifiant la direction de cette bave. - -Cliquez **Add action** dans l'événement qui déplace la bave vers la gauche (`The text of variable direction of Slime is = "left"`. - -Sélectionnez **Sprite > Effects > Flip the object horizontally** dans la liste de gauche. Sélectionnez `Slime` dans le champ **Object** du panneau de droite. Cliquez `NO` dans le champ **Activate flipping** puisque dans ce cas, l'image regarde dans la bonne direction. - -Répétez ces deux derniers paragraphes pour l'événement déplaçant la bave vers la droite. Sélectionnez cette fois le bouton **YES** dans le champ **Activate flipping** car nous voulons que la bave regarde vers la droite quand elle va à droite.. - -Les événements devraient maintenant ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeevent2.png) - -Si vous effectuez un test, la bave devrait bien regarder dans la direction de son mouvement. - -#Faire en sorte que le joueur tue l'ennemi - -Il suffit de faire en sorte que le joueur détruise la bave quand il lui saute dessus. À cet effet, - -Ajoutez un événement vide (bouton **Add a new empty event**). La suite du procédé est la même que celui utilisé pour faire disparaître les pièces de monnaie. - -Testez la survenue d'une collision en cliquant **Add condition** puis en sélectionnant **Common conditions for all objects > Collision > Collision**. Sélectionnez `Player` pour le premier **Object** et `Slime` pour le second. Confirmer avec **OK**. - -La condition étant remplie, il faut encore y ajouter une action avec **Add action**. Sélectionnez **Common action for all objects > Objects > Delete an object** dans la liste de gauche et sélectionnez ensuite `Slime` pour **Object** à droite. Confirmez avec **OK**. - -Si nous testons le jeu maintenant, la bave est supprimée dès que le joueur entre en collision avec elle, mais ce n'est pas ce que nous voulons. Nous voulons la supprimer seulement si le joueur lui saute dessus (retombe sur elle). - -Pour ce faire, il faut ajouter une condition supplémentaire à l'événement qui vérifie si le joueur est en train de tomber. - -Cliquez **Add condition** dans le dernier événement. Sélectionnez **Platform Behavior > is falling** dans la liste de gauche et `Player` pour **Object**. Cliquez **OK** pour confirmer. - -Si nous testons le jeu, la bave n'est détruite que lorsqu'elle entre en collision avec le joueur qui est en train de lui tomber dessus, et seulement dans ce cas. - -Mais ce n'est pas encore parfait car il n'a pas de poids, il tombe tout simplement sur la bave et la bave disparaît. Faisons en sorte que le joueur puisse sauter encore lorsqu'il tombe sur la bave. - -Pour ce faire, ajoutez une action supplémentaire (**Add action**) pour que le joueur puisse sauter à nouveau puis de le faire sauter en simulant une pression sur la touche de saut. - -Pour lui permettre de refaire un saut, sélectionnez **Platform behavior > Options > Allow again jumping** dans la liste de droite et `Player` dans le champ **Object**. Cliquez **OK** pour confirmer. - -Pour le faire sauter « automatiquement », ajoutez une action **Add action** puis sélectionnez **Platform behavior > Controls > Simulate jump key press** à gauche et `Player` dans le champ **Object** à droite. Confirmez avec **OK**. - -À ce stade, l'événement devrait ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutoriual_killtheslime.png) - -Si nous démarrons maintenant le jeu et sautons sur la bave, le joueur devrait sauter encore une fois et la bave disparaître. - -#Faire que l'ennemi puisse tuer le joueur - -Il est temps de faire que l'ennemi puisse tuer le joueur. - -Dans l'onglet **NEWSCENE (EVENTS)**, ajoutez un événement vide (bouton **Add a new empty event**) et, dans cet événement, une condition pour vérifier la collision entre le joueur et la bave puis ajoutez une action pour supprimer le joueur. - -Évidemment, cela ne fonctionnera pas car nous pourrions juste supprimer le joueur avant de pouvoir supprimer la bave ou supprimer la bave avant de pouvoir supprimer le joueur. Pour l'éviter, ajoutez une action de plus à notre événement pour vérifier que le joueur n'est pas seulement en collision avec la bave mais que le joueur est également sur le sol. - -Si nous lançons maintenant le jeu, nous devrions être en mesure de tuer la bave en lui sautant dessus et la bave devrait pouvoir tuer le joueur si le joueur est au sol au moment de la collision. - -La dernière chose que nous avons à faire est de cacher les objets flèches gauche et droite. - -À cet effet, ajoutons un événement vide et la condition `At the beginning of the scene` qui sera déclenchée une seule fois au démarrage de la scène et ajoutera l'action pour `Hide the object left` (cacher l'objet à gauche) et `Hide the object right` (cacher l'objet à droite). - -L'événement final complet de ce tutoriel devrait ressembler à : - -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_enemycompletevent.png) - -Si nous lançons maintenant un aperçu, les objets à gauche et à droite portant une flèche doivent être cachés. La bave doit bouger constamment de gauche à droite. Nous sommes capables de tuer la bave en lui sautant dessus et la bave devrait être capable de tuer le joueur quand elle entre en collision avec lui lorsqu'il est au sol. - - -##Étape suivante : ajouter des points de contrôle (checkpoints) - -Pour l'instant, la «mort» du joueur est un peu brutale : on le supprime. Faisons-le réapparaître au dernier point de contrôle qu'il a traversé. Les points de contrôle sont essentiels dans un jeu de plateforme si vous ne voulez pas forcer le joueur à recommencer depuis le début lorsqu'il meurt. - -➡️ LIsez **[7 checkpoints](/fr/gdevelop5/tutorials/platform-game/7-checkpoints) !** - - - diff --git a/docs/fr/gdevelop5/tutorials/platform-game/7-checkpoints.md b/docs/fr/gdevelop5/tutorials/platform-game/7-checkpoints.md deleted file mode 100644 index d848e01bb6..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/7-checkpoints.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Ajouter des points de contrôle à votre jeu ---- -# Ajouter des points de contrôle à votre jeu - -Nous avons terminé notre tutoriel précédent en supprimant le joueur quand il entre en collision avec l'ennemi. Mais cela ne fonctionne pas de cette manière dans la plupart des jeux. Au lieu de supprimer le joueur, il y a normalement un « point de contrôle » (checkpoint) où l'état du jeu et celui du joueur sont sauvegardés et au cas où le joueur mourrait, le jeu redémarrerait à partir du point de contrôle. - -Enregistrer la totalité de l'état du jeu et la situation du joueur est peut-être un peu trop avancé pour le moment. Donc, ce que nous allons faire en cas de rencontre avec un objet « point de contrôle », consiste à stocker la position de l’objet dans des variables et au lieu de supprimer le joueur, nous enregistrons sa position dans les variables. Passons à la réalisation… . - -#### Créer un objet point de contrôle - -Commencez par créer un nouvel objet **sprite** dans le jeu et appelez-le `checkpoint`. Son image peut être n'importe quoi. Ici, nous allons utiliser un cactus pour représenter le ou les points de contrôle. - -![](/gdevelop5/tutorials/platform-game/checkpoint-object.png) - -Ajoutez maintenant l'objet à votre scène, là où nous aimeriez avoir un point de contrôle. Vous pouvez ajouter l'objet à plusieurs endroits dans la scène. - -#### Ajouter des événements - -Maintenant que nos objets point de contrôle sont placés dans la scène, ajoutons les événements qui y sont liés. Commençons avec une condition pour vérifier la collision entre le joueur `player` et le point de contrôle `checkpoint` et, si la collision se produit, stockons la position X et Y du point de contrôle dans deux variables de scène appelées `checkpointX` et `checkpointY`. - -![](/gdevelop5/tutorials/platform-game/checkpoint_event.png) - -Tout comme lorsque nous mettons à jour le texte du score, nous utilisons des expressions pour obtenir la position X et Y de l’objet `checkpoint`. Vous trouverez plus d'expressions dans l'éditeur d'expression en cliquant sur l'icône bleue à côté des champs de valeur : - -![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -Lorsque vous cliquez sur cette icône, vous pouvez rechercher toutes les expressions disponibles triées par catégories. - -![](/gdevelop5/tutorials/platform-game/expression-editor.png) - -Nous avons maintenant stocké les positions X et Y de l’objet `checkpoint` avec lequel nous sommes entrés en collision. La seule chose qui reste à faire est de donner au joueur la position X et Y du point de contrôle au lieu de supprimer l’objet `player` en utilisant le coordonnées stockées dans les variables que nous venons de définir. - -![](/gdevelop5/tutorials/platform-game/checkpoint-event2.png) - -Nous utilisons ici un autre ensemble d'expressions pour obtenir la valeur des variables. - -#### Résolution de bogues - -Au cas où vous avez suivi scrupuleusement et que vous avez également choisi le cactus comme point de contrôle, vous remarquerez peut-être que nous venons de créer un bogue. Puisque le personnage du joueur est plus grand que le cactus, nous définissons la position du joueur trop bas et le joueur reste coincé dans le sol lorsque nous définissons sa coordonnée Y : - -![](/gdevelop5/tutorials/platform-game/checkpoint_bug.png) - -Dans ce cas particulier, nous pouvons facilement résoudre le problème en redimensionnant le cactus sur l’axe des Y pour qu’il soit aussi haut ou même plus haut que le joueur. Mais nous pouvons aussi utiliser les mathématiques pour contourner ce problème. Puisque tout le monde sait comment redimensionner un sprite « manuellement », voyons comment le faire avec les maths. - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug-fix.png) - -La solution présente ici paraît un peu trop compliquée, mais elle n'est là que pour vous montrer à quel point les expressions peuvent être puissantes. Donc, ma solution est la suivante : lorsque je définis la position Y du joueur en utilisant la variable `checkpointY`, je soustrais la hauteur du point de contrôle `checkpoint.Height()` du cactus de la hauteur du joueur `Player.Height()`, et la différence obtenue de cette manière est soustraite à la variable `checkpointY`. La différence de hauteur obtenue est donc calculée automatiquement, quelles que soient les hauteurs des objets en question . - -Bien entendu, pour rester simple, nous pourrions également soustraire 30 à la valeur de `checkpointY`. - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug-fix-simple.png) - -Donc, avec la méthode des essais et erreurs, vous pouvez trouver la valeur qui vous convient le mieux ou vous pouvez essayer la manière plus compliquée de déterminer la valeur exacte. - -Peut-être que vous vous demandez maintenant pourquoi je soustrais cette différence de hauteur à Y au lieu de l'ajouter à Y. Le problème est que, la hauteur du point de contrôle étant plus petite, je dois placer le joueur plus haut. La raison est que le valeur de la coordonnée sur l'axe Y augmente de haut en bas. Elle commence à 0 en haut et augmente de plus en plus vers le bas de l'écran, donc techniquement j'ai besoin d'une valeur inférieure pour déplacer quelque chose vers le haut : - -![](/gdevelop5/tutorials/platform-game/2d-coordinates.png) - -Les coordonnées de la scène de jeu de la plupart des moteurs 2D sont définies de la manière suivante : - -L'origine est placée dans le coin supérieur droit de la scène, de cordonnées (0,0). La valeur de l'abscisse (coordonnée horizontale X le long de l'axe du même nom) augment de gauche à droite et celle de l'ordonnée (coordonnée verticale Y le long de l'axe du même nom) augmente de haut en bas, comme vous pouvez le voir sur l'image ci-dessus. - -Maintenant, si nous lançons un aperçu et que notre joueur meurt, sa position est définie sur les dernières valeurs de point de contrôle enregistrées. Mais il y a un autre bug. - -Si le joueur meurt avant d'entrer en collision avec un point de contrôle, les variables renverront 0 et le joueur va se retrouver à la position 0,0 qui est le coin supérieur gauche. - -Nous pouvons facilement résoudre ce problème en définissant des valeurs par défaut pour les points de contrôle, valeurs correspondant à la position de départ du joueur au début de la scène. - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug2-fix.png) - -Donc, lorsque la scène commence, le joueur doit normalement être déjà en position de départ ce qui fait que nous obtenons simplement la position du joueur, position que nous stockons comme position du point de contrôle. Si le joueur meurt avant d'entrer en collision avec l'un des points de contrôle, nous le positionnons au début de la scène. -#### Améliorer le système - -En utilisant ce que vous avez appris jusqu'ici, vous pouvez aller de l'avant et ajouter un texte pour afficher un message lorsque le joueur a atteint un point de contrôle et peut-être jouer une animation, faire sauter le cactus ou quelque chose de plus intéressant. - - diff --git a/docs/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png b/docs/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png deleted file mode 100644 index c104b5d1ae..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png deleted file mode 100644 index 5f1ec950d5..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png deleted file mode 100644 index 9054a6f366..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png deleted file mode 100644 index e27630f2e8..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png deleted file mode 100644 index 4ca9331ebf..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png deleted file mode 100644 index e4587e7e8f..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png deleted file mode 100644 index a6359bcba1..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png deleted file mode 100644 index 2de04d5bdb..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png b/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png deleted file mode 100644 index f2a44a4745..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png b/docs/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png deleted file mode 100644 index 4bb55f0956..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png b/docs/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png deleted file mode 100644 index 699991ce92..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png b/docs/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png deleted file mode 100644 index 5b801366f1..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png b/docs/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png deleted file mode 100644 index e0bc47ea18..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png b/docs/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png deleted file mode 100644 index 974bb85053..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/editer_perso.png b/docs/fr/gdevelop5/tutorials/platform-game/editer_perso.png deleted file mode 100644 index 171b2dc462..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/editer_perso.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png b/docs/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png deleted file mode 100644 index 5cbbeb55c0..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/index.md b/docs/fr/gdevelop5/tutorials/platform-game/index.md deleted file mode 100644 index 2426cb3ea3..0000000000 --- a/docs/fr/gdevelop5/tutorials/platform-game/index.md +++ /dev/null @@ -1,190 +0,0 @@ ---- -title: Comment faire un jeu de plate-forme ---- -# Comment faire un jeu de plate-forme - -Ce tutoriel vous aidera à commencer à utiliser **GDevelop**: -Vous allez créer un jeu de plateforme très simple où le joueur peut sauter sur les plates-formes et collecter des pièces de monnaie. - -Notez que vous pouvez lire la page [Commencer](/fr/gdevelop5/getting_started) pour avoir une vue d'ensemble du logiciel : elle explique les principaux concepts et décrit l'interface de GDevelop. - - -## Télécharger GDevelop - -Si vous n'avez pas **GDevelop 5**, téléchargez-le à partir du [site officiel](https://gdevelop.io). Il est disponible pour Windows, MacOS et Linux. - -Téléchargez toujours GDevelop à partir de cette page pour être sûr d'avoir la dernière version. -Installez ou extrayez GDevelop et lancez-le. - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-32-46.png) - -## Créer un nouveau jeu - -Cliquez sur **CREER UN NOUVEAU PROJET** sur la page d'accueil. Dans la fenêtre **Créer un nouveau jeu**, choisissez un dossier pour votre projet (dans le champ **CHOISIR UN DOSSIER** situé en haut de la fenêtre) et sélectionnez **Jeu vide** (dernière option) pour démarrer un nouveau jeu à partir de zéro. - -Par défaut, GDevelop crée un dossier appelé **My project**. Vous pouvez créer un dossier vide avec le nom qui vous convient et le sélectionner (dossier **exemple-jeu-plateforme** dans notre exemple). - -Pour faire notre jeu, nous aurons besoin de ressources pour représenter les objets (image(s) du personnage, quelques plateformes, objets à récolter ...). - -![](/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png) - - Vous pouvez télécharger les ressources ici : http://www.compilgames.net/dl/PlatformerTutorialResources.zip. - -Une fois ce fichier téléchargé, extrayez son contenu dans le dossier où vous avez créé le projet. - -## Ajouter une scène - -Les **_scènes_** sont les différentes parties du jeu. Typiquement, chaque écran apparaissant dans le jeu est une scène : le menu principal, le menu pause et les niveaux sont des scènes. - -Les **_scènes_** contiennent les objets qui sont affichés à l'écran. Les **_objets_** peuvent être mis en scène pour créer les niveaux (ces objets sont appelés **_instances_**). Les scènes contiennent également les **_événements_** qui sont exécutés pour animer la scène. - -Dans le gestionnaire de projet qui s'ouvre à gauche, cliquez sur le bouton **+** à droite de **Cliquez pour ajouter une scène**. - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-42-29.png) - -Une nouvelle scène, appelée **New Scene** est ajoutée à la liste. Cliquez dessus pour l'ouvrir. - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-45-50.png) - -Pour renommer la scène comme vous le souhaitez, vous pouvez revenir au **gestionnaire de projet** en cliquant sur -![](/fr/gdevelop5/tutorials/platform-game/gestionnaire-projet.png) - en haut à gauche. Faire clic-droit sur **New Scene** puis **rename** pour lui choisir un nouveau nom (dans notre exemple : **scene1**). - -## Créer l'objet joueur - -Le joueur contrôlera un personnage qui peut sauter et se déplacer sur des plateformes. Nous allons créer cet objet. - -Sur la droite, vous pouvez voir un panneau intitulé **Objects**. Cliquez sur le bouton **+** pour ajouter un objet. - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-11.png) - -Ensuite, une fenêtre s'ouvre et affiche différents types d'objets parmi lesquels vous pouvez choisir. - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-49-34.png) - -Les différents types d'objets présentent des caractéristiques spécifiques. Pour la plupart de nos objets, nous utiliserons les objets **Sprite** qui sont des objets animés ou fixes pouvant être utilisés pour de nombreux éléments (joueur, plates-formes, ennemis, objets...). - -Cliquez sur **Sprite** dans la liste. Le nouvel objet est ajouté à la scène et les propriété de l'objet s'ouvrent. Vous pouvez renommer l'objet (ici on l'a appelé `perso_principal`) : - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-19.png) - -L'objet est actuellement vide. Les objets **Sprite** sont composés d'animations, et chaque animation peut contenir une ou plusieurs images. Ajoutons une animation. Cliquez sur le bouton **+**. - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-51-32.png) - -L'animation est ajoutée mais toujours vide, sans images. Pour ajouter une image, cliquez sur le **+** dans la vignette vierge. - -Choisissez l'image appelée `p1_stand.png` dans le dossier du projet. L'image est ajoutée à l'objet : - -![](/fr/gdevelop5/tutorials/platform-game/capture_du_2020-06-06_10-52-46.png) - -Vous pouvez maintenant fermer les propriétés en cliquant sur le bouton **APPLIQUER** dans le coin inférieur droit. - -##Mettre l'objet dans la scène - -Pour ajouter le joueur dans notre niveau, nous devons récupérer l'objet et le placer dans la scène. -Chaque objet ajouté à la scène est une **_instance_** de l'objet. - -Nous n'avons besoin que d'une seule instance du joueur car nous n'aurons qu'un seul joueur dans ce niveau. Les autres objets (comme les plateformes, pièces, ennemis, ...) pourront avoir plusieurs instances dans la scène. - -Pour ajouter l'objet, il faut cliquer dans la liste à gauche : - -![](/fr/gdevelop5/tutorials/platform-game/objets-volet.png) - -puis sans relacher la souris, le faire glisser vers la scène et relacher pour le déposer : - -![](/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png) - -Pour zoomer et dézoomer dans la scène, utilisez la molette de la souris. Pour déplacer la scène, utiliser le clic du milieu (laisser appuyer et faire glisser). - -## Donner un nom significatif à l'objet - -Si vous avez oublié de nommer votre personnage, vous pouvez le faire en revenant dans le menu ou en faisant un clic droit sur l'objet (ou cliquez sur l'icône présentant trois points alignés verticalement). Choisissez alors l'option **Rename** dans le menu contextuel. Vous pouvez alors saisir `perso_principal` et cliquer n'importe où sur l'écran pour renommer l'objet. - -![](/fr/gdevelop5/tutorials/platform-game/changer-nom-objet.png) - -## Ajouter des plateformes - -Pour le moment, le niveau est encore vide, sans plateformes. Ajoutons-en quelques unes. - -Créez un nouvel objet en cliquant le bouton **+** dans la liste d'objets. Cette fois, choisissez **Mosaïque** (Tile en anglais) dans la fenêtre de sélection. - -![](/fr/gdevelop5/tutorials/platform-game/ajout-mosaique.png) - -L’éditeur d'objet s'ouvre. Il est un peu différent de l’éditeur de **Sprite** car les **Mosaïque** ne sont pas animés. - -Cliquez sur **Sélectionner une image** puis sur **Choose a new image**. Choisissez cette fois l'image appelée `grassHalfMid.png`. Au passage, renommez l'objet _plateforme_herbe1_. - -![](/fr/gdevelop5/tutorials/platform-game/charger-image-plateforme1.png) - -Fermez l’éditeur en cliquant sur le bouton **APPLIQUER** en bas à droite. Comme pour le personnage, déposez une instance de l'objet sur la scène pour le placer dans le niveau : - -![](/fr/gdevelop5/tutorials/platform-game/depose-plateforme1.png) - -L'objet est ajouté à la scène mais il est minuscule. Cliquez-le et utilisez les poignées de taille pour le redimensionner afin qu'il ressemble à une plateforme : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.00.01.png) - -Si vous avez oublié, n'oubliez pas de renommer l'objet `plateforme_herbe1` au lieu du nom par défaut dans la liste des objets. - -### Il est temps de sauvegarder! - -Ne perdons pas ce que nous venons de créer : dans le menu **Fichier** de l'application, cliquez **Sauvegarder** (ou pressez (Ctrl+S/Cmd+S) pour sauvegarder les modifications. - -## Ajouter des comportements aux objets - -### Le joueur (perso_principal) - -Les mouvements du joueur pourraient être créés à l'aide des événements de GDevelop, mais ce serait une tâche longue et difficile de recréer un bon moteur de plateforme. Heureusement, GDevelop contient déjà un moteur de plateforme complet. Afin de mettre en oeuvre ce moteur, nous avons besoin d'utiliser les « comportements de plateforme », qui nous permettent d'accéder au moteur de plateforme et de l'utiliser. - -Ouvrez l'éditeur d'objet de `perso_principal` en cliquant-droit sur le joueur dans la liste des objet et en sélectionnant **Edit object** dans le menu (un double clic ouvre également le menu). - -![](/fr/gdevelop5/tutorials/platform-game/editer_perso.png) - -Dans la fenêtre qui vient de s'ouvrir, sélectionnez le panneau **Comportement** (en haut à droite de **Propriétés**) et cliquez le bouton **+ Ajouter un comportement à l'objet**. Sélectionnez **Objet se déplaçant sur des plateformes** dans la liste des comportements disponibles. -L'éditeur affiche maintenant les comportements avec toute une série de paramètres que vous pouvez modifier. - -![](/fr/gdevelop5/tutorials/platform-game/comportement-plateforme.png) - -Vous pouvez changer certaines de ces propriétés, par exemple la **Vitesse de saut**. Mettez ce paramètre à `800` afin que le saut soit plus important. - -### Platformes -Nous devons aussi configurer des objets pour qu'ils fonctionnent comme des plateformes afin que le joueur puisse leur marcher ou leur sauter dessus. Si nous ne le faisons pas, le joueur tombera à travers l'objet, comme si nous n'avions pas dit à notre personnage comment réagir avec ces plateformes. En donnant à un objet les propriétés d'une plateforme, nous indiquons au personnage que cet objet est une plateforme avec laquelle il peut entrer en collision (lors d'un saut) et lui marcher dessus. - -Pour configurer l'objet `plateforme_herbe1` en tant que plateforme, ouvrez l'éditeur de l'objet (clic droit sur l'objet dans la liste des objets et sélection de **Edit object** dans le menu), activez le panneau **Comportements** et **+ Ajoutez un comportement à l'objet** puis sélectionnez le comportement **Platforme** : - -![](/fr/gdevelop5/tutorials/platform-game/comportement-obj-plateforme.png) - -Ce panneau présente aussi quelques options que vous pouvez modifier. Par exemple, l'option **Les rebords peuvent être saisis** permet au personnage de s'accrocher au bord de la plateforme. Si nous activons cette option maintenant, le comportement du personnage paraîtra étrange car nous n'avons pas encore d'animation à afficher lorsque le personnage attrape un bord. - -## Lancer une prévisualisation - -Arrivés à ce point, vous devriez pouvoir tester votre jeu en pressant le bouton de prévisualisation situé dans la barre d'outils de l'écran. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.13.25.png) - -Lorsque vous pressez ce bouton, GDevelop génère une prévisualisation et ouvre ensuite une nouvelle fenêtre. - -Vous devriez alors pouvoir vous délacer sur les plateformes et sauter d'une plateforme à l'autre avec les touches par défaut. Sentez-vous libres d'ajouter quelques autres plateformes à la scène, comme vous l'avez fait pour la première. N'oubliez pas d'ajouter aussi les comportements adéquats aux plateformes créées pour que le personnage ne passe pas au travers. - -Vous pouvez maintenant faire bouger le personnage avec les touches par défaut, qui sont les touches fléchées pour le déplacer horizontalement et les touches **Maj** ou **Espace** pour le faire sauter. Remarquez que, pour le moment, notre personnage n'est pas animé : nous l'animerons pas le suite. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.14.18.png) - -Si le personnage ne se déplace pas, assurez-vous d'avoir activé les comportements adéquats. Assurez-vous aussi d'avoir ajouté le comportement **Platform** aux objets `GrassPlatform`, sinon le joueur les traversera et sortira de l'écran par le bas. - -## Changer la couleur de l'arrière-plan - -Un arrière-plan gris est un peu ennuyeux. Nous pourrons y ajouter une image par la suite, mais ne nous compliquons pas les choses pour le moment. Faites un clic-droit dans l'éditeur de la scène et sélectionnez **Scene properties** : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.16.03.png) - -Dans la fenêtre qui s'est ouverte, cliquez sur **Couleurs d'arrière plan de la scène**, choisissez la couleur qui vous convient dans la palette des couleurs et confirmez en cliquant **OK**. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.18.08.png) - -## Étape suivante : animer le joueur - -Pour le moment, notre jeu est très basique : le joueur n'est pas animé lorsqu'il saute ou qu'il marche. L'étape suivante de ce tutoriel vous montrera comment ajouter différentes animations et comment utiliser des événements pour changer les animations lorsque l'état du joueur change. - -➡️ Lisez **[la suite du tutoriel se trouve ici !](/fr/gdevelop5/tutorials/platform-game/2-player-animations)** \ No newline at end of file diff --git a/docs/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png b/docs/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png deleted file mode 100644 index b5878127f8..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/instance-sprite-depose.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png b/docs/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png deleted file mode 100644 index 6b194b9a96..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/nouveau-projet.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/platform-game/objets-volet.png b/docs/fr/gdevelop5/tutorials/platform-game/objets-volet.png deleted file mode 100644 index 0d3f36c612..0000000000 Binary files a/docs/fr/gdevelop5/tutorials/platform-game/objets-volet.png and /dev/null differ diff --git a/docs/fr/gdevelop5/tutorials/storage-action-explained.md b/docs/fr/gdevelop5/tutorials/storage-action-explained.md deleted file mode 100644 index 32f7c1c69a..0000000000 --- a/docs/fr/gdevelop5/tutorials/storage-action-explained.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: Explications sur l'action de stockage ---- -# Explications sur l'action de stockage - -Quand vous voulez sauvegarder ou charger n'importe quelle donnée, votre jeu a besoin d'utiliser les évènements de stockage. Ici je vais vous expliquer ce que chaque option fait, comment lire et écrire des valeurs et comment bien commencer. Après avoir lu cette page, je vous recommande d'aller regarder l'exemple "Save-Load" inclus dans GDevelop. - -!!! note - - Les actions de stockage vont stocker les données dans le **stockage interne**. Si vous souhaitez écrire ou lire des **fichiers**, lisez la page [File system](/gdevelop5/all-features/filesystem) mais cette option est uniquement disponible pour les versions ordinateurs natifs (Linux, Windows, MacOS) - -### Écrire une valeur - -**Stockage :** "nomdustockage" - -Le nom du stockage dans lequel vous voulez écrire une valeur. Par exemple, vous voulez peut-être stocker des informations sur le joueur, pour cela, créez un stockage nommé "joueur". - -Si vous souhaitez sauvegarder les préférences utilisateurs ou paramètres du jeu, vous pouvez créer un stockage nommé "parametres" ou vous pouvez juste créer un seul stockage pour ~~les contrôler tous~~ stocker toutes les informations à la fois et juste le nommer "sauvegarde". - -C'est à vous d'organiser les sauvegardes comme vous le souhaitez. - -Si le nom d'un stockage n'existe pas, GDevelop créera le stockage pour vous. Pour faire une analogie, le stockage est un meuble contenant plusieurs tiroirs. - -**Groupe :** "nomdugroupe" - -Un groupe peut être n'importe quoi, c'est basiquement un tiroir sur lequel vous mettez un nom et dans lequel vous mettez une valeur que vous gardez pour plus tard. En utilisant des groupes, vous pouvez stocker plusieurs valeurs dans le même stockage. Par exemple, la position du joueur peut être stockée dans un groupe et la vie du joueur dans un autre à l'intérieur du même stockage. Ce qui donne : - -Groupe: "PositionXJoueur" pour stocker la position X du joueur - -Groupe: "ViesDuJoueur" pour stocker le nombre de vies du joueur. - -Quand vous chargez une valeur depuis le stockage, vous pouvez utiliser le nom du groupe pour spécifiez quelle valeur vous souhaitez lire. Dans le cas plus haut, la position X du joueur ou son nombre de vies ou n'importe quoi d'autre est enregistrée dans le stockage. - -**Expression :** La valeur que vous voulez écrire dans le stockage - -Une expression peut être un texte, un nombre, une variable ou n'importe quoi d'autre. - -Pour récupérer la valeur stockée dans la variable, nous devons utiliser des *expressions variables* dans le champ d'entrée: - -**Variable d'objet :** - -objet_nom.Variable(variable_nom) - -objet\nom.VariableString(variable_nom) - -**Variable de scène :** - -Variable(variable_nom) - -VariableString(variable_nom) - -**Variable globale :** - -GlobalVariable(variable_nom) - -GlobalVariableString(variable_nom) - -Une chose importante à savoir ; **Écrire une valeur" peut être utilisée seulement pour ÉCRIRE UN NOMBRE** et **"Écrire un texte" peut seulement être utilisé pour ÉCRIRE UN TEXTE** dans le stockage. Souvenez-vous-en aussi quand vous utilisez des expressions. Les expressions de textes ne renvoient que du texte alors que les expressions numériques ne renvoies que des nombres. Cela vaut aussi pour les différents types de variables. - -### Lire une valeur - -Pour lire une valeur depuis le stockage, vous devez a peu près faire la même chose : - -**Stockage :** Entrez le nom du stockage depuis lequel vous voulez lire la valeur. - -**Groupe :** Entrez le nom du groupe qui contient la valeur. - -(Souvenez vous de l'analogie de du meuble avec les tiroirs) - -**Variable de scène :** Entrez le nom de la variable dans laquelle stocker la valeur chargée. Notez que cette variable **devrait être une variable de scène** et que le champ d'entrée attends le nom d'une variable de scène existante, pas une expression. - -La variable **devrait** aussi être ajoutée (déclarée) à l'avance dans les propriétés de la scène. Si vous souhaitez stocker la valeur chargée dans une variable globale ou une variable d'objet, vous pouvez utiliser une variable de scène "tampon" pour passer la valeur du stockage, à la variable de scène puis à la variable globale/d'objet. - -!!! note - - Conseil : Vous pouvez mettre un underscore ("_") ou juste le mot "tmp" devant le nom de la variable temporaire pour signaler qu'elle ne sert que de tampon entre le stockage et une variable de scène ou d'objet. Mais ce choix ne revient qu'à vous - -N'oubliez pas : **L'action Lire une valeur est réservé aux nombres** et **L'action Lire un texte est réservé aux textes** ! Les types de variables sont importants et doivent être respectés. - -#### Exemples - -!!! note - - **Testez le stockage interne par vous même !** 🎮 - - Ouvrez cet exemple dans l'éditeur en ligne ! - -- diff --git a/docs/fr/gdevelop5/tutorials/tank-shooter.md b/docs/fr/gdevelop5/tutorials/tank-shooter.md deleted file mode 100644 index 5e65cba4e7..0000000000 --- a/docs/fr/gdevelop5/tutorials/tank-shooter.md +++ /dev/null @@ -1,246 +0,0 @@ ---- -title: tank-shooter ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -##Tirs sur tanks – Tutoriel pour débutant - -Ce tutoriel vous introduit à l’utilisation de GDevelop : vous allez créer un jeu très simple, avec des ennemis qui se déplacent vers le joueur, celui-ci pouvant tirer dessus afin qu'ils explosent au contact des missiles. ![](/gdevelop5/tutorials/beginner-tutorial-screenshot.png) - -Pour obtenir une vue d'ensemble du logiciel, je recommande de commencer par lire la page [](/fr/gdevelop5/getting_started). - -### Télécharger GDevelop - -Si vous n'avez pas encore GDevelop, téléchargez-le sur le site officiel : [gdevelop-app.com](http://gdevelop-app.com) - -Téléchargez toujours GDevelop à partir de cette page pour être sûr d'avoir la dernière version. Une fois que GDevelop est installé et lancé, la page de démarrage est affichée : ![](/gdevelop5/start_page.png) - -### Télécharger les sources - -Vous pouvez télécharger le projet terminé ![](/gdevelop5/tutorials/beginner-tutorial.zip) afin de voir comment il est fait au cas où vous seriez bloqué ou ne comprendriez pas quelque chose. - -### Créer un nouveau projet - -Cliquez sur **Create a new project** sur la page d'accueil. - -Ensuite, vous avez le choix entre créer un nouveau projet à partir d'un modèle ou créer un projet vide. ![](/gdevelop5/create-new-project-window.png) - -Nous avons besoin d'un projet vide, mais avant de faire ce choix, nous devons définir un dossier en bas de la page dans lequel notre projet sera stocké. - -![](/gdevelop5/tutorials/select-project-folder.png) - -Pour choisir un emplacement personnalisé, nous devons cliquer sur le bouton **Choose folder** et parcourir le système de fichiers de notre ordinateur pour trouver le dossier que nous voulons utiliser. ![](/gdevelop5/choose-folder-button.png) - -Une fois que vous avez sélectionné un dossier, cliquez sur l'option **Empty game** dans la liste. ![](/gdevelop5/empty-game-button.png) - -### Créer une nouvelle scène - -La première chose que nous avons à faire est créer une nouvelle scène. Cliquez sur le bouton dans le gestionnaire de projet : ![](/gdevelop5/tutorials/add-scene-button.png) - -Ensuite, cliquez sur la nouvelle scène **NewScene** que nous venons de créer, afin d'ouvrir l'éditeur de scène. - -### Obtenir les images et ressources - -Avant de continuer, nous avons besoin de quelques images pour notre jeu. Vous pouvez les télécharger ici : [Télécharger les images](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip) - -Une fois que vous avez téléchargé ce fichier, extrayez son contenu dans le dossier dans lequel vous avez créé le projet. - -### Créer la tourelle du joueur - -Le joueur contrôlera une tourelle pour tirer sur les ennemis. Dans l'éditeur d'objets, cliquez sur le bouton pour ajouter un nouvel objet. ![](/gdevelop5/tutorials/add_new_object.png) Une fenêtre demande le type d'objet à créer : ![](/gdevelop5/objects/object-types.png) - -Nous avons besoin d'un objet **Sprite**, donc choisissez ce type dans la liste. Ensuite, le panneau de propriétés de l'objet devrait apparaitre par défaut. Si ce n'est pas le cas, faites un clic droit sur le **NewObject** dans l'éditeur d'objets et sélectionnez **Edit object** dans le menu. - -Ensuite, nous devons ajouter une animation à l'objet, donc cliquez sur le bouton correspondant dans la fenêtre de propriétés. ![](/gdevelop5/tutorials/add-animation.png) - -À présent, vous devriez voir les propriétés d'animation de l'objet. ![](/gdevelop5/objects/animation-properties.png) - -Ensuite, nous devons ajouter l'image de la tourelle comme animation. Cliquez sur le gros bouton « plus » et sélectionnez l'image aaguntopdown.png dans le dossier du projet. L'image devrait dès lors être affichée dans la fenêtre. ![](/gdevelop5/tutorials/turret-animation-window.png) - -Terminez en cliquant sur **Apply** pour enregistrer. - -Ensuite, renommez l'objet si vous ne l'avez pas encore fait. Faites un clic droit sur l'objet tourelle dans l'éditeur d'objets, sélectionnez **Rename** dans le menu et entrez le nom `turret`, afin que nous puissions par la suite désigner l'objet par ce nom. ![](/gdevelop5/tutorials/rename-turret.png) - -### Ajouter la tourelle à la scène - -Pour ajouter la tourelle à la scène, sélectionnez-la dans l'éditeur d'objets puis cliquez sur l'éditeur de scène. Cela devrait créer une tourelle dans la scène et nous permettre de la sélectionner, la déplacer et la pivoter. ![](/gdevelop5/tutorials/turret-selected-inscene.png) - -### Premiers évènements - -Nous allons créer les évènements qui vont servir à animer l'ensemble du jeu. D'abord, la tourelle doit se tourner vers le pointeur de la souris. - -Allez dans l'éditeur d'évènements en cliquant sur l'onglet des évènements : ![](/gdevelop5/tutorials/scene-events-tab.png) - -Ensuite, en haut, cliquez sur le bouton pour créer un nouvel évènement. ![](/gdevelop5/add-event-button.png) - -L'évènement est créé, avec une liste vide de conditions (sur la gauche) et une liste vide d'actions (sur la droite). Placez votre souris sur la liste d'actions et cliquez sur **Add action** : ![](/gdevelop5/tutorials/add-action.png) - -La première action tournera la tourelle vers la souris : dans la fenêtre suivante, choisissez l'action **Common action for all objects \> Angle \> Rotate toward position**. ![](/gdevelop5/tutorials/rotate-toward-position-action.png) La partie droite de la fenêtre montre alors le nom de l'action ainsi que les paramètres. Définissez la valeur du premier paramètre en cliquant sur le paramètre et en sélectionnant la tourelle parmi les objets disponibles. ![](/gdevelop5/tutorials/select-turret-object-parameter.png) Pour les paramètres suivants, entrez `MouseX()` et `MouseY()` afin que l'objet se tourne vers la position de la souris. Lorsque le jeu sera lancé, ces deux expressions obtiendront les abscisse et ordonnée de la souris. Pour la vitesse angulaire, 0 signifie rotation instantanée et c'est ce que nous voulons ici. Si vous préférez que la tourelle se déplace lentement vers la position de la souris, vous pouvez entrer une petite valeur telle que 100. - -Maintenant, les paramètres de cet évènement devraient ressembler à cela : ![](/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png) - -Nous avons utilisé comme valeurs des expressions pour obtenir l'abscisse et l'ordonnée de la souris. Vous pouvez trouver d'autres formules dans l'éditeur d'expressions en cliquant sur l'icône bleue à côté des champs de valeur : - -![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -En cliquant sur l'icône, vous pouvez fouiller toutes les expressions classées par catégories. - -![](/gdevelop5/tutorials/platform-game/expression-editor.png) - -Pour enregistrer les changements, cliquez sur OK dans le coin en bas à droite de la page. - -Nous pouvons lancer un aperçu en cliquant sur le bouton prévu à cet effet en haut. ![](/gdevelop5/preview-button.png) - -Si nous le faisons correctement, notre tourelle devrait se tourner vers la position de la souris. ![](/gdevelop5/tutorials/turret-rotate-toward-mouse.png) - -### Tirer des missiles avec la tourelle - -Le joueur doit pouvoir tirer des missiles sur les ennemis. Nous avons d'abord besoin d'un objet missile : dans la liste d'objets sur la droite, faites un clic droit sur l'objet tourelle et choisissez **Add a new object** ou bien cliquez sur le bouton pour ajouter un nouvel objet. ![](/gdevelop5/tutorials/turret-add-new-object.png) Choisissez **Sprite**, puis ajoutez une animation et choisissez l'image bullet.png, puis nommez l'objet **missile**. Tout comme nous avons fait précédemment pour la tourelle. - -Ensuite, nous voudrions créer les missiles lorsque le bouton gauche de la souris est enfoncé. Allez dans l'onglet des évènements, et ajoutez un nouvel évènement de la même façon que nous l'avons fait pour la tourelle. La première action sera une action **Create a new object**, disponible dans la catégorie **Common actions for all objects \> Objects**. ![](/gdevelop5/tutorials/create-object-action.png) Sur le côté droit, le premier paramètre doit être le missile, puisque nous voulons créer un objet missible. Les autres paramètres sont la position de la tourelle : entrez `turret.X()` et `turret.Y()` comme valeurs des 2^(e) et 3^(e) paramètres. ![](/gdevelop5/tutorials/create-object-action-parameters.png) - -Il n'est pas nécessaire de préciser un calque (**Layer**) puisque nous n'en avons qu'un seul dans notre jeu. Cliquez sur OK pour disposer l'action. - -Ajoutez ensuite une autre action après cette première action. Ne créez pas un autre évènement, cliquez seulement sur **Add action** sous la première action ! ![](/gdevelop5/tutorials/add-second-action.png) Cette fois, choisissez l'action appelée **Common action for all objects \> Movement \> Add a force (angle)**. ![](/gdevelop5/tutorials/add-force-angle-action.png) GDevelop contient un système de forces intégré qui permet de déplacer les objets facilement. Cette action sera utilisée pour déplacer le missile vers la souris lorsqu'il est lancé. Comme premier paramètre, entrez `bullet` afin que GDevelop déplace le missile tout juste créé dans l'action précédente. Comme angle, nous allons utiliser la direction de la tourelle : entrez `turret.Direction()` comme valeur du 2^(e) paramètre. Pour le 3^(e) paramètre, entrez 400 afin que le missile se déplace avec une vitesse de 400 par seconde. Enfin, entrez 1 comme valeur du dernier paramètre, afin que la force soit appliquée au missile de façon constante et que le missile continue de se déplacer après son lancement. ![](/gdevelop5/tutorials/add-force-angle-parameters.png) - -Nos deux actions doivent être lancées uniquement lorsque le joueur tire (en enfonçant le bouton gauche de la souris). Pour ce faire, nous devons ajouter une condition à l'évènement : cliquez sur **Add condition** dans l'évènement. ![](/gdevelop5/tutorials/add-condition.png) - -Choisissez la condition **Mouse and touch \> Mouse button pressed or touch held**. ![](/gdevelop5/tutorials/mouse-button-pressed-condition.png) Sur le côté droit, cliquez sur **Button to test parameter** et choisissez **Left** dans la liste. ![](/gdevelop5/tutorials/mouse-button-pressed-parameter.png) Enfin, fermez la fenêtre en cliquant sur le bouton OK. La condition est alors ajoutée à l'évènement. - -Si vous prévisualisez le jeu maintenant, vous verrez qu'il y a deux problèmes : les missiles sont tirés trop rapidement, et ils apparaissent à l'origine de la tourelle, ce qui n'est pas très réaliste. - -Afin de résoudre le premier problème nous allons utiliser un timer. Ajoutez une seconde condition au dernier évènement que nous avons créé. Choisissez la condition Timers and time \> Value of a timer ![](/gdevelop5/tutorials/timer-value-condition.png) Dans la partie droite, entrez 0.25 comme premier paramètre qui représente le temps écoulé en secondes, et "firerate" comme second paramètre, qui est le nom du timer que nous allons utiliser (n'oubliez pas les guillemets doubles autour du nom du timer !). ![](/gdevelop5/tutorials/timer-value-condition-parameters.png) - -Nous n'avons cependant pas encore fini, car comme nous voulons tirer des balles toutes les 0.25 secondes, nous avons besoin de remettre à zéro le timer à 0 après avoir atteint 0.25. Nous allons donc ajouter une action Timers and time \> Reset a timer juste en dessous de l'action de mouvement dans le même évènement. ![](/gdevelop5/tutorials/reset-timer-action.png) Entrez le paramètre "firerate", qui est le nom du timer (encore une fois, attention au guillements !). ![](/gdevelop5/tutorials/reset-timer-action-parameter.png) Cette paire de condition et action garantira que les actions utilisées pour tirer la balle ne soient répétées que lorsqu'au moins 0.25 secondes se sont écoulées après la dernière création de balle : ![](/gdevelop5/tutorials/shoot-bullet-event1.png) - -Nous devons maintenant nous assurer que les balles sont bien tirées depuis le canon de la tourelle. - -Pour ce faire, nous allons ajouter un point personnalisé à notre objet tourelle et créer les balles à partir de ce point. - -Pour cela, ouvrons les propriétés de l'objet en cliquant avec le bouton droit de la souris sur l'objet tourelle sur le côté droit et sélectionnons "Edit Object" dans la liste. Cela fait apparaître la fenêtre dans laquelle nous pouvons ajouter des animations à nos objets et nous devrions voir un bouton appelé EDIT POINTS. ![](/gdevelop5/tutorials/edit-point-button.png) - -Après avoir cliqué sur le bouton, nous pouvons voir que notre objet a actuellement 2 points par défaut, le point Origin et le point Center. ![](/gdevelop5/tutorials/default-points.png) Nous ne pouvons pas renommer ces points, mais nous pouvons modifier leur position par défaut si nécessaire. Mais notre but est d'ajouter un point de plus à l'objet. - -Cliquez sur le bouton d'ajout (symbole plus) pour ajouter un point personnalisé à notre objet tourelle. Nous voyons immédiatement le nouveau point ajouté à la liste avec le nom Point et la position 0,0. Renommons ce point en Canon et fixons la position X à 110 et la position Y à 35 ![](/gdevelop5/tutorials/custom-point-name-position.png) - -Maintenant, dans l'aperçu en haut, nous devrions voir que notre point personnalisé est situé à la fin de notre canon ![](/gdevelop5/tutorials/custom-point-preview.png) Nous pouvons maintenant fermer la fenêtre et appliquer les modifications que nous avons apportées. - -La seule chose qu'il reste à faire est de dire à GDevelop de tirer les balles depuis la pointe Canon de la tourelle. Donc dans notre action de création de balles, nous devons changer les expressions turret.X() et turret.Y(), en turret.PointX(Canon) et turret.PointY(Canon). Nous pouvons les modifier en cliquant sur les expressions dans l'éditeur. ![](/gdevelop5/tutorials/replace-expression-in-editor.png) N'oubliez pas le C majuscule de Canon car les noms des points sont sensibles à la casse. - -Si nous lançons l'aperçu maintenant, nos balles devraient être tirées depuis le canon de la tourelle mais vous remarquerez peut-être que la balle est parfois un peu décalée. Cela est dû au fait que le point d'origine de la balle se trouve dans le coin supérieur gauche. De la même façon que nous l'avons fait avec la pointe du canon de la tourelle, changez la position du point Origin de la balle pour qu'il soit au milieu. ![](/gdevelop5/tutorials/bullet_origin_point.png) - -### Création d'ennemis attaquant la tourelle - -D'abord, nous devons créer les objets utilisés pour les ennemis : ajoutez un objet à la liste d'objets ( Clic droit sur un objet existant \> Add an object. Choisissez un objet Sprite comme précédemment. ). Nommez le enemy. - -Editez l'objet (clic droit dans la liste et sélectionner Edit object from the list) puis ajouter une animation à l'objet et deux images : tank2fr1.png et tank2fr2.png. ![](/gdevelop5/tutorials/enemy-animation.png) Ensuite, modifiez le temps entre les images à 0,05 et changez l'animation en Loop pour répéter l'animation. ![](/gdevelop5/tutorials/enemy-animation-speed.png) - -Cliquez sur Apply lorsque vous avez terminé. - -### Stop ! Gagnez du temps ! - -Avant d'aller plus loin, pensez à sauvegarder fréquemment : cliquez sur File\>Save pour sauvegarder votre projet. ![](/gdevelop5/tutorials/save-project.png) - -## IA ennemie - -Revenons au jeu. Nous voulons que les ennemis se dirigent vers la tourelle : Allez dans l'éditeur d'événements et ajoutez un nouvel événement. Ce que nous voulons, c'est créer un ennemi à chaque seconde : ajoutons une condition Timers and time \> Value of a timer. Entrez 1 dans le premier paramètre et "EnemyCreation" pour le nom du timer. N'oubliez pas les guillemets lorsque vous entrez le nom du timer. - -Ajoutons ensuite l'action de créer un objet ennemi : Ajouter une action Common action for all objects \> Objects \> Create an object. Sélectionnez enemy dans le premier paramètre. Pour le deuxième paramètre, la position X du nouvel objet à créer, entrez l'expression Random(800) : ceci renverra un nombre aléatoire entre 0 et 800, de sorte que chaque ennemi que nous créerons aura une position différente lors de sa création. Pour la position Y, entrez -50. Cela créera l'ennemi en dehors de l'écran, de sorte que le joueur n'aura pas l'impression qu'un char ennemi vient d'apparaître de nulle part. - -Enfin, ajoutons l'action pour réinitialiser le minuteur ( Timers and time \> Reset a timer avec "EnemyCreation" comme parameter ). Encore une fois, n'oubliez pas les guillemets lorsque vous entrez le nom du timer. À ce stade, notre événement devrait ressembler à ceci : ![](/gdevelop5/tutorials/create-enemy-event.png) - -Si nous lançons un aperçu maintenant, nous ne remarquerons probablement rien car l'ennemi est créé en dehors de l'écran. Déplaçons les ennemis vers le joueur. Ajoutez un autre événement sans aucune condition et choisissez l'action Common action for all objects \> Movement \> Add a force to move towards an object. ![](/gdevelop5/tutorials/move-object-toward-other-event.png) Sur le côté droit, pour le premier paramètre, sélectionnez enemy, et sélectionnez turret pour le second paramètre. Entrez 150 pixels par seconde pour la vitesse, et l'amortissement (damping) est de 0, car la force sera appliquée en continu. ![](/gdevelop5/tutorials/move-object-toward-another-parameters.png) - -Maintenant, si nous lançons un aperçu, nous devrions voir que nos ennemis se déplacent vers la tourelle, mais vous remarquerez peut-être qu'ils ne se tournent pas réellement vers la tourelle, alors faisons quelque chose à ce sujet. Ajoutons une deuxième action après le mouvement, qui est Common action for all objects \> Angle \> Rotate toward position et pour le premier paramètre sur la droite, sélectionnons l'ennemi pendant que nous faisons tourner l'ennemi et pour les positions X et Y, nous allons utiliser une expression pour obtenir le point central de la tourelle et faire tourner les ennemis vers ce point et la vitesse angulaire est de 0, donc elle va tourner immédiatement. ![](/gdevelop5/tutorials/rotate-object-toward-position.png) À ce stade, notre événement ennemi devrait ressembler à ceci : ![](/gdevelop5/tutorials/create-rotate-move-enemies-event.png) - -Si nous lançons l'aperçu maintenant, nos ennemis devraient se déplacer et tourner vers la tourelle. ![](/gdevelop5/tutorials/turret-screenshot-enemies-moving.png) - -### Ajout d'explosions - -Il est temps de détruire les tanks. La première chose que nous voulons faire est de créer une explosion à la place des tanks lorsqu'ils entrent en collision avec la balle. Ajoutons donc un nouvel objet sprite, appelons-le explosion et ajoutons toutes les images à une animation commençant par Explosion_. ![](/gdevelop5/tutorials/select-all-explosion-images.png) - -Après avoir ajouté toutes les images à l'animation, réglez le temps entre les images à 0,01 seconde. ![](/gdevelop5/tutorials/explosion-animation-speed.png) - -Enregistrez-le en cliquant sur Apply. - -Ensuite, nous voulons créer l'explosion lorsque la balle est en collision avec l'ennemi. Ajoutons un nouvel événement vide et ajoutons la condition Common conditions for all objects \> Collision \> Collision ![](/gdevelop5/tutorials/collision-check-event.png) Et sur la droite pour le premier paramètre sélectionner la balle et le second paramètre sélectionner enemy ![](/gdevelop5/tutorials/collision-between-object-condition-parameters.png) - -Lorsque c'est fait, ajoutons une action pour créer l'objet d'explosion comme nous avons créé les balles et les ennemis auparavant, mais pour la position X et Y, utilisons l'expression enemy.X() et enemy.Y() qui va obtenir la position X et Y de l'objet ennemi qui est en collision avec la balle. ![](/gdevelop5/tutorials/create-explosion-event-parameters.png) - -Enfin, ajoutez l'action après avoir créé l'explosion Common actions for all objects \> Object \> Delete an object et dans la partie droite pour le paramètre sélectionner l'objet enemy puisque nous voulons supprimer l'ennemi. Ajoutez à nouveau la même action, pour supprimer également la balle juste après la suppression de l'ennemi. À ce stade, notre événement devrait ressembler à ceci ![](/gdevelop5/tutorials/enemy-moving-rotating-exploding.png) - -Si nous lançons un aperçu maintenant, nous devrions remarquer quelques problèmes. Nos objets explosifs ne sont pas créés exactement dans la position de l'ennemi et une fois qu'il a créé l'objet explosif, il reste dans la scène. Pour résoudre le second problème, il faut supprimer l'objet d'explosion une fois l'animation terminée. Ajoutez un nouvel événement vide et la condition Sprite \> Animations and Images \> Animation finished ![](/gdevelop5/tutorials/animation-finished-event.png) Pour le paramètre de droite, sélectionnez l'objet explosion car nous voulons faire quelque chose si l'animation de l'objet d'explosion est terminée. ![](/gdevelop5/tutorials/check-animation-finished-event-parameter.png) Et ce que nous voulons faire, c'est supprimer l'objet explosion, alors ajoutons ensuite l'action, supprimons l'objet explosion. - -Pour résoudre le premier problème, nous devons comprendre quelle est sa cause. Lorsque nous créons l'objet explosion en utilisant les expressions enemy.X() et enemy.Y(), nous créons les objets au point d'origine de l'objet ennemi, qui est le coin supérieur gauche de l'ennemi, et nous créons également les explosions à partir de leur point d'origine, qui est le coin supérieur gauche de l'objet explosion. - -Pour résoudre le problème, nous devons changer la position du point d'origine de l'explosion pour qu'il se trouve au milieu de l'objet. Pour modifier l'objet explosion, il suffit de cliquer avec le bouton droit de la souris sur l'objet de l'explosion et de sélectionner "Modifier l'objet" dans la liste. Dans la fenêtre suivante, sélectionnez EDIT POINTS. Ensuite, nous voulons changer la position X et Y du point d'origine à 120 qui est juste au milieu de l'image ![](/gdevelop5/tutorials/change-origin-point-position.png) - -Ensuite, ce que nous voulons faire, au lieu de créer l'objet explosion au point d'origine de l'ennemi, nous voulons créer l'objet au point central. Changeons donc l'expression dans l'action de création d'explosion de enemy.X() en enemy.PointX(Centre) et formons enemy.Y() en enemy.PointY(Centre) ![](/gdevelop5/tutorials/create-explosion-new-expression.png) - -Si nous lançons un aperçu maintenant, nos ennemis devraient exploser et cela devrait également paraître correct. ![](/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png) - -### Ajout de nouvelles explosions et d'un Game Over - -Jusqu'à présent, le joueur ne pouvait pas mourir. Nous voulons que la tourelle du joueur soit détruite lorsqu'un char ennemi la frappe. D'abord, ajoutez un nouvel événement, et faites comme pour l'événement utilisé pour détruire les ennemis : ajoutez un test de condition pour une collision entre un char et la tourelle. Ensuite, créez une explosion à la position de la tourelle. Enfin, ajoutez une action pour détruire la tourelle : ![](/gdevelop5/tutorials/delete-turret-on-collision-event.png) - -Il serait également intéressant d'afficher un texte "Game Over" lorsque la tourelle est détruite : Ajouter un objet à la liste des objets. Cette fois, choisissez un objet Text et nommez-le GameOver. ![](/gdevelop5/tutorials/select-text-object-from-list.png) - -Modifiez l'objet en cliquant avec le bouton droit de la souris sur l'objet et sélectionnez Edit object dans la liste. Changeons le texte en Game Over, la couleur du texte en rouge et la taille du texte en 40. ![](/gdevelop5/tutorials/edit-text-object.png) Ensuite, nous pouvons définir une police personnalisée en entrant simplement le chemin de la police. Comme dans ce cas notre police se trouve dans le dossier du projet, il nous suffit d'entrer le nom du fichier de police : ![](/gdevelop5/tutorials/custom-text-font.png) - -Enfin, ajoutons l'objet texte à notre scène. - -Ce que nous voulons faire ensuite, c'est cacher l'objet texte et l'afficher s'il n'y a pas de tourelle dans la scène, ce qui signifie que la tourelle est détruite. Ajoutons un nouvel événement vide et ajoutons la condition Scene \> At the beginning of the scene ![](/gdevelop5/tutorials/at-the-binning-of-the-scene-condition.png) - -Cette condition n'a pas de paramètres car la seule chose qu'elle fait est d'exécuter l'action une seule fois au début de la scène. Ensuite, ajoutez l'action au même événement Common Actions for all objects \> Visibility \> Hide ![](/gdevelop5/tutorials/hide-object-event.png) Pour le paramètre, sélectionnez l'objet GameOver car nous voulons cacher cet objet ![](/gdevelop5/tutorials/hide-object-event-parameter.png) - -Maintenant, ce que nous voulons faire, c'est montrer l'objet texte s'il n'y a pas de tourelle dans la scène Ajouter un nouvel événement vide et ajouter la condition Common conditions for all objects \> Objects \> Objects count ![](/gdevelop5/tutorials/objects-count-condition.png) - -Pour le premier paramètre sur le côté droit, sélectionnez l'objet tourelle, pour le signe du test, sélectionnez le signe égal et pour la valeur du test, entrez 0 car nous voulons tester si le nombre de tourelles dans la scène est 0. ![](/gdevelop5/tutorials/object-count-condition-parameters.png) - -Et ce que nous voulons faire, c'est afficher le texte GameOver s'il n'y a pas de tourelle dans la scène, donc ajouter l'action Common action for all objects \> Visibility \> Show et pour paramètre nous voulons sélectionner l'objet GameOver. ![](/gdevelop5/tutorials/destroy-turret-event.png) - -Enfin, un effet intéressant est d'arrêter le jeu et d'afficher Game Over avec un peu de retard. Ajoutez une deuxième condition imers and time \> Value of a timer pour le paramètre de temps entrez 0.1 et pour le paramètre de nom entrez "GameOver". Ensuite, ajoutez une deuxième action : Timers and time \> Change time scale et entrer 0 comme paramètre pour arrêter le jeu et afficher le texte Game Over après 0,1 seconde. - -Voici à quoi devraient ressembler tous les événements à ce stade. ![](/gdevelop5/tutorials/all-events.png) Vous pouvez prévisualiser le jeu et vous devriez voir qu'une fois la tourelle détruite, avec un peu de retard, le texte Game Over s'affiche et le jeu est arrêté. ![](/gdevelop5/tutorials/gameover-screenshot.png) - -## Optimiser le jeu - -Lorsqu'une balle sort de l'écran, nous n'avons plus besoin de cette balle mais nous lui appliquons toujours un mouvement et nous vérifions la collision entre la balle et le char. Chaque ordinateur dispose de ressources limitées, telles que la mémoire et la puissance de traitement, et nous gaspillons ces précieuses ressources dont nous avons besoin pour faire face, sinon notre jeu peut ralentir, s'arrêter et devenir injouable lorsqu'il atteint la limite de l'appareil sur lequel nous jouons. Vous voulez que votre jeu soit jouable sur le plus grand nombre d'appareils possible, vous devez donc toujours optimiser votre jeu et une façon de le faire est de supprimer les objets qui ne sont plus nécessaires dans notre jeu et de limiter ainsi la quantité de mémoire et la puissance de traitement utilisée par le jeu. - -Nous pourrions ajouter un événement pour détruire les balles lorsqu'elles sont trop éloignées de la tourelle, c'est assez facile. Mais nous pouvons aussi utiliser un comportement. Un comportement dans GDevelop est l'ajout d'un certain comportement et d'une certaine fonctionnalité à un objet, dans ce cas nous allons ajouter le comportement "Détruire en dehors de l'écran" aux balles pour qu'elles soient détruites en dehors de l'écran. - -Faites un clic droit sur l'objet dans la liste d'objets et choisissez Modifier l'objet dans la liste. Dans la fenêtre suivante en haut, cliquez sur l'onglet Behaviours, cet onglet va afficher tous les comportements que nous avons ajoutés à notre objet. Il est maintenant vide. - -Cliquez sur le bouton " Add behavior " (ajouter un comportement) ![](/gdevelop5/add-behavior-button.png) - -Ensuite, sélectionnez dans la liste le comportement Destroy outside screen ![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -Ensuite, vous allez voir que le comportement est ajouté à la liste. Normalement, si le comportement a des paramètres, il est également affiché ici pour que vous puissiez le modifier, mais ce comportement n'a pas de paramètres car la seule chose qu'il fait est de détruire l'objet lorsqu'il est en dehors de l'écran. Cliquez sur Appliquer et nous avons terminé. - -Si vous lancez l'aperçu maintenant, vous ne remarquerez probablement aucune différence car le jeu est très simple et vous utilisez très probablement un appareil avec au moins 2 Go de RAM et un processeur double cœur. Il y a donc beaucoup de ressources pour notre jeu simple, mais au cas où nous créerions des centaines et des milliers de balles que vous êtes libre d'essayer, vous remarquerez peut-être un petit ralentissement au bout d'un moment sans les détruire. - -### Add a background - -One last thing to make the game good looking is to add a background. - -Add a Sprite object, name it background and add the background.jpg image to the object. Next, you can add the object to the scene as usual and make sure it fills the entire scene. To make it easier, you can enable the grid using the button on the top and it should help with positioning the object. ![](/gdevelop5/toggle-grid-button.png) But you may notice the background object cover all the other objects, to solve this problem we need to change the Z-order of the object. While the background object is selected, on the left you should notice the object properties. In case you have closed this tab, you can re-open it using the button on the top. ![](/gdevelop5/object-properties-button.png) We can change all kind of properties here such as the position, angle and size of the object but what we are interested in is the Z-order. ![](/gdevelop5/objects/object-zorder-properties.png) Change the value of the Z-order to a low number, in this case we need a negative number something like - 1. The reason for the negative value is that when we are creating the bullets, enemies and explosions we are creating them at Z-order 0 by default and so we need to position the background below 0 otherwise we won't see anything but the turret in our game. An other way to fix it is to tell GDevelop to position the tanks and explosions and bullets on a higher Z-order so we can position the background at 0 but it is something that you the developer need to decide for your self how you want to do it. Every problem can have number of different solutions. - -And we are done. The game is complete and ready to be shared. - -### Add comments - -So, our game is done and playable but what if you want to share the source with someone else? Let say you are working in a team and someone else would like to make modifications to the game. How that person know where to look for the events of enemies, bullets, the turret? Of course it may sound silly to you as most of the events in GDevelop are self explaining and our game is simple enough to see it through but imagine the situation you have a game made out of hundreds and thousands of events. This is where comments come in handy as we can leave reminders in our game for others and also for our self. Trust me, even though you are the one who made it, in a big complex game, even you won't remember where to find different things especially months later. So always use comments regardless how small or big your project is. - -To add comments, you can simply click the add comment button on the top. ![](/gdevelop5/add-comment-button.png) After you should see a yellow box in the events editor, by clicking in the box you can start writing a comment ![](/gdevelop5/tutorials/comment.png) - -You can change the position of each event and comment by moving the mouse over the blue edge on the left and drag it up and down. Once you done it, you should have something like this: ![](/gdevelop5/tutorials/all-events-with-comments.png) - -### Let's discover GDevelop by yourself - -You can browse the other [](/gdevelop5/tutorials) and read the [](/gdevelop5/getting_started) page. - -There is also lots of examples and templates bundled with GDevelop and you can find more by visiting: [gametemplates.itch.io](https://gametemplates.itch.io/gdevelop-examples) - -And you can also ask questions on the [official forum](http://forum.compilgames.net/) diff --git a/docs/fr/index.md b/docs/fr/index.md deleted file mode 100644 index d85879c158..0000000000 --- a/docs/fr/index.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# Wiki de GDevelop - -GDevelop est un logiciel de création de jeux open source, multiplateforme conçu pour être utilisé par tout le monde. Aucune programmation n'est requise, tout le processus de création se faisant à l'aide de l'éditeur. -Si vous n'avez pas encore installé GDevelop, téléchargez le depuis [le site officiel](http://www.compilgames.net/gd.php). - -Si vous avez besoin d'aide pour débuter, consultez la [page de mise en route](/fr/gdevelop/documentation/manual/edit_getstart). - -## Aide en ligne - -L'aide est disponible intégralement en ligne sur [cette page](/fr/gdevelop/documentation). - -## Tutoriels - -Accédez aux [tutoriels](/fr/gdevelop/tutorials) et [articles](/fr/gdevelop/articles) pour GDevelop. diff --git a/docs/gb.png b/docs/gb.png deleted file mode 100644 index db084b410d..0000000000 Binary files a/docs/gb.png and /dev/null differ diff --git a/docs/gdevelop5/.pages b/docs/gdevelop5/.pages index f455772582..9615265977 100644 --- a/docs/gdevelop5/.pages +++ b/docs/gdevelop5/.pages @@ -6,11 +6,11 @@ nav: - objects - behaviors - events - - all-features - - extensions - - Tutorials and Guides: tutorials + - Core features: all-features + - Extended features: extensions - Publishing games: publishing - community - collaboration - monetization - GDevelop for Education: education + - Tutorials and Guides: tutorials diff --git a/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md b/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md index d1cc7acf9a..513162a26f 100644 --- a/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md +++ b/docs/gdevelop5/GDevelop-Solutions-Provider-Program.md @@ -11,11 +11,11 @@ The GDevelop Solutions Provider Program is an initiative designed to foster coll The program functions on a dual basis: #### For Professionals: -GDevelop users operating as freelancers, consultants, agencies or companies can apply to become a GDevelop Solutions Provider. To be eligible, candidates must: +GDevelop users operating as freelancers, consultants, agencies, or companies can apply to become a GDevelop Solutions Provider. To be eligible, candidates must: -- Have legal age to operate as a professional in their country -- Demonstrate active registration and/or tax compliance as a professional entity -- Express willingness to engage in projects. +- Be of legal age to operate as a professional in their country +- Demonstrate active registration and tax compliance as a professional entity +- Express a willingness to engage in projects. Accepted partners gain access to exclusive project opportunities from clients seeking GDevelop expertise. Partners also benefit from increased industry recognition, networking prospects within the GDevelop ecosystem, and the ability to connect with potential clients. @@ -50,11 +50,11 @@ The validation process is as follows: 1. The candidate fills the online form with their professional profile 2. The GDevelop team will look at the application and contact the candidate if more information is needed -3. A possible video call between a GDevelop member and the candidate might be required to better seize the profile's specialization. +3. A video call with a GDevelop team member might be required to better understand the candidate's specialization. 4. If the profile is validated, the professional will join GDevelop's channels where they'll be able to see the projects hiring. -**Once a GDevelop Professional establishes contact with a Client, the GDevelop team leaves the process. From that moment the Professional and the Client remain responsible for the Project's management, delivery and billing process. -GDevelop **does not** take any cut nor percentage for head hunting during 2023 and 2024.* +**Once a GDevelop Professional establishes contact with a Client, the GDevelop team steps out of the process. From that moment on, the Professional and the Client remain responsible for the project's management, delivery, and billing. +GDevelop **does not** take any cut or percentage for head hunting during 2023 and 2024.* ### Legal requirements To join the GDevelop Solutions Provider Program as a professional, candidates must meet the following legal requisites: @@ -73,16 +73,16 @@ To contact a GDevelop specialist send an email to [business@gdevelop.io](mailto: - Budget: Clearly specify your project budget or budget range to help the specialist understand your expectations. - Timeline: Communicate your project's expected timeline, including key milestones or deadlines. - Contact Information: Include your contact details, such as your name, email address, or phone number, to facilitate effective communication. -- Preferred Language: Specify if you have a prefered language +- Preferred Language: Specify if you have a preferred language -**Plese consider sending your project at least **2 weeks** before the desired starting date so the professionals have the time to see it.* +**Please consider sending your project at least **2 weeks** before the desired start date so professionals have time to review it.* Once the project information is complete, the GDevelop team will publish the project for the Professionals to see. -Based on the project's specificities, some professional profiles might be suggested by the GDevelop team as the project brief gets published. -The client is in **no obligation** to choose from the recommended profiles. +Based on the project's specificities, some professional profiles might be suggested by the GDevelop team as the project brief is published. +The client is under **no obligation** to choose from the recommended profiles. -**Once a Project Owner stablished contact with a GDevelop Professional, the GDevelop team leaves the process. From that moment the Professional and the Project Owner remain responsible for the Project's management, delivery and billing process. -GDevelop **does not** take any cut nor percentage for head hunting during 2023 and 2024.* +**Once a Project Owner has established contact with a GDevelop Professional, the GDevelop team steps out of the process. From that moment on, the Professional and the Project Owner remain responsible for the project's management, delivery, and billing. +GDevelop **does not** take any cut or percentage for head hunting during 2023 and 2024.* [Contact a GDevelop Specialist](mailto:business@gdevelop.io){ .md-button .md-button--primary } @@ -92,15 +92,15 @@ GDevelop **does not** take any cut nor percentage for head hunting during 2023 a **1. I work in an agency that uses GDevelop. Can I register the agency where I work?** -Yes, you can register your agency with their permision. +Yes, you can register your agency with their permission. **2. Can GDevelop help me with invoices or contracts for my clients?** -No, GDevelop will not assist with project management ressources once the contact between the Client and the Professional is stablished. +No, GDevelop will not assist with project management resources once contact between the Client and the Professional is established. **3. Can I still work as a professional if I don't have the legal requirements?** -You can not be listed as a GDevelop Professional on GDevelop's official Solutions Providers if you do not have the minimim legal requirements. +You cannot be listed as a GDevelop Professional on GDevelop's official Solutions Providers if you do not meet the minimum legal requirements. However, you are always welcome to join [the GDevelop Advocate's program](https://gdevelop.io/page/community-advocate). @@ -108,7 +108,7 @@ However, you are always welcome to join [the GDevelop Advocate's program](https: **1. Are contracts and invoices between the two parts managed by GDevelop?** -No, GDevelop will not assist with project management ressources once the contact between the Client and the Professional is stablished. +No, GDevelop will not assist with project management resources once contact between the Client and the Professional is established. **2. What kind of professionals can I expect to find on GDevelop's Solutions Provider Program?** diff --git a/docs/gdevelop5/about_translations.md b/docs/gdevelop5/about_translations.md index ae48dde14f..fc47621945 100644 --- a/docs/gdevelop5/about_translations.md +++ b/docs/gdevelop5/about_translations.md @@ -1,8 +1,10 @@ --- title: About translations --- + # About translations -Translations are written by volunteers. If you're a native speaker or fluent in another language, you are welcome to create an account on Github then submit a Pull Request on this repository to edit or create the pages related to your language. You will find out the [other languages in this folder](https://github.com/GDevelopApp/GDevelop-documentation/tree/main/docs). +Keeping translations up to date with the documentation is challenging, so translated files are not committed to the repository. +Instead, we rely on Google Translate to provide up-to-date translations of the documentation. -In case of doubts or questions, [open an issue here](https://github.com/GDevelopApp/GDevelop-documentation/issues), a staff member will get back to you. \ No newline at end of file +If you have any questions, [open an issue here](https://github.com/GDevelopApp/GDevelop-documentation/issues) and a staff member will get back to you. diff --git a/docs/gdevelop5/all-features/.pages b/docs/gdevelop5/all-features/.pages new file mode 100644 index 0000000000..d462fbda98 --- /dev/null +++ b/docs/gdevelop5/all-features/.pages @@ -0,0 +1,90 @@ +nav: + - index.md + - Ads: + - AdMob: admob + - Advanced: + - Asynchronous functions: async + - Debugger Tools: debugger-tools + - Event functions: advanced + - Events and control flow: common-instructions + - External layouts: external-layouts + - File system: filesystem + - Linked objects: linked-objects + - Screenshot: screenshot + - Spine (experimental): spine-object + - Storage: storage + - System information: system-info + - Tile map: tilemap + - Audio: + - Sounds and music: audio + - Spatial sound: spatial-sound + - Camera: + - Layers and cameras: camera + - Game mechanic: + - Destroy Outside Screen Behavior: destroy-outside-behavior + - Dialogue Tree: dialogue-tree + - Inventories: inventory + - Save State (experimental): save-state + - General: + - 3D: scene3d + - Conversion: common-conversions + - Flippable objects: flippable-capability + - Mathematical tools: mathematical-tools + - Objects: object + - Objects containing a text: text-container-capability + - Objects with animations: animatable-capability + - Objects with effects: effect-capability + - Objects with opacity: opacity-capability + - Panel Sprite (9-patch) Object: panel-sprite-object + - Resizable objects: resizable-capability + - Scalable objects: scalable-capability + - Scene: scene + - Shape painter: primitive-drawing + - Sprite: sprite + - Text manipulation: string-instructions + - Tiled Sprite Object: tiled-sprite-object + - Timers and time: time + - Variables: variables + - Input: + - Device sensors: device-sensors + - Keyboard: keyboard + - Mouse and touch: mouse-touch + - Movement: + - 2D Physics Engine: physics2 + - 3D physics engine: physics3d + - Pathfinding behavior: pathfinding-behavior + - Physics Engine (deprecated): physics-behavior + - Platform behavior: platform-behavior + - Top-down movement: top-down-movement-behavior + - Network: + - Firebase: firebase + - Network: network + - P2P: p2p + - Players: + - Leaderboards: leaderboards + - Multiplayer: multiplayer + - Player Authentication: player-authentication + - Text: + - BBCode Text Object: bbtext + - Bitmap Text: bitmap-text + - Text object: text-object + - Third-party: + - Facebook Instant Games: facebook-instant-games + - Shopify: shopify + - Steamworks (Steam) (experimental): steamworks + - User interface: + - Advanced window management: advanced-window + - Anchor: anchor-behavior + - Device vibration: device-vibration + - Draggable Behavior: draggable-behavior + - Game window and resolution: window + - Text entry object: text-entry-object + - Text Input: text-input + - Video: video + - Visual effect: + - Effects: effects + - Lights: lighting + - Particle system: particle-system + - Tweening: tween + - ... + - expressions-reference.md diff --git a/docs/gdevelop5/all-features/admob/reference.md b/docs/gdevelop5/all-features/admob/reference.md index 2ab0085280..a00301dfc6 100644 --- a/docs/gdevelop5/all-features/admob/reference.md +++ b/docs/gdevelop5/all-features/admob/reference.md @@ -13,29 +13,74 @@ Mark the rewarded video reward as claimed. Useful if you used the condition to c **Hide banner** Hide the banner. You can show it again with the corresponding action. +**Initialize AdMob manually** +Initialize AdMob manually. This will trigger the consent dialog if needed, and then load the ads. +Use this action if you have disabled the auto init and want to control when the consent dialog will be shown. + **Load app open** Start loading an app open (that can be displayed automatically when the loading is finished). If test mode is set, a test app open will be displayed. +??? quote "See parameters" + + - Parameter 0 (string): Android app open ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/9257395921"` for loading a test app open. + - Parameter 1 (string): iOS app open ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/5575463023"` for loading a test app open. + - Parameter 2 (❓ Yes or No): Display in landscape? (portrait otherwise) + - Parameter 3 (❓ Yes or No): Displayed automatically when loading is finished? + **Load interstitial** Start loading an interstitial (that can be displayed automatically when the loading is finished). If test mode is set, a test interstitial will be displayed. +??? quote "See parameters" + + - Parameter 0 (string): Android interstitial ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/1033173712"` for loading a test interstitial. + - Parameter 1 (string): iOS interstitial ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/4411468910"` for loading a test interstitial. + - Parameter 2 (❓ Yes or No): Displayed automatically when loading is finished? + **Load rewarded interstitial** Start loading a rewarded interstitial (that can be displayed automatically when the loading is finished). If test mode is set, a test rewarded interstitial will be displayed. This is similar to a rewarded video, but can be displayed at any time, and the user can close it. +??? quote "See parameters" + + - Parameter 0 (string): Android rewarded interstitial ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/5354046379"` for loading a test rewarded interstitial. + - Parameter 1 (string): iOS interstitial ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/6978759866"` for loading a test rewarded interstitial. + - Parameter 2 (❓ Yes or No): Displayed automatically when loading is finished? + **Load rewarded video** Start loading a reward video (that can be displayed automatically when the loading is finished). If test mode is set, a test video will be displayed. +??? quote "See parameters" + + - Parameter 0 (string): Android reward video ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/5224354917"` for loading a test rewarded video. + - Parameter 1 (string): iOS reward video ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/1712485313"` for loading a test rewarded video. + - Parameter 2 (❓ Yes or No): Displayed automatically when loading is finished? + +**Prevent AdMob auto initialization** +Prevent AdMob from initializing automatically. You will need to call "Initialize AdMob" action manually. +This is useful if you want to control when the consent dialog will be shown (for example, after the user has accepted your game terms). + **Enable test mode** Activate or deactivate the test mode ("development" mode). When activated, tests ads will be served instead of real ones. It is important to enable test ads during development so that you can click on them without charging advertisers. If you click on too many ads without being in test mode, you risk your account being flagged for invalid activity. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Enable test mode? + **Configure the banner** Configure a banner, which can then be displayed. If a banner is already displayed, it will be removed @@ -43,6 +88,14 @@ If test mode is set, a test banner will be displayed. Once a banner is positioned (at the top or bottom of the game), it can't be moved anymore. +??? quote "See parameters" + + - Parameter 0 (string): Android banner ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/6300978111"` for showing a test banner. + - Parameter 1 (string): iOS banner ID + Get it from your AdMob account. You can use `"ca-app-pub-3940256099942544/2934735716"` for showing a test banner. + - Parameter 2 (❓ Yes or No): Display at top? (bottom otherwise) + **Show app open** Show the app open that was loaded. Will work only when the app open is fully loaded. @@ -60,6 +113,12 @@ Show the reward video that was loaded. Will work only when the video is fully lo ## Conditions +**AdMob initialized** +Check if AdMob has been initialized. + +**AdMob initializing** +Check if AdMob is initializing. + **App open errored** Check if there was an error while loading the app open. @@ -109,6 +168,10 @@ Check if a rewarded interstitial is ready to be displayed. Check if the reward of the rewarded interstitial was given to the user. You can mark this reward as cleared, so that the condition will be false and you can show later another rewarded interstitial. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Clear the reward (needed to show another rewarded interstitial) + **Rewarded interstitial showing** Check if there is a rewarded interstitial being displayed. @@ -125,10 +188,19 @@ Check if a rewarded video is ready to be displayed. Check if the reward of the rewarded video was given to the user. You can mark this reward as cleared, so that the condition will be false and you can show later another rewarded video. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Clear the reward (needed to show another rewarded video) + **Rewarded video showing** Check if there is a rewarded video being displayed. + + --- + +The AdMob extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **AdMob** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/advanced-conditions/index.md b/docs/gdevelop5/all-features/advanced-conditions/index.md index d9e31d4e72..99b7f8af12 100644 --- a/docs/gdevelop5/all-features/advanced-conditions/index.md +++ b/docs/gdevelop5/all-features/advanced-conditions/index.md @@ -33,7 +33,7 @@ Whenever the "**Trigger once while true**" condition is used, the actions for th !!! warning - Trigger once conditions are not checked per instance. Within a [for each object](/gdevelop5/events/foreach) event, [object variables](/gdevelop5/all-features/variables/object-variables/) must be used to follow the state of object instances one by one. + As explained in the [trigger once](/gdevelop5/all-features/advanced-conditions/trigger-once) page, "Trigger once" conditions are not checked per instance. Until at least one instance met the conditions, the action won't be triggered for any instance. ## Compare two numbers ![](compare-two-numbers-condition.png) diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/index.md b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/index.md new file mode 100644 index 0000000000..7544d6ec3e --- /dev/null +++ b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/index.md @@ -0,0 +1,36 @@ +--- +title: Trigger Once Condition +--- +# Trigger Once Condition + +When the "**Trigger once while true**" condition is used, the event actions are executed only once as long as the specified conditions are met. + +## Simulating the "Trigger Once" Condition with Variables + +The "trigger once" condition maintains a state that tracks whether the conditions above it were met in the previous frame. If the conditions are met: +- If the conditions were **previously met**, the actions are **not triggered**. +- If the conditions were **not previously met**, the actions are **triggered**. + +The following event... + +![](trigger-once-key-pressed.png) + +...can be replicated using variables: + +![](trigger-once-as-variables.png) + +This example demonstrates how the "trigger once" condition functions. However, this is primarily to help understand its limitations, as explained in the next section. + +## Triggering Actions Once Per Object Instance + +The "trigger once" condition is **not evaluated per instance**. If at least one instance meets the conditions, the action will not be triggered for any other instances, even if they meet the conditions later. + +For example, if you want to play a "surprised" animation when the player gets close to an enemy, the "trigger once" condition may work if enemies are spaced far apart. However, if the player is already being chased by one enemy, other nearby enemies will not trigger the "surprised" animation. + +To handle this, you need to use [object variables](/gdevelop5/all-features/variables/object-variables/) to track the state of each object instance individually. While boolean variables can be used, string variables are often clearer, especially when objects have more than two possible states. + +![](trigger-once-as-fsm.png) + +!!! info + + For a more detailed explanation, refer to the [finite state machines](/gdevelop5/tutorials/finite_state_machine) page. diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-fsm.png b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-fsm.png new file mode 100644 index 0000000000..533a0a30d7 Binary files /dev/null and b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-fsm.png differ diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-variables.png b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-variables.png new file mode 100644 index 0000000000..7158aaf11b Binary files /dev/null and b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-as-variables.png differ diff --git a/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-key-pressed.png b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-key-pressed.png new file mode 100644 index 0000000000..7fc8bf76a8 Binary files /dev/null and b/docs/gdevelop5/all-features/advanced-conditions/trigger-once/trigger-once-key-pressed.png differ diff --git a/docs/gdevelop5/all-features/advanced-window/reference.md b/docs/gdevelop5/all-features/advanced-window/reference.md index efd1408e7c..be5eb16d68 100644 --- a/docs/gdevelop5/all-features/advanced-window/reference.md +++ b/docs/gdevelop5/all-features/advanced-window/reference.md @@ -7,104 +7,306 @@ Provides advanced features related to the game window positioning and interactio **Enable content protection** Enables or disables the content protection mode. This should prevent screenshots of the game from being taken. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Enable content protection? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Enable the window** Enables or disables the window. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Enable window? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Flash the window** Make the window flash or end flashing. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Flash the window? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Window focus** Make the window gain or lose focus. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Focus the window? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Maximize the window** Maximize or unmaximize the window. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Maximize window? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Minimize the window** Minimize or unminimize the window. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Minimize window? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Make the window always on top** Puts the window constantly above all other windows. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Enable always on top? + - Parameter 1 (🔤 String): Level + The level is like a layer in GDevelop but for the OS. The further down the list, the higher it will be. When disabling always on top, the level will be set to normal. From "floating" to "status" included, the window is placed below the Dock on macOS and below the taskbar on Windows. Starting from "pop-up-menu", it is shown above the Dock on macOS and above the taskbar on Windows. This parameter is ignored on linux. (one of: "normal", "floating", "torn-off-menu", "modal-panel", "main-menu", "status", "pop-up-menu", "screen-saver") + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Allow closing** Enables or disables closing of the window by the user. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow closing? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Allow focusing** Allow or disallow the user to focus the window. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow focus? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Allow full-screening** Enables or disables full-screening of the window by the user. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow full-screening? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Enable window shadow** Enables or disables the window shadow. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Enable shadow? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Enable kiosk mode** Puts the window in kiosk mode. This prevents the user from exiting fullscreen. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Enable kiosk mode? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Allow maximizing** Enables or disables maximizing of the window by the user. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow maximizing? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Allow minimizing** Enables or disables minimizing of the window by the user. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow minimizing? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Allow moving** Enables or disables moving of the window by the user. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow moving? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Window opacity** Changes the window opacity. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): New opacity + A number between 0 (fully transparent) and 1 (fully opaque). + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Allow resizing** Enables or disables resizing of the window by the user. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Allow resizing? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Window position** Changes the window position. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): X position + - Parameter 1 (🔢 Number): Y position + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Window visibility** Make the window visible or invisible. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Show window? + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + ## Conditions **Shadow enabled** Checks if the window currently has it's shadow enabled. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window always on top** Checks if the window is always on top. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window closable** Checks if the window can be closed. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window focused** Checks if the window is focused. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window full-screenable** Checks if the window can be full-screened. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Kiosk mode** Checks if the window is currently in kiosk mode. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window maximizable** Checks if the window can be maximized. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window maximized** Checks if the window is maximized. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window minimizable** Checks if the window can be minimized. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window minimized** Checks if the window is minimized. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window movable** Checks if the window can be moved. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window resizable** Checks if the window can be resized. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window visible** Checks if the window is visible. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window enabled** Checks if the window is enabled. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -113,5 +315,10 @@ Checks if the window is enabled. | `AdvancedWindow::WindowX()` | Returns the current window X position. || | `AdvancedWindow::WindowY()` | Returns the current window Y position. || + + --- + +The Advanced window management extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Advanced window management** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/advanced/reference.md b/docs/gdevelop5/all-features/advanced/reference.md index faa78f73a6..f7086a9d13 100644 --- a/docs/gdevelop5/all-features/advanced/reference.md +++ b/docs/gdevelop5/all-features/advanced/reference.md @@ -7,30 +7,46 @@ Advanced control features for functions made with events. **Copy function parameter to variable** Copy a function parameter (also called "argument") to a variable. The parameter type must be a variable. +??? quote "See parameters" + + - Parameter 0 (🔤 Function Parameter Name (String)): Parameter name + - Parameter 1: 🗄️ Any variable + **Copy variable to function parameter** Copy a variable to function parameter (also called "argument"). The parameter type must be a variable. +??? quote "See parameters" + + - Parameter 0 (🔤 Function Parameter Name (String)): Parameter name + - Parameter 1: 🗄️ Any variable + **Set condition return value** Set the return value of the Condition events function to either true (condition will pass) or false. +??? quote "See parameters" + + - Parameter 0 (❓ True or False): Should the condition be true or false? + **Set number return value** Set the return value of the events function to the specified number (to be used with "Expression" functions). +??? quote "See parameters" + + - Parameter 0 (🔢 Number): The number to be returned + **Set text return value** Set the return value of the events function to the specified text (to be used with "String Expression" functions). -## Conditions +??? quote "See parameters" -**Compare function parameter value** -Compare function parameter (also called "argument") value. + - Parameter 0 (string): The text to be returned -**Compare function parameter text** -Compare function parameter (also called "argument") text. -**Check if a function parameter is set to true (or yes)** -Check if the specified function parameter (also called "argument") is set to True or Yes. If the argument is a string, an empty string is considered as "false". If it's a number, 0 is considered as "false". --- + +The Event functions extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Event functions** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/anchor-behavior/reference.md b/docs/gdevelop5/all-features/anchor-behavior/reference.md index f0381cc677..167005f162 100644 --- a/docs/gdevelop5/all-features/anchor-behavior/reference.md +++ b/docs/gdevelop5/all-features/anchor-behavior/reference.md @@ -11,5 +11,10 @@ Anchor objects to the window's bounds. _No expressions for this behavior._ + + --- + +The Anchor extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Anchor** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/animatable-capability/reference.md b/docs/gdevelop5/all-features/animatable-capability/reference.md index 183107b06e..05cec65a35 100644 --- a/docs/gdevelop5/all-features/animatable-capability/reference.md +++ b/docs/gdevelop5/all-features/animatable-capability/reference.md @@ -1,53 +1,129 @@ -# Animatable capability Reference +# Objects with animations Reference -Animate objects. [Read more explanations about it.](/gdevelop5/objects) +Actions and conditions for objects having animations (sprite, 3D models...). [Read more explanations about it.](/gdevelop5/objects) -## Animatable capability +## Objects with animations -Animate objects. +Actions and conditions for objects having animations (sprite, 3D models...).. ### Behavior actions **Pause the animation** Pause the animation of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Resume the animation** Resume the animation of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Animation elapsed time** Change the elapsed time from the beginning of the animation (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Elapsed time (in seconds) + **Animation (by number)** Change the animation played by the object using the animation number (from the animations list). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Animation index + **Animation (by name)** Change the animation played by the object using the name of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3: 🔤 Object Animation Name (String) + **Animation speed scale** Change the animation speed scale (1 = the default speed, >1 = faster and <1 = slower). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed scale + ### Behavior conditions **Animation elapsed time** Compare the elapsed time from the beginning of the animation (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Elapsed time (in seconds) + **Animation finished** Check if the animation being played by the Sprite object is finished. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Animation (by number)** Compare the animation played by the object using the animation number (from the animations list). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Animation index + **Animation paused** Check if the animation of an object is paused. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Animation (by name)** Compare the animation played by the object using the name of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3: 🔤 Object Animation Name (String) + **Animation speed scale** Compare the animation speed scale (1 = the default speed, >1 = faster and <1 = slower). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed scale + ### Behavior expressions | Expression | Description | | @@ -58,5 +134,10 @@ Compare the animation speed scale (1 = the default speed, >1 = faster and <1 = s | `Object.Animation::Name()` | Return the animation played by the object using the name of the animation. || | `Object.Animation::SpeedScale()` | Return the animation speed scale (1 = the default speed, >1 = faster and <1 = slower). || + + --- -*This page is an auto-generated reference page about the **Animatable capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Objects with animations extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Objects with animations** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/async/reference.md b/docs/gdevelop5/all-features/async/reference.md index 4067f0e93b..191319c083 100644 --- a/docs/gdevelop5/all-features/async/reference.md +++ b/docs/gdevelop5/all-features/async/reference.md @@ -7,7 +7,18 @@ Functions that defer the execution of the events after it. **End asynchronous function** Mark an asynchronous function as finished. This will allow the actions and subevents following it to be run. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The Asynchronous functions extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Asynchronous functions** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/audio/reference.md b/docs/gdevelop5/all-features/audio/reference.md index 3e99c5327b..c9329e2ee4 100644 --- a/docs/gdevelop5/all-features/audio/reference.md +++ b/docs/gdevelop5/all-features/audio/reference.md @@ -7,129 +7,414 @@ GDevelop provides several conditions and actions to play audio files. They can b **Fade the volume of a music played on a channel.** Fade the volume of a music played on a channel to the specified volume within the specified duration. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2 (🔢 Number): Final volume (0-100) + - Parameter 3 (🔢 Number): Fading time in seconds + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Fade the volume of a sound played on a channel.** Fade the volume of a sound played on a channel to the specified volume within the specified duration. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2 (🔢 Number): Final volume (0-100) + - Parameter 3 (🔢 Number): Fading time in seconds + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Game global volume** This action modifies the global volume of the game. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Volume (0-100) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pitch of the music on a channel** This action modifies the pitch of the music on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Pitch (1 by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pitch of the sound of a channel** This action modifies the pitch (speed) of the sound on a channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Pitch (1 by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Playing offset of the music on a channel** This action modifies the playing offset of the music on the specified channel +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Position (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Playing offset of the sound on a channel** This action modifies the playing offset of the sound on a channel +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Position (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Volume of the music on a channel** This action modifies the volume of the music on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Volume (0-100) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Volume of the sound on a channel** This action modifies the volume of the sound on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Volume (0-100) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pause the music of a channel** Pause the music on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pause the sound of a channel** Pause the sound played on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Play a music file** Play a music file. +??? quote "See parameters" + + - Parameter 1 (musicfile): Audio file (or audio resource name) + - Parameter 2 (❓ Yes or No): Repeat the sound + - Parameter 3 (🔢 Number): Volume + From 0 to 100, 100 by default. + - Parameter 4 (🔢 Number): Pitch (speed) + 1 by default. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Play a music file on a channel** Play a music file on a specific channel, so you'll be able to interact with it later. +??? quote "See parameters" + + - Parameter 1 (musicfile): Audio file (or audio resource name) + - Parameter 2 (🔢 Number): Channel identifier + - Parameter 3 (❓ Yes or No): Repeat the sound + - Parameter 4 (🔢 Number): Volume + From 0 to 100, 100 by default. + - Parameter 5 (🔢 Number): Pitch (speed) + 1 by default. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Play a sound** Play a sound. +??? quote "See parameters" + + - Parameter 1 (soundfile): Audio file (or audio resource name) + - Parameter 2 (❓ Yes or No): Repeat the sound + - Parameter 3 (🔢 Number): Volume + From 0 to 100, 100 by default. + - Parameter 4 (🔢 Number): Pitch (speed) + 1 by default. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Play a sound on a channel** Play a sound (small audio file) on a specific channel, so you'll be able to manipulate it. +??? quote "See parameters" + + - Parameter 1 (soundfile): Audio file (or audio resource name) + - Parameter 2 (🔢 Number): Channel identifier + - Parameter 3 (❓ Yes or No): Repeat the sound + - Parameter 4 (🔢 Number): Volume + From 0 to 100, 100 by default. + - Parameter 5 (🔢 Number): Pitch (speed) + 1 by default. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Preload a music file** Preload a music file in memory. +??? quote "See parameters" + + - Parameter 1 (musicfile): Audio file (or audio resource name) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Preload a sound file** Preload a sound file in memory. +??? quote "See parameters" + + - Parameter 1 (soundfile): Sound file (or sound resource name) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Resume playing a music on a channel** Resume playing a music on a channel that was paused. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Resume playing a sound on a channel** Resume playing a sound on a channel that was paused. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Stop the music on a channel** Stop the music on the specified channel +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Stop the sound of a channel** Stop the sound on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Unload all audio** Unload all the audio in memory. This will cause every sound and music of the game to stop. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Unload a music file** Unload a music file from memory. Unloading a music file will cause any music playing it to stop. +??? quote "See parameters" + + - Parameter 1 (musicfile): Audio file (or audio resource name) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Unload a sound file** Unload a sound file from memory. Unloading a sound file will cause any sounds playing it to stop. +??? quote "See parameters" + + - Parameter 1 (soundfile): Sound file (or sound resource name) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Global volume** Test the global sound level. The volume is between 0 and 100. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Volume to compare to (0-100) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Volume of the music on a channel** Test the volume of the music on a specified channel. The volume is between 0 and 100. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Volume to compare to (0-100) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pitch of the music on a channel** Test the pitch (speed) of the music on a specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Pitch to compare to (1 by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Playing offset of the music on a channel** Test the playing offset of the music on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Position to compare to (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A music file is paused** Test if the music on the specified channel is paused. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A music file is being played** Test if the music on a channel is being played +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A music file is stopped** Test if the music on the specified channel is stopped. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Volume of the sound on a channel** Test the volume of the sound on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Volume to compare to (0-100) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pitch of the sound of a channel** Test the pitch of the sound on the specified channel. 1 is the default pitch. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Pitch to compare to (1 by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Playing offset of the sound on a channel** Test the playing offset of the sound on the specified channel. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Position to compare to (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A sound is paused** Test if the sound on the specified channel is paused. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A sound is being played** Test if the sound on a channel is being played. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A sound is stopped** Test if the sound on the specified channel is stopped. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `GlobalVolume()` | Global volume value || -| `MusicChannelPitch()` | Music's pitch || -| `MusicChannelPlayingOffset()` | Music playing offset || -| `MusicChannelVolume()` | Music volume || -| `SoundChannelPitch()` | Sound's pitch || -| `SoundChannelPlayingOffset()` | Sound playing offset || -| `SoundChannelVolume()` | Sound volume || +| `MusicChannelPitch(number)` | Music's pitch || +| | _🔢 Number_ | Channel | +| `MusicChannelPlayingOffset(number)` | Music playing offset || +| | _🔢 Number_ | Channel | +| `MusicChannelVolume(number)` | Music volume || +| | _🔢 Number_ | Channel | +| `SoundChannelPitch(number)` | Sound's pitch || +| | _🔢 Number_ | Channel | +| `SoundChannelPlayingOffset(number)` | Sound playing offset || +| | _🔢 Number_ | Channel | +| `SoundChannelVolume(number)` | Sound volume || +| | _🔢 Number_ | Channel | + + --- + +The Sounds and music extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Sounds and music** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/bbtext/reference.md b/docs/gdevelop5/all-features/bbtext/reference.md index 9ffd64d955..a52096f0fe 100644 --- a/docs/gdevelop5/all-features/bbtext/reference.md +++ b/docs/gdevelop5/all-features/bbtext/reference.md @@ -13,44 +13,117 @@ Displays a rich text label using BBCode markup (allowing to set parts of the tex **Alignment** Change the alignment of the text. +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 String): Alignment (one of: "left", "right", "center") + **BBCode text** Set BBCode text +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Text + **Color** Set base color +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1 (color): Color (R;G;B) + **Font family** Set font family +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1 (fontResource): Font family + **Font size** Set base font size -**Word wrap** -Set word wrap +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Font size + +**Word wrapping** +De/activate word wrapping. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1 (❓ Yes or No): Activate word wrapping **Wrapping width** Change the width, in pixels, after which the text is wrapped on next line. +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Wrapping width + ### Object conditions **Alignment** Check the current text alignment. +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Alignment (one of: "left", "right", "center") + **BBCode text** Compare the value of the BBCode text. +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Text + **Font family** Compare the value of font family +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Font family + **Font size** Compare the base font size of the text. -**Word wrap** -Check if word wrap is enabled. +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Font size + +**Word wrapping** +Check if word wrapping is enabled. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText **Wrapping width** Compare the width, in pixels, after which the text is wrapped on next line. +??? quote "See parameters" + + - Parameter 0 (👾 Object): BBText + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Wrapping width + ### Object expressions | Expression | Description | | @@ -61,5 +134,10 @@ Compare the width, in pixels, after which the text is wrapped on next line. | `Object.GetFontSize()` | Get the base font size || | `Object.GetWrappingWidth()` | Get the wrapping width || + + --- + +The BBCode Text Object extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **BBCode Text Object** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/bitmap-text/reference.md b/docs/gdevelop5/all-features/bitmap-text/reference.md index d9aa3d9cf6..fc937e1228 100644 --- a/docs/gdevelop5/all-features/bitmap-text/reference.md +++ b/docs/gdevelop5/all-features/bitmap-text/reference.md @@ -13,34 +13,89 @@ Displays a text using a "Bitmap Font" (an image representing characters). This i **Wrapping width** Change the width, in pixels, after which the text is wrapped on next line. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Alignment** Change the alignment of a Bitmap text object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1 (🔤 String): Alignment (one of: "left", "center", "right") + **Bitmap files resources** Change the Bitmap Font and/or the atlas image used by the object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1 (bitmapFontResource): Bitmap font resource name + - Parameter 2 (imageResource): Texture atlas resource name + **Tint** Set the tint of the Bitmap Text object. -**Word wrap** +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1: color + +**Word wrapping** De/activate word wrapping. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1 (❓ Yes or No): Activate word wrapping + ### Object conditions **Alignment** Compare the text alignment. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Alignment ("left", "right" or "center") + **Font name** Compare the font name (defined in the Bitmap font). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + **Font size** Compare the font size, defined in the Bitmap Font. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Wrapping width** Compare the width, in pixels, after which the text is wrapped on next line. -**Word wrap** -Check if word wrap is enabled. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + +**Word wrapping** +Check if word wrapping is enabled. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): Bitmap text ### Object expressions @@ -52,5 +107,10 @@ Check if word wrap is enabled. | `Object.Text()` | Return the text. || | `Object.WrappingWidth()` | Return the width, in pixels, after which the text is wrapped on next line. || + + --- + +The Bitmap Text extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Bitmap Text** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/camera/reference.md b/docs/gdevelop5/all-features/camera/reference.md index c8fd0e16f8..b1aaf290c6 100644 --- a/docs/gdevelop5/all-features/camera/reference.md +++ b/docs/gdevelop5/all-features/camera/reference.md @@ -1,117 +1,389 @@ # Layers and cameras Reference -Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras) +Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. The zoom of a layer camera (in 2D) or its position in the 3D space (for 3D games) can be changed. + +Each layer can be hidden or shown (but layers do not have opacity). Actions/conditions are available to enable/disable 2D/3D effects on layers. Parameters of each effect can be modified with actions. + [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras) ## Actions **Center the camera on an object** Center the camera on the specified object. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (❓ Yes or No): Anticipate the movement of the object (yes by default) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Layer time scale** Change the time scale applied to the objects of the layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Scale (1: Default, 2: 2x faster, 0.5: 2x slower...) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Enforce camera boundaries** Enforce camera boundaries by moving the camera back inside specified boundaries. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Left bound X Position + - Parameter 2 (🔢 Number): Top bound Y Position + - Parameter 3 (🔢 Number): Right bound X Position + - Parameter 4 (🔢 Number): Bottom bound Y Position + - Parameter 5: 🔤 Layer name (String) + - Parameter 6 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Enable layer effect** Enable an effect on a layer +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🔤 Layer Effect Name (String) + - Parameter 3 (❓ Yes or No): Enable + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Hide a layer** Hide a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Angle of a camera of a layer** Change the angle of rotation of a camera (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera center X position** Change the X position of the center of a camera. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera center Y position** Change the Y position of the center of a camera. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Ambient light color** Set the ambient light color of the lighting layer in format "R;G;B" string. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: color + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Layer default Z order** Change the default Z order set to objects when they are created on a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): New default Z order + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Effect property (enable or disable)** Enable or disable a property of an effect. You can find the property names (and change the effect names) in the effects window. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🔤 Layer Effect Name (String) + - Parameter 3: 🔤 Layer Effect Property Name (String) + - Parameter 4 (❓ Yes or No): Enable this property + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Effect property (number)** Change the value of a property of an effect. You can find the property names (and change the effect names) in the effects window. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🔤 Layer Effect Name (String) + - Parameter 3: 🔤 Layer Effect Property Name (String) + - Parameter 4 (🔢 Number): New value + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Effect property (string)** Change the value (string) of a property of an effect. You can find the property names (and change the effect names) in the effects window. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🔤 Layer Effect Name (String) + - Parameter 3: 🔤 Layer Effect Property Name (String) + - Parameter 4 (string): New value + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Show a layer** Show a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera zoom** Change camera zoom. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Value (1:Initial zoom, 2:Zoom x2, 0.5:Unzoom x2...) + - Parameter 2: 🔤 Layer name (String) + - Parameter 3 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Angle of a camera of a layer** Compare the angle of rotation of a camera (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera bottom border position** Compare the position of the bottom border of a camera. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera left border position** Compare the position of the left border of a camera. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera right border position** Compare the position of the right border of a camera. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera top border position** Compare the position of the top border of a camera. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera center X position** Compare the X position of the center of a camera. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera center Y position** Compare the Y position of the center of a camera. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Height of a camera** Compare the height of a camera of a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Width of a camera** Compare the width of a camera of a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera zoom** Compare the zoom of a camera of a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Zoom + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Layer default Z order** Compare the default Z order set to objects when they are created on a layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Layer effect is enabled** The effect on a layer is enabled +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🔤 Layer Effect Name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Layer time scale** Compare the time scale applied to the objects of the layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Time scale (1 by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Visibility of a layer** Test if a layer is set as visible. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `CameraAngle()` | Return the angle of rotation of a camera (in degrees). || -| `CameraBorderBottom()` | Return the position of the bottom border of a camera. || -| `CameraBorderLeft()` | Return the position of the left border of a camera. || -| `CameraBorderRight()` | Return the position of the right border of a camera. || -| `CameraBorderTop()` | Return the position of the top border of a camera. || -| `CameraCenterX()` | Return the X position of the center of a camera. || -| `CameraCenterY()` | Return the Y position of the center of a camera. || -| `CameraHeight()` | Return the height of a camera of a layer. || -| `CameraWidth()` | Return the width of a camera of a layer. || -| `CameraZoom()` | Zoom of a camera of a layer || -| `LayerDefaultZOrder()` | Default Z Order for a layer || -| `LayerTimeScale()` | Returns the time scale of the specified layer. || +| `CameraAngle(layer name, number)` | Return the angle of rotation of a camera (in degrees). || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CameraBorderBottom(layer name, number)` | Return the position of the bottom border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraBorderLeft(layer name, number)` | Return the position of the left border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraBorderRight(layer name, number)` | Return the position of the right border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraBorderTop(layer name, number)` | Return the position of the top border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraCenterX(layer name, number)` | Return the X position of the center of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CameraCenterY(layer name, number)` | Return the Y position of the center of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CameraHeight(layer name, number)` | Return the height of a camera of a layer. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraWidth(layer name, number)` | Return the width of a camera of a layer. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraZoom(layer name, number)` | Zoom of a camera of a layer || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `LayerDefaultZOrder(layer name)` | Default Z Order for a layer || +| | _🔤 Layer name (String)_ | Layer | +| `LayerTimeScale(layer name)` | Returns the time scale of the specified layer. || +| | _🔤 Layer name (String)_ | Layer | + + --- + +The Layers and cameras extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Layers and cameras** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/common-conversions/reference.md b/docs/gdevelop5/all-features/common-conversions/reference.md index f9038371cd..94cbeb9db1 100644 --- a/docs/gdevelop5/all-features/common-conversions/reference.md +++ b/docs/gdevelop5/all-features/common-conversions/reference.md @@ -1,26 +1,50 @@ # Conversion Reference -Expressions to convert number, texts and quantities. [Read more explanations about it.](/gdevelop5/all-features/common-conversions) +Expressions to convert numbers to string, strings to numbers, angles (degrees from/to radians) and a GDevelop variable to/from a JSON string. [Read more explanations about it.](/gdevelop5/all-features/common-conversions) ## Actions **Convert JSON to object variable** Parse a JSON object and store it into an object variable +??? quote "See parameters" + + - Parameter 0 (string): JSON string + - Parameter 1: 👾 Object + - Parameter 2 (🗄️ Object variable): Object variable where store the JSON object + **Convert JSON to a variable** Parse a JSON object and store it into a variable +??? quote "See parameters" + + - Parameter 0 (string): JSON string + - Parameter 1 (🗄️ Any variable): Variable where to store the JSON object + ## Expressions | Expression | Description | | |-----|-----|-----| -| `LargeNumberToString()` | Convert the result of the expression to text, without using the scientific notation || -| `ObjectVarToJSON()` | Convert an object variable to JSON || -| `ToDeg()` | Converts the angle, expressed in radians, into degrees || -| `ToJSON()` | Convert a variable to JSON || -| `ToNumber()` | Convert the text to a number || -| `ToRad()` | Converts the angle, expressed in degrees, into radians || -| `ToString()` | Convert the result of the expression to text || +| `LargeNumberToString(number)` | Convert the result of the expression to text, without using the scientific notation || +| | _🔢 Number_ | Expression to be converted to text | +| `ObjectVarToJSON(object, object variable)` | Convert an object variable to JSON || +| | _👾 Object_ | The object with the variable | +| | _🗄️ Object variable_ | The object variable to be stringified | +| `ToDeg(number)` | Converts the angle, expressed in radians, into degrees || +| | _🔢 Number_ | Angle, in radians | +| `ToJSON(variable)` | Convert a variable to JSON || +| | _🗄️ Any variable_ | The variable to be stringified | +| `ToNumber(string)` | Convert the text to a number || +| | _string_ | Text to convert to a number | +| `ToRad(number)` | Converts the angle, expressed in degrees, into radians || +| | _🔢 Number_ | Angle, in degrees | +| `ToString(number)` | Convert the result of the expression to text || +| | _🔢 Number_ | Expression to be converted to text | + + --- + +The Conversion extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Conversion** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/common-instructions/reference.md b/docs/gdevelop5/all-features/common-instructions/reference.md index cff211d36b..7f1d3fe4d8 100644 --- a/docs/gdevelop5/all-features/common-instructions/reference.md +++ b/docs/gdevelop5/all-features/common-instructions/reference.md @@ -5,24 +5,41 @@ GDevelop comes with a set of events and conditions that allow to express the gam ## Conditions **And** -Check if all sub conditions are true +Checks if all sub-conditions are true. If no sub-condition is specified, it will always be false. This is rarely needed, as events already check all conditions before running actions. **Compare two numbers** Compare the two numbers. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): First expression + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Second expression + **Compare two strings** Compare the two strings. +??? quote "See parameters" + + - Parameter 0 (string): First string expression + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Second string expression + **Not** -Return the contrary of the result of the sub conditions +Returns the opposite of the sub-condition(s) result. This is rarely needed, as most conditions can be inverted or expressed more simply. **Trigger once while true** Run actions only once, for each time the conditions have been met. **Or** -Check if one of the sub conditions is true +Checks if at least one sub-condition is true. If no sub-condition is specified, it will always be false. This is rarely used — multiple events and sub-events are usually a better approach. + + --- + +The Events and control flow extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Events and control flow** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/debugger-tools/reference.md b/docs/gdevelop5/all-features/debugger-tools/reference.md index 7192272b5e..a548d4608b 100644 --- a/docs/gdevelop5/all-features/debugger-tools/reference.md +++ b/docs/gdevelop5/all-features/debugger-tools/reference.md @@ -1,19 +1,45 @@ # Debugger Tools Reference -Allow to interact with the editor debugger from the game. +Allow to interact with the editor debugger from the game (notably: enable 2D debug draw, log a message in the debugger console). ## Actions **Log a message to the console** Logs a message to the debugger's console. +??? quote "See parameters" + + - Parameter 0 (string): Message to log + - Parameter 1 (🔤 String): Message type (one of: "info", "warning", "error") + - Parameter 2 (string): Group of messages + **Draw collisions hitboxes and points** This activates the display of rectangles and information on screen showing the objects bounding boxes (blue), the hitboxes (red) and some points of objects. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Enable debug draw + - Parameter 2 (❓ Yes or No): Show collisions for hidden objects + - Parameter 3 (❓ Yes or No): Show points names + - Parameter 4 (❓ Yes or No): Show custom points + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pause game execution** This pauses the game, useful for inspecting the game state through the debugger. Note that events will be still executed until the end before the game is paused. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The Debugger Tools extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Debugger Tools** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md b/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md index 2ef09ae525..13ad18c476 100644 --- a/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md +++ b/docs/gdevelop5/all-features/destroy-outside-behavior/reference.md @@ -1,25 +1,68 @@ # Destroy Outside Screen Behavior Reference -This behavior can be used to destroy objects when they go outside of the bounds of the camera. Useful for bullets or other short-lived objects. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside) +This behavior can be used to destroy objects when they go outside of the bounds of the 2D camera. Useful for 2D bullets or other short-lived objects. Don't use it for 3D objects in a FPS/TPS game or any game with a camera not being a top view (for 3D objects, prefer comparing the position, for example Z position to see if an object goes outside of the bound of the map). If the object appears outside of the screen, it's not removed unless it goes beyond the unseen object grace distance. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside) ## Destroy when outside of the screen -Destroy objects automatically when they go outside of the screen's borders. +Destroy objects automatically when they go outside of the 2D camera borders. ### Behavior actions -**Additional border** -Change the additional border that the object must cross before being deleted. +**Additional border (extra distance before deletion)** +Change the extra distance (in pixels) the object must travel beyond the screen before it gets deleted. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Unseen object grace distance** +Change the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value ### Behavior conditions -**Additional border** -Compare the additional border that the object must cross before being deleted. +**Additional border (extra distance before deletion)** +Compare the extra distance (in pixels) the object must travel beyond the screen before it gets deleted. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Unseen object grace distance** +Compare the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.DestroyOutside::ExtraBorder()` | Return the extra distance (in pixels) the object must travel beyond the screen before it gets deleted. || +| `Object.DestroyOutside::UnseenGraceDistance()` | Return the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn. || -_No expressions for this behavior._ --- + +The Destroy Outside Screen Behavior extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Destroy Outside Screen Behavior** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/device-sensors/reference.md b/docs/gdevelop5/all-features/device-sensors/reference.md index 8acfc77281..674c7f03ad 100644 --- a/docs/gdevelop5/all-features/device-sensors/reference.md +++ b/docs/gdevelop5/all-features/device-sensors/reference.md @@ -21,36 +21,81 @@ Deactivate the orientation sensor. **Compare the value of acceleration on X-axis** Compare the value of acceleration on the X-axis (m/s²). +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value (m/s²) + **Compare the value of acceleration on Y-axis** Compare the value of acceleration on the Y-axis (m/s²). +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value (m/s²) + **Compare the value of acceleration on Z-axis** Compare the value of acceleration on the Z-axis (m/s²). +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value (m/s²) + **Sensor active** The condition is true if the device motion sensor is currently active **Compare the value of orientation alpha** Compare the value of orientation alpha. (Range: 0 to 360°) +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value + **Compare the value of orientation beta** Compare the value of orientation beta. (Range: -180 to 180°) +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value + **Compare the value of orientation gamma** Compare the value of orientation gamma. (Range: -90 to 90°) +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value + **Sensor active** The condition is true if the device orientation sensor is currently active **Compare the value of rotation alpha** Compare the value of rotation alpha. (Note: few devices support this sensor) +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value (m/s²) + **Compare the value of rotation beta** Compare the value of rotation beta. (Note: few devices support this sensor) +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value (m/s²) + **Compare the value of rotation gamma** Compare the value of rotation gamma. (Note: few devices support this sensor) +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value (m/s²) + ## Expressions | Expression | Description | | @@ -66,5 +111,10 @@ Compare the value of rotation gamma. (Note: few devices support this sensor) | `DeviceSensors::RotationBeta()` | Get the devices rotation Beta || | `DeviceSensors::RotationGamma()` | Get the devices rotation Gamma || + + --- + +The Device sensors extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Device sensors** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/device-vibration/reference.md b/docs/gdevelop5/all-features/device-vibration/reference.md index 7626f04997..e5b1348f19 100644 --- a/docs/gdevelop5/all-features/device-vibration/reference.md +++ b/docs/gdevelop5/all-features/device-vibration/reference.md @@ -7,13 +7,26 @@ This allows to trigger vibrations on mobile devices. [Read more explanations abo **Vibrate** Vibrate (Duration in ms). +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Duration + **Vibrate by pattern** Vibrate (Duration in ms). You can add multiple comma-separated values where every second value determines the period of silence between two vibrations. This is a string value so use quotes. +??? quote "See parameters" + + - Parameter 0 (string): Intervals (for example "500,100,200" + **Stop vibration** Stop the vibration + + --- + +The Device vibration extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Device vibration** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/dialogue-tree/reference.md b/docs/gdevelop5/all-features/dialogue-tree/reference.md index 562e936a1e..ea156b9e2b 100644 --- a/docs/gdevelop5/all-features/dialogue-tree/reference.md +++ b/docs/gdevelop5/all-features/dialogue-tree/reference.md @@ -10,48 +10,89 @@ Clear dialogue state. This resets all dialogue state accumulated by the player c **Complete clipped text scrolling** Complete the clipped text scrolling. Use this action whenever you want to skip scrolling. -**Confirm selected Option** +**Confirm selected option** Set the selected option as confirmed, which will validate it and go forward to the next node. Use other actions to select options (see "select next option" and "Select previous option"). **Go to the next dialogue line** Go to the next dialogue line. Use this to advance to the next dialogue line when the player presses a button. -**Load dialogue Tree from a Json File** -Load a dialogue data object - Yarn json format, stored in a Json file. Use this command to load all the Dialogue data at the beginning of the game. +**Load dialogue tree from a JSON file** +Load a dialogue data object - Yarn JSON format, stored in a JSON file. Use this command to load all the Dialogue data at the beginning of the game. -**Load dialogue Tree from a scene variable** -Load a dialogue data object - Yarn json format, stored in a scene variable. Use this command to load all the Dialogue data at the beginning of the game. +??? quote "See parameters" + + - Parameter 1 (jsonResource): JSON file that holds the Yarn JSON data + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Load dialogue tree from a scene variable** +Load a dialogue data object - Yarn JSON format, stored in a scene variable. Use this command to load all the Dialogue data at the beginning of the game. + +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable that holds the Yarn JSON data **Load dialogue state** Load dialogue state. Use this to restore dialogue state, if you have stored in a variable before with the "Save state" action. +??? quote "See parameters" + + - Parameter 0 (🗄️ Global variable): Global Variable + **Save dialogue state** Save dialogue state. Use this to store the dialogue state into a variable, which can later be used for saving the game. That way player choices can become part of the game save. +??? quote "See parameters" + + - Parameter 0 (🗄️ Global variable): Global Variable + **Scroll clipped text** Scroll clipped text. Use this with a timer and "get clipped text" when you want to create a typewriter effect. Every time the action runs, a new character appears from the text. -**Select next Option** -Select next Option (add 1 to selected option number). Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option. +**Select next option** +Select next option (add 1 to selected option number). Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option. **Select option by number** Select option by number. Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option. -**Select previous Option** -Select previous Option (subtract 1 from selected option number). Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Option index number + +**Select previous option** +Select previous option (subtract 1 from selected option number). Use this when the dialogue line is of type "options" and the player has pressed a button to change selected option. **Set dialogue state boolean variable** Set dialogue state boolean variable. Use this to set a variable that the dialogue data is using. +??? quote "See parameters" + + - Parameter 0 (string): State variable name + - Parameter 1 (❓ True or False): New value + **Set dialogue state number variable** Set dialogue state number variable. Use this to set a variable that the dialogue data is using. +??? quote "See parameters" + + - Parameter 0 (string): State variable name + - Parameter 1 (🔢 Number): New value + **Set dialogue state string variable** Set dialogue state string variable. Use this to set a variable that the dialogue data is using. +??? quote "See parameters" + + - Parameter 0 (string): State variable name + - Parameter 1 (string): New value + **Start dialogue from branch** Start dialogue from branch. Use this to initiate the dialogue from a specified branch. +??? quote "See parameters" + + - Parameter 0 (string): Dialogue branch + **Stop running dialogue** Stop the running dialogue. Use this to interrupt dialogue parsing. @@ -60,21 +101,48 @@ Stop the running dialogue. Use this to interrupt dialogue parsing. **Compare dialogue state boolean variable** Compare dialogue state variable. Use this to trigger game events via dialogue variables. +??? quote "See parameters" + + - Parameter 0 (string): State variable + - Parameter 1 (❓ True or False): Equal to + **Compare dialogue state number variable** Compare dialogue state number variable. Use this to trigger game events via dialogue variables. +??? quote "See parameters" + + - Parameter 0 (string): State variable + - Parameter 1 (🔢 Number): Equal to + **Compare dialogue state string variable** Compare dialogue state string variable. Use this to trigger game events via dialogue variables. +??? quote "See parameters" + + - Parameter 0 (string): State variable + - Parameter 1 (string): Equal to + **Current dialogue branch contains a tag** Check if the current dialogue branch contains a specific tag. Tags are an alternative useful way to <> to drive game logic with the dialogue data. +??? quote "See parameters" + + - Parameter 0 (string): tag name + **Current dialogue branch title** Check if the current dialogue branch title is equal to a string. Use this to trigger game events when the player has visited a specific dialogue branch. +??? quote "See parameters" + + - Parameter 0 (string): title name + **Dialogue has branch** Check if the dialogue has a branch with specified name. Use this to check if a dialogue branch exists in the loaded dialogue data. +??? quote "See parameters" + + - Parameter 0 (string): Branch name + **Clipped text has completed scrolling** Check if the clipped text scrolling has completed. Use this to prevent the player from going to the next dialogue line before the typing effect has revealed the entire text. @@ -84,6 +152,10 @@ Check if a selected option has changed when the current dialogue line type is op **Command is called** Check if a specific Command is called. If it is a <>, you can even get the parameter with the CommandParameter expression. +??? quote "See parameters" + + - Parameter 0 (string): Command String + **Dialogue line type** Check if the current dialogue line line is one of the three existing types. Use this to set what logic is executed for each type. The three types are as follows: @@ -91,32 +163,54 @@ The three types are as follows: - options: when displaying [[branching/options]] for dialogue choices. -command: when <> are triggered by the dialogue data. +??? quote "See parameters" + + - Parameter 0 (🔤 String): type (one of: "text", "options", "command") + **Dialogue is running** Check if the dialogue is running. Use this to for things like locking the player movement while speaking with a non player character. **Branch title has been visited** Check if a branch has been visited +??? quote "See parameters" + + - Parameter 0 (string): branch title + ## Expressions | Expression | Description | | |-----|-----|-----| -| `DialogueTree::BranchTag()` | Get a tag of the current branch of the running dialogue via its index || +| `DialogueTree::BranchTag(number)` | Get a tag of the current branch of the running dialogue via its index || +| | _🔢 Number_ | Tag Index Number | | `DialogueTree::BranchTags()` | Get the tags of the current branch of the running dialogue || | `DialogueTree::BranchText()` | Get the full raw text of the current branch || | `DialogueTree::BranchTitle()` | Get the title of the current branch of the running dialogue || | `DialogueTree::ClippedLineText()` | Get dialogue line text clipped by the typewriter effect. Use the "Scroll clipped text" action to control the typewriter effect. || -| `DialogueTree::CommandParameter()` | Get the parameters of a command call - <> || +| `DialogueTree::CommandParameter(number)` | Get the parameters of a command call - <> || +| | _🔢 Number_ | parameter Index Number _Optional_. | | `DialogueTree::CommandParametersCount()` | Get the number of parameters in the currently passed command || -| `DialogueTree::HorizontalOptionsList()` | Get the text of all available options from an Options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> || +| `DialogueTree::HorizontalOptionsList(string)` | Get the text of all available options from an options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> || +| | _string_ | Options Selection Cursor | | `DialogueTree::LineText()` | Returns the current dialogue line text || -| `DialogueTree::Option()` | Get the text of an option from an Options line type, using the option's Number. The numbers start from 0. || +| `DialogueTree::Option(number)` | Get the text of an option from an options line type, using the option's Number. The numbers start from 0. || +| | _🔢 Number_ | Option Index Number | | `DialogueTree::OptionsCount()` | Get the number of options in an options line type || | `DialogueTree::SelectedOptionIndex()` | Get the number of the currently selected option. Use this to help you render the option selection marker at the right place. || -| `DialogueTree::TagParameter()` | Get parameter from a Tag found by the branch contains tag condition || -| `DialogueTree::Variable()` | Get dialogue state value || -| `DialogueTree::VerticalOptionsList()` | Get the text of all available options from an Options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> || +| `DialogueTree::TagParameter(number)` | Get parameter from a Tag found by the branch contains tag condition || +| | _🔢 Number_ | parameter Index Number _Optional_. | +| `DialogueTree::Variable(string)` | Get the number stored in a dialogue state variable || +| | _string_ | Dialogue state variable name | +| `DialogueTree::VariableString(string)` | Get the string stored in a dialogue state variable || +| | _string_ | Dialogue state variable name | +| `DialogueTree::VerticalOptionsList(string)` | Get the text of all available options from an options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> || +| | _string_ | Options Selection Cursor | | `DialogueTree::VisitedBranchTitles()` | Get a list of all visited branches || + + --- + +The Dialogue Tree extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Dialogue Tree** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/draggable-behavior/reference.md b/docs/gdevelop5/all-features/draggable-behavior/reference.md index 164eec5c5b..8173572570 100644 --- a/docs/gdevelop5/all-features/draggable-behavior/reference.md +++ b/docs/gdevelop5/all-features/draggable-behavior/reference.md @@ -11,13 +11,28 @@ Move objects by holding a mouse button (or touch). ### Behavior conditions **Being dragged** -Check if the object is being dragged. +Check if the object is being dragged. This means the mouse button or touch is pressed on it. When the mouse button or touch is released, the object is no longer being considered dragged (use the condition "Was just dropped" to check when the dragging is ending). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Was just dropped** -Check if the object was just dropped after being dragged. +Check if the object was just dropped after being dragged (the mouse button or touch was just released this frame). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior _No expressions for this behavior._ + + --- + +The Draggable Behavior extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Draggable Behavior** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/effect-capability/reference.md b/docs/gdevelop5/all-features/effect-capability/reference.md index d2e494ea13..c02ef2eb2d 100644 --- a/docs/gdevelop5/all-features/effect-capability/reference.md +++ b/docs/gdevelop5/all-features/effect-capability/reference.md @@ -1,37 +1,79 @@ -# Effect capability Reference +# Objects with effects Reference -Apply visual effects to objects. [Read more explanations about it.](/gdevelop5/objects) +Actions/conditions to enable/disable and change parameters of visual effects applied on objects. [Read more explanations about it.](/gdevelop5/objects) -## Effect capability +## Objects with effects -Apply visual effects to objects. +Actions/conditions to enable/disable and change parameters of visual effects applied on objects. ### Behavior actions **Enable an object effect** Enable an effect on the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🔤 Object Effect Name (String) + - Parameter 3 (❓ Yes or No): Enable? + **Effect property (enable or disable)** Enable or disable a property of an effect. You can find the property names (and change the effect names) in the effects window. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🔤 Object Effect Name (String) + - Parameter 3: 🔤 Object Effect Property Name (String) + - Parameter 4 (❓ Yes or No): Enable this property + **Effect property (number)** Change the value of a property of an effect. You can find the property names (and change the effect names) in the effects window. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🔤 Object Effect Name (String) + - Parameter 3: 🔤 Object Effect Property Name (String) + - Parameter 4 (🔢 Number): New value + **Effect property (string)** Change the value (string) of a property of an effect. You can find the property names (and change the effect names) in the effects window. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🔤 Object Effect Name (String) + - Parameter 3: 🔤 Object Effect Property Name (String) + - Parameter 4 (string): New value + ### Behavior conditions **Effect is enabled** Check if the effect on an object is enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🔤 Object Effect Name (String) + _No expressions for this behavior._ + + --- -*This page is an auto-generated reference page about the **Effect capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Objects with effects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Objects with effects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/effects/reference.md b/docs/gdevelop5/all-features/effects/reference.md index 019fbf972a..cc5d337c72 100644 --- a/docs/gdevelop5/all-features/effects/reference.md +++ b/docs/gdevelop5/all-features/effects/reference.md @@ -4,5 +4,491 @@ Lots of different effects to be used in your game. [Read more explanations about +### Effect "Adjustment" + +Adjust gamma, contrast, saturation, brightness, alpha or color-channel shift. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Alpha (between 0 and 1, 0 is transparent)**. Default value is `1`. For events, write: `"alpha"`. +- **Blue (between 0 and 5)**. Default value is `1`. For events, write: `"blue"`. +- **Brightness (between 0 and 5)**. Default value is `1`. For events, write: `"brightness"`. +- **Contrast (between 0 and 5)**. Default value is `1`. For events, write: `"contrast"`. +- **Gamma (between 0 and 5)**. Default value is `1`. For events, write: `"gamma"`. +- **Green (between 0 and 5)**. Default value is `1`. For events, write: `"green"`. +- **Red (between 0 and 5)**. Default value is `1`. For events, write: `"red"`. +- **Saturation (between 0 and 5)**. Default value is `1`. For events, write: `"saturation"`. + +### Effect "Advanced bloom" + +Applies a bloom effect. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Bloom Scale (between 0 and 2)**. Default value is `0.7`. For events, write: `"bloomScale"`. +- **Blur (between 0 and 20)**. Default value is `4`. For events, write: `"blur"`. +- **Brightness (between 0 and 2)**. Default value is `0.7`. For events, write: `"brightness"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Quality (between 0 and 20)**. Default value is `7`. For events, write: `"quality"`. +- **Threshold (between 0 and 1)**. Default value is `0.5`. For events, write: `"threshold"`. + +### Effect "ASCII" + +Render the image with ASCII characters only. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Size (between 2 and 20)**. Default value is `8`. For events, write: `"size"`. + +### Effect "Beveled edges" + +Add beveled edges around the rendered image. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Distance (between 10 and 20)**. Default value is `15`. For events, write: `"distance"`. +- **Light alpha (between 0 and 1)**. Default value is `1`. For events, write: `"lightAlpha"`. +- **Light color (color of the outline)**. Default value is `255;255;255`. For events, write: `"lightColor"`. +- **Rotation (between 0 and 360)**. Default value is `1`. For events, write: `"rotation"`. +- **Shadow alpha (between 0 and 1)**. Default value is `1`. For events, write: `"shadowAlpha"`. +- **Shadow color (color of the outline)**. Default value is `0;0;0`. For events, write: `"shadowColor"`. +- **Outer strength (between 0 and 5)**. Default value is `2`. For events, write: `"thickness"`. + +### Effect "Black and White" + +Alter the colors to make the image black and white + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`. + +### Effect "Blending mode" + +Alter the rendered image with the specified blend mode. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Mode (0: Normal, 1: Add, 2: Multiply, 3: Screen)**. Default value is `0`. For events, write: `"blendmode"`. +- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`. + +### Effect "Blur (Gaussian, slow - prefer to use Kawase blur)" + +Blur the rendered image. This is slow, so prefer to use Kawase blur in most cases. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Blur intensity**. Default value is `8`. For events, write: `"blur"`. +- **Kernel size (one of these values: 5, 7, 9, 11, 13, 15)**. Default value is `5`. For events, write: `"kernelSize"`. +- **Number of render passes. An high value will cause lags/poor performance.**. Default value is `1`. For events, write: `"quality"`. +- **Resolution**. Default value is `2`. For events, write: `"resolution"`. + +### Effect "Brightness" + +Make the image brighter. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Brightness (between 0 and 1)**. Default value is `0.8`. For events, write: `"brightness"`. + +### Effect "Bulge Pinch" + +Bulges or pinches the image in a circle. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Center X (between 0 and 1, 0.5 is image middle)**. Default value is `0`. For events, write: `"centerX"`. +- **Center Y (between 0 and 1, 0.5 is image middle)**. Default value is `0`. For events, write: `"centerY"`. +- **Radius**. Default value is `100`. For events, write: `"radius"`. +- **strength (between -1 and 1)**: -1 is strong pinch, 0 is no effect, 1 is strong bulge. Default value is `1`. For events, write: `"strength"`. + +### Effect "CRT" + +Apply an effect resembling old CRT monitors. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Noise Frequency**: Number of updates per second (0: no updates). Default value is `60`. For events, write: `"animationFrequency"`. +- **Interlaced Lines Speed**: 0: Pause, 0.5: Half speed, 1: Normal speed, 2: Double speed, etc.... Default value is `1`. For events, write: `"animationSpeed"`. +- **Curvature (between 0 and 10)**. Default value is `1`. For events, write: `"curvature"`. +- **Line contrast (between 0 and 1)**. Default value is `0.25`. For events, write: `"lineContrast"`. +- **Line width (between 0 and 5)**. Default value is `1`. For events, write: `"lineWidth"`. +- **Noise (between 0 and 1)**. Default value is `0.3`. For events, write: `"noise"`. +- **Noise size (between 0 and 10)**. Default value is `1`. For events, write: `"noiseSize"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Show vertical lines**. Default value is `false`. For events, write: `"verticalLine"`. +- **Vignetting (between 0 and 1)**. Default value is `0.3`. For events, write: `"vignetting"`. +- **Vignetting alpha (between 0 and 1)**. Default value is `1`. For events, write: `"vignettingAlpha"`. +- **Vignetting blur (between 0 and 1)**. Default value is `0.3`. For events, write: `"vignettingBlur"`. + +### Effect "Color Map" + +Change the color rendered on screen. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Color map texture for the effect**: You can change colors of pixels by modifying a reference color image, containing each colors, called the *Color Map Texture*. To get started, **download** [a default color map texture here](https://wiki.gdevelop.io/gdevelop5/interface/scene-editor/layer-effects).. Default value is ``. For events, write: `"colorMapTexture"`. +- **Mix**: Mix value of the effect on the layer (in percent). Default value is `100`. For events, write: `"mix"`. +- **Disable anti-aliasing ("nearest" pixel rounding)**. Default value is `false`. For events, write: `"nearest"`. + +### Effect "Color Replace" + +Effect replacing a color (or similar) by another. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Epsilon (between 0 and 1)**: Tolerance/sensitivity of the floating-point comparison between colors (lower = more exact, higher = more inclusive). Default value is `0.4`. For events, write: `"epsilon"`. +- **New Color**: The new color. Default value is `255;255;255`. For events, write: `"newColor"`. +- **Original Color**: The color that will be changed. Default value is `252;3;65`. For events, write: `"originalColor"`. + +### Effect "Displacement" + +Uses the pixel values from the specified texture (called the displacement map) to perform a displacement of an object. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Displacement map texture**: Displacement map texture for the effect. To get started, **download** [a default displacement map texture here](https://wiki.gdevelop.io/gdevelop5/interface/scene-editor/layer-effects).. Default value is ``. For events, write: `"displacementMapTexture"`. +- **Scale on X axis**. Default value is `20`. For events, write: `"scaleX"`. +- **Scale on Y axis**. Default value is `20`. For events, write: `"scaleY"`. + +### Effect "Dot" + +Applies a dotscreen effect making objects appear to be made out of black and white halftone dots like an old printer. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Angle (between 0 and 5)**: The radius of the effect. Default value is `5`. For events, write: `"angle"`. +- **Scale (between 0.3 and 1)**: The scale of the effect. Default value is `1`. For events, write: `"scale"`. + +### Effect "Drop shadow" + +Add a shadow around the rendered image. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Alpha (between 0 and 1)**. Default value is `1`. For events, write: `"alpha"`. +- **Blur (between 0 and 20)**. Default value is `2`. For events, write: `"blur"`. +- **Color of the shadow**. Default value is `255;255;255`. For events, write: `"color"`. +- **Distance (between 0 and 50)**. Default value is `1`. For events, write: `"distance"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Quality (between 1 and 20)**. Default value is `3`. For events, write: `"quality"`. +- **Rotation (between 0 and 360)**. Default value is `0`. For events, write: `"rotation"`. +- **Shadow only (shows only the shadow when enabled)**. Default value is `false`. For events, write: `"shadowOnly"`. + +### Effect "Glitch" + +Applies a glitch effect to an object. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Animation Frequency**: Number of updates per second (0: no updates). Default value is `60`. For events, write: `"animationFrequency"`. +- **Average**: Divide the bands roughly based on equal amounts. Default value is `false`. For events, write: `"average"`. +- **Blue X offset (between -50 and 50)**. Default value is `10`. For events, write: `"blueX"`. +- **Blue Y offset (between -50 and 50)**. Default value is `-4`. For events, write: `"blueY"`. +- **Direction (between -180 and 180)**: The angle in degree of the offset of slices. Default value is `0`. For events, write: `"direction"`. +- **Fill Mode (between 0 and 4)**: The fill mode of the space after the offset.(0: TRANSPARENT, 1: ORIGINAL, 2: LOOP, 3: CLAMP, 4: MIRROR). Default value is `0`. For events, write: `"fillMode"`. +- **Green X offset (between -50 and 50)**. Default value is `10`. For events, write: `"greenX"`. +- **Green Y offset (between -50 and 50)**. Default value is `-4`. For events, write: `"greenY"`. +- **Min Size**: Minimum size of individual slice. Default value is `8`. For events, write: `"minSize"`. +- **Offset (between -400 and 400)**: The maximum offset amount of slices. Default value is `100`. For events, write: `"offset"`. +- **Red X offset (between -50 and 50)**. Default value is `2`. For events, write: `"redX"`. +- **Red Y offset (between -50 and 50)**. Default value is `2`. For events, write: `"redY"`. +- **Sample Size**: The resolution of the displacement image. Default value is `512`. For events, write: `"sampleSize"`. +- **Slices (between 2 and infinite)**: The maximum number of slices. Default value is `5`. For events, write: `"slices"`. + +### Effect "Glow" + +Add a glow effect around the rendered image. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Color (color of the outline)**. Default value is `255;255;255`. For events, write: `"color"`. +- **Distance (between 10 and 20)**. Default value is `15`. For events, write: `"distance"`. +- **Inner strength (between 0 and 20)**. Default value is `1`. For events, write: `"innerStrength"`. +- **Outer strength (between 0 and 20)**. Default value is `2`. For events, write: `"outerStrength"`. + +### Effect "Godray" + +Apply and animate atmospheric light rays. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Angle (between -60 and 60)**. Default value is `30`. For events, write: `"angle"`. +- **Animation Speed**: 0: Pause, 0.5: Half speed, 1: Normal speed, 2: Double speed, etc.... Default value is `1`. For events, write: `"animationSpeed"`. +- **Gain (between 0 and 1)**. Default value is `0.6`. For events, write: `"gain"`. +- **Lacunarity (between 0 and 5)**. Default value is `2.75`. For events, write: `"lacunarity"`. +- **Light (between 0 and 60)**. Default value is `30`. For events, write: `"light"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Parallel (parallel rays)**. Default value is `true`. For events, write: `"parallel"`. +- **Center X (between 100 and 1000)**. Default value is `100`. For events, write: `"x"`. +- **Center Y (between -1000 and 100)**. Default value is `100`. For events, write: `"y"`. + +### Effect "HSL Adjustment" + +Adjust hue, saturation and lightness. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Alpha (between 0 and 1, 0 is transparent)**. Default value is `1`. For events, write: `"alpha"`. +- **Colorize from the grayscale image**. Default value is `false`. For events, write: `"colorize"`. +- **Hue in degrees (between -180 and 180)**. Default value is `0`. For events, write: `"hue"`. +- **Lightness (between -1 and 1)**. Default value is `0`. For events, write: `"lightness"`. +- **Saturation (between -1 and 1)**. Default value is `0`. For events, write: `"saturation"`. + +### Effect "Blur (Kawase, fast)" + +Blur the rendered image, with much better performance than Gaussian blur. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Blur (between 0 and 20)**. Default value is `0.5`. For events, write: `"blur"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Pixelize X (between 0 and 10)**. Default value is `1`. For events, write: `"pixelizeX"`. +- **Pixelize Y (between 0 and 10)**. Default value is `1`. For events, write: `"pixelizeY"`. +- **Quality (between 1 and 20)**. Default value is `3`. For events, write: `"quality"`. + +### Effect "Light Night" + +Alter the colors to simulate night. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`. + +### Effect "Motion Blur" + +Blur the rendered image to give a feeling of speed. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Kernel size (odd number between 3 and 25)**: Quality of the blur.. Default value is `5`. For events, write: `"kernelSize"`. +- **Offset**. Default value is `0`. For events, write: `"offset"`. +- **Velocity on X axis**. Default value is `0`. For events, write: `"velocityX"`. +- **Velocity on Y axis**. Default value is `0`. For events, write: `"velocityY"`. + +### Effect "Dark Night" + +Alter the colors to simulate a dark night. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Intensity (between 0 and 1)**. Default value is `0.5`. For events, write: `"intensity"`. +- **Opacity (between 0 and 1)**. Default value is `0.5`. For events, write: `"opacity"`. + +### Effect "Noise" + +Add some noise on the rendered image. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Noise intensity (between 0 and 1)**. Default value is `0.5`. For events, write: `"noise"`. + +### Effect "Old Film" + +Add a Old film effect around the rendered image. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Animation Frequency**: Number of updates per second (0: no updates). Default value is `60`. For events, write: `"animationFrequency"`. +- **Noise (between 0 and 1)**: Opacity/intensity of the noise effect. Default value is `0.3`. For events, write: `"noise"`. +- **Noise Size (between 0 and 10)**: The size of the noise particles. Default value is `1`. For events, write: `"noiseSize"`. +- **Scratch (between -1 and 1)**: How often scratches appear. Default value is `0.5`. For events, write: `"scratch"`. +- **Scratch Density (between 0 and 1)**: The density of the number of scratches. Default value is `0.3`. For events, write: `"scratchDensity"`. +- **Scratch Width (between 1 and 20)**: The width of the scratches. Default value is `1.0`. For events, write: `"scratchWidth"`. +- **Sepia (between 0 and 1)**: The amount of saturation of sepia effect, a value of 1 is more saturation and closer to 0 is less, and a value of 0 produces no sepia effect. Default value is `0.3`. For events, write: `"sepia"`. +- **Vignetting (between 0 and 1)**: The radius of the vignette effect. Default value is `0.3`. For events, write: `"vignetting"`. +- **Vignetting Alpha (between 0 and 1)**. Default value is `1.0`. For events, write: `"vignettingAlpha"`. +- **Vignetting Blur (between 0 and 1)**. Default value is `0.3`. For events, write: `"vignettingBlur"`. + +### Effect "Outline" + +Draws an outline around the rendered image. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Color of the outline**. Default value is `255;255;255`. For events, write: `"color"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Thickness (between 0 and 20)**. Default value is `2`. For events, write: `"thickness"`. + +### Effect "Pixelate" + +Applies a pixelate effect, making display objects appear 'blocky'. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Size**: Size of the pixels (10 pixels by default). Default value is `10`. For events, write: `"size"`. + +### Effect "RGB split (chromatic aberration)" + +Applies a RGB split effect also known as chromatic aberration. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Blue X offset (between -20 and 20)**. Default value is `0`. For events, write: `"blueX"`. +- **Blue Y offset (between -20 and 20)**. Default value is `10`. For events, write: `"blueY"`. +- **Green X offset (between -20 and 20)**. Default value is `0`. For events, write: `"greenX"`. +- **Green Y offset (between -20 and 20)**. Default value is `0`. For events, write: `"greenY"`. +- **Red X offset (between -20 and 20)**. Default value is `-10`. For events, write: `"redX"`. +- **Red Y offset (between -20 and 20)**. Default value is `1`. For events, write: `"redY"`. + +### Effect "Radial Blur" + +Applies a Motion blur to an object. + +This effect is for 2D layers only. + +Properties of this effect are: + +- **Angle (between -180 and 180)**: The angle in degree of the motion for blur effect. Default value is `0`. For events, write: `"angle"`. +- **Center X (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerX"`. +- **Center Y (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerY"`. +- **Kernel Size (between 3 and 25)**: The kernel size of the blur filter (Odd number). Default value is `5`. For events, write: `"kernelSize"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **Radius**: The maximum size of the blur radius, -1 is infinite. Default value is `-1`. For events, write: `"radius"`. + +### Effect "Reflection" + +Applies a reflection effect to simulate the reflection on water with waves. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Alpha ending**: Ending alpha (1 by default). Default value is `1`. For events, write: `"alphaEnding"`. +- **Alpha start**: Starting alpha (1 by default). Default value is `1`. For events, write: `"alphaStart"`. +- **Amplitude ending**: Ending amplitude of waves (20 by default). Default value is `20`. For events, write: `"amplitudeEnding"`. +- **Amplitude start**: Starting amplitude of waves (0 by default). Default value is `0`. For events, write: `"amplitudeStart"`. +- **Animation Speed**: 0: Pause, 0.5: Half speed, 1: Normal speed, 2: Double speed, etc.... Default value is `1`. For events, write: `"animationSpeed"`. +- **Vertical position of the reflection point**: Default is 50% (middle). Smaller numbers produce a larger reflection, larger numbers produce a smaller reflection.. Default value is `0.5`. For events, write: `"boundary"`. +- **Reflect the image on the waves**. Default value is `true`. For events, write: `"mirror"`. +- **Wave length ending**: Ending wave length (100 by default). Default value is `100`. For events, write: `"waveLengthEnding"`. +- **Wave length start**: Starting wave length (30 by default). Default value is `30`. For events, write: `"waveLengthStart"`. + +### Effect "Sepia" + +Alter the colors to sepia. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Opacity (between 0 and 1)**. Default value is `1`. For events, write: `"opacity"`. + +### Effect "Shockwave" + +Deform the image the way a drop deforms a water surface. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Amplitude**. Default value is `50`. For events, write: `"amplitude"`. +- **Brightness**. Default value is `1`. For events, write: `"brightness"`. +- **Center on X axis**. Default value is `0.5`. For events, write: `"centerX"`. +- **Center on Y axis**: (0,0) is the top-left and (1,1) is the bottom right.. Default value is `0.5`. For events, write: `"centerY"`. +- **Maximum radius (0 for infinity)**. Default value is `0`. For events, write: `"radius"`. +- **Spreading speed (in pixels per second)**. Default value is `500`. For events, write: `"speed"`. +- **Elapsed time**: It can be set back to 0 to play the shockwave animation again.. Default value is `0`. For events, write: `"time"`. +- **Wavelength**. Default value is `200`. For events, write: `"wavelength"`. + +### Effect "Tilt shift" + +Render a tilt-shift-like camera effect. + +This effect is for 2D layers or objects only. + +Properties of this effect are: + +- **Blur (between 0 and 200)**. Default value is `30`. For events, write: `"blur"`. +- **Gradient blur (between 0 and 2000)**. Default value is `1000`. For events, write: `"gradientBlur"`. + +### Effect "Twist" + +Applies a twist effect making objects appear twisted in the given direction. + +This effect is for 2D layers only. + +Properties of this effect are: + +- **Angle (between -10 and 10)**: The angle in degree of the twist. Default value is `4`. For events, write: `"angle"`. +- **Offset X (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"offsetX"`. +- **Offset Y (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"offsetY"`. +- **Padding**: Padding for the visual effect area. Default value is `20`. For events, write: `"padding"`. +- **Radius**: The radius of the twist. Default value is `200`. For events, write: `"radius"`. + +### Effect "Zoom blur" + +Applies a Zoom blur. + +This effect is for 2D layers only. + +Properties of this effect are: + +- **Center X (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerX"`. +- **Center Y (between 0 and 1, 0.5 is image middle)**. Default value is `0.5`. For events, write: `"centerY"`. +- **Inner radius**. Default value is `200`. For events, write: `"innerRadius"`. +- **Padding**: Padding for the visual effect area. Default value is `0`. For events, write: `"padding"`. +- **strength (between 0 and 5)**. Default value is `0.3`. For events, write: `"strength"`. + + + --- + +The Effects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Effects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/expressions-reference.md b/docs/gdevelop5/all-features/expressions-reference.md index 3d8bf07762..96abc077ff 100644 --- a/docs/gdevelop5/all-features/expressions-reference.md +++ b/docs/gdevelop5/all-features/expressions-reference.md @@ -20,18 +20,27 @@ Common features that can be used for all objects in GDevelop. [Read more explana | Expression | Description | | |-----|-----|-----| -| `PickedInstancesCount()` | Return the number of instances picked by the previous conditions (or actions). || -| `SceneInstancesCount()` | Return the number of instances of the specified objects living on the scene. || +| `PickedInstancesCount(object)` | Return the number of instances picked by the previous conditions (or actions). || +| | _👾 Object_ | Object | +| `SceneInstancesCount(object)` | Return the number of instances of the specified objects living on the scene. || +| | _👾 Object_ | Object | | Expression | Description | | |-----|-----|-----| -| `Object.Angle()` | Current angle, in degrees, of the object || -| `Object.AngleToObject()` | Compute the angle between two objects (in degrees). If you need the angle to an arbitrary position, use AngleToPosition. || -| `Object.AngleToPosition()` | Compute the angle between the object center and a "target" position (in degrees). If you need the angle between two objects, use AngleToObject. || -| `Object.ArrayVariableFirstNumber()` | Get the value of the first element of an object array variable, if it is a number variable. || -| `Object.ArrayVariableFirstString()` | Get the value of the first element of an object array variable, if it is a text (string) variable. || -| `Object.ArrayVariableLastNumber()` | Get the value of the last element of an object array variable, if it is a number variable. || -| `Object.ArrayVariableLastString()` | Get the value of the last element of an object array variable, if it is a text (string) variable. || +| `Object.Angle()` | Current angle, in degrees, of the object. For 3D objects, this is the angle around the Z axis. || +| `Object.AngleToObject(object)` | Compute the angle between two objects (in degrees). If you need the angle to an arbitrary position, use AngleToPosition. || +| | _👾 Object_ | Object | +| `Object.AngleToPosition(number, number)` | Compute the angle between the object center and a "target" position (in degrees). If you need the angle between two objects, use AngleToObject. || +| | _🔢 Number_ | Target X position | +| | _🔢 Number_ | Target Y position | +| `Object.ArrayVariableFirstNumber(object variable)` | Get the value of the first element of an object array variable, if it is a number variable. || +| | _🗄️ Object variable_ | Array variable | +| `Object.ArrayVariableFirstString(object variable)` | Get the value of the first element of an object array variable, if it is a text (string) variable. || +| | _🗄️ Object variable_ | Array variable | +| `Object.ArrayVariableLastNumber(object variable)` | Get the value of the last element of an object array variable, if it is a number variable. || +| | _🗄️ Object variable_ | Array variable | +| `Object.ArrayVariableLastString(object variable)` | Get the value of the last element of an object array variable, if it is a text (string) variable. || +| | _🗄️ Object variable_ | Array variable | | `Object.BoundingBoxBottom()` | Return the bounding box (the area encapsulating the object) bottom position. || | `Object.BoundingBoxCenterX()` | Return the bounding box (the area encapsulating the object) center X position. || | `Object.BoundingBoxCenterY()` | Return the bounding box (the area encapsulating the object) center Y position. || @@ -40,8 +49,11 @@ Common features that can be used for all objects in GDevelop. [Read more explana | `Object.BoundingBoxTop()` | Return the bounding box (the area encapsulating the object) top position. || | `Object.CenterX()` | Return the X position of the center of rotation. || | `Object.CenterY()` | Return the Y position of the center of rotation. || -| `Object.Distance()` | Distance between two objects || -| `Object.DistanceToPosition()` | Distance between an object and a position || +| `Object.Distance(object)` | Distance between two objects || +| | _👾 Object_ | Object | +| `Object.DistanceToPosition(number, number)` | Distance between an object and a position || +| | _🔢 Number_ | Target X position | +| | _🔢 Number_ | Target Y position | | `Object.ForceAngle()` | Angle of the sum of forces (in degrees) || | `Object.ForceLength()` | Length of the sum of forces || | `Object.ForceX()` | X coordinate of the sum of forces || @@ -49,17 +61,28 @@ Common features that can be used for all objects in GDevelop. [Read more explana | `Object.Height()` | Height of the object || | `Object.Layer()` | Return the name of the layer the object is on || | `Object.ObjectName()` | Return the name of the object || -| `Object.ObjectTimerElapsedTime()` | Value of an object timer || -| `Object.SqDistance()` | Square distance between two objects || -| `Object.SqDistanceToPosition()` | Square distance between an object and a position || -| `Object.Variable()` | Number value of an object variable || -| `Object.VariableChildCount()` | Number of children in an object array or structure variable || -| `Object.VariableString()` | Text of an object variable || +| `Object.ObjectTimerElapsedTime(string)` | Value of an object timer || +| | _🔤 Name (String)_ | Timer's name | +| `Object.SqDistance(object)` | Square distance between two objects || +| | _👾 Object_ | Object | +| `Object.SqDistanceToPosition(number, number)` | Square distance between an object and a position || +| | _🔢 Number_ | Target X position | +| | _🔢 Number_ | Target Y position | +| `Object.Variable(object variable)` | Number value of an object variable || +| | _🗄️ Object variable_ | Variable | +| `Object.VariableChildCount(object variable)` | Number of children in an object array or structure variable || +| | _🗄️ Object variable_ | Array or structure variable | +| `Object.VariableString(object variable)` | Text of an object variable || +| | _🗄️ Object variable_ | Variable | | `Object.Width()` | Width of the object || | `Object.X()` | X position of the object || -| `Object.XFromAngleAndDistance()` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| `Object.XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | | `Object.Y()` | Y position of the object || -| `Object.YFromAngleAndDistance()` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| `Object.YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | | `Object.ZOrder()` | Z-order of an object || --- @@ -68,13 +91,15 @@ Common features that can be used for all objects in GDevelop. [Read more explana ## Sprite -Animated object which can be used for most elements of a game. [Read more explanations about it.](/gdevelop5/objects/sprite) +Animated object which can be used for most elements of a 2D game. [Read more explanations about it.](/gdevelop5/objects/sprite) | Expression | Description | | |-----|-----|-----| | `Object.AnimationFrameCount()` | Number of frames in the current animation of the object || -| `Object.PointX()` | X position of a point || -| `Object.PointY()` | Y position of a point || +| `Object.PointX(object point name)` | X position of a point || +| | _🔤 Object Point Name (String)_ | Name of the point | +| `Object.PointY(object point name)` | Y position of a point || +| | _🔤 Object Point Name (String)_ | Name of the point | | `Object.Sprite()` | Current frame of the animation of the object || --- @@ -82,17 +107,25 @@ Animated object which can be used for most elements of a game. [Read more explan ## Conversion -Expressions to convert number, texts and quantities. [Read more explanations about it.](/gdevelop5/all-features/common-conversions) +Expressions to convert numbers to string, strings to numbers, angles (degrees from/to radians) and a GDevelop variable to/from a JSON string. [Read more explanations about it.](/gdevelop5/all-features/common-conversions) | Expression | Description | | |-----|-----|-----| -| `LargeNumberToString()` | Convert the result of the expression to text, without using the scientific notation || -| `ObjectVarToJSON()` | Convert an object variable to JSON || -| `ToDeg()` | Converts the angle, expressed in radians, into degrees || -| `ToJSON()` | Convert a variable to JSON || -| `ToNumber()` | Convert the text to a number || -| `ToRad()` | Converts the angle, expressed in degrees, into radians || -| `ToString()` | Convert the result of the expression to text || +| `LargeNumberToString(number)` | Convert the result of the expression to text, without using the scientific notation || +| | _🔢 Number_ | Expression to be converted to text | +| `ObjectVarToJSON(object, object variable)` | Convert an object variable to JSON || +| | _👾 Object_ | The object with the variable | +| | _🗄️ Object variable_ | The object variable to be stringified | +| `ToDeg(number)` | Converts the angle, expressed in radians, into degrees || +| | _🔢 Number_ | Angle, in radians | +| `ToJSON(variable)` | Convert a variable to JSON || +| | _🗄️ Any variable_ | The variable to be stringified | +| `ToNumber(string)` | Convert the text to a number || +| | _string_ | Text to convert to a number | +| `ToRad(number)` | Converts the angle, expressed in degrees, into radians || +| | _🔢 Number_ | Angle, in degrees | +| `ToString(number)` | Convert the result of the expression to text || +| | _🔢 Number_ | Expression to be converted to text | --- @@ -103,48 +136,53 @@ Actions, conditions and expressions to handle variables, from simple variables l | Expression | Description | | |-----|-----|-----| -| `GlobalVariable()` | Number value of a global variable || -| `GlobalVariableChildCount()` | Number of children in a global array or structure variable || -| `GlobalVariableFirstNumber()` | Value of the first element of a global array variable, if it is a number variable || -| `GlobalVariableFirstString()` | Value of the first element of a global array variable, if it is a text (string) variable. || -| `GlobalVariableLastNumber()` | Value of the last element of a global array variable, if it is a number variable || -| `GlobalVariableLastString()` | Value of the last element of a global array variable, if it is a text (string) variable. || -| `GlobalVariableString()` | Text of a global variable || -| `SceneVariableFirstNumber()` | Get the value of the first element of a scene array variable, if it is a number. || -| `SceneVariableFirstString()` | Get the value of the first element of a scene array variable, if it is a text (string). || -| `SceneVariableLastNumber()` | Get the value of the last element of a scene array variable, if it is a number. || -| `SceneVariableLastString()` | Get the value of the last element of a scene array variable, if it is a text (string). || -| `Variable()` | Number value of a scene variable || -| `VariableChildCount()` | Number of children in a scene array or structure variable || -| `VariableFirstNumber()` | Get the value of the first element of an array variable, if it is a number. || -| `VariableFirstString()` | Get the value of the first element of an array variable, if it is a text (string). || -| `VariableLastNumber()` | Get the value of the last element of an array variable, if it is a number. || -| `VariableLastString()` | Get the value of the last element of an array variable, if it is a text (string). || -| `VariableString()` | Text of a scene variable || +| `VariableChildCount(variable)` | Number of children in a scene array or structure variable || +| | _🗄️ Any variable_ | Array or structure variable | +| `VariableFirstNumber(variable)` | Get the value of the first element of an array variable, if it is a number. || +| | _🗄️ Any variable_ | Array variable | +| `VariableFirstString(variable)` | Get the value of the first element of an array variable, if it is a text (string). || +| | _🗄️ Any variable_ | Array variable | +| `VariableLastNumber(variable)` | Get the value of the last element of an array variable, if it is a number. || +| | _🗄️ Any variable_ | Array variable | +| `VariableLastString(variable)` | Get the value of the last element of an array variable, if it is a text (string). || +| | _🗄️ Any variable_ | Array variable | --- ## Mouse and touch -Conditions and actions to handle either the mouse or touches on touchscreen. By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](/gdevelop5/all-features/mouse-touch) +Conditions, actions and expressions to handle either the mouse or touches on a touchscreen. Notably: cursor position, mouse wheel, mouse buttons, touch positions, started/end touches, etc... + +By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](/gdevelop5/all-features/mouse-touch) | Expression | Description | | |-----|-----|-----| -| `CursorX()` | Return the X position of the cursor or of a touch. || -| `CursorY()` | Return the Y position of the cursor or of a touch. || +| `CursorX(layer name, number)` | Return the X position of the cursor or of a touch. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CursorY(layer name, number)` | Return the Y position of the cursor or of a touch. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | | `MouseWheelDelta()` | Mouse wheel displacement || | `StartedTouchOrMouseCount()` | The number of touches (including the mouse) that have just started on this frame. The touch identifiers can be accessed using StartedTouchOrMouseId(). || -| `StartedTouchOrMouseId()` | The identifier of the touch or mouse that has just started on this frame. The number of touches can be accessed using StartedTouchOrMouseCount(). || -| `TouchX()` | Return the X position of a specific touch. || -| `TouchY()` | Return the Y position of a specific touch. || +| `StartedTouchOrMouseId(number)` | The identifier of the touch or mouse that has just started on this frame. The number of touches can be accessed using StartedTouchOrMouseCount(). || +| | _🔢 Number_ | Touch index | +| `TouchX(number, layer name, number)` | Return the X position of a specific touch. || +| | _🔢 Number_ | Touch identifier | +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `TouchY(number, layer name, number)` | Return the Y position of a specific touch. || +| | _🔢 Number_ | Touch identifier | +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | --- ## Keyboard -Allows your game to respond to keyboard input. Note that this does not work with on-screen keyboard on touch devices: use instead conditions related to touch when making a game for mobile/touchscreen devices. [Read more explanations about it.](/gdevelop5/all-features/keyboard) +Conditions to check keys pressed on a keyboard. Note that this does not work with on-screen keyboard on touch devices: use instead mouse/touch conditions when making a game for mobile/touchscreen devices or when making a new game from scratch. [Read more explanations about it.](/gdevelop5/all-features/keyboard) | Expression | Description | | |-----|-----|-----| @@ -155,27 +193,30 @@ Allows your game to respond to keyboard input. Note that this does not work with ## Scene -Actions and conditions to manipulate the scenes during the game. +Actions/conditions to change the current scene (or pause it and launch another one, or go back to the previous one), check if a scene or the game has just started/resumed, preload assets of a scene, get the current scene name or loading progress, quit the game, set background color, or disable input when focus is lost. | Expression | Description | | |-----|-----|-----| | `CurrentSceneName()` | Name of the current scene || -| `SceneLoadingProgress()` | Return The progress of resources loading in background for a scene (between 0 and 1).. || +| `SceneLoadingProgress(scene name)` | Return The progress of resources loading in background for a scene (between 0 and 1).. || +| | _🔤 Name of a scene (String)_ | Scene name | --- ## Timers and time -Actions and conditions to run timers, get the current time or modify the time scale (speed at which the game is running - useful for slow motion effects). [Read more explanations about it.](/gdevelop5/all-features/timers-and-time) +Actions and conditions to start, pause or reset scene timers, modify the time scale (speed at which the game is running - useful for slow motion effects). Also contains an action that wait for a delay before running the next actions and sub-events and expressions to read the time scale, time delta of the last frame or timer elapsed time. [Read more explanations about it.](/gdevelop5/all-features/timers-and-time) | Expression | Description | | |-----|-----|-----| -| `Time()` | Current time || +| `Time(string)` | Gives the current time || +| | _🔤 String_ | - Hour of the day: "hour"- Minutes: "min"- Seconds: "sec"- Day of month: "mday"- Months since January: "mon"- Year since 1900: "year"- Days since Sunday: "wday"- Days since Jan 1st: "yday"- Timestamp (ms): "timestamp" | | `TimeDelta()` | Time elapsed since the last frame rendered on screen || -| `TimeFromStart()` | Time elapsed since the beginning of the scene || +| `TimeFromStart()` | Time elapsed since the beginning of the scene (in seconds). || | `TimeScale()` | Returns the time scale of the scene. || -| `TimerElapsedTime()` | Value of a scene timer || +| `TimerElapsedTime(string)` | Value of a scene timer (in seconds) || +| | _🔤 Name (String)_ | Timer's name | --- @@ -186,79 +227,184 @@ A set of mathematical functions that can be used in expressions. | Expression | Description | | |-----|-----|-----| -| `AngleBetweenPositions()` | Compute the angle between two positions (in degrees). || -| `AngleDifference()` | Difference between two angles || -| `DistanceBetweenPositions()` | Compute the distance between two positions. || +| `AngleBetweenPositions(number, number, number, number)` | Compute the angle between two positions (in degrees). || +| | _🔢 Number_ | First point X position | +| | _🔢 Number_ | First point Y position | +| | _🔢 Number_ | Second point X position | +| | _🔢 Number_ | Second point Y position | +| `AngleDifference(number, number)` | Difference between two angles || +| | _🔢 Number_ | First angle, in degrees | +| | _🔢 Number_ | Second angle, in degrees | +| `DistanceBetweenPositions(number, number, number, number)` | Compute the distance between two positions. || +| | _🔢 Number_ | First point X position | +| | _🔢 Number_ | First point Y position | +| | _🔢 Number_ | Second point X position | +| | _🔢 Number_ | Second point Y position | | `Pi()` | The number Pi (3.1415...) || -| `Random()` | Random integer || -| `RandomFloat()` | Random float || -| `RandomFloatInRange()` | Random float in range || -| `RandomInRange()` | Random integer in range || -| `RandomWithStep()` | Random value in steps || -| `XFromAngleAndDistance()` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || -| `YFromAngleAndDistance()` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || -| `abs()` | Absolute value || -| `acos()` | Arccosine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || -| `acosh()` | Hyperbolic arccosine || -| `asin()` | Arcsine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || -| `asinh()` | Arcsine || -| `atan()` | Arctangent, return an angle (in radian). `ToDeg` allows to convert it to degrees. || -| `atan2()` | 2 argument arctangent (atan2) || -| `atanh()` | Hyperbolic arctangent || -| `cbrt()` | Cube root || -| `ceil()` | Round number up to an integer || -| `ceilTo()` | Round number up to the Nth decimal place || -| `clamp()` | Restrict a value to a given range || -| `cos()` | Cosine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || -| `cosh()` | Hyperbolic cosine || -| `cot()` | Cotangent of a number || -| `csc()` | Cosecant of a number || -| `exp()` | Exponential of a number || -| `floor()` | Round number down to an integer || -| `floorTo()` | Round number down to the Nth decimal place || -| `lerp()` | Linearly interpolate a to b by x || -| `lerpAngle()` | Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle. || -| `log()` | Logarithm || -| `log10()` | Base-10 logarithm || -| `log2()` | Base 2 Logarithm || -| `max()` | Maximum of two numbers || -| `min()` | Minimum of two numbers || -| `mod()` | x mod y || -| `normalize()` | Remap a value between 0 and 1. || -| `nthroot()` | Nth root of a number || -| `pow()` | Raise a number to power n || -| `round()` | Round a number || -| `roundTo()` | Round a number to the Nth decimal place || -| `sec()` | Secant || -| `sign()` | Return the sign of a number (1,-1 or 0) || -| `sin()` | Sine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || -| `sinh()` | Hyperbolic sine || -| `sqrt()` | Square root of a number || -| `tan()` | Tangent of an angle (in radian). If you want to use degrees, use`ToRad`: `tan(ToRad(45))`. || -| `tanh()` | Hyperbolic tangent || -| `trunc()` | Truncate a number || +| `Random(number)` | Random integer || +| | _🔢 Number_ | Maximum value | +| `RandomFloat(number)` | Random float || +| | _🔢 Number_ | Maximum value | +| `RandomFloatInRange(number, number)` | Random float in range || +| | _🔢 Number_ | Minimum value | +| | _🔢 Number_ | Maximum value | +| `RandomInRange(number, number)` | Random integer in range || +| | _🔢 Number_ | Minimum value | +| | _🔢 Number_ | Maximum value | +| `RandomWithStep(number, number, number)` | Random value in steps || +| | _🔢 Number_ | Minimum value | +| | _🔢 Number_ | Maximum value | +| | _🔢 Number_ | Step | +| `XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | +| `YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | +| `abs(number)` | Return the non-negative value by removing the sign. The absolute value of -8 is 8. || +| | _🔢 Number_ | Expression | +| `acos(number)` | Arccosine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || +| | _🔢 Number_ | Expression | +| `acosh(number)` | Hyperbolic arccosine || +| | _🔢 Number_ | Expression | +| `asin(number)` | Arcsine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || +| | _🔢 Number_ | Expression | +| `asinh(number)` | Arcsine || +| | _🔢 Number_ | Expression | +| `atan(number)` | Arctangent, return an angle (in radian). `ToDeg` allows to convert it to degrees. || +| | _🔢 Number_ | Expression | +| `atan2(number, number)` | 2 argument arctangent (atan2) || +| | _🔢 Number_ | Y | +| | _🔢 Number_ | X | +| `atanh(number)` | Hyperbolic arctangent || +| | _🔢 Number_ | Expression | +| `cbrt(number)` | Cube root || +| | _🔢 Number_ | Expression | +| `ceil(number)` | Round number up to an integer || +| | _🔢 Number_ | Expression | +| `ceilTo(number, number)` | Round number up to the Nth decimal place || +| | _🔢 Number_ | Expression | +| | _🔢 Number_ | Expression _Optional_. | +| `clamp(number, number, number)` | Restrict a value to a given range || +| | _🔢 Number_ | Value | +| | _🔢 Number_ | Min | +| | _🔢 Number_ | Max | +| `cos(number)` | Cosine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || +| | _🔢 Number_ | Expression | +| `cosh(number)` | Hyperbolic cosine || +| | _🔢 Number_ | Expression | +| `cot(number)` | Cotangent of a number || +| | _🔢 Number_ | Expression | +| `csc(number)` | Cosecant of a number || +| | _🔢 Number_ | Expression | +| `exp(number)` | Exponential of a number || +| | _🔢 Number_ | Expression | +| `floor(number)` | Round number down to an integer || +| | _🔢 Number_ | Expression | +| `floorTo(number, number)` | Round number down to the Nth decimal place || +| | _🔢 Number_ | Expression | +| | _🔢 Number_ | Expression _Optional_. | +| `lerp(number, number, number)` | Linearly interpolate a to b by x || +| | _🔢 Number_ | a (in a+(b-a) * x) | +| | _🔢 Number_ | b (in a+(b-a) * x) | +| | _🔢 Number_ | x (in a+(b-a) * x) | +| `lerpAngle(number, number, number)` | Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle. || +| | _🔢 Number_ | Starting angle, in degrees | +| | _🔢 Number_ | Destination angle, in degrees | +| | _🔢 Number_ | Interpolation value between 0 and 1. | +| `log(number)` | Logarithm || +| | _🔢 Number_ | Expression | +| `log10(number)` | Base-10 logarithm || +| | _🔢 Number_ | Expression | +| `log2(number)` | Base 2 Logarithm || +| | _🔢 Number_ | Expression | +| `max(number, number)` | Maximum of two numbers || +| | _🔢 Number_ | First expression | +| | _🔢 Number_ | Second expression | +| `min(number, number)` | Minimum of two numbers || +| | _🔢 Number_ | First expression | +| | _🔢 Number_ | Second expression | +| `mod(number, number)` | Compute "x mod y". GDevelop does NOT support the % operator. Use this mod(x, y) function instead. || +| | _🔢 Number_ | x (as in x mod y) | +| | _🔢 Number_ | y (as in x mod y) | +| `normalize(number, number, number)` | Remap a value between 0 and 1. || +| | _🔢 Number_ | Value | +| | _🔢 Number_ | Min | +| | _🔢 Number_ | Max | +| `nthroot(number, number)` | Nth root of a number || +| | _🔢 Number_ | Number | +| | _🔢 Number_ | N | +| `pow(number, number)` | Raise a number to power n || +| | _🔢 Number_ | Number | +| | _🔢 Number_ | The exponent (n in "x to the power n") | +| `round(number)` | Round a number || +| | _🔢 Number_ | Expression | +| `roundTo(number, number)` | Round a number to the Nth decimal place || +| | _🔢 Number_ | Number to Round | +| | _🔢 Number_ | Decimal Places _Optional_. | +| `sec(number)` | Secant || +| | _🔢 Number_ | Expression | +| `sign(number)` | Return the sign of a number (1,-1 or 0) || +| | _🔢 Number_ | Expression | +| `sin(number)` | Sine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || +| | _🔢 Number_ | Expression | +| `sinh(number)` | Hyperbolic sine || +| | _🔢 Number_ | Expression | +| `sqrt(number)` | Square root of a number || +| | _🔢 Number_ | Expression | +| `tan(number)` | Tangent of an angle (in radian). If you want to use degrees, use`ToRad`: `tan(ToRad(45))`. || +| | _🔢 Number_ | Expression | +| `tanh(number)` | Hyperbolic tangent || +| | _🔢 Number_ | Expression | +| `trunc(number)` | Truncate a number || +| | _🔢 Number_ | Expression | --- ## Layers and cameras -Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras) +Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them during the game. In particular, you can move the camera of a layer to center it on an object or a position. The zoom of a layer camera (in 2D) or its position in the 3D space (for 3D games) can be changed. + +Each layer can be hidden or shown (but layers do not have opacity). Actions/conditions are available to enable/disable 2D/3D effects on layers. Parameters of each effect can be modified with actions. + [Read more explanations about it.](/gdevelop5/interface/scene-editor/layers-and-cameras) | Expression | Description | | |-----|-----|-----| -| `CameraAngle()` | Return the angle of rotation of a camera (in degrees). || -| `CameraBorderBottom()` | Return the position of the bottom border of a camera. || -| `CameraBorderLeft()` | Return the position of the left border of a camera. || -| `CameraBorderRight()` | Return the position of the right border of a camera. || -| `CameraBorderTop()` | Return the position of the top border of a camera. || -| `CameraCenterX()` | Return the X position of the center of a camera. || -| `CameraCenterY()` | Return the Y position of the center of a camera. || -| `CameraHeight()` | Return the height of a camera of a layer. || -| `CameraWidth()` | Return the width of a camera of a layer. || -| `CameraZoom()` | Zoom of a camera of a layer || -| `LayerDefaultZOrder()` | Default Z Order for a layer || -| `LayerTimeScale()` | Returns the time scale of the specified layer. || +| `CameraAngle(layer name, number)` | Return the angle of rotation of a camera (in degrees). || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CameraBorderBottom(layer name, number)` | Return the position of the bottom border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraBorderLeft(layer name, number)` | Return the position of the left border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraBorderRight(layer name, number)` | Return the position of the right border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraBorderTop(layer name, number)` | Return the position of the top border of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraCenterX(layer name, number)` | Return the X position of the center of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CameraCenterY(layer name, number)` | Return the Y position of the center of a camera. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CameraHeight(layer name, number)` | Return the height of a camera of a layer. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraWidth(layer name, number)` | Return the width of a camera of a layer. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number _Optional_. | +| `CameraZoom(layer name, number)` | Zoom of a camera of a layer || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `LayerDefaultZOrder(layer name)` | Default Z Order for a layer || +| | _🔤 Layer name (String)_ | Layer | +| `LayerTimeScale(layer name)` | Returns the time scale of the specified layer. || +| | _🔤 Layer name (String)_ | Layer | --- @@ -270,19 +416,26 @@ GDevelop provides several conditions and actions to play audio files. They can b | Expression | Description | | |-----|-----|-----| | `GlobalVolume()` | Global volume value || -| `MusicChannelPitch()` | Music's pitch || -| `MusicChannelPlayingOffset()` | Music playing offset || -| `MusicChannelVolume()` | Music volume || -| `SoundChannelPitch()` | Sound's pitch || -| `SoundChannelPlayingOffset()` | Sound playing offset || -| `SoundChannelVolume()` | Sound volume || +| `MusicChannelPitch(number)` | Music's pitch || +| | _🔢 Number_ | Channel | +| `MusicChannelPlayingOffset(number)` | Music playing offset || +| | _🔢 Number_ | Channel | +| `MusicChannelVolume(number)` | Music volume || +| | _🔢 Number_ | Channel | +| `SoundChannelPitch(number)` | Sound's pitch || +| | _🔢 Number_ | Channel | +| `SoundChannelPlayingOffset(number)` | Sound playing offset || +| | _🔢 Number_ | Channel | +| `SoundChannelVolume(number)` | Sound volume || +| | _🔢 Number_ | Channel | --- ## Game window and resolution -Provides actions and conditions to manipulate the game window. Depending on the platform on which the game is running, not all of these features can be applied. [Read more explanations about it.](/gdevelop5/all-features/window) +Actions and conditions to manipulate the game window or change how the game is resized according to the screen size. Depending on the platform on which the game is running, not all of these features can be applied. +Also contains expressions to read the screen size. [Read more explanations about it.](/gdevelop5/all-features/window) | Expression | Description | | |-----|-----|-----| @@ -297,30 +450,59 @@ Provides actions and conditions to manipulate the game window. Depending on the ## Text manipulation -Provides expressions to manipulate strings (also called texts). +Provides expressions to manipulate strings (also called texts): new line, upper/lowercase, substring, find, replace, etc... | Expression | Description | | |-----|-----|-----| -| `FromCodePoint()` | Get character from code point || +| `FromCodePoint(number)` | Get character from code point || +| | _🔢 Number_ | Code point | | `NewLine()` | Insert a new line || -| `StrAt()` | Get a character from a text || -| `StrFind()` | Search in a text (return the position of the result or -1 if not found) || -| `StrFindFrom()` | Search in a text, starting from a position (return the position of the result or -1 if not found) || -| `StrFindLast()` | Search the last occurrence in a string (return the position of the result, from the beginning of the string, or -1 if not found) || -| `StrFindLastFrom()` | Search in a text the last occurrence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) || -| `StrLength()` | Length of a text || -| `StrRepeat()` | Repeat a text || -| `SubStr()` | Get a portion of a text || -| `ToLowerCase()` | Lowercase a text || -| `ToUpperCase()` | Uppercase a text || +| `StrAt(string, number)` | Get a character from a text || +| | _string_ | Text | +| | _🔢 Number_ | Position of the character (the first letter is at position 0) | +| `StrFind(string, string)` | Search in a text (return the position of the result or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| `StrFindFrom(string, string, number)` | Search in a text, starting from a position (return the position of the result or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| | _🔢 Number_ | Position of the first character in the string to be considered in the search | +| `StrFindLast(string, string)` | Search the last occurrence in a string (return the position of the result, from the beginning of the string, or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| `StrFindLastFrom(string, string, number)` | Search in a text the last occurrence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| | _🔢 Number_ | Position of the last character in the string to be considered in the search | +| `StrLength(string)` | Length of a text || +| | _string_ | Text | +| `StrRepeat(string, number)` | Repeat a text || +| | _string_ | Text to repeat | +| | _🔢 Number_ | Repetition count | +| `StrReplaceAll(string, string, string)` | Replace all occurrences of a text by another. || +| | _string_ | Text in which the replacement(s) must be done | +| | _string_ | Text to find inside the first text | +| | _string_ | Replacement to put instead of the text to find | +| `StrReplaceOne(string, string, string)` | Replace the first occurrence of a text by another. || +| | _string_ | Text in which the replacement must be done | +| | _string_ | Text to find inside the first text | +| | _string_ | Replacement to put instead of the text to find | +| `SubStr(string, number, number)` | Get a portion of a text || +| | _string_ | Text | +| | _🔢 Number_ | Start position of the portion (the first letter is at position 0) | +| | _🔢 Number_ | Length of the portion | +| `ToLowerCase(string)` | Lowercase a text || +| | _string_ | Text | +| `ToUpperCase(string)` | Uppercase a text || +| | _string_ | Text | --- -## Animatable capability +## Objects with animations -Animate objects. [Read more explanations about it.](/gdevelop5/objects) +Actions and conditions for objects having animations (sprite, 3D models...).. [Read more explanations about it.](/gdevelop5/objects) | Expression | Description | | |-----|-----|-----| @@ -334,9 +516,9 @@ Animate objects. [Read more explanations about it.](/gdevelop5/objects) -## Effect capability +## Objects with effects -Apply visual effects to objects. [Read more explanations about it.](/gdevelop5/objects) +Actions/conditions to enable/disable and change parameters of visual effects applied on objects. [Read more explanations about it.](/gdevelop5/objects) _No expressions for this behavior._ @@ -345,9 +527,9 @@ _No expressions for this behavior._ -## Flippable capability +## Flippable objects -Flip objects. [Read more explanations about it.](/gdevelop5/objects) +Actions/conditions for objects which can be flipped horizontally or vertically. [Read more explanations about it.](/gdevelop5/objects) _No expressions for this behavior._ @@ -356,9 +538,9 @@ _No expressions for this behavior._ -## Resizable capability +## Resizable objects -Change the object dimensions. [Read more explanations about it.](/gdevelop5/objects) +Change or compare the size (width/height) of an object which can be resized (i.e: most objects). [Read more explanations about it.](/gdevelop5/objects) _No expressions for this behavior._ @@ -367,9 +549,9 @@ _No expressions for this behavior._ -## Scalable capability +## Scalable objects -Change the object scale. [Read more explanations about it.](/gdevelop5/objects) +Actions/conditions/expression to change or check the scale of an object (default: 1). [Read more explanations about it.](/gdevelop5/objects) | Expression | Description | | |-----|-----|-----| @@ -381,9 +563,9 @@ Change the object scale. [Read more explanations about it.](/gdevelop5/objects) -## Opacity capability +## Objects with opacity -Change the object opacity. [Read more explanations about it.](/gdevelop5/objects) +Action/condition/expression to change or check the opacity of an object (0-255). [Read more explanations about it.](/gdevelop5/objects) | Expression | Description | | |-----|-----|-----| @@ -393,9 +575,9 @@ Change the object opacity. [Read more explanations about it.](/gdevelop5/objects -## Text capability +## Objects containing a text -Access objects text. [Read more explanations about it.](/gdevelop5/objects) +Allows an object to contain a text, usually shown on screen, that can be modified. [Read more explanations about it.](/gdevelop5/objects) | Expression | Description | | |-----|-----|-----| @@ -436,10 +618,12 @@ Jump and run on platforms. [Read more explanations about it.](/gdevelop5/behavio ## Destroy when outside of the screen (from extension Destroy Outside Screen Behavior) -Destroy objects automatically when they go outside of the screen's borders. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside) - -_No expressions for this behavior._ +Destroy objects automatically when they go outside of the 2D camera borders. [Read more explanations about it.](/gdevelop5/behaviors/destroyoutside) +| Expression | Description | | +|-----|-----|-----| +| `Object.DestroyOutside::ExtraBorder()` | Return the extra distance (in pixels) the object must travel beyond the screen before it gets deleted. || +| `Object.DestroyOutside::UnseenGraceDistance()` | Return the grace distance (in pixels) before deleting the object if it has never been visible on the screen. Useful to avoid objects being deleted before they are visible when they spawn. || --- @@ -498,6 +682,7 @@ Displays a text on the screen. [Read more explanations about it.](/gdevelop5/obj | Expression | Description | | |-----|-----|-----| | `Object.FontSize()` | Return the font size of a text object. || +| `Object.LineHeight()` | Return the line height of a text object. || | `Object.OutlineThickness()` | Return the outline thickness of the text. || | `Object.Padding()` | Padding || | `Object.ShadowAngle()` | Return the shadow angle of the text. || @@ -509,9 +694,9 @@ Displays a text on the screen. [Read more explanations about it.](/gdevelop5/obj -## Particles emitter (from extension Particle system) +## 2D particles emitter (from extension Particle system) -Displays a large number of small particles to create visual effects. [Read more explanations about it.](/gdevelop5/objects/particles_emitter) +Displays a large number of small 2D particles to create visual effects in a 2D game or user interface. [Read more explanations about it.](/gdevelop5/objects/particles_emitter) | Expression | Description | | |-----|-----|-----| @@ -574,7 +759,7 @@ _No expressions for this behavior._ ## Shape painter -Allows you to draw simple shapes on the screen using the events. [Read more explanations about it.](/gdevelop5/objects/shape_painter) +Allows to draw simple 2D shapes on the screen using the events. [Read more explanations about it.](/gdevelop5/objects/shape_painter) | Expression | Description | | |-----|-----|-----| @@ -588,10 +773,18 @@ Allows you to draw simple shapes on the screen using the events. [Read more expl | `Object.OutlineColorRed()` | Outline color red component || | `Object.OutlineOpacity()` | Outline opacity || | `Object.OutlineSize()` | Outline size || -| `Object.ToDrawingX()` | X drawing coordinate of a point from the scene || -| `Object.ToDrawingY()` | Y drawing coordinate of a point from the scene || -| `Object.ToSceneX()` | X scene coordinate of a point from the drawing || -| `Object.ToSceneY()` | Y scene coordinate of a point from the drawing || +| `Object.ToDrawingX(number, number)` | X drawing coordinate of a point from the scene || +| | _🔢 Number_ | X scene position | +| | _🔢 Number_ | Y scene position | +| `Object.ToDrawingY(number, number)` | Y drawing coordinate of a point from the scene || +| | _🔢 Number_ | X scene position | +| | _🔢 Number_ | Y scene position | +| `Object.ToSceneX(number, number)` | X scene coordinate of a point from the drawing || +| | _🔢 Number_ | X drawing position | +| | _🔢 Number_ | Y drawing position | +| `Object.ToSceneY(number, number)` | Y scene coordinate of a point from the drawing || +| | _🔢 Number_ | X drawing position | +| | _🔢 Number_ | Y drawing position | --- @@ -610,12 +803,16 @@ Invisible object used to get the text entered with the keyboard. [Read more expl ## Inventories -Provides actions and conditions to add an inventory to your game, with items in memory. [Read more explanations about it.](/gdevelop5/all-features/inventory) +Actions and conditions to store named inventories in memory, with items (indexed by their name), a count for each of them, a maximum count and an equipped state. Can be loaded/saved from/to a GDevelop variable. [Read more explanations about it.](/gdevelop5/all-features/inventory) | Expression | Description | | |-----|-----|-----| -| `Inventory::Count()` | Get the number of an item in the inventory || -| `Inventory::Maximum()` | Get the maximum of an item in the inventory, or 0 if it is unlimited || +| `Inventory::Count(string, string)` | Get the number of an item in the inventory || +| | _string_ | Inventory name | +| | _string_ | Item name | +| `Inventory::Maximum(string, string)` | Get the maximum of an item in the inventory, or 0 if it is unlimited || +| | _string_ | Inventory name | +| | _string_ | Item name | --- @@ -635,8 +832,10 @@ Move objects to a target while avoiding all objects that are flagged as obstacle | `Object.Pathfinding::DestinationX()` | Destination X position || | `Object.Pathfinding::DestinationY()` | Destination Y position || | `Object.Pathfinding::ExtraBorder()` | Extra border applied the object on the path || -| `Object.Pathfinding::GetNodeX()` | Get next waypoint X position || -| `Object.Pathfinding::GetNodeY()` | Get next waypoint Y position || +| `Object.Pathfinding::GetNodeX(number)` | Get next waypoint X position || +| | _🔢 Number_ | Node index (start at 0!) | +| `Object.Pathfinding::GetNodeY(number)` | Get next waypoint Y position || +| | _🔢 Number_ | Node index (start at 0!) | | `Object.Pathfinding::GridOffsetX()` | Return X offset of the virtual grid. || | `Object.Pathfinding::GridOffsetY()` | Return Y offset of the virtual grid. || | `Object.Pathfinding::LastNodeX()` | Last waypoint X position || @@ -681,16 +880,28 @@ Make objects move as if they are subject to the laws of physics. If you're creat ## 3D -Support for 3D in GDevelop. +Support for 3D in GDevelop: this provides 3D objects and the common features for all 3D objects. | Expression | Description | | |-----|-----|-----| -| `Scene3D::CameraFarPlane()` | Return the camera far plane distance. || -| `Scene3D::CameraFov()` | Return the camera field of view. || -| `Scene3D::CameraNearPlane()` | Return the camera near plane distance. || -| `Scene3D::CameraRotationX()` | Return the camera rotation on X axis. || -| `Scene3D::CameraRotationY()` | Return the camera rotation on Y axis. || -| `Scene3D::CameraZ()` | Return the camera position on Z axis. || +| `Scene3D::CameraFarPlane(layer name, number)` | Return the camera far plane distance. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraFov(layer name, number)` | Return the camera field of view. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraNearPlane(layer name, number)` | Return the camera near plane distance. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraRotationX(layer name, number)` | Return the camera rotation on X axis. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraRotationY(layer name, number)` | Return the camera rotation on Y axis. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraZ(layer name, number)` | Return the camera position on Z axis. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | ## 3D Box (from extension 3D) @@ -701,14 +912,14 @@ _No expressions for this object._ ## 3D Model (from extension 3D) -An animated 3D model. +An animated 3D model, useful for most elements of a 3D game. _No expressions for this object._ ## 3D capability (from extension 3D) -Move the object in 3D space. +Common features for all 3D objects: position in 3D space (including the Z axis, in addition to X and Y), size (including depth, in addition to width and height), rotation (on X and Y axis, in addition to the Z axis), scale (including Z axis, in addition to X and Y), flipping (on Z axis, in addition to horizontal (Y)/vertical (X) flipping). | Expression | Description | | |-----|-----|-----| @@ -793,21 +1004,30 @@ Handle dialogue trees, made using Yarn Spinner. Useful to make complex dialogues | Expression | Description | | |-----|-----|-----| -| `DialogueTree::BranchTag()` | Get a tag of the current branch of the running dialogue via its index || +| `DialogueTree::BranchTag(number)` | Get a tag of the current branch of the running dialogue via its index || +| | _🔢 Number_ | Tag Index Number | | `DialogueTree::BranchTags()` | Get the tags of the current branch of the running dialogue || | `DialogueTree::BranchText()` | Get the full raw text of the current branch || | `DialogueTree::BranchTitle()` | Get the title of the current branch of the running dialogue || | `DialogueTree::ClippedLineText()` | Get dialogue line text clipped by the typewriter effect. Use the "Scroll clipped text" action to control the typewriter effect. || -| `DialogueTree::CommandParameter()` | Get the parameters of a command call - <> || +| `DialogueTree::CommandParameter(number)` | Get the parameters of a command call - <> || +| | _🔢 Number_ | parameter Index Number _Optional_. | | `DialogueTree::CommandParametersCount()` | Get the number of parameters in the currently passed command || -| `DialogueTree::HorizontalOptionsList()` | Get the text of all available options from an Options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> || +| `DialogueTree::HorizontalOptionsList(string)` | Get the text of all available options from an options line type as a horizontal list. You can also pass the selected option's cursor string, which by default is -> || +| | _string_ | Options Selection Cursor | | `DialogueTree::LineText()` | Returns the current dialogue line text || -| `DialogueTree::Option()` | Get the text of an option from an Options line type, using the option's Number. The numbers start from 0. || +| `DialogueTree::Option(number)` | Get the text of an option from an options line type, using the option's Number. The numbers start from 0. || +| | _🔢 Number_ | Option Index Number | | `DialogueTree::OptionsCount()` | Get the number of options in an options line type || | `DialogueTree::SelectedOptionIndex()` | Get the number of the currently selected option. Use this to help you render the option selection marker at the right place. || -| `DialogueTree::TagParameter()` | Get parameter from a Tag found by the branch contains tag condition || -| `DialogueTree::Variable()` | Get dialogue state value || -| `DialogueTree::VerticalOptionsList()` | Get the text of all available options from an Options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> || +| `DialogueTree::TagParameter(number)` | Get parameter from a Tag found by the branch contains tag condition || +| | _🔢 Number_ | parameter Index Number _Optional_. | +| `DialogueTree::Variable(string)` | Get the number stored in a dialogue state variable || +| | _string_ | Dialogue state variable name | +| `DialogueTree::VariableString(string)` | Get the string stored in a dialogue state variable || +| | _string_ | Dialogue state variable name | +| `DialogueTree::VerticalOptionsList(string)` | Get the text of all available options from an options line type as a vertical list. You can also pass the selected option's cursor string, which by default is -> || +| | _string_ | Options Selection Cursor | | `DialogueTree::VisitedBranchTitles()` | Get a list of all visited branches || --- @@ -827,17 +1047,20 @@ Allow your game to send scores and interact with the Facebook Instant Games plat ## File system -Access the filesystem of the operating system. [Read more explanations about it.](/gdevelop5/all-features/filesystem) +Access the filesystem of the operating system - only works on native, desktop games exported to Windows, Linux or macOS. [Read more explanations about it.](/gdevelop5/all-features/filesystem) | Expression | Description | | |-----|-----|-----| | `FileSystem::DesktopPath()` | Get the path to the desktop folder. || -| `FileSystem::DirectoryName()` | Returns the portion of the path that represents the directories, without the ending file name. || +| `FileSystem::DirectoryName(string)` | Returns the portion of the path that represents the directories, without the ending file name. || +| | _string_ | File or folder path | | `FileSystem::DocumentsPath()` | Get the path to the documents folder. || | `FileSystem::ExecutableFolderPath()` | Get the path to this game executable folder. || | `FileSystem::ExecutablePath()` | Get the path to this game executable file. || -| `FileSystem::ExtensionName()` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". || -| `FileSystem::FileName()` | Returns the name of the file with its extension, if any. || +| `FileSystem::ExtensionName(string)` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". || +| | _string_ | File path | +| `FileSystem::FileName(string)` | Returns the name of the file with its extension, if any. || +| | _string_ | File path | | `FileSystem::PathDelimiter()` | Get the operating system path delimiter. || | `FileSystem::PicturesPath()` | Get the path to the pictures folder. || | `FileSystem::TempPath()` | Get the path to temp folder. || @@ -854,13 +1077,16 @@ Use Google Firebase services (database, functions, storage...) in your game. [Re | Expression | Description | | |-----|-----|-----| | `Firebase::GetAccountCreationTime()` | Return the accounts creation time. || -| `Firebase::GetAuthToken()` | Get the user authentication token. The token is the proof of authentication. || +| `Firebase::GetAuthToken(string)` | Get the user authentication token. The token is the proof of authentication. || +| | _string_ | Setting Name | | `Firebase::GetLastLoginTime()` | Return the user last login time. || | `Firebase::GetPhoneNumber()` | Return the user phone number. || | `Firebase::GetPhotoURL()` | Gets an URL to the user profile picture. || | `Firebase::GetRefreshToken()` | Return the user refresh token. For advanced usage only. || -| `Firebase::GetRemoteConfigNumber()` | Get a setting from Firebase Remote Config as Number. || -| `Firebase::GetRemoteConfigString()` | Get a setting from Firebase Remote Config as a string. || +| `Firebase::GetRemoteConfigNumber(string)` | Get a setting from Firebase Remote Config as Number. || +| | _string_ | Setting Name | +| `Firebase::GetRemoteConfigString(string)` | Get a setting from Firebase Remote Config as a string. || +| | _string_ | Setting Name | | `Firebase::GetTenantID()` | Return the user tenant ID. For advanced usage only. || | `Firebase::GetUserDisplayName()` | Return the user display name. || | `Firebase::GetUserEmail()` | Return the user email address. || @@ -872,12 +1098,14 @@ Use Google Firebase services (database, functions, storage...) in your game. [Re ## Leaderboards -Allow your game to send scores to your leaderboards. [Read more explanations about it.](/gdevelop5/all-features/leaderboards) +Allow your game to send scores to your leaderboards (anonymously or from the logged-in player) or display existing leaderboards to the player. [Read more explanations about it.](/gdevelop5/all-features/leaderboards) | Expression | Description | | |-----|-----|-----| -| `Leaderboards::FormatPlayerName()` | Formats a name so that it can be submitted to a leaderboard. || -| `Leaderboards::LastSaveError()` | Get the error of the last save attempt. || +| `Leaderboards::FormatPlayerName(string)` | Formats a name so that it can be submitted to a leaderboard. || +| | _string_ | Raw player name | +| `Leaderboards::LastSaveError(leaderboard identifier)` | Get the error of the last save attempt. || +| | _🔤 Leaderboard Identifier (String)_ | Leaderboard If no leaderboard is specified, will return the value related to the last leaderboard save action. _Optional_. | --- @@ -885,14 +1113,14 @@ Allow your game to send scores to your leaderboards. [Read more explanations abo ## Light (from extension Lights) -Displays a light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights. +Displays a 2D light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights. _No expressions for this object._ ## Light Obstacle Behavior (from extension Lights) -Flag objects as being obstacles to light. The light emitted by light objects will be stopped by the object. +Flag objects as being obstacles to 2D lights. The light emitted by light objects will be stopped by the object. This does not work on 3D objects and 3D games. _No expressions for this behavior._ @@ -902,22 +1130,31 @@ _No expressions for this behavior._ ## Multiplayer -Allow players to connect to lobbies and play together. [Read more explanations about it.](/gdevelop5/all-features/multiplayer) +This allows players to join online lobbies and synchronize gameplay across devices without needing to manage servers or networking. + +Use the "Open game lobbies" action to let players join a game, and use conditions like "Lobby game has just started" to begin gameplay. Add the "Multiplayer object" behavior to game objects that should be synchronized, and assign or change their ownership using player numbers. Variables and game state (like scenes, scores, or timers) are automatically synced by the host, with options to change ownership or disable sync when needed. Common multiplayer logic —like handling joins/leaves, collisions, and host migration— is supported out-of-the-box for up to 8 players per game. [Read more explanations about it.](/gdevelop5/all-features/multiplayer) | Expression | Description | | |-----|-----|-----| +| `Multiplayer::CurrentLobbyID()` | Returns current lobby ID. || | `Multiplayer::CurrentPlayerNumber()` | Return the current player number in the lobby (1, 2, ...). || | `Multiplayer::CurrentPlayerPing()` | Get the ping of the current player in the lobby. || | `Multiplayer::CurrentPlayerUsername()` | Get the username of the current player in the lobby. || | `Multiplayer::LastJoinedPlayerNumber()` | Returns the player number of the player that has just joined the lobby. || | `Multiplayer::LastLeftPlayerNumber()` | Returns the player number of the player that has just left the lobby. || -| `Multiplayer::MessageData()` | Returns the data received when the specified message was received from another player. || -| `Multiplayer::MessageSender()` | Returns the player number of the sender of the specified message. || +| `Multiplayer::MessageData(string)` | Returns the data received when the specified message was received from another player. || +| | _string_ | Message name | +| `Multiplayer::MessageSender(string)` | Returns the player number of the sender of the specified message. || +| | _string_ | Message name | | `Multiplayer::ObjectsSynchronizationRate()` | Return objects synchronization rate (between 1 and 60, default is 30 times per second). || -| `Multiplayer::PlayerPing()` | Get the ping of the player in the lobby. || -| `Multiplayer::PlayerUsername()` | Get the username of the player in the lobby. || -| `Multiplayer::PlayerVariableOwnership()` | Return the player owning the variable. || +| `Multiplayer::PlayerPing(number)` | Get the ping of the player in the lobby. || +| | _🔢 Number_ | The position of the player in the lobby (1, 2, ...) | +| `Multiplayer::PlayerUsername(number)` | Get the username of the player in the lobby. || +| | _🔢 Number_ | The position of the player in the lobby (1, 2, ...) | +| `Multiplayer::PlayerVariableOwnership(variable)` | Return the player owning the variable. || +| | _🗄️ Any variable_ | Variable Only root variables can change ownership. Arrays and structures children are synchronized with their parent. | | `Multiplayer::PlayersInLobbyCount()` | Return the number of players in the lobby. || +| `Multiplayer::QuickJoinFailureReason()` | Returns the reason why the Quick join action failed. It can either be 'FULL' if all lobbies were occupied, 'NOT_ENOUGH_PLAYERS' if the lobby's configuration requires more than 1 player to start the game and no other players were available. It can also take the value 'UNKNOWN'. || ## Multiplayer object (from extension Multiplayer) @@ -936,8 +1173,10 @@ Allow game instances to communicate remotely using messages sent via WebRTC (P2P | Expression | Description | | |-----|-----|-----| -| `P2P::GetEventData()` | Returns the data received when the specified event was last triggered || -| `P2P::GetEventSender()` | Returns the id of the peer that triggered the event || +| `P2P::GetEventData(string)` | Returns the data received when the specified event was last triggered || +| | _string_ | Event name | +| `P2P::GetEventSender(string)` | Returns the id of the peer that triggered the event || +| | _string_ | Event name | | `P2P::GetID()` | Gets the client ID of the current game instance || | `P2P::GetLastConnectedPeer()` | Gets the ID of the newly connected peer. || | `P2P::GetLastDisconnectedPeer()` | Gets the ID of the latest peer that has disconnected. || @@ -947,34 +1186,48 @@ Allow game instances to communicate remotely using messages sent via WebRTC (P2P -## Physics Engine 2.0 +## 2D Physics Engine -Simulate realistic object physics with gravity, forces, joints, etc. [Read more explanations about it.](/gdevelop5/behaviors/physics2) +Simulate realistic 2D physics for the object including gravity, forces, collisions, and joints. [Read more explanations about it.](/gdevelop5/behaviors/physics2) | Expression | Description | | |-----|-----|-----| | `Object.Physics2::AngularDamping()` | Get the angular damping of an object. || | `Object.Physics2::AngularVelocity()` | Get the angular velocity of an object. || | `Object.Physics2::Density()` | Get the density of an object. || -| `Object.Physics2::DistanceJointDampingRatio()` | Distance joint damping ratio || -| `Object.Physics2::DistanceJointFrequency()` | Distance joint frequency || -| `Object.Physics2::DistanceJointLength()` | Distance joint length || +| `Object.Physics2::DistanceJointDampingRatio(number)` | Distance joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::DistanceJointFrequency(number)` | Distance joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::DistanceJointLength(number)` | Distance joint length || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::Friction()` | Get the friction of an object. || -| `Object.Physics2::FrictionJointMaxForce()` | Friction joint maximum force || -| `Object.Physics2::FrictionJointMaxTorque()` | Friction joint maximum torque || -| `Object.Physics2::GearJointFirstJoint()` | Gear joint first joint || -| `Object.Physics2::GearJointRatio()` | Gear joint ratio || -| `Object.Physics2::GearJointSecondJoint()` | Gear joint second joint || +| `Object.Physics2::FrictionJointMaxForce(number)` | Friction joint maximum force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::FrictionJointMaxTorque(number)` | Friction joint maximum torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::GearJointFirstJoint(number)` | Gear joint first joint || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::GearJointRatio(number)` | Gear joint ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::GearJointSecondJoint(number)` | Gear joint second joint || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::GravityScale()` | Get the gravity scale of an object. || | `Object.Physics2::GravityX()` | World gravity on X axis || | `Object.Physics2::GravityY()` | World gravity on Y axis || | `Object.Physics2::Inertia()` | Return the rotational inertia of the object (in kilograms · meters²) || -| `Object.Physics2::JointFirstAnchorX()` | Joint first anchor X || -| `Object.Physics2::JointFirstAnchorY()` | Joint first anchor Y || -| `Object.Physics2::JointReactionForce()` | Joint reaction force || -| `Object.Physics2::JointReactionTorque()` | Joint reaction torque || -| `Object.Physics2::JointSecondAnchorX()` | Joint second anchor X || -| `Object.Physics2::JointSecondAnchorY()` | Joint second anchor Y || +| `Object.Physics2::JointFirstAnchorX(number)` | Joint first anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointFirstAnchorY(number)` | Joint first anchor Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointReactionForce(number)` | Joint reaction force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointReactionTorque(number)` | Joint reaction torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointSecondAnchorX(number)` | Joint second anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointSecondAnchorY(number)` | Joint second anchor Y || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::LinearDamping()` | Get the linear damping of an object. || | `Object.Physics2::LinearVelocity()` | Get the linear velocity of an object. || | `Object.Physics2::LinearVelocityAngle()` | Get the linear velocity angle of an object. || @@ -983,60 +1236,184 @@ Simulate realistic object physics with gravity, forces, joints, etc. [Read more | `Object.Physics2::Mass()` | Return the mass of the object (in kilograms) || | `Object.Physics2::MassCenterX()` | Mass center X || | `Object.Physics2::MassCenterY()` | Mass center Y || -| `Object.Physics2::MotorJointAngularOffset()` | Motor joint angular offset || -| `Object.Physics2::MotorJointCorrectionFactor()` | Motor joint correction factor || -| `Object.Physics2::MotorJointMaxForce()` | Motor joint maximum force || -| `Object.Physics2::MotorJointMaxTorque()` | Motor joint maximum torque || -| `Object.Physics2::MotorJointOffsetX()` | Motor joint offset X || -| `Object.Physics2::MotorJointOffsetY()` | Motor joint offset Y || -| `Object.Physics2::MouseJointDampingRatio()` | Mouse joint damping ratio || -| `Object.Physics2::MouseJointFrequency()` | Mouse joint frequency || -| `Object.Physics2::MouseJointMaxForce()` | Mouse joint maximum force || -| `Object.Physics2::MouseJointTargetX()` | Mouse joint target X || -| `Object.Physics2::MouseJointTargetY()` | Mouse joint target Y || -| `Object.Physics2::PrismaticJointAxisAngle()` | Prismatic joint axis angle || -| `Object.Physics2::PrismaticJointMaxMotorForce()` | Prismatic joint maximum motor force || -| `Object.Physics2::PrismaticJointMaxTranslation()` | Prismatic joint maximum translation || -| `Object.Physics2::PrismaticJointMinTranslation()` | Prismatic joint minimum translation || -| `Object.Physics2::PrismaticJointMotorForce()` | Prismatic joint motor force || -| `Object.Physics2::PrismaticJointMotorSpeed()` | Prismatic joint motor speed || -| `Object.Physics2::PrismaticJointReferenceAngle()` | Prismatic joint reference angle || -| `Object.Physics2::PrismaticJointSpeed()` | Prismatic joint speed || -| `Object.Physics2::PrismaticJointTranslation()` | Prismatic joint current translation || -| `Object.Physics2::PulleyJointFirstGroundAnchorX()` | Pulley joint first ground anchor X || -| `Object.Physics2::PulleyJointFirstGroundAnchorY()` | Pulley joint first ground anchor Y || -| `Object.Physics2::PulleyJointFirstLength()` | Pulley joint first length || -| `Object.Physics2::PulleyJointRatio()` | Pulley joint ratio || -| `Object.Physics2::PulleyJointSecondGroundAnchorX()` | Pulley joint second ground anchor X || -| `Object.Physics2::PulleyJointSecondGroundAnchorY()` | Pulley joint second ground anchor Y || -| `Object.Physics2::PulleyJointSecondLength()` | Pulley joint second length || +| `Object.Physics2::MotorJointAngularOffset(number)` | Motor joint angular offset || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointCorrectionFactor(number)` | Motor joint correction factor || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointMaxForce(number)` | Motor joint maximum force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointMaxTorque(number)` | Motor joint maximum torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointOffsetX(number)` | Motor joint offset X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointOffsetY(number)` | Motor joint offset Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointDampingRatio(number)` | Mouse joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointFrequency(number)` | Mouse joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointMaxForce(number)` | Mouse joint maximum force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointTargetX(number)` | Mouse joint target X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointTargetY(number)` | Mouse joint target Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointAxisAngle(number)` | Prismatic joint axis angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMaxMotorForce(number)` | Prismatic joint maximum motor force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMaxTranslation(number)` | Prismatic joint maximum translation || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMinTranslation(number)` | Prismatic joint minimum translation || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMotorForce(number)` | Prismatic joint motor force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMotorSpeed(number)` | Prismatic joint motor speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointReferenceAngle(number)` | Prismatic joint reference angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointSpeed(number)` | Prismatic joint speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointTranslation(number)` | Prismatic joint current translation || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointFirstGroundAnchorX(number)` | Pulley joint first ground anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointFirstGroundAnchorY(number)` | Pulley joint first ground anchor Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointFirstLength(number)` | Pulley joint first length || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointRatio(number)` | Pulley joint ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointSecondGroundAnchorX(number)` | Pulley joint second ground anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointSecondGroundAnchorY(number)` | Pulley joint second ground anchor Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointSecondLength(number)` | Pulley joint second length || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::Restitution()` | Get the restitution of an object. || -| `Object.Physics2::RevoluteJointAngle()` | Revolute joint current angle || -| `Object.Physics2::RevoluteJointMaxAngle()` | Revolute joint maximum angle || -| `Object.Physics2::RevoluteJointMaxMotorTorque()` | Revolute joint maximum motor torque || -| `Object.Physics2::RevoluteJointMinAngle()` | Revolute joint minimum angle || -| `Object.Physics2::RevoluteJointMotorSpeed()` | Revolute joint motor speed || -| `Object.Physics2::RevoluteJointMotorTorque()` | Revolute joint motor torque || -| `Object.Physics2::RevoluteJointReferenceAngle()` | Revolute joint reference angle || -| `Object.Physics2::RevoluteJointSpeed()` | Revolute joint angular speed || -| `Object.Physics2::RopeJointMaxLength()` | Rope joint maximum length || +| `Object.Physics2::RevoluteJointAngle(number)` | Revolute joint current angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMaxAngle(number)` | Revolute joint maximum angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMaxMotorTorque(number)` | Revolute joint maximum motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMinAngle(number)` | Revolute joint minimum angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMotorSpeed(number)` | Revolute joint motor speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMotorTorque(number)` | Revolute joint motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointReferenceAngle(number)` | Revolute joint reference angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointSpeed(number)` | Revolute joint angular speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RopeJointMaxLength(number)` | Rope joint maximum length || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::TimeScale()` | World time scale || -| `Object.Physics2::WeldJointDampingRatio()` | Weld joint damping ratio || -| `Object.Physics2::WeldJointFrequency()` | Weld joint frequency || -| `Object.Physics2::WeldJointReferenceAngle()` | Weld joint reference angle || -| `Object.Physics2::WheelJointAxisAngle()` | Wheel joint axis angle || -| `Object.Physics2::WheelJointDampingRatio()` | Wheel joint damping ratio || -| `Object.Physics2::WheelJointFrequency()` | Wheel joint frequency || -| `Object.Physics2::WheelJointMaxMotorTorque()` | Wheel joint maximum motor torque || -| `Object.Physics2::WheelJointMotorSpeed()` | Wheel joint motor speed || -| `Object.Physics2::WheelJointMotorTorque()` | Wheel joint motor torque || -| `Object.Physics2::WheelJointSpeed()` | Wheel joint speed || -| `Object.Physics2::WheelJointTranslation()` | Wheel joint current translation || +| `Object.Physics2::WeldJointDampingRatio(number)` | Weld joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WeldJointFrequency(number)` | Weld joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WeldJointReferenceAngle(number)` | Weld joint reference angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointAxisAngle(number)` | Wheel joint axis angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointDampingRatio(number)` | Wheel joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointFrequency(number)` | Wheel joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointMaxMotorTorque(number)` | Wheel joint maximum motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointMotorSpeed(number)` | Wheel joint motor speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointMotorTorque(number)` | Wheel joint motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointSpeed(number)` | Wheel joint speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointTranslation(number)` | Wheel joint current translation || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::WorldScale()` | Return the world scale. || --- + +## 3D physics engine + +Simulate realistic 3D physics for this object including gravity, forces, collisions, etc. [Read more explanations about it.](/gdevelop5/behaviors/physics3d) + +| Expression | Description | | +|-----|-----|-----| +| `Object.Physics3D::AngularDamping()` | Return the object angular damping. How much angular speed is lost across the time.. || +| `Object.Physics3D::AngularVelocityX()` | Return the object angular velocity around X. || +| `Object.Physics3D::AngularVelocityY()` | Return the object angular velocity around Y. || +| `Object.Physics3D::AngularVelocityZ()` | Return the object angular velocity around Z. || +| `Object.Physics3D::Density()` | Return the object density. The body's density and volume determine its mass.. || +| `Object.Physics3D::Friction()` | Return the object friction. How much energy is lost from the movement of one object over another. The combined friction from two bodies is calculated as 'sqrt(bodyA.friction * bodyB.friction)'.. || +| `Object.Physics3D::GravityScale()` | Return the object gravity scale. The gravity applied to an object is the world gravity multiplied by the object gravity scale.. || +| `Object.Physics3D::GravityX()` | Return the world gravity on X axis While an object is needed, this will apply to all objects using the behavior.. || +| `Object.Physics3D::GravityY()` | Return the world gravity on Y axis While an object is needed, this will apply to all objects using the behavior.. || +| `Object.Physics3D::GravityZ()` | Return the world gravity on Z axis While an object is needed, this will apply to all objects using the behavior.. || +| `Object.Physics3D::InertiaAroundX()` | Return the inertia around X axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) || +| `Object.Physics3D::InertiaAroundY()` | Return the inertia around Y axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) || +| `Object.Physics3D::InertiaAroundZ()` | Return the inertia around Z axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) || +| `Object.Physics3D::LinearDamping()` | Return the object linear damping. How much movement speed is lost across the time.. || +| `Object.Physics3D::LinearVelocityLength()` | Return the object linear velocity length. || +| `Object.Physics3D::LinearVelocityX()` | Return the object linear velocity on X. || +| `Object.Physics3D::LinearVelocityY()` | Return the object linear velocity on Y. || +| `Object.Physics3D::LinearVelocityZ()` | Return the object linear velocity on Z. || +| `Object.Physics3D::Mass()` | Return the mass of the object (in kilograms) || +| `Object.Physics3D::MassCenterX()` | Mass center X || +| `Object.Physics3D::MassCenterY()` | Mass center Y || +| `Object.Physics3D::MassCenterZ()` | Mass center Z || +| `Object.Physics3D::Restitution()` | Return the object restitution. Energy conservation on collision. The combined restitution from two bodies is calculated as 'max(bodyA.restitution, bodyB.restitution)'.. || +| `Object.Physics3D::ShapeOffsetX()` | Return the object shape offset on X.. || +| `Object.Physics3D::ShapeOffsetY()` | Return the object shape offset on Y.. || +| `Object.Physics3D::ShapeOffsetZ()` | Return the object shape offset on Z.. || +| `Object.Physics3D::WorldScale()` | Return the world scale. || + +## 3D physics car (from extension 3D physics engine) + +Simulate a realistic car using the 3D physics engine. This is mostly useful for the car controlled by the player (it's usually too complex for other cars in a game). + +This behavior is usually used with one or more "mapper" behavior to let the player move it. [Read more explanations about it.](/gdevelop5/behaviors/physics3d) + +| Expression | Description | | +|-----|-----|-----| +| `Object.PhysicsCar3D::CurrentGear()` | Return the current gear (-1 = reverse, 0 = neutral, 1 = 1st gear). || +| `Object.PhysicsCar3D::EngineInertia()` | Return the engine inertia (kg·m²). It slows down car acceleration. || +| `Object.PhysicsCar3D::EngineSpeed()` | Return the current engine speed (RPM). || +| `Object.PhysicsCar3D::EngineSpeedMax()` | Return the engine max speed (RPM). || +| `Object.PhysicsCar3D::EngineTorqueMax()` | Return the engine max torque (N·m). It allows cars to climb steep slopes and push heavy obstacles. || +| `Object.PhysicsCar3D::SteerAngle()` | Return the current steer angle (in degree). The value is negative when cars turn left. || + +## 3D physics character (from extension 3D physics engine) + +Allow an object to jump and run on platforms that have the 3D physics behavior(and which are generally set to "Static" as type, unless the platform is animated/moved in events). + +This behavior is usually used with one or more "mapper" behavior to let the player move it. [Read more explanations about it.](/gdevelop5/behaviors/physics3d) + +| Expression | Description | | +|-----|-----|-----| +| `Object.PhysicsCharacter3D::CurrentFallSpeed()` | Return Compare the current falling speed of the object. Its value is always positive.. || +| `Object.PhysicsCharacter3D::CurrentForwardSpeed()` | Return the current forward speed of the object. The object moves backward with negative values and forward with positive ones. || +| `Object.PhysicsCharacter3D::CurrentJumpSpeed()` | Return Compare the current jump speed of the object. Its value is always positive.. || +| `Object.PhysicsCharacter3D::CurrentSidewaysSpeed()` | Return the current sideways speed of the object. The object moves to the left with negative values and to the right with positive ones. || +| `Object.PhysicsCharacter3D::FallingSpeedMax()` | Return the maximum falling speed of an object. || +| `Object.PhysicsCharacter3D::ForwardAcceleration()` | Return the forward acceleration of an object. || +| `Object.PhysicsCharacter3D::ForwardAngle()` | Return the angle used by the character to go forward. || +| `Object.PhysicsCharacter3D::ForwardDeceleration()` | Return the forward deceleration of an object. || +| `Object.PhysicsCharacter3D::ForwardSpeedMax()` | Return the forward max speed of the object. || +| `Object.PhysicsCharacter3D::Gravity()` | Return the gravity applied on an object. || +| `Object.PhysicsCharacter3D::JumpSpeed()` | Return the jump speed of an object. Its value is always positive. || +| `Object.PhysicsCharacter3D::JumpSustainTime()` | Return the jump sustain time of an object. This is the time during which keeping the jump button held allow the initial jump speed to be maintained. || +| `Object.PhysicsCharacter3D::SidewaysAcceleration()` | Return the sideways acceleration of an object. || +| `Object.PhysicsCharacter3D::SidewaysDeceleration()` | Return the sideways deceleration of an object. || +| `Object.PhysicsCharacter3D::SidewaysSpeedMax()` | Return the sideways max speed of the object. || + +--- + + ## Player Authentication Allow your game to authenticate players. [Read more explanations about it.](/gdevelop5/all-features/player-authentication) @@ -1049,6 +1426,25 @@ Allow your game to authenticate players. [Read more explanations about it.](/gde --- +## Save State (experimental) + +Allows to save and load the full state of a game, usually on the device storage. A Save State, by default, contains the full state of the game (objects, variables, sounds, music, effects etc.). Using the "Save Configuration" behavior, you can customize which objects should not be saved in a Save State. You can also use the "Change the save configuration of a variable" action to change the save configuration of a variable. Finally, both objects, variables and scene/game data can be given a profile name: in this case, when saving or loading with one or more profile names specified, only the object/variables/data belonging to one of the specified profiles will be saved or loaded. [Read more explanations about it.](/gdevelop5/all-features/save-state) + +| Expression | Description | | +|-----|-----|-----| +| `SaveState::TimeSinceLastLoad()` | Return Time since the last load, in seconds. Returns -1 if no load happened, and a positive number otherwise.. || +| `SaveState::TimeSinceLastSave()` | Return Time since the last save, in seconds. Returns -1 if no save happened, and a positive number otherwise.. || + +## Save state configuration (from extension Save State (experimental)) + +Allow the customize how the object is persisted in a save state. [Read more explanations about it.](/gdevelop5/all-features/save-state) + +_No expressions for this behavior._ + + +--- + + ## Spine (experimental) @@ -1057,8 +1453,12 @@ Display and smoothly animate a 2D object with skeletal animations made with Spin | Expression | Description | | |-----|-----|-----| | `Object.Animation()` | Return the duration of the smooth transition between 2 animations (in second). || -| `Object.PointAttachmentX()` | Return x position of spine point attachment. || -| `Object.PointAttachmentY()` | Return y position of spine point attachment. || +| `Object.PointAttachmentX(string, string)` | Return x position of spine point attachment. || +| | _string_ | Attachment name | +| | _string_ | Slot name (use "" if names are the same) | +| `Object.PointAttachmentY(string, string)` | Return y position of spine point attachment. || +| | _string_ | Attachment name | +| | _string_ | Slot name (use "" if names are the same) | --- @@ -1069,34 +1469,51 @@ Adds integrations for Steam's Steamworks game development SDK. | Expression | Description | | |-----|-----|-----| -| `Steamworks::ActionVectorX()` | The action vector of a Steam Input analog joystick on the X-axis, from 1 (all right) to -1 (all left). || -| `Steamworks::ActionVectorY()` | The action vector of a Steam Input analog joystick on the Y-axis, from 1 (all up) to -1 (all down). || +| `Steamworks::ActionVectorX(number, string)` | The action vector of a Steam Input analog joystick on the X-axis, from 1 (all right) to -1 (all left). || +| | _🔢 Number_ | Controller number | +| | _🔤 Name (String)_ | ActionName | +| `Steamworks::ActionVectorY(number, string)` | The action vector of a Steam Input analog joystick on the Y-axis, from 1 (all up) to -1 (all down). || +| | _🔢 Number_ | Controller number | +| | _🔤 Name (String)_ | ActionName | | `Steamworks::AppBuildID()` | Gets the ID of the current app build. || | `Steamworks::AppID()` | Obtains the game's Steam app ID, as declared in the games properties. || | `Steamworks::BetaName()` | Gets the name of the beta the player enrolled to in the Steam game properties. || | `Steamworks::ControllerCount()` | The amount of connected Steam Input controllers. || | `Steamworks::CountryCode()` | The player's country represented as its two-letter code. || -| `Steamworks::CurrentLobbyAttribute()` | Obtains the value of one of the current lobby's attributes. || +| `Steamworks::CurrentLobbyAttribute(string)` | Obtains the value of one of the current lobby's attributes. || +| | _🔤 Name (String)_ | The attribute to read | | `Steamworks::CurrentLobbyID()` | The ID of the current lobby, useful for letting other players join it. || | `Steamworks::CurrentLobbyMemberCount()` | Obtains the current lobby's member count. || | `Steamworks::CurrentLobbyMemberLimit()` | Obtains the current lobby's maximum member limit. || | `Steamworks::CurrentLobbyOwner()` | Obtains the Steam ID of the user that owns the current lobby. || | `Steamworks::GameLanguage()` | Gets the language the user set in the Steam game properties. || -| `Steamworks::InstalledApplicationPath()` | Gets the path to an installed Steam application. || +| `Steamworks::InstalledApplicationPath(string)` | Gets the path to an installed Steam application. || +| | _🔤 Name (String)_ | The Steam App ID of the application | | `Steamworks::Level()` | Obtains the player's Steam level || -| `Steamworks::LobbyAttribute()` | Obtains the value of one of a lobby's attributes. || -| `Steamworks::LobbyMemberCount()` | Obtains a lobby's member count. || -| `Steamworks::LobbyMemberLimit()` | Obtains a lobby's maximum member limit. || -| `Steamworks::LobbyOwner()` | Obtains the Steam ID of the user that owns a lobby. || +| `Steamworks::LobbyAttribute(string, string)` | Obtains the value of one of a lobby's attributes. || +| | _string_ | The ID of the lobby | +| | _🔤 Name (String)_ | The attribute to read | +| `Steamworks::LobbyMemberCount(string)` | Obtains a lobby's member count. || +| | _string_ | The ID of the lobby | +| `Steamworks::LobbyMemberLimit(string)` | Obtains a lobby's maximum member limit. || +| | _string_ | The ID of the lobby | +| `Steamworks::LobbyOwner(string)` | Obtains the Steam ID of the user that owns a lobby. || +| | _string_ | The ID of the lobby | | `Steamworks::Name()` | The player's registered name on Steam. || -| `Steamworks::ReadCloudFile()` | Reads a file from Steam Cloud and returns its contents. || +| `Steamworks::ReadCloudFile(string)` | Reads a file from Steam Cloud and returns its contents. || +| | _🔤 Name (String)_ | Name of file to read | | `Steamworks::ServerTime()` | Obtains the real current time from the Steam servers, which cannot be faked by changing the system time. || | `Steamworks::SteamID()` | The player's unique Steam ID number. Note that it is too big a number to load correctly as a traditional number ("floating point number"), and must be used as a string. || -| `Steamworks::WorkshopItemDownloadProgress()` | The amount of data that has been downloaded by Steam for a currrently downloading item so far. || -| `Steamworks::WorkshopItemDownloadTotal()` | The amount of data that needs to be downloaded in total by Steam for a currrently downloading item. || -| `Steamworks::WorkshopItemInstallationTimestamp()` | The timestamp of the last time the contents file of an installed workshop item was updated. || -| `Steamworks::WorkshopItemLocation()` | The file path to the contents file of an installed workshop item. || -| `Steamworks::WorkshopItemSize()` | The size on disk taken by the contents file of an installed workshop item. || +| `Steamworks::WorkshopItemDownloadProgress(string)` | The amount of data that has been downloaded by Steam for a currrently downloading item so far. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemDownloadTotal(string)` | The amount of data that needs to be downloaded in total by Steam for a currrently downloading item. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemInstallationTimestamp(string)` | The timestamp of the last time the contents file of an installed workshop item was updated. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemLocation(string)` | The file path to the contents file of an installed workshop item. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemSize(string)` | The size on disk taken by the contents file of an installed workshop item. || +| | _🔤 Name (String)_ | Workshop Item ID | --- @@ -1129,20 +1546,32 @@ _No expressions for this object._ ## Tile map -Displays a tiled-based map. [Read more explanations about it.](/gdevelop5/objects/tilemap) +Displays a tile-based map. Recommended for most games that need to use static tiles. [Read more explanations about it.](/gdevelop5/objects/tilemap) | Expression | Description | | |-----|-----|-----| | `Object.GridColumnCount()` | Return the grid column count in the tile map. || | `Object.GridRowCount()` | Return the grid row count in the tile map. || -| `Object.GridX()` | Get the grid column coordinates in the tile map corresponding to the scene coordinates. || -| `Object.GridY()` | Get the grid row coordinates in the tile map corresponding to the scene coordinates. || -| `Object.TileCenterX()` | Get the scene X position of the center of the tile. || -| `Object.TileCenterY()` | Get the scene Y position of the center of the tile. || -| `Object.TileIdAtGrid()` | Return the id of the tile at the grid coordinates. || -| `Object.TileIdAtPosition()` | Return the id of the tile at the scene coordinates. || -| `Object.TilesetColumnCount()` | Get the number of column in the tileset. || -| `Object.TilesetRowCount()` | Get the number of row in the tileset. || +| `Object.GridX(number, number)` | Get the grid column coordinates in the tile map corresponding to the scene coordinates. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `Object.GridY(number, number)` | Get the grid row coordinates in the tile map corresponding to the scene coordinates. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `Object.TileCenterX(number, number)` | Get the scene X position of the center of the tile. || +| | _🔢 Number_ | Grid X | +| | _🔢 Number_ | Grid Y | +| `Object.TileCenterY(number, number)` | Get the scene Y position of the center of the tile. || +| | _🔢 Number_ | Grid X | +| | _🔢 Number_ | Grid Y | +| `Object.TileIdAtGrid(number, number)` | Return the id of the tile at the grid coordinates. || +| | _🔢 Number_ | Grid X | +| | _🔢 Number_ | Grid Y | +| `Object.TileIdAtPosition(number, number)` | Return the id of the tile at the scene coordinates. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `Object.TilesetColumnCount()` | Get the number of columns in the tileset. || +| `Object.TilesetRowCount()` | Get the number of rows in the tileset. || ## External Tilemap (Tiled/LDtk) (from extension Tile map) @@ -1160,13 +1589,19 @@ Displays a tiled-based map, made with the Tiled editor (https://www.mapeditor.or ## Tweening -Animate object properties over time. This allows smooth transitions, animations or movement of objects to specified positions. [Read more explanations about it.](/gdevelop5/behaviors/tween) +Smoothly animate object properties over time — such as position, rotation scale, opacity, and more — as well as variables. Ideal for creating fluid transitions and UI animations. While you can use tweens to move objects, other behaviors (like platform, physics, ellipse movement...) or forces are often better suited for dynamic movement. Tween is best used for animating UI elements, static objects that need to move from one point to another, or other values like variables. [Read more explanations about it.](/gdevelop5/behaviors/tween) | Expression | Description | | |-----|-----|-----| -| `Tween::Ease()` | Tween between 2 values according to an easing function. || -| `Tween::Progress()` | Return the progress of a tween (between 0.0 and 1.0). || -| `Tween::Value()` | Return the value of a tween. It is always 0 for tweens with several values. || +| `Tween::Ease(string, number, number, number)` | Tween between 2 values according to an easing function. || +| | _🔤 String_ | Easing | +| | _🔢 Number_ | From value | +| | _🔢 Number_ | To value | +| | _🔢 Number_ | Weighting From 0 to 1. | +| `Tween::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). || +| | _🔤 Name (String)_ | Tween Identifier | +| `Tween::Value(string)` | Return the value of a tween. It is always 0 for tweens with several values. || +| | _🔤 Name (String)_ | Tween Identifier | ## Tween (from extension Tweening) @@ -1174,8 +1609,10 @@ Smoothly animate position, angle, scale and other properties of objects. [Read m | Expression | Description | | |-----|-----|-----| -| `Object.Tween::Progress()` | Return the progress of a tween (between 0.0 and 1.0). || -| `Object.Tween::Value()` | Return the value of a tween. It is always 0 for tweens with several values. || +| `Object.Tween::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). || +| | _🔤 Name (String)_ | Tween Identifier | +| `Object.Tween::Value(string)` | Return the value of a tween. It is always 0 for tweens with several values. || +| | _🔤 Name (String)_ | Tween Identifier | --- diff --git a/docs/gdevelop5/all-features/extensions/marching-squares.md b/docs/gdevelop5/all-features/extensions/marching-squares.md deleted file mode 100644 index 24231fd4b9..0000000000 --- a/docs/gdevelop5/all-features/extensions/marching-squares.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: Page moved ---- -# Page moved - -This page was moved to: [https://wiki.gdevelop.io/gdevelop5/extensions/marching-squares](https://wiki.gdevelop.io/gdevelop5/extensions/marching-squares). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/external-layouts/reference.md b/docs/gdevelop5/all-features/external-layouts/reference.md index 10e7536074..32b8732236 100644 --- a/docs/gdevelop5/all-features/external-layouts/reference.md +++ b/docs/gdevelop5/all-features/external-layouts/reference.md @@ -7,7 +7,21 @@ Provides actions and conditions related to external layouts. [Read more explanat **Create objects from an external layout** Create objects from an external layout. +??? quote "See parameters" + + - Parameter 1: 🔤 External Layout Name (String) + - Parameter 2 (🔢 Number): X position of the origin + - Parameter 3 (🔢 Number): Y position of the origin + - Parameter 4 (🔢 Number): Z position of the origin + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The External layouts extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **External layouts** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/facebook-instant-games/reference.md b/docs/gdevelop5/all-features/facebook-instant-games/reference.md index 7a060a7300..bf379b22e1 100644 --- a/docs/gdevelop5/all-features/facebook-instant-games/reference.md +++ b/docs/gdevelop5/all-features/facebook-instant-games/reference.md @@ -7,27 +7,74 @@ Allow your game to send scores and interact with the Facebook Instant Games plat **Load and prepare an interstitial ad** Request and load an interstitial ad from Facebook, so that it is ready to be shown. +??? quote "See parameters" + + - Parameter 0 (string): The Ad Placement id (can be found while setting up the ad on Facebook) + - Parameter 1 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Load player data** Load the player data with the given key in a variable +??? quote "See parameters" + + - Parameter 0 (string): Data key name (e.g: "Lives") + - Parameter 1 (🗄️ Scene variable): Variable where to store loaded data + - Parameter 2 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Load player entry** Load the player entry in the given leaderboard +??? quote "See parameters" + + - Parameter 0 (string): Leaderboard name (e.g: "PlayersBestTimes") + - Parameter 1 (🗄️ Scene variable): Variable where to store the player rank (of -1 if not ranked) + - Parameter 2 (🗄️ Scene variable): Variable where to store the player score (of -1 if no score) + - Parameter 3 (🗄️ Scene variable): Variable where to store extra data (if any) + - Parameter 4 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Load and prepare a rewarded video** Request and load a rewarded video from Facebook, so that it is ready to be shown. +??? quote "See parameters" + + - Parameter 0 (string): The Ad Placement id (can be found while setting up the ad on Facebook) + - Parameter 1 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Save player data** Save the content of the given scene variable in the player data, stored on Facebook Instant Games servers +??? quote "See parameters" + + - Parameter 0 (string): Data key name (e.g: "Lives") + - Parameter 1 (🗄️ Scene variable): Scene variable with the content to save + - Parameter 2 (🗄️ Scene variable): Variable where to store the success message (optional) + - Parameter 3 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Save player score** Save the score, and optionally the content of the given variable in the player score, for the given metadata. +??? quote "See parameters" + + - Parameter 0 (string): Leaderboard name (e.g: "PlayersBestTimes") + - Parameter 1 (🔢 Number): Score to register for the player + - Parameter 2 (🗄️ Scene variable): Optional variable with metadata to save + - Parameter 3 (🗄️ Scene variable): Variable where to store the success message (optional) + - Parameter 4 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Show the loaded interstitial ad** Show the interstitial ad previously loaded in memory. This won't work if you did not load the interstitial before. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + **Show the loaded rewarded video** Show the rewarded video previously loaded in memory. This won't work if you did not load the video before. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Variable where to store the error message (optional, if an error occurs) + ## Conditions **Check if ads are supported** @@ -46,5 +93,10 @@ Check if the rewarded video requested from Facebook is loaded and ready to be sh | `FacebookInstantGames::PlayerId()` | Get the player unique identifier || | `FacebookInstantGames::PlayerName()` | Get the player name || + + --- + +The Facebook Instant Games extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Facebook Instant Games** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/filesystem/reference.md b/docs/gdevelop5/all-features/filesystem/reference.md index 0242506a98..faf0b62312 100644 --- a/docs/gdevelop5/all-features/filesystem/reference.md +++ b/docs/gdevelop5/all-features/filesystem/reference.md @@ -1,66 +1,155 @@ # File system Reference -Access the filesystem of the operating system. [Read more explanations about it.](/gdevelop5/all-features/filesystem) +Access the filesystem of the operating system - only works on native, desktop games exported to Windows, Linux or macOS. [Read more explanations about it.](/gdevelop5/all-features/filesystem) ## Actions **Delete a file** Delete a file from the filesystem. +??? quote "See parameters" + + - Parameter 0 (string): File path + - Parameter 1 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + **Delete a file (Async)** Delete a file from the filesystem asynchronously. The option result variable will be updated once the file is deleted. +??? quote "See parameters" + + - Parameter 0 (string): File path + - Parameter 1 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + **Load a text from a file (Async)** Load a text from a file, asynchronously. Use this for large files to avoid any lag or freeze during game execution. The content of the file will be available in the scene variable after a small delay (usually a few milliseconds). The 'result' variable gets updated when the operation has finished. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable + - Parameter 1 (string): Load path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + - Parameter 3 (❓ Yes or No): Normalize the file content (recommended) + This replaces Windows new lines characters ("CRLF") by a single new line character. + **Load a text from a file** Load a text from a file. Only use this on small files to avoid any lag or freeze during the game execution. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable + - Parameter 1 (string): Load path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + - Parameter 3 (❓ Yes or No): Normalize the file content (recommended) + This replaces Windows new lines characters ("CRLF") by a single new line character. + **Load a scene variable from a JSON file (Async)** Load a JSON formatted text from a file and convert it to a scene variable (potentially a structure variable with children), asynchronously. Use this for large files to avoid any lag or freeze during game execution. The content of the file will be available as a scene variable after a small delay (usually a few milliseconds). The 'result' variable gets updated when the operation has finished. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable + - Parameter 1 (string): Load path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + - Parameter 3 (❓ Yes or No): Normalize the file content (recommended) + This replaces Windows new lines characters ("CRLF") by a single new line character. + **Load a scene variable from a JSON file** Load a JSON formatted text from a file and convert it to a scene variable (potentially a structure variable with children). Only use this on small files to avoid any lag or freeze during the game execution. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable + - Parameter 1 (string): Load path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + - Parameter 3 (❓ Yes or No): Normalize the file content (recommended) + This replaces Windows new lines characters ("CRLF") by a single new line character. + **Create a directory** Create a new directory at the specified path. +??? quote "See parameters" + + - Parameter 0 (string): Directory + - Parameter 1 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + **Read a directory** Reads the contents of a directory (all files and sub-directories) and stores them in an array. +??? quote "See parameters" + + - Parameter 0 (string): Directory path + - Parameter 1 (🗄️ Scene variable): Variable to store the result + It is set to `"error"` if an error has occured, otherwise it is set to an array of all files and sub-directories present in the directory. + **Save a text into a file (Async)** Save a text into a file asynchronously. Use this for large files to avoid any lag or freeze during game execution. The 'result' variable gets updated when the operation has finished. +??? quote "See parameters" + + - Parameter 0 (string): String (text) + - Parameter 1 (string): Save path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + **Save a text into a file** Save a text into a file. Only use this on small files to avoid any lag or freeze during the game execution. +??? quote "See parameters" + + - Parameter 0 (string): String (text) + - Parameter 1 (string): Save path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + **Save a scene variable into a JSON file (Async)** Save the scene variable (including, for structures, all the children) into a file in JSON format, asynchronously. Use this for large files to avoid any lag or freeze during game execution. The 'result' variable gets updated when the operation has finished. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable + - Parameter 1 (string): Save path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + **Save a scene variable into a JSON file** Save a scene variable (including, for structure, all the children) into a file in JSON format. Only use this on small files to avoid any lag or freeze during the game execution. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Scene variable + - Parameter 1 (string): Save path + - Parameter 2 (🗄️ Scene variable): (Optional) Variable to store the result. 'ok': task was successful, 'error': an error occurred. + ## Conditions **File or directory exists** Check if the file or directory exists. +??? quote "See parameters" + + - Parameter 0 (string): Path to file or directory + ## Expressions | Expression | Description | | |-----|-----|-----| | `FileSystem::DesktopPath()` | Get the path to the desktop folder. || -| `FileSystem::DirectoryName()` | Returns the portion of the path that represents the directories, without the ending file name. || +| `FileSystem::DirectoryName(string)` | Returns the portion of the path that represents the directories, without the ending file name. || +| | _string_ | File or folder path | | `FileSystem::DocumentsPath()` | Get the path to the documents folder. || | `FileSystem::ExecutableFolderPath()` | Get the path to this game executable folder. || | `FileSystem::ExecutablePath()` | Get the path to this game executable file. || -| `FileSystem::ExtensionName()` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". || -| `FileSystem::FileName()` | Returns the name of the file with its extension, if any. || +| `FileSystem::ExtensionName(string)` | Returns the extension of the file designated by the given path, including the extension period. For example: ".txt". || +| | _string_ | File path | +| `FileSystem::FileName(string)` | Returns the name of the file with its extension, if any. || +| | _string_ | File path | | `FileSystem::PathDelimiter()` | Get the operating system path delimiter. || | `FileSystem::PicturesPath()` | Get the path to the pictures folder. || | `FileSystem::TempPath()` | Get the path to temp folder. || | `FileSystem::UserHomePath()` | Get the path to the user home folder. || | `FileSystem::UserdataPath()` | Get the path to userdata folder (for application settings). || + + --- + +The File system extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **File system** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/firebase/reference.md b/docs/gdevelop5/all-features/firebase/reference.md index 3cc8fceb20..8886d2a969 100644 --- a/docs/gdevelop5/all-features/firebase/reference.md +++ b/docs/gdevelop5/all-features/firebase/reference.md @@ -7,99 +7,260 @@ Use Google Firebase services (database, functions, storage...) in your game. [Re **Create a custom performance tracker** Creates a new custom performance tracker (If it doesn't already exists). They are used to measure performance of custom events. +??? quote "See parameters" + + - Parameter 0 (string): Tracker Name + **Enable analytics** Enables Analytics for that project. **Log an Event** Triggers an Event/Conversion for the current user on the Analytics.Can also pass additional data to the Analytics +??? quote "See parameters" + + - Parameter 0 (string): Event Name + - Parameter 1 (string): Additional Data + **Set a user's property** Sets an user's properties.Can be used to classify user in Analytics. +??? quote "See parameters" + + - Parameter 0 (string): Property Name + - Parameter 1 (string): Property Data + **User UID** Changes the current user's analytics identifier. This is what let Analytics differentiate user, so it should always be unique for each user. For advanced usage only. +??? quote "See parameters" + + - Parameter 0 (string): New Unique ID + **Sign In as an anonymous guest** Sign into a temporary anonymous account. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Callback variable with state (ok or error) + **Sign into an account with email** Sign into an account with email and password as credentials. +??? quote "See parameters" + + - Parameter 0 (string): Email + - Parameter 1 (string): Password + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Call a HTTP function** Calls a HTTP function by name, and store the result in a variable. +??? quote "See parameters" + + - Parameter 0 (string): HTTP Function Name + - Parameter 1 (string): Parameter(s) as JSON or string. + - Parameter 2 (🗄️ Scene variable): Callback variable with returned value + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **User email** This action is dangerous so it requires reauthentication. Changes the user's email address. +??? quote "See parameters" + + - Parameter 0 (string): Old email + - Parameter 1 (string): Password + - Parameter 2 (string): New email + - Parameter 3 (❓ Yes or No): Send a verification email before doing the change? + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + **User email (Provider)** This action is dangerous so it requires reauthentication. Changes the user's email address. This is the same as Change the user email but reauthenticates via an external provider. +??? quote "See parameters" + + - Parameter 0 (string): New email + - Parameter 1 (❓ Yes or No): Send a verification email before doing the change? + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **User password** This action is dangerous so it requires reauthentication. Changes the user password. +??? quote "See parameters" + + - Parameter 0 (string): Email + - Parameter 1 (string): Old password + - Parameter 2 (string): New password + - Parameter 3 (❓ Yes or No): Send a verification email before doing the change? + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + **User password (Provider)** This action is dangerous so it requires reauthentication. Changes the user password. This is the same as "Change the user password" but reauthenticates via an external provider. +??? quote "See parameters" + + - Parameter 0 (string): New Password + - Parameter 1 (❓ Yes or No): Send a verification email before doing the change? + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Create account with email** Create an account with email and password as credentials. +??? quote "See parameters" + + - Parameter 0 (string): Email + - Parameter 1 (string): Password + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Delete a field of a variable** Deletes a field of a variable on the database. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (string): Field to delete + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Delete a database variable** Deletes a variable from the database. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (🗄️ Scene variable): Callback variable with state (ok or error) + **Get a field of a variable** Return the value of a field in a variable from the database and store it in a scene variable. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (string): Field to get + - Parameter 2 (🗄️ Scene variable): Callback variable where to store the field's value + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Get a variable from the database** Gets a variable from the database and store it in a Scene variable. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (🗄️ Scene variable): Callback variable where to store the data + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Check for existence of a variable's field** Checks for the existence of a field in a variable. Sets the result variable to 1 if it exists else to 2. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (string): Field to check + - Parameter 2 (🗄️ Scene variable): Callback Variable where to store the result + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Check for a variable's existence** Checks for the existence of a variable. Sets the result variable to 1 if it exists else to 2. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (🗄️ Scene variable): Callback variable where to store the result + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Update a field of a document** Updates a field of a Database document. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (string): Field to update + - Parameter 2 (string): Value to write + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Update a document in Database** Updates a variable on the database. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (🗄️ Scene variable): Variable to update with + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Write a field in Database** Writes a field of a Database document. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (string): Field to write + - Parameter 2 (string): Value to write + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Write a variable to Database** Writes a variable to Database. +??? quote "See parameters" + + - Parameter 0 (string): Path + - Parameter 1 (🗄️ Scene variable): Variable to write + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Delete the user account** This action is dangerous so it requires reauthentication. Deletes the user account. +??? quote "See parameters" + + - Parameter 0 (string): Email + - Parameter 1 (string): Password + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Delete the user account (Provider)** This action is dangerous so it requires reauthentication. Deletes the user account. This is the same as "Delete the user account" but reauthenticates via an external provider. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Callback variable with state (ok or error) + **Enable performance measuring** Enables performance measuring. **Add a document to firestore** Adds a document (variable) to cloud firestore with a unique name. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (🗄️ Scene variable): Variable to write + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Delete a document in firestore** Deletes a firestore document (variable). +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Delete a field of a document** Deletes a field of a firestore document. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (string): Field to delete + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Disable network** Disables the connection to the database. While the network is disabled, any read operations will return results from cache, and any write operations will be queued until the network is restored. @@ -118,54 +279,177 @@ This needs to be called before any other firestore operation, otherwise it will **Run a query once** Runs the query once and store results in a scene variable. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (🗄️ Scene variable): Callback variable where to load the results + See how the data will be filled in this structure variable on [the wiki page](https://wiki.gdevelop.io/gdevelop5/all-features/firebase/firestore#the_query_result). + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error message) + **Get a document from firestore** Gets a firestore document and store it in a variable. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (🗄️ Scene variable): Callback variable where to load the document + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Get a field of a document** Return the value of a field in a firestore document. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (string): Field to get + - Parameter 3 (🗄️ Scene variable): Callback variable where to store the field's value + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + **Check for a document's existence** Checks for the existence of a document. Sets the result variable to true if it exists else to false. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (🗄️ Scene variable): Callback variable where to store the result + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Check for existence of a document's field** Checks for the existence of a field in a document. Sets the result variable to 1 if it exists else to 2. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (string): Field to check + - Parameter 3 (🗄️ Scene variable): Callback Variable where to store the result + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + **Limit amount of documents** Limits the amount of documents returned by the query. Can only be used after an order filter. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (🔢 Number): Amount to limit by + - Parameter 2 (❓ Yes or No): Begin from the end + If yes, the last X documents will be kept, else the first X documents will be kept. + **Order by field value** Orders all documents in the query by a the value of a field. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (string): Field to order by + Note that [some limitations may apply when combined with a where query](https://firebase.google.com/docs/firestore/query-data/order-limit-data#limitations). + - Parameter 2 (🔤 String): Direction (ascending or descending) (one of: "asc", "desc") + **Skip some documents** Removes documents before or after a certain value on the field ordered by in a query. Can only be used after an order filter. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (🔢 Number): The value of the field ordered by to skip after + - Parameter 2 (❓ Yes or No): Skip documents before? + If yes, the documents with a bigger field value will be kept, else the documents with a smaller field value be kept by the query. + - Parameter 3 (❓ Yes or No): Include documents which field value equals the value to skip after? + **Filter by field value** Only match the documents that have a field passing a check. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (string): Field to check + - Parameter 2 (🔤 String): Check type + See the [Firebase documentation](https://firebase.google.com/docs/firestore/query-data/queries#query_operators) to understand the operators. It is important as some [don't work when combined](https://firebase.google.com/docs/firestore/query-data/queries#query_limitations). (one of: "<", "<=", "==", "!=", ">=", ">", "array-contains") + - Parameter 3 (🔢 Number): Value to check + **Filter by field text** Only match the documents that have a field passing a check. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (string): Field to check + - Parameter 2 (🔤 String): Check type + See the [Firebase documentation](https://firebase.google.com/docs/firestore/query-data/queries#query_operators) to understand the operators. It is important as some [don't work when combined](https://firebase.google.com/docs/firestore/query-data/queries#query_limitations). (one of: "<", "<=", "==", "!=", ">=", ">", "array-contains") + - Parameter 3 (string): Text to check + **Start a query** Start a query on a collection. A query allows to get a filtered and ordered list of documents in a collection. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (string): Collection + **Start a query from another query** Start a query with the same collection and filters as another one. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (string): Source query name + **Update a document in firestore** Updates a firestore document (variable). +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (🗄️ Scene variable): Variable to update with + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Update a field of a document** Updates a field of a firestore document. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (string): Field to update + - Parameter 3 (string): Value to write + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + **Continuously run (watch) a query** Runs a query continuously, so that every time a new documents starts or stops matching the query, or a document that matches the query has been changed, the variables will be filled with the new results. +??? quote "See parameters" + + - Parameter 0 (string): Query name + - Parameter 1 (🗄️ Scene variable): Callback variable where to load the results + See the shape of the returned data on [the wiki page](). + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error message) + **Write a document to firestore** Writes a document (variable) to cloud firestore. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (🗄️ Scene variable): Variable to write + - Parameter 3 (🗄️ Scene variable): Callback variable with state (ok or error) + **Write a field in firestore** Writes a field of a firestore document. +??? quote "See parameters" + + - Parameter 0 (string): Collection + - Parameter 1 (string): Document + - Parameter 2 (string): Field to write + - Parameter 3 (string): Value to write + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + - Parameter 5 (❓ Yes or No): If the document already exists, merge them instead of replacing the old one? + **Force sync the configuration** Use this to sync the Remote Config with the client at any time. @@ -176,39 +460,93 @@ Logs out of the current account. Signs into an account using an external provider's system. The available providers are: "google", "facebook", "github" and "twitter". Provider authentication only works in the browser! Not on previews or pc/mobile exports. +??? quote "See parameters" + + - Parameter 0 (🔤 String): Provider (one of: "google", "facebook", "github", "twitter") + - Parameter 1 (🗄️ Scene variable): Callback variable with state (ok or error) + **Record performance** Record performance for a delimited period of time. Use this if you want to measure the performance for a specified duration. +??? quote "See parameters" + + - Parameter 0 (string): Tracker Name + - Parameter 1 (🔢 Number): Delay before measuring start (in ms) + - Parameter 2 (🔢 Number): Measuring duration (in ms) + **Send a verification email** Send a link per email to verify the user email. **Send a password reset email** Send a password reset link per email. +??? quote "See parameters" + + - Parameter 0 (string): Email of the user whose password must be reset + **Display name** Sets the user display name. +??? quote "See parameters" + + - Parameter 0 (string): New display name + **Profile picture** Change the user profile picture URL to a new one. +??? quote "See parameters" + + - Parameter 0 (string): New profile picture URL + **Set Remote Config Auto Update Interval** Sets Remote Config Auto Update Interval. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Update Interval in ms + **Set the default configuration** As the Remote Config is stored online, you need to set default values or the Remote Config expressions to return while there is no internet or the config is still loading. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Structure with defaults + **Start a tracer** Start measuring performance for that tracer +??? quote "See parameters" + + - Parameter 0 (string): Tracker Name + **Stop a tracer** Stop measuring performance for that tracer +??? quote "See parameters" + + - Parameter 0 (string): Tracker Name + **Get Download URL** Get a unique download URL for a file. +??? quote "See parameters" + + - Parameter 0 (string): Storage path to the file + - Parameter 1 (🗄️ Scene variable): Callback variable where to store the result + - Parameter 2 (🗄️ Scene variable): Callback variable with state (ok or error) + **Upload a file** Upload a file to firebase Storage. +??? quote "See parameters" + + - Parameter 0 (string): Upload ID + - Parameter 1 (string): File content + - Parameter 2 (string): Storage path + - Parameter 3 (🔤 String): File content format (one of: "none", "base64", "base64url", "data_url") + - Parameter 4 (🗄️ Scene variable): Callback variable with state (ok or error) + - Parameter 5 (🗄️ Scene variable): Callback variable with the url to the uploaded file + ## Conditions **Is the user email address verified** @@ -223,18 +561,26 @@ You should always use this before actions requiring authentications. | Expression | Description | | |-----|-----|-----| | `Firebase::GetAccountCreationTime()` | Return the accounts creation time. || -| `Firebase::GetAuthToken()` | Get the user authentication token. The token is the proof of authentication. || +| `Firebase::GetAuthToken(string)` | Get the user authentication token. The token is the proof of authentication. || +| | _string_ | Setting Name | | `Firebase::GetLastLoginTime()` | Return the user last login time. || | `Firebase::GetPhoneNumber()` | Return the user phone number. || | `Firebase::GetPhotoURL()` | Gets an URL to the user profile picture. || | `Firebase::GetRefreshToken()` | Return the user refresh token. For advanced usage only. || -| `Firebase::GetRemoteConfigNumber()` | Get a setting from Firebase Remote Config as Number. || -| `Firebase::GetRemoteConfigString()` | Get a setting from Firebase Remote Config as a string. || +| `Firebase::GetRemoteConfigNumber(string)` | Get a setting from Firebase Remote Config as Number. || +| | _string_ | Setting Name | +| `Firebase::GetRemoteConfigString(string)` | Get a setting from Firebase Remote Config as a string. || +| | _string_ | Setting Name | | `Firebase::GetTenantID()` | Return the user tenant ID. For advanced usage only. || | `Firebase::GetUserDisplayName()` | Return the user display name. || | `Firebase::GetUserEmail()` | Return the user email address. || | `Firebase::GetUserUID()` | Return the user Unique IDentifier. Use that to link data to an user instead of the name or email. || | `Firebase::ServerTimestamp()` | Set a field to the timestamp on the server when the request arrives there || + + --- + +The Firebase extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Firebase** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/flippable-capability/reference.md b/docs/gdevelop5/all-features/flippable-capability/reference.md index d6c2e76af1..652c957cba 100644 --- a/docs/gdevelop5/all-features/flippable-capability/reference.md +++ b/docs/gdevelop5/all-features/flippable-capability/reference.md @@ -1,31 +1,58 @@ -# Flippable capability Reference +# Flippable objects Reference -Flip objects. [Read more explanations about it.](/gdevelop5/objects) +Actions/conditions for objects which can be flipped horizontally or vertically. [Read more explanations about it.](/gdevelop5/objects) -## Flippable capability +## Flippable objects -Flip objects. +Actions/conditions for objects which can be flipped horizontally or vertically. ### Behavior actions **Flip the object horizontally** Flip the object horizontally +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Activate flipping + **Flip the object vertically** Flip the object vertically +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Activate flipping + ### Behavior conditions **Horizontally flipped** Check if the object is horizontally flipped +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Vertically flipped** Check if the object is vertically flipped +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + _No expressions for this behavior._ + + --- -*This page is an auto-generated reference page about the **Flippable capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Flippable objects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Flippable objects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/gamepad/index.md b/docs/gdevelop5/all-features/gamepad/index.md index 428dba5b8e..adb140b4cf 100644 --- a/docs/gdevelop5/all-features/gamepad/index.md +++ b/docs/gdevelop5/all-features/gamepad/index.md @@ -40,6 +40,22 @@ The "Platformer gamepad mapper" behavior can be added to the character to make t [![](/gdevelop5/behaviors/platformer/platformer-example.png){ width="320" }](https://editor.gdevelop.io/?project=example://platformer) +### Move a 3D platformer character + +The "3D platformer gamepad mapper" behavior can be added to a [3d physics character](/gdevelop5/behaviors/physics3d) to make the character move according to player inputs automatically. + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-platformer){ .md-button .md-button--primary } + +[![](/gdevelop5/behaviors/physics3d/platformer3d.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-platformer) + +### Move a 3D shooter character + +The "3D shooter gamepad mapper" behavior can be added to a [3d physics character](/gdevelop5/behaviors/physics3d) to make the character move according to player inputs automatically. + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-first-person){ .md-button .md-button--primary } + +[![](/gdevelop5/behaviors/physics3d/first-person.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-first-person) + ### Move a character with custom movement #### Handle pressed buttons diff --git a/docs/gdevelop5/all-features/index.md b/docs/gdevelop5/all-features/index.md index 2dbef12f2b..fe1d9c6f35 100644 --- a/docs/gdevelop5/all-features/index.md +++ b/docs/gdevelop5/all-features/index.md @@ -1,85 +1,161 @@ -# All features - -This page lists **all the features** that are provided in GDevelop. These can be objects, behaviors but also features that can be used directly using actions, conditions or expressions (without requiring an object to be existing on the scene). - -Note that GDevelop can also be extended with extensions: take a look at [the list of community extensions](/gdevelop5/extensions) or learn how to create your [own set of features (behaviors, actions, conditions or expressions)](/gdevelop5/extensions/create). - - -* [Objects](/gdevelop5/objects/base_object/events) ([reference](/gdevelop5/all-features/object/reference)) -* [Sprite](/gdevelop5/objects/sprite) ([reference](/gdevelop5/all-features/sprite/reference)) -* [Events and control flow](/gdevelop5/all-features/advanced-conditions) ([reference](/gdevelop5/all-features/common-instructions/reference)) -* [Asynchronous functions](/gdevelop5/all-features/async/reference) -* [Conversion](/gdevelop5/all-features/common-conversions) ([reference](/gdevelop5/all-features/common-conversions/reference)) -* [Variables](/gdevelop5/all-features/variables) ([reference](/gdevelop5/all-features/variables/reference)) -* [Mouse and touch](/gdevelop5/all-features/mouse-touch) ([reference](/gdevelop5/all-features/mouse-touch/reference)) -* [Keyboard](/gdevelop5/all-features/keyboard) ([reference](/gdevelop5/all-features/keyboard/reference)) -* [Scene](/gdevelop5/all-features/scene/reference) -* [Timers and time](/gdevelop5/all-features/timers-and-time) ([reference](/gdevelop5/all-features/time/reference)) -* [Mathematical tools](/gdevelop5/all-features/mathematical-tools/reference) -* [Layers and cameras](/gdevelop5/interface/scene-editor/layers-and-cameras) ([reference](/gdevelop5/all-features/camera/reference)) -* [Sounds and music](/gdevelop5/all-features/audio) ([reference](/gdevelop5/all-features/audio/reference)) -* [Storage](/gdevelop5/all-features/storage) ([reference](/gdevelop5/all-features/storage/reference)) -* [Network](/gdevelop5/all-features/network) ([reference](/gdevelop5/all-features/network/reference)) -* [Game window and resolution](/gdevelop5/all-features/window) ([reference](/gdevelop5/all-features/window/reference)) -* [Text manipulation](/gdevelop5/all-features/string-instructions/reference) -* [Event functions](/gdevelop5/all-features/advanced/reference) -* [External layouts](/gdevelop5/interface/scene-editor/external-layouts) ([reference](/gdevelop5/all-features/external-layouts/reference)) -* [Animatable capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/animatable-capability/reference)) -* [Effect capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/effect-capability/reference)) -* [Flippable capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/flippable-capability/reference)) -* [Resizable capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/resizable-capability/reference)) -* [Scalable capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/scalable-capability/reference)) -* [Opacity capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/opacity-capability/reference)) -* [Text capability](/gdevelop5/objects) ([reference](/gdevelop5/all-features/text-container-capability/reference)) -* [Platform behavior](/gdevelop5/behaviors/platformer) ([reference](/gdevelop5/all-features/platform-behavior/reference)) -* [Destroy Outside Screen Behavior](/gdevelop5/behaviors/destroyoutside) ([reference](/gdevelop5/all-features/destroy-outside-behavior/reference)) -* [Tiled Sprite Object](/gdevelop5/objects/tiled_sprite) ([reference](/gdevelop5/all-features/tiled-sprite-object/reference)) -* [Draggable Behavior](/gdevelop5/behaviors/draggable) ([reference](/gdevelop5/all-features/draggable-behavior/reference)) -* [Top-down movement](/gdevelop5/behaviors/topdown) ([reference](/gdevelop5/all-features/top-down-movement-behavior/reference)) -* [Text object](/gdevelop5/objects/text) ([reference](/gdevelop5/all-features/text-object/reference)) -* [Particle system](/gdevelop5/objects/particles_emitter) ([reference](/gdevelop5/all-features/particle-system/reference)) -* [Panel Sprite (9-patch) Object](/gdevelop5/objects/panel_sprite) ([reference](/gdevelop5/all-features/panel-sprite-object/reference)) -* [Anchor](/gdevelop5/behaviors/anchor) ([reference](/gdevelop5/all-features/anchor-behavior/reference)) -* [Shape painter](/gdevelop5/objects/shape_painter) ([reference](/gdevelop5/all-features/primitive-drawing/reference)) -* [Text entry object](/gdevelop5/objects/text_entry) ([reference](/gdevelop5/all-features/text-entry-object/reference)) -* [Inventories](/gdevelop5/all-features/inventory) ([reference](/gdevelop5/all-features/inventory/reference)) -* [Linked objects](/gdevelop5/all-features/linked-objects) ([reference](/gdevelop5/all-features/linked-objects/reference)) -* [System information](/gdevelop5/all-features/system-info/reference) -* [Shopify](/gdevelop5/all-features/shopify) ([reference](/gdevelop5/all-features/shopify/reference)) -* [Pathfinding behavior](/gdevelop5/behaviors/pathfinding) ([reference](/gdevelop5/all-features/pathfinding-behavior/reference)) -* [Physics Engine (deprecated)](/gdevelop5/behaviors/physics) ([reference](/gdevelop5/all-features/physics-behavior/reference)) -* [3D](/gdevelop5/all-features/scene3d/reference) -* [AdMob](/gdevelop5/all-features/admob) ([reference](/gdevelop5/all-features/admob/reference)) -* [Advanced window management](/gdevelop5/all-features/advanced-window/reference) -* [BBCode Text Object](/gdevelop5/objects/bbtext) ([reference](/gdevelop5/all-features/bbtext/reference)) -* [Bitmap Text](/gdevelop5/objects/bitmap_text) ([reference](/gdevelop5/all-features/bitmap-text/reference)) -* [Debugger Tools](/gdevelop5/all-features/debugger-tools/reference) -* [Device sensors](/gdevelop5/all-features/device-sensors) ([reference](/gdevelop5/all-features/device-sensors/reference)) -* [Device vibration](/gdevelop5/all-features/device-vibration) ([reference](/gdevelop5/all-features/device-vibration/reference)) -* [Dialogue Tree](/gdevelop5/all-features/dialogue-tree) ([reference](/gdevelop5/all-features/dialogue-tree/reference)) -* [Effects](/gdevelop5/interface/scene-editor/layer-effects) ([reference](/gdevelop5/all-features/effects/reference)) -* [Facebook Instant Games](/gdevelop5/publishing/publishing-to-facebook-instant-games) ([reference](/gdevelop5/all-features/facebook-instant-games/reference)) -* [File system](/gdevelop5/all-features/filesystem) ([reference](/gdevelop5/all-features/filesystem/reference)) -* [Firebase](/gdevelop5/all-features/firebase) ([reference](/gdevelop5/all-features/firebase/reference)) -* [Leaderboards](/gdevelop5/all-features/leaderboards) ([reference](/gdevelop5/all-features/leaderboards/reference)) -* [Lights](/gdevelop5/all-features/lighting/reference) -* [Multiplayer](/gdevelop5/all-features/multiplayer) ([reference](/gdevelop5/all-features/multiplayer/reference)) -* [P2P](/gdevelop5/all-features/p2p) ([reference](/gdevelop5/all-features/p2p/reference)) -* [Physics Engine 2.0](/gdevelop5/behaviors/physics2) ([reference](/gdevelop5/all-features/physics2/reference)) -* [Player Authentication](/gdevelop5/all-features/player-authentication) ([reference](/gdevelop5/all-features/player-authentication/reference)) -* [Screenshot](/gdevelop5/all-features/screenshot) ([reference](/gdevelop5/all-features/screenshot/reference)) -* [Spatial sound](/gdevelop5/all-features/spatial-sound/reference) -* [Spine (experimental)](/gdevelop5/objects/spine) ([reference](/gdevelop5/all-features/spine-object/reference)) -* [Steamworks (Steam) (experimental)](/gdevelop5/all-features/steamworks/reference) -* [Text Input](/gdevelop5/all-features/text-input/reference) -* [Tile map](/gdevelop5/objects/tilemap) ([reference](/gdevelop5/all-features/tilemap/reference)) -* [Tweening](/gdevelop5/behaviors/tween) ([reference](/gdevelop5/all-features/tween/reference)) -* [Video](/gdevelop5/objects/video) ([reference](/gdevelop5/all-features/video/reference)) - -You can also find a **reference sheet of all expressions**: +--- +icon: material/star +--- +# All GDevelop core features + +This page lists **all the core features** that are provided in GDevelop. These can be objects, visual effects, behaviors, actions, conditions or expressions. + +GDevelop can also be extended with extensions: take a look at [the list of extended features](/gdevelop5/extensions) or learn how to create your [own extensions](/gdevelop5/extensions/create). + + +### Ads + +||Name|Description|| +|---|---|---|---| +||**AdMob**|Allow to display AdMob banners, app open, interstitials, rewarded interstitials and rewarded video a...|[Read more...](/gdevelop5/all-features/admob)| + +### Advanced + +||Name|Description|| +|---|---|---|---| +||**Events and control flow**|GDevelop comes with a set of events and conditions that allow to express the game logic and rules....|[Read more...](/gdevelop5/all-features/advanced-conditions) ([reference](/gdevelop5/all-features/common-instructions))| +||**Asynchronous functions**|Functions that defer the execution of the events after it....|[Read more...](/gdevelop5/all-features/async)| +||**Storage**|Actions and conditions to store data (like the player progress or anything else to be persisted acro...|[Read more...](/gdevelop5/all-features/storage)| +||**Event functions**|Advanced control features for functions made with events....|[Read more...](/gdevelop5/all-features/advanced)| +||**External layouts**|Provides actions and conditions related to external layouts....|[Read more...](/gdevelop5/interface/scene-editor/external-layouts) ([reference](/gdevelop5/all-features/external-layouts))| +||**Linked objects**|These actions and conditions allow to virtually link two objects. It's then useful in the events to ...|[Read more...](/gdevelop5/all-features/linked-objects)| +||**System information**|Conditions to check if the device has a touchscreen, is a mobile, or if the game runs as a preview....|[Read more...](/gdevelop5/all-features/system-info)| +||**Debugger Tools**|Allow to interact with the editor debugger from the game (notably: enable 2D debug draw, log a messa...|[Read more...](/gdevelop5/all-features/debugger-tools)| +||**File system**|Access the filesystem of the operating system - only works on native, desktop games exported to Wind...|[Read more...](/gdevelop5/all-features/filesystem)| +||**Screenshot**|Allows to save screenshots of a running game....|[Read more...](/gdevelop5/all-features/screenshot)| +||**Spine (experimental)**|Displays a Spine animation....|[Read more...](/gdevelop5/objects/spine) ([reference](/gdevelop5/all-features/spine-object))| +||**Tile map**|The Tilemap object can be used to display tile-based objects. It's a good way to create maps for RPG...|[Read more...](/gdevelop5/objects/tilemap) ([reference](/gdevelop5/all-features/tilemap))| + +### Audio + +||Name|Description|| +|---|---|---|---| +||**Sounds and music**|GDevelop provides several conditions and actions to play audio files. They can be either long music ...|[Read more...](/gdevelop5/all-features/audio)| +||**Spatial sound**|Allow positioning sounds in a 3D space. The stereo system of the device is used to simulate the posi...|[Read more...](/gdevelop5/all-features/spatial-sound)| + +### Camera + +||Name|Description|| +|---|---|---|---| +||**Layers and cameras**|Each scene can be composed of multiple layers. These conditions and actions allow to manipulate them...|[Read more...](/gdevelop5/interface/scene-editor/layers-and-cameras) ([reference](/gdevelop5/all-features/camera))| + +### Game mechanic + +||Name|Description|| +|---|---|---|---| +||**Destroy Outside Screen Behavior**|This behavior can be used to destroy objects when they go outside of the bounds of the 2D camera. Us...|[Read more...](/gdevelop5/behaviors/destroyoutside) ([reference](/gdevelop5/all-features/destroy-outside-behavior))| +||**Inventories**|Actions and conditions to store named inventories in memory, with items (indexed by their name), a c...|[Read more...](/gdevelop5/all-features/inventory)| +||**Dialogue Tree**|Handle dialogue trees, made using Yarn Spinner. Useful to make complex dialogues with multiple choic...|[Read more...](/gdevelop5/all-features/dialogue-tree)| +||**Save State (experimental)**|Allows to save and load the full state of a game, usually on the device storage. A Save State, by de...|[Read more...](/gdevelop5/all-features/save-state)| + +### General + +||Name|Description|| +|---|---|---|---| +||**Objects**|Common features that can be used for all objects in GDevelop....|[Read more...](/gdevelop5/objects/base_object/events) ([reference](/gdevelop5/all-features/object))| +||**Sprite**|Sprite are animated objects which can be used for most elements of a 2D game....|[Read more...](/gdevelop5/objects/sprite) ([reference](/gdevelop5/all-features/sprite))| +||**Conversion**|Expressions to convert numbers to string, strings to numbers, angles (degrees from/to radians) and a...|[Read more...](/gdevelop5/all-features/common-conversions)| +||**Variables**|Actions, conditions and expressions to handle variables, from simple variables like the player score...|[Read more...](/gdevelop5/all-features/variables)| +||**Scene**|Actions/conditions to change the current scene (or pause it and launch another one, or go back to th...|[Read more...](/gdevelop5/all-features/scene)| +||**Timers and time**|Actions and conditions to start, pause or reset scene timers, modify the time scale (speed at which ...|[Read more...](/gdevelop5/all-features/timers-and-time) ([reference](/gdevelop5/all-features/time))| +||**Mathematical tools**|A set of mathematical functions that can be used in expressions....|[Read more...](/gdevelop5/all-features/mathematical-tools)| +||**Text manipulation**|Provides expressions to manipulate strings (also called texts): new line, upper/lowercase, substring...|[Read more...](/gdevelop5/all-features/string-instructions)| +||**Objects with animations**|Actions and conditions for objects having animations (sprite, 3D models...)....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/animatable-capability))| +||**Objects with effects**|Actions/conditions to enable/disable and change parameters of visual effects applied on objects....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/effect-capability))| +||**Flippable objects**|Actions/conditions for objects which can be flipped horizontally or vertically....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/flippable-capability))| +||**Resizable objects**|Change or compare the size (width/height) of an object which can be resized (i.e: most objects)....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/resizable-capability))| +||**Scalable objects**|Actions/conditions/expression to change or check the scale of an object (default: 1)....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/scalable-capability))| +||**Objects with opacity**|Action/condition/expression to change or check the opacity of an object (0-255)....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/opacity-capability))| +||**Objects containing a text**|Allows an object to contain a text, usually shown on screen, that can be modified....|[Read more...](/gdevelop5/objects) ([reference](/gdevelop5/all-features/text-container-capability))| +||**Tiled Sprite Object**|Displays a 2D image in a repeating pattern over an area. Useful for making backgrounds, including ba...|[Read more...](/gdevelop5/objects/tiled_sprite) ([reference](/gdevelop5/all-features/tiled-sprite-object))| +||**Panel Sprite (9-patch) Object**|Panel Sprite, also called 9-patch, is an object showing an image that can be resized by stretching o...|[Read more...](/gdevelop5/objects/panel_sprite) ([reference](/gdevelop5/all-features/panel-sprite-object))| +||**Shape painter**|An object that can be used to draw arbitrary 2D shapes on the screen using events....|[Read more...](/gdevelop5/objects/shape_painter) ([reference](/gdevelop5/all-features/primitive-drawing))| +||**3D**|Support for 3D in GDevelop: this provides 3D objects and the common features for all 3D objects....|[Read more...](/gdevelop5/all-features/scene3d)| + +### Input + +||Name|Description|| +|---|---|---|---| +||**Mouse and touch**|Conditions, actions and expressions to handle either the mouse or touches on a touchscreen. Notably:...|[Read more...](/gdevelop5/all-features/mouse-touch)| +||**Keyboard**|Conditions to check keys pressed on a keyboard. Note that this does not work with on-screen keyboard...|[Read more...](/gdevelop5/all-features/keyboard)| +||**Device sensors**|Allow the game to access the sensors of a mobile device....|[Read more...](/gdevelop5/all-features/device-sensors)| + +### Movement + +||Name|Description|| +|---|---|---|---| +||**Platform behavior**|The platformer engine allows to create controllable objects that can run and jump on other objects t...|[Read more...](/gdevelop5/behaviors/platformer) ([reference](/gdevelop5/all-features/platform-behavior))| +||**Top-down movement**|Allows to move an object in either 4 or 8 directions, with the keyboard (default), a virtual stick (...|[Read more...](/gdevelop5/behaviors/topdown) ([reference](/gdevelop5/all-features/top-down-movement-behavior))| +||**Pathfinding behavior**|Pathfinding allows to compute an efficient path for objects, avoiding obstacles on the way....|[Read more...](/gdevelop5/behaviors/pathfinding) ([reference](/gdevelop5/all-features/pathfinding-behavior))| +||**Physics Engine (deprecated)**|This is the old, deprecated physics engine. Prefer to use the Physics Engine 2.0....|[Read more...](/gdevelop5/behaviors/physics) ([reference](/gdevelop5/all-features/physics-behavior))| +||**2D Physics Engine**|The 2D physics engine simulates realistic object physics, with gravity, forces, collisions, joints, ...|[Read more...](/gdevelop5/behaviors/physics2) ([reference](/gdevelop5/all-features/physics2))| +||**3D physics engine**|The 3D physics engine simulates realistic object physics, with gravity, forces, collisions, joints, ...|[Read more...](/gdevelop5/behaviors/physics3d) ([reference](/gdevelop5/all-features/physics3d))| + +### Network + +||Name|Description|| +|---|---|---|---| +||**Network**|Actions to send web requests, communicate with external "APIs" and other network related tasks. Also...|[Read more...](/gdevelop5/all-features/network)| +||**Firebase**|Use Google Firebase services (database, functions, storage...) in your game....|[Read more...](/gdevelop5/all-features/firebase)| +||**P2P**|Allow game instances to communicate remotely using messages sent via WebRTC (P2P)....|[Read more...](/gdevelop5/all-features/p2p)| + +### Players + +||Name|Description|| +|---|---|---|---| +||**Leaderboards**|Allow your game to send scores to your leaderboards (anonymously or from the logged-in player) or di...|[Read more...](/gdevelop5/all-features/leaderboards)| +||**Multiplayer**|This allows players to join online lobbies and synchronize gameplay across devices without needing t...|[Read more...](/gdevelop5/all-features/multiplayer)| +||**Player Authentication**|Allow your game to authenticate players....|[Read more...](/gdevelop5/all-features/player-authentication)| + +### Text + +||Name|Description|| +|---|---|---|---| +||**Text object**|An object that can be used to display any text on the screen: remaining life counter, some indicator...|[Read more...](/gdevelop5/objects/text) ([reference](/gdevelop5/all-features/text-object))| +||**BBCode Text Object**|A BBText is an object displaying on the screen a rich text formatted using BBCode markup (allowing t...|[Read more...](/gdevelop5/objects/bbtext) ([reference](/gdevelop5/all-features/bbtext))| +||**Bitmap Text**|Displays a text using a "Bitmap Font" (an image representing characters). This is more performant th...|[Read more...](/gdevelop5/objects/bitmap_text) ([reference](/gdevelop5/all-features/bitmap-text))| + +### Third-party + +||Name|Description|| +|---|---|---|---| +||**Shopify**|Interact with products and generate URLs for checkouts with your Shopify shop....|[Read more...](/gdevelop5/all-features/shopify)| +||**Facebook Instant Games**|Allow your game to send scores and interact with the Facebook Instant Games platform....|[Read more...](/gdevelop5/publishing/publishing-to-facebook-instant-games) ([reference](/gdevelop5/all-features/facebook-instant-games))| +||**Steamworks (Steam) (experimental)**|Adds integrations for Steam's Steamworks game development SDK....|[Read more...](/gdevelop5/all-features/steamworks)| + +### User interface + +||Name|Description|| +|---|---|---|---| +||**Game window and resolution**|Actions and conditions to manipulate the game window or change how the game is resized according to ...|[Read more...](/gdevelop5/all-features/window)| +||**Draggable Behavior**|Allows objects to be moved using the mouse (or touch). Add the behavior to an object to make it drag...|[Read more...](/gdevelop5/behaviors/draggable) ([reference](/gdevelop5/all-features/draggable-behavior))| +||**Anchor**|Anchor objects to the window's bounds....|[Read more...](/gdevelop5/behaviors/anchor) ([reference](/gdevelop5/all-features/anchor-behavior))| +||**Text entry object**|Deprecated object that can be used to capture the text entered with a keyboard by a player....|[Read more...](/gdevelop5/objects/text_entry) ([reference](/gdevelop5/all-features/text-entry-object))| +||**Advanced window management**|Provides advanced features related to the game window positioning and interaction with the operating...|[Read more...](/gdevelop5/all-features/advanced-window)| +||**Device vibration**|This allows to trigger vibrations on mobile devices....|[Read more...](/gdevelop5/all-features/device-vibration)| +||**Text Input**|A text field the player can type text into....|[Read more...](/gdevelop5/all-features/text-input)| +||**Video**|Provides an object to display a video on the scene. The recommended file format is MPEG4, with H264 ...|[Read more...](/gdevelop5/objects/video) ([reference](/gdevelop5/all-features/video))| + +### Visual effect + +||Name|Description|| +|---|---|---|---| +||**Particle system**|A 2D particle emitter allows to create various effects by showing a lot of tiny images called partic...|[Read more...](/gdevelop5/objects/particles_emitter) ([reference](/gdevelop5/all-features/particle-system))| +||**Effects**|Lots of different effects to be used in your game....|[Read more...](/gdevelop5/interface/scene-editor/layer-effects) ([reference](/gdevelop5/all-features/effects))| +||**Lights**|This provides a 2D light object, and a behavior to mark other 2D objects as being obstacles for the ...|[Read more...](/gdevelop5/all-features/lighting)| +||**Tweening**|Smoothly animate object properties over time — such as position, rotation scale, opacity, and more —...|[Read more...](/gdevelop5/behaviors/tween) ([reference](/gdevelop5/all-features/tween))| + + + +You can also find a **reference sheet of all base expressions**: * [Expressions reference](/gdevelop5/all-features/expressions-reference) ## More features as extensions -Remember that you can also [search for new features in the community extensions](/gdevelop5/extensions), or create your [own set of features (behaviors, actions, conditions or expressions)](/gdevelop5/extensions/create). \ No newline at end of file +You can also [search for new features in list of extensions](/gdevelop5/extensions), or create your [own objects, behaviors, actions, conditions or expressions](/gdevelop5/extensions/create). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/inventory/reference.md b/docs/gdevelop5/all-features/inventory/reference.md index b789b4cd6e..714ed14673 100644 --- a/docs/gdevelop5/all-features/inventory/reference.md +++ b/docs/gdevelop5/all-features/inventory/reference.md @@ -1,50 +1,141 @@ # Inventories Reference -Provides actions and conditions to add an inventory to your game, with items in memory. [Read more explanations about it.](/gdevelop5/all-features/inventory) +Actions and conditions to store named inventories in memory, with items (indexed by their name), a count for each of them, a maximum count and an equipped state. Can be loaded/saved from/to a GDevelop variable. [Read more explanations about it.](/gdevelop5/all-features/inventory) ## Actions **Add an item** Add an item in an inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Equip an item** Mark an item as being equipped. If the item count is 0, it won't be marked as equipped. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3 (❓ Yes or No): Equip? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Remove an item** Remove an item from an inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Save an inventory in a scene variable** Save all the items of the inventory in a scene variable, so that it can be restored later. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (🗄️ Scene variable): Scene variable + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Set a maximum count for an item** Set the maximum number of the specified item that can be added in the inventory. By default, the number allowed for each item is unlimited. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3 (🔢 Number): Maximum count + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Set unlimited count for an item** Allow an unlimited amount of an object to be in an inventory. This is the case by default for each item. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3 (❓ Yes or No): Allow an unlimited amount? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Load an inventory from a scene variable** Load the content of the inventory from a scene variable. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (🗄️ Scene variable): Scene variable + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Item count** Compare the number of an item in an inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Has an item** Check if at least one of the specified items is in the inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Item equipped** Check if an item is equipped. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Item full** Check if an item has reached its maximum number allowed in the inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Inventory::Count()` | Get the number of an item in the inventory || -| `Inventory::Maximum()` | Get the maximum of an item in the inventory, or 0 if it is unlimited || +| `Inventory::Count(string, string)` | Get the number of an item in the inventory || +| | _string_ | Inventory name | +| | _string_ | Item name | +| `Inventory::Maximum(string, string)` | Get the maximum of an item in the inventory, or 0 if it is unlimited || +| | _string_ | Inventory name | +| | _string_ | Item name | + + --- + +The Inventories extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Inventories** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/keyboard/reference.md b/docs/gdevelop5/all-features/keyboard/reference.md index 66395735eb..10f17dd134 100644 --- a/docs/gdevelop5/all-features/keyboard/reference.md +++ b/docs/gdevelop5/all-features/keyboard/reference.md @@ -1,26 +1,53 @@ # Keyboard Reference -Allows your game to respond to keyboard input. Note that this does not work with on-screen keyboard on touch devices: use instead conditions related to touch when making a game for mobile/touchscreen devices. [Read more explanations about it.](/gdevelop5/all-features/keyboard) +Conditions to check keys pressed on a keyboard. Note that this does not work with on-screen keyboard on touch devices: use instead mouse/touch conditions when making a game for mobile/touchscreen devices or when making a new game from scratch. [Read more explanations about it.](/gdevelop5/all-features/keyboard) ## Conditions **Any key pressed** Check if any key is pressed +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Any key released** Check if any key is released -**Key pressed (text expression)** -Check if a key, retrieved from the result of the expression, is pressed +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Key just pressed** +Check if a key was just pressed. + +??? quote "See parameters" + + - Parameter 1 (keyboardKey): Key to check -**Key released (text expression)** -Check if a key, retrieved from the result of the expression, was just released + > Technical note: parameter 0 are internal parameters handled by GDevelop. **Key pressed** -Check if a key is pressed +Check if a key is pressed. This stays true as long as the key is held down. To check if a key was pressed during the frame, use "Key just pressed" instead. + +??? quote "See parameters" + + - Parameter 1 (keyboardKey): Key to check + + > Technical note: parameter 0 are internal parameters handled by GDevelop. **Key released** -Check if a key was just released +Check if a key was just released. + +??? quote "See parameters" + + - Parameter 1 (keyboardKey): Key to check + + > Technical note: parameter 0 are internal parameters handled by GDevelop. ## Expressions @@ -28,5 +55,10 @@ Check if a key was just released |-----|-----|-----| | `LastPressedKey()` | Get the name of the latest key pressed on the keyboard || + + --- + +The Keyboard extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Keyboard** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/leaderboards/reference.md b/docs/gdevelop5/all-features/leaderboards/reference.md index 90f856cfe1..592b4f8cfe 100644 --- a/docs/gdevelop5/all-features/leaderboards/reference.md +++ b/docs/gdevelop5/all-features/leaderboards/reference.md @@ -1,32 +1,77 @@ # Leaderboards Reference -Allow your game to send scores to your leaderboards. [Read more explanations about it.](/gdevelop5/all-features/leaderboards) +Allow your game to send scores to your leaderboards (anonymously or from the logged-in player) or display existing leaderboards to the player. [Read more explanations about it.](/gdevelop5/all-features/leaderboards) ## Actions **Close current leaderboard** Close the leaderboard currently displayed on top of the game. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Display leaderboard** Display the specified leaderboard on top of the game. If a leaderboard was already displayed on top of the game, the new leaderboard will replace it. +??? quote "See parameters" + + - Parameter 1 (🔤 Leaderboard Identifier (String)): Leaderboard + - Parameter 2 (❓ Yes or No): Display loader while leaderboard is loading + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Save connected player score** Save the connected player's score to the given leaderboard. +??? quote "See parameters" + + - Parameter 1 (🔤 Leaderboard Identifier (String)): Leaderboard + - Parameter 2 (🔢 Number): Score to register for the player + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Save player score** Save the player's score to the given leaderboard. If the player is connected, the score will be attached to the connected player (unless disabled). +??? quote "See parameters" + + - Parameter 1 (🔤 Leaderboard Identifier (String)): Leaderboard + - Parameter 2 (🔢 Number): Score to register for the player + - Parameter 3 (string): Name to register for the player + Let this empty to let the leaderboard auto-generate a player name (e.g: "Player23464"). You can configure this in the leaderboard administration. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Always attach scores to the connected player** Set if the score sent to a leaderboard is always attached to the connected player - if any. This is on by default. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Enable? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Last score save has errored** Check if the last attempt to save a score has errored. +??? quote "See parameters" + + - Parameter 0 (🔤 Leaderboard Identifier (String)): Leaderboard + If no leaderboard is specified, will return the value related to the last leaderboard save action. + **Last score save has succeeded** Check if the last attempt to save a score has succeeded. +??? quote "See parameters" + + - Parameter 0 (🔤 Leaderboard Identifier (String)): Leaderboard + If no leaderboard is specified, will return the value related to the last leaderboard save action that successfully ended. + **Closed by player** Check if the player has just closed the leaderboard view. @@ -42,12 +87,24 @@ Check if the display of the leaderboard is loading. **Score is saving** Check if a score is currently being saved in leaderboard. +??? quote "See parameters" + + - Parameter 0 (🔤 Leaderboard Identifier (String)): Leaderboard + If no leaderboard is specified, will return the value related to the last leaderboard save action. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Leaderboards::FormatPlayerName()` | Formats a name so that it can be submitted to a leaderboard. || -| `Leaderboards::LastSaveError()` | Get the error of the last save attempt. || +| `Leaderboards::FormatPlayerName(string)` | Formats a name so that it can be submitted to a leaderboard. || +| | _string_ | Raw player name | +| `Leaderboards::LastSaveError(leaderboard identifier)` | Get the error of the last save attempt. || +| | _🔤 Leaderboard Identifier (String)_ | Leaderboard If no leaderboard is specified, will return the value related to the last leaderboard save action. _Optional_. | + + --- + +The Leaderboards extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Leaderboards** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/lighting/reference.md b/docs/gdevelop5/all-features/lighting/reference.md index e05424209c..c1011d9601 100644 --- a/docs/gdevelop5/all-features/lighting/reference.md +++ b/docs/gdevelop5/all-features/lighting/reference.md @@ -1,30 +1,45 @@ # Lights Reference -This provides a light object, and a behavior to mark other objects as being obstacles for the lights. This is a great way to create a special atmosphere to your game, along with effects, make it more realistic or to create gameplays based on lights. +This provides a 2D light object, and a behavior to mark other 2D objects as being obstacles for the lights. This is a great way to create a special atmosphere to your game, along with effects, make it more realistic or to create gameplays based on lights. ## Light -Displays a light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights. +Displays a 2D light on the scene, with a customizable radius and color. Add then the Light Obstacle behavior to the objects that must act as obstacle to the lights. ### Object actions **Light color** Set the color of light object in format "R;G;B" string. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: color + **Light radius** Set the radius of light object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Radius + _No expressions for this object._ ## Light Obstacle Behavior -Flag objects as being obstacles to light. The light emitted by light objects will be stopped by the object. +Flag objects as being obstacles to 2D lights. The light emitted by light objects will be stopped by the object. This does not work on 3D objects and 3D games. _No expressions for this behavior._ + + --- + +The Lights extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Lights** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/linked-objects/reference.md b/docs/gdevelop5/all-features/linked-objects/reference.md index b2406cd634..dc87bd8158 100644 --- a/docs/gdevelop5/all-features/linked-objects/reference.md +++ b/docs/gdevelop5/all-features/linked-objects/reference.md @@ -7,22 +7,61 @@ These actions and conditions allow to virtually link two objects. It's then usef **Link two objects** Link two objects together, so as to be able to get one from the other. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object 1 + - Parameter 2 (👾 Object): Object 2 + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Take into account linked objects** Take objects linked to the object into account for next actions. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Pick these objects... + - Parameter 2 (👾 Object): ...if they are linked to this object + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Unlink all objects from an object** Unlink all objects from an object. +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Unlink two objects** Unlink two objects. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object 1 + - Parameter 2 (👾 Object): Object 2 + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Take into account linked objects** Take some objects linked to the object into account for next conditions and actions. The condition will return false if no object was taken into account. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Pick these objects... + - Parameter 2 (👾 Object): ...if they are linked to this object + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + + --- + +The Linked objects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Linked objects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/mathematical-tools/reference.md b/docs/gdevelop5/all-features/mathematical-tools/reference.md index 48a7cbf099..c1f4a079ca 100644 --- a/docs/gdevelop5/all-features/mathematical-tools/reference.md +++ b/docs/gdevelop5/all-features/mathematical-tools/reference.md @@ -6,57 +6,142 @@ A set of mathematical functions that can be used in expressions. | Expression | Description | | |-----|-----|-----| -| `AngleBetweenPositions()` | Compute the angle between two positions (in degrees). || -| `AngleDifference()` | Difference between two angles || -| `DistanceBetweenPositions()` | Compute the distance between two positions. || +| `AngleBetweenPositions(number, number, number, number)` | Compute the angle between two positions (in degrees). || +| | _🔢 Number_ | First point X position | +| | _🔢 Number_ | First point Y position | +| | _🔢 Number_ | Second point X position | +| | _🔢 Number_ | Second point Y position | +| `AngleDifference(number, number)` | Difference between two angles || +| | _🔢 Number_ | First angle, in degrees | +| | _🔢 Number_ | Second angle, in degrees | +| `DistanceBetweenPositions(number, number, number, number)` | Compute the distance between two positions. || +| | _🔢 Number_ | First point X position | +| | _🔢 Number_ | First point Y position | +| | _🔢 Number_ | Second point X position | +| | _🔢 Number_ | Second point Y position | | `Pi()` | The number Pi (3.1415...) || -| `Random()` | Random integer || -| `RandomFloat()` | Random float || -| `RandomFloatInRange()` | Random float in range || -| `RandomInRange()` | Random integer in range || -| `RandomWithStep()` | Random value in steps || -| `XFromAngleAndDistance()` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || -| `YFromAngleAndDistance()` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || -| `abs()` | Absolute value || -| `acos()` | Arccosine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || -| `acosh()` | Hyperbolic arccosine || -| `asin()` | Arcsine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || -| `asinh()` | Arcsine || -| `atan()` | Arctangent, return an angle (in radian). `ToDeg` allows to convert it to degrees. || -| `atan2()` | 2 argument arctangent (atan2) || -| `atanh()` | Hyperbolic arctangent || -| `cbrt()` | Cube root || -| `ceil()` | Round number up to an integer || -| `ceilTo()` | Round number up to the Nth decimal place || -| `clamp()` | Restrict a value to a given range || -| `cos()` | Cosine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || -| `cosh()` | Hyperbolic cosine || -| `cot()` | Cotangent of a number || -| `csc()` | Cosecant of a number || -| `exp()` | Exponential of a number || -| `floor()` | Round number down to an integer || -| `floorTo()` | Round number down to the Nth decimal place || -| `lerp()` | Linearly interpolate a to b by x || -| `lerpAngle()` | Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle. || -| `log()` | Logarithm || -| `log10()` | Base-10 logarithm || -| `log2()` | Base 2 Logarithm || -| `max()` | Maximum of two numbers || -| `min()` | Minimum of two numbers || -| `mod()` | x mod y || -| `normalize()` | Remap a value between 0 and 1. || -| `nthroot()` | Nth root of a number || -| `pow()` | Raise a number to power n || -| `round()` | Round a number || -| `roundTo()` | Round a number to the Nth decimal place || -| `sec()` | Secant || -| `sign()` | Return the sign of a number (1,-1 or 0) || -| `sin()` | Sine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || -| `sinh()` | Hyperbolic sine || -| `sqrt()` | Square root of a number || -| `tan()` | Tangent of an angle (in radian). If you want to use degrees, use`ToRad`: `tan(ToRad(45))`. || -| `tanh()` | Hyperbolic tangent || -| `trunc()` | Truncate a number || +| `Random(number)` | Random integer || +| | _🔢 Number_ | Maximum value | +| `RandomFloat(number)` | Random float || +| | _🔢 Number_ | Maximum value | +| `RandomFloatInRange(number, number)` | Random float in range || +| | _🔢 Number_ | Minimum value | +| | _🔢 Number_ | Maximum value | +| `RandomInRange(number, number)` | Random integer in range || +| | _🔢 Number_ | Minimum value | +| | _🔢 Number_ | Maximum value | +| `RandomWithStep(number, number, number)` | Random value in steps || +| | _🔢 Number_ | Minimum value | +| | _🔢 Number_ | Maximum value | +| | _🔢 Number_ | Step | +| `XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | +| `YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the origin (0;0). This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | +| `abs(number)` | Return the non-negative value by removing the sign. The absolute value of -8 is 8. || +| | _🔢 Number_ | Expression | +| `acos(number)` | Arccosine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || +| | _🔢 Number_ | Expression | +| `acosh(number)` | Hyperbolic arccosine || +| | _🔢 Number_ | Expression | +| `asin(number)` | Arcsine, return an angle (in radian). `ToDeg` allows to convert it to degrees. || +| | _🔢 Number_ | Expression | +| `asinh(number)` | Arcsine || +| | _🔢 Number_ | Expression | +| `atan(number)` | Arctangent, return an angle (in radian). `ToDeg` allows to convert it to degrees. || +| | _🔢 Number_ | Expression | +| `atan2(number, number)` | 2 argument arctangent (atan2) || +| | _🔢 Number_ | Y | +| | _🔢 Number_ | X | +| `atanh(number)` | Hyperbolic arctangent || +| | _🔢 Number_ | Expression | +| `cbrt(number)` | Cube root || +| | _🔢 Number_ | Expression | +| `ceil(number)` | Round number up to an integer || +| | _🔢 Number_ | Expression | +| `ceilTo(number, number)` | Round number up to the Nth decimal place || +| | _🔢 Number_ | Expression | +| | _🔢 Number_ | Expression _Optional_. | +| `clamp(number, number, number)` | Restrict a value to a given range || +| | _🔢 Number_ | Value | +| | _🔢 Number_ | Min | +| | _🔢 Number_ | Max | +| `cos(number)` | Cosine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || +| | _🔢 Number_ | Expression | +| `cosh(number)` | Hyperbolic cosine || +| | _🔢 Number_ | Expression | +| `cot(number)` | Cotangent of a number || +| | _🔢 Number_ | Expression | +| `csc(number)` | Cosecant of a number || +| | _🔢 Number_ | Expression | +| `exp(number)` | Exponential of a number || +| | _🔢 Number_ | Expression | +| `floor(number)` | Round number down to an integer || +| | _🔢 Number_ | Expression | +| `floorTo(number, number)` | Round number down to the Nth decimal place || +| | _🔢 Number_ | Expression | +| | _🔢 Number_ | Expression _Optional_. | +| `lerp(number, number, number)` | Linearly interpolate a to b by x || +| | _🔢 Number_ | a (in a+(b-a) * x) | +| | _🔢 Number_ | b (in a+(b-a) * x) | +| | _🔢 Number_ | x (in a+(b-a) * x) | +| `lerpAngle(number, number, number)` | Linearly interpolates between two angles (in degrees) by taking the shortest direction around the circle. || +| | _🔢 Number_ | Starting angle, in degrees | +| | _🔢 Number_ | Destination angle, in degrees | +| | _🔢 Number_ | Interpolation value between 0 and 1. | +| `log(number)` | Logarithm || +| | _🔢 Number_ | Expression | +| `log10(number)` | Base-10 logarithm || +| | _🔢 Number_ | Expression | +| `log2(number)` | Base 2 Logarithm || +| | _🔢 Number_ | Expression | +| `max(number, number)` | Maximum of two numbers || +| | _🔢 Number_ | First expression | +| | _🔢 Number_ | Second expression | +| `min(number, number)` | Minimum of two numbers || +| | _🔢 Number_ | First expression | +| | _🔢 Number_ | Second expression | +| `mod(number, number)` | Compute "x mod y". GDevelop does NOT support the % operator. Use this mod(x, y) function instead. || +| | _🔢 Number_ | x (as in x mod y) | +| | _🔢 Number_ | y (as in x mod y) | +| `normalize(number, number, number)` | Remap a value between 0 and 1. || +| | _🔢 Number_ | Value | +| | _🔢 Number_ | Min | +| | _🔢 Number_ | Max | +| `nthroot(number, number)` | Nth root of a number || +| | _🔢 Number_ | Number | +| | _🔢 Number_ | N | +| `pow(number, number)` | Raise a number to power n || +| | _🔢 Number_ | Number | +| | _🔢 Number_ | The exponent (n in "x to the power n") | +| `round(number)` | Round a number || +| | _🔢 Number_ | Expression | +| `roundTo(number, number)` | Round a number to the Nth decimal place || +| | _🔢 Number_ | Number to Round | +| | _🔢 Number_ | Decimal Places _Optional_. | +| `sec(number)` | Secant || +| | _🔢 Number_ | Expression | +| `sign(number)` | Return the sign of a number (1,-1 or 0) || +| | _🔢 Number_ | Expression | +| `sin(number)` | Sine of an angle (in radian). If you want to use degrees, use`ToRad`: `sin(ToRad(45))`. || +| | _🔢 Number_ | Expression | +| `sinh(number)` | Hyperbolic sine || +| | _🔢 Number_ | Expression | +| `sqrt(number)` | Square root of a number || +| | _🔢 Number_ | Expression | +| `tan(number)` | Tangent of an angle (in radian). If you want to use degrees, use`ToRad`: `tan(ToRad(45))`. || +| | _🔢 Number_ | Expression | +| `tanh(number)` | Hyperbolic tangent || +| | _🔢 Number_ | Expression | +| `trunc(number)` | Truncate a number || +| | _🔢 Number_ | Expression | + + --- + +The Mathematical tools extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Mathematical tools** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/mouse-touch/reference.md b/docs/gdevelop5/all-features/mouse-touch/reference.md index c8205497f1..3bc7c46aa8 100644 --- a/docs/gdevelop5/all-features/mouse-touch/reference.md +++ b/docs/gdevelop5/all-features/mouse-touch/reference.md @@ -1,71 +1,181 @@ # Mouse and touch Reference -Conditions and actions to handle either the mouse or touches on touchscreen. By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](/gdevelop5/all-features/mouse-touch) +Conditions, actions and expressions to handle either the mouse or touches on a touchscreen. Notably: cursor position, mouse wheel, mouse buttons, touch positions, started/end touches, etc... + +By default, conditions related to the mouse will also handle the touches - so that it's easier to handle both in your game. You can disable this behavior if you want to handle them separately in different events. [Read more explanations about it.](/gdevelop5/all-features/mouse-touch) ## Actions **Hide the cursor** Hide the cursor. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Show the cursor** Show the cursor. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **De/activate moving the mouse cursor with touches** When activated, any touch made on a touchscreen will also move the mouse cursor. When deactivated, mouse and touch positions will be completely independent. By default, this is activated so that you can simply use the mouse conditions to also support touchscreens. If you want to have multitouch and differentiate mouse movement and touches, just deactivate it with this action. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Activate (yes by default when game is launched) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Cursor X position** Compare the X position of the cursor or of a touch. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Cursor Y position** Compare the Y position of the cursor or of a touch. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A new touch has started** Check if a touch has just started or the mouse left button has been pressed on this frame. The touch identifiers can be accessed using StartedTouchOrMouseId() and StartedTouchOrMouseCount(). +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **A touch has ended** Check if a touch has ended or a mouse left button has been released. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Touch identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Mouse cursor is inside the window** Check if the mouse cursor is inside the window. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **The mouse wheel is scrolling down** Check if the mouse wheel is scrolling down. Use MouseWheelDelta expression if you want to know the amount that was scrolled. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **The mouse wheel is scrolling up** Check if the mouse wheel is scrolling up. Use MouseWheelDelta expression if you want to know the amount that was scrolled. -**Mouse button pressed or touch held (text expression)** -Check if a mouse button, retrieved from the result of the expression, is pressed. +??? quote "See parameters" -**Mouse button released (text expression)** -Check if a mouse button, retrieved from the result of the expression, was just released. + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. **Mouse button pressed or touch held** Check if the specified mouse button is pressed or if a touch is in contact with the screen. +??? quote "See parameters" + + - Parameter 1 (mouseButton): Button to check + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Mouse button released** Check if the specified mouse button was released. +??? quote "See parameters" + + - Parameter 1 (mouseButton): Button to check + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Touch X position** Compare the X position of a specific touch. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Touch identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + - Parameter 4: 🔤 Layer name (String) + - Parameter 5 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Touch Y position** Compare the Y position of a specific touch. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Touch identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + - Parameter 4: 🔤 Layer name (String) + - Parameter 5 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `CursorX()` | Return the X position of the cursor or of a touch. || -| `CursorY()` | Return the Y position of the cursor or of a touch. || +| `CursorX(layer name, number)` | Return the X position of the cursor or of a touch. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `CursorY(layer name, number)` | Return the Y position of the cursor or of a touch. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | | `MouseWheelDelta()` | Mouse wheel displacement || | `StartedTouchOrMouseCount()` | The number of touches (including the mouse) that have just started on this frame. The touch identifiers can be accessed using StartedTouchOrMouseId(). || -| `StartedTouchOrMouseId()` | The identifier of the touch or mouse that has just started on this frame. The number of touches can be accessed using StartedTouchOrMouseCount(). || -| `TouchX()` | Return the X position of a specific touch. || -| `TouchY()` | Return the Y position of a specific touch. || +| `StartedTouchOrMouseId(number)` | The identifier of the touch or mouse that has just started on this frame. The number of touches can be accessed using StartedTouchOrMouseCount(). || +| | _🔢 Number_ | Touch index | +| `TouchX(number, layer name, number)` | Return the X position of a specific touch. || +| | _🔢 Number_ | Touch identifier | +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `TouchY(number, layer name, number)` | Return the Y position of a specific touch. || +| | _🔢 Number_ | Touch identifier | +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | + + --- + +The Mouse and touch extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Mouse and touch** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/multiplayer/reference.md b/docs/gdevelop5/all-features/multiplayer/reference.md index a54e38dec7..9be7a076bb 100644 --- a/docs/gdevelop5/all-features/multiplayer/reference.md +++ b/docs/gdevelop5/all-features/multiplayer/reference.md @@ -1,53 +1,146 @@ # Multiplayer Reference -Allow players to connect to lobbies and play together. [Read more explanations about it.](/gdevelop5/all-features/multiplayer) +This allows players to join online lobbies and synchronize gameplay across devices without needing to manage servers or networking. + +Use the "Open game lobbies" action to let players join a game, and use conditions like "Lobby game has just started" to begin gameplay. Add the "Multiplayer object" behavior to game objects that should be synchronized, and assign or change their ownership using player numbers. Variables and game state (like scenes, scores, or timers) are automatically synced by the host, with options to change ownership or disable sync when needed. Common multiplayer logic —like handling joins/leaves, collisions, and host migration— is supported out-of-the-box for up to 8 players per game. [Read more explanations about it.](/gdevelop5/all-features/multiplayer) ## Actions **Disable variable synchronization** Disable synchronization of the variable over the network. It will not be sent to other players anymore. +??? quote "See parameters" + + - Parameter 1: 🗄️ Any variable + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **End Lobby Game** End the lobby game. This will trigger the "Lobby game has just ended" condition. **Configure lobby game to end when host leaves** Configure the lobby game to end when the host leaves. This will trigger the "Lobby game has just ended" condition. (Default behavior is to migrate the host) +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): End lobby game when host leaves + **Get message variable** Store the data of the specified message in a variable. Use with the condition 'Message has been received' to know when the message has been properly processed by the host. +??? quote "See parameters" + + - Parameter 0 (string): Message name + - Parameter 1: 🗄️ Any variable + **Leave Game Lobby** Leave the current game lobby. This will trigger the "Player has left" condition on the other players, and the "Lobby game has ended" condition on the player leaving. **Open Game Lobbies** Open the game lobbies window, where players can join lobbies or see the one they are in. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Join the next available lobby** +Join the next available lobby. The player will join the game instantly if this is possible. + +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Display loader while searching for a lobby. + - Parameter 2 (❓ Yes or No): Display game lobbies if no lobby can be joined directly. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Join a specific lobby by its ID** +Join a specific lobby. The player will join the game instantly if this is possible. + +??? quote "See parameters" + + - Parameter 1 (string): Lobby ID + - Parameter 2 (❓ Yes or No): Display loader while joining a lobby. + - Parameter 3 (❓ Yes or No): Display game lobbies if unable to join a specific one. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Remove ownership of variable** Remove the ownership of the variable. It will still be synchronized to other players, but the host owns it. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable + Only root variables can change ownership. Arrays and structures children are synchronized with their parent. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Send custom message to other players** Send a custom message to other players in the lobby, with an automatic retry system if it hasn't been received. Use with the condition 'Message has been received' to know when the message has been properly processed by the host. +??? quote "See parameters" + + - Parameter 0 (string): Message name + - Parameter 1 (string): Message content + **Send custom message to other players with a variable** Send a custom message to other players in the lobby containing a variable, with an automatic retry system if it hasn't been received. Use with the condition 'Message has been received' to know when the message has been properly processed by the host. +??? quote "See parameters" + + - Parameter 0 (string): Message name + - Parameter 1: 🗄️ Any variable + **Objects synchronization rate** Change objects synchronization rate (between 1 and 60, default is 30 times per second). +??? quote "See parameters" + + - Parameter 0: 🟰 Operator + - Parameter 1 (🔢 Number): Sync rate + **Player variable ownership** Change the player owning the variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable + Only root variables can change ownership. Arrays and structures children are synchronized with their parent. + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Player number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Allow players to close the lobbies window** Allow players to close the lobbies window. Allowed by default. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Show close button + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Take ownership of variable** Take the ownership of the variable. It will then be synchronized to other players, with the current player as the owner. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable + Only root variables can change ownership. Arrays and structures children are synchronized with their parent. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Current player number in lobby** Compare the current player number in the lobby (1, 2, ...). +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value to compare + **Any player has joined** Check if any player has joined the lobby. @@ -63,15 +156,33 @@ Check if the lobby game has just started. **Custom message has been received from another player** Check if a custom message has been received from another player. Will be true only for one frame. +??? quote "See parameters" + + - Parameter 0 (string): Message name + **Player has joined** Check if the player has joined the lobby. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Player number + **Player has left** Check if the player has left the lobby game. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Player number + **Lobbies window is open** Check if the lobbies window is open. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Lobby game is running** Check if the lobby game is running. @@ -81,34 +192,82 @@ Check if the host is migrating, in order to adapt the game state (like pausing t **Player is connected** Check if the specified player is connected to the lobby. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): The position of the player in the lobby (1, 2, ...) + **Player is host** Check if the player is the host. (Player 1 is the host) +**Is searching for a lobby to join** +Is searching for a lobby to join. + +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Objects synchronization rate** Compare objects synchronization rate (between 1 and 60, default is 30 times per second). +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Sync rate + **Player variable ownership** Compare the player owning the variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable + Only root variables can change ownership. Arrays and structures children are synchronized with their parent. + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Player number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Number of players in lobby** Compare the number of players in the lobby. +??? quote "See parameters" + + - Parameter 0: 🟰 Relational operator + - Parameter 1 (🔢 Number): Value to compare + +**Quick join failed to join a lobby** +Quick join failed to join a lobby. + +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| +| `Multiplayer::CurrentLobbyID()` | Returns current lobby ID. || | `Multiplayer::CurrentPlayerNumber()` | Return the current player number in the lobby (1, 2, ...). || | `Multiplayer::CurrentPlayerPing()` | Get the ping of the current player in the lobby. || | `Multiplayer::CurrentPlayerUsername()` | Get the username of the current player in the lobby. || | `Multiplayer::LastJoinedPlayerNumber()` | Returns the player number of the player that has just joined the lobby. || | `Multiplayer::LastLeftPlayerNumber()` | Returns the player number of the player that has just left the lobby. || -| `Multiplayer::MessageData()` | Returns the data received when the specified message was received from another player. || -| `Multiplayer::MessageSender()` | Returns the player number of the sender of the specified message. || +| `Multiplayer::MessageData(string)` | Returns the data received when the specified message was received from another player. || +| | _string_ | Message name | +| `Multiplayer::MessageSender(string)` | Returns the player number of the sender of the specified message. || +| | _string_ | Message name | | `Multiplayer::ObjectsSynchronizationRate()` | Return objects synchronization rate (between 1 and 60, default is 30 times per second). || -| `Multiplayer::PlayerPing()` | Get the ping of the player in the lobby. || -| `Multiplayer::PlayerUsername()` | Get the username of the player in the lobby. || -| `Multiplayer::PlayerVariableOwnership()` | Return the player owning the variable. || +| `Multiplayer::PlayerPing(number)` | Get the ping of the player in the lobby. || +| | _🔢 Number_ | The position of the player in the lobby (1, 2, ...) | +| `Multiplayer::PlayerUsername(number)` | Get the username of the player in the lobby. || +| | _🔢 Number_ | The position of the player in the lobby (1, 2, ...) | +| `Multiplayer::PlayerVariableOwnership(variable)` | Return the player owning the variable. || +| | _🗄️ Any variable_ | Variable Only root variables can change ownership. Arrays and structures children are synchronized with their parent. | | `Multiplayer::PlayersInLobbyCount()` | Return the number of players in the lobby. || +| `Multiplayer::QuickJoinFailureReason()` | Returns the reason why the Quick join action failed. It can either be 'FULL' if all lobbies were occupied, 'NOT_ENOUGH_PLAYERS' if the lobby's configuration requires more than 1 player to start the game and no other players were available. It can also take the value 'UNKNOWN'. || ## Multiplayer object @@ -119,28 +278,69 @@ Allow the object to be synchronized with other players in the lobby. **Enable (or disable) the synchronization of a behavior** Enable or disable the synchronization of a behavior over the network. If disabled, the behavior's current state will not be sent to other players anymore. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🧩 Behavior): Multiplayer behavior + - Parameter 2 (🧩 Behavior): Object behavior + - Parameter 3 (❓ Yes or No): Enable synchronization + **Remove object ownership** Remove the ownership of the object from the player. It will still be synchronized to other players, but the host owns it. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Player object ownership** Change the player owning the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Player number + **Take ownership of object** Take the ownership of the object. It will then be synchronized to other players, with the current player as the owner. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + ### Behavior conditions **Is object owned by current player** Check if the object is owned by the current player, as a player or the host. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Player object ownership** Compare the player owning the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Player number + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.MultiplayerObject::PlayerObjectOwnership()` | Return the player owning the object. || + + --- + +The Multiplayer extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Multiplayer** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/network/reference.md b/docs/gdevelop5/all-features/network/reference.md index 8c14c3e4da..1bc23e1fc1 100644 --- a/docs/gdevelop5/all-features/network/reference.md +++ b/docs/gdevelop5/all-features/network/reference.md @@ -1,6 +1,6 @@ # Network Reference -Features to send web requests, communicate with external "APIs" and other network related tasks. [Read more explanations about it.](/gdevelop5/all-features/network) +Actions to send web requests, communicate with external "APIs" and other network related tasks. Also contains an action to open a URL on the device browser. [Read more explanations about it.](/gdevelop5/all-features/network) ## Actions @@ -8,15 +8,46 @@ Features to send web requests, communicate with external "APIs" and other networ Enable, or disable, the sending of anonymous data used to compute the number of sessions and other metrics from your game players. Be sure to only send metrics if in accordance with the terms of service of your game and if they player gave their consent, depending on how your game/company handles this. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Enable the metrics? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Open a URL (web page) or a file** This action launches the specified file or URL, in a browser (or in a new tab if the game is using the Web platform and is launched inside a browser). +??? quote "See parameters" + + - Parameter 0 (string): URL (or filename) + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Send a request to a web page** Send an asynchronous request to the specified web page. Please note that for the web games, the game must be hosted on the same host as specified below, except if the server is configured to answer to all requests (cross-domain requests). +??? quote "See parameters" + + - Parameter 0 (string): URL (API or web-page address) + Example: "https://example.com/user/123". Using *https* is highly recommended. + - Parameter 1 (string): Request body content + - Parameter 2 (🔤 String): Request method + If empty, "GET" will be used. (one of: "GET", "POST", "PUT", "HEAD", "DELETE", "PATCH", "OPTIONS") + - Parameter 3 (string): Content type + If empty, "application/x-www-form-urlencoded" will be used. + - Parameter 4 (🗄️ Scene variable): Variable where to store the response + The response of the server will be stored, as a string, in this variable. If the server returns *JSON*, you may want to use the action "Convert JSON to a scene variable" afterwards, to explore the results with a *structure variable*. + - Parameter 5 (🗄️ Scene variable): Variable where to store the error message + Optional, only used if an error occurs. This will contain the ["status code"](https://en.wikipedia.org/wiki/List_of_HTTP_status_codes) if the server returns a status >= 400. If the request was not sent at all (e.g. no internet or CORS issues), the variable will be set to "REQUEST_NOT_SENT". + + + --- + +The Network extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Network** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/object/reference.md b/docs/gdevelop5/all-features/object/reference.md index 49405574e4..cd3a605391 100644 --- a/docs/gdevelop5/all-features/object/reference.md +++ b/docs/gdevelop5/all-features/object/reference.md @@ -5,314 +5,950 @@ Common features that can be used for all objects in GDevelop. [Read more explana ## Actions **Pick a random object** -Pick one object from all the specified objects. When an object is picked, the next conditions and actions of this event work only on that object. +Pick one instance from all the specified objects. When an instance is picked, the next conditions and actions of this event work only on that object instance. -**Pick all instances** +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Pick all object instances** Pick all instances of the specified object(s). When you pick all instances, the next conditions and actions of this event work on all of them. +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Create an object** -Create an object at specified position +Create an instance of the object at the specified position.The created object instance will be available for the next actions and sub-events. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to create + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4: 🔤 Layer name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. **Create an object from its name** Among the objects of the specified group, this action will create the object with the specified name. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Group of potential objects + Group containing objects that can be created by the action. + - Parameter 2 (string): Name of the object to create + Text representing the name of the object to create. If no objects with this name are found in the group, no object will be created. + - Parameter 3 (🔢 Number): X position + - Parameter 4 (🔢 Number): Y position + - Parameter 5: 🔤 Layer name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Apply movement to all objects** Moves all objects according to the forces they have. GDevelop calls this action at the end of the events by default. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Pick nearest object** +Pick the instance of this object that is nearest to the specified position. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + ## Conditions **Pick a random object** -Pick one object from all the specified objects. When an object is picked, the next conditions and actions of this event work only on that object. +Pick one instance from all the specified objects. When an instance is picked, the next conditions and actions of this event work only on that object instance. + +??? quote "See parameters" + + - Parameter 1: 👾 Object -**Pick all objects** -Pick all the specified objects. When you pick all objects, the next conditions and actions of this event work on all of them. + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Pick all object instances** +Pick all instances of the specified object(s). When you pick all instances, the next conditions and actions of this event work on all of them. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameter 0 are internal parameters handled by GDevelop. **Collision** Test the collision between two objects using their collision masks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 👾 Object + - Parameter 4 (❓ Yes or No): Ignore objects that are touching each other on their edges, but are not overlapping (default: no) + + > Technical note: parameters 2, 3 are internal parameters handled by GDevelop. + **Distance between two objects** Compare the distance between two objects. If condition is inverted, only objects that have a distance greater than specified to any other object will be picked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (👾 Object): Object 2 + - Parameter 2 (🔢 Number): Distance + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **An object is turned toward another** Check if an object is turned toward another +??? quote "See parameters" + + - Parameter 0 (👾 Object): Name of the object + - Parameter 1 (👾 Object): Name of the second object + - Parameter 2 (🔢 Number): Angle of tolerance, in degrees (0: minimum tolerance) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Pick nearest object** -Pick the object of this type that is nearest to the specified position. If the condition is inverted, the object farthest from the specified position is picked instead. +Pick the instance of this object that is nearest to the specified position. If the condition is inverted, the instance farthest from the specified position is picked instead. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + + > Technical note: parameter 3 are internal parameters handled by GDevelop. **Number of object instances currently picked** Compare the number of instances picked by the previous conditions (or actions). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Raycast** Sends a ray from the given source position and angle, intersecting the closest object. The intersected object will become the only one taken into account. If the condition is inverted, the object to be intersected will be the farthest one within the ray radius. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Objects to test against the ray + - Parameter 1 (🔢 Number): Ray source X position + - Parameter 2 (🔢 Number): Ray source Y position + - Parameter 3 (🔢 Number): Ray angle (in degrees) + - Parameter 4 (🔢 Number): Ray maximum distance (in pixels) + - Parameter 5 (🗄️ Scene variable): Result X position scene variable + Scene variable where to store the X position of the intersection. If no intersection is found, the variable won't be changed. + - Parameter 6 (🗄️ Scene variable): Result Y position scene variable + Scene variable where to store the Y position of the intersection. If no intersection is found, the variable won't be changed. + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Raycast to position** Sends a ray from the given source position to the final point, intersecting the closest object. The intersected object will become the only one taken into account. If the condition is inverted, the object to be intersected will be the farthest one within the ray radius. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Objects to test against the ray + - Parameter 1 (🔢 Number): Ray source X position + - Parameter 2 (🔢 Number): Ray source Y position + - Parameter 3 (🔢 Number): Ray target X position + - Parameter 4 (🔢 Number): Ray target Y position + - Parameter 5 (🗄️ Scene variable): Result X position scene variable + Scene variable where to store the X position of the intersection. If no intersection is found, the variable won't be changed. + - Parameter 6 (🗄️ Scene variable): Result Y position scene variable + Scene variable where to store the Y position of the intersection. If no intersection is found, the variable won't be changed. + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Number of object instances on the scene** Compare the number of instances of the specified objects living on the scene. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **An object is moving toward another (using forces)** Check if an object moves toward another. The first object must move. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (👾 Object): Object 2 + - Parameter 2 (🔢 Number): Tolerance, in degrees + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **The cursor/touch is on an object** Test if the cursor is over an object, or if the object is being touched. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 2 (❓ Yes or No): Accurate test (yes by default) + + > Technical note: parameters 1, 3 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `PickedInstancesCount()` | Return the number of instances picked by the previous conditions (or actions). || -| `SceneInstancesCount()` | Return the number of instances of the specified objects living on the scene. || +| `PickedInstancesCount(object)` | Return the number of instances picked by the previous conditions (or actions). || +| | _👾 Object_ | Object | +| `SceneInstancesCount(object)` | Return the number of instances of the specified objects living on the scene. || +| | _👾 Object_ | Object | ### Object actions **De/activate a behavior** De/activate the behavior for the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Activate? + **Add a force (angle)** Add a force to an object. The object will move according to all of the forces it has. This action creates the force using the specified angle and length. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Angle + - Parameter 2 (🔢 Number): Speed (in pixels per second) + - Parameter 3: forceMultiplier + **Add a force to move toward an object** Add a force to an object to make it move toward another. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (👾 Object): Target Object + - Parameter 2 (🔢 Number): Speed (in pixels per second) + - Parameter 3: forceMultiplier + **Add a force to move toward a position** Add a force to an object to make it move toward a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + - Parameter 3 (🔢 Number): Speed (in pixels per second) + - Parameter 4: forceMultiplier + **Add a force** Add a force to an object. The object will move according to all of the forces it has. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Speed on X axis (in pixels per second) + - Parameter 2 (🔢 Number): Speed on Y axis (in pixels per second) + - Parameter 3: forceMultiplier + **Stop the object** Stop the object by deleting all of its forces. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Hide** Hide the specified object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Layer** Move the object to a different layer. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Layer name (String)): Move it to this layer + **Z order** Modify the Z-order of an object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Delete the object** Delete the specified object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Put the object around another** Position an object around another, with the specified angle and distance. The center of the objects are used for positioning them. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (👾 Object): "Center" Object + - Parameter 2 (🔢 Number): Distance + - Parameter 3 (🔢 Number): Angle, in degrees + **Put around a position** Position the center of the given object around a position, using the specified angle and distance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + - Parameter 3 (🔢 Number): Distance + - Parameter 4 (🔢 Number): Angle, in degrees + **X position** Change the X position of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Position** Change the position of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): X position + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Y position + **Y position** Change the Y position of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Change number variable** Modify the number value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Change text variable** Modify the text of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + **Show** Show the specified object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Clear children** Remove all the children from the object array or structure variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array or structure variable + **Add existing variable** Adds an existing variable to the end of an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (🗄️ Any variable): Scene variable with the content to add + The content of the object variable will *be copied* and added at the end of the array. + **Add boolean variable** Adds a boolean to the end of an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (❓ True or False): Boolean to add + **Add number variable** Adds a number to the end of an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (🔢 Number): Number to add + **Add text variable** Adds a text (string) to the end of an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (string): Text to add + **Remove variable by index** Removes a variable at the specified index of an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (🔢 Number): Index to remove + **Remove a child** Remove a child from an object structure variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Structure variable + - Parameter 2 (string): Child's name + **Pause an object timer** Pause an object timer. -**Add boolean variable** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Name (String)): Timer's name + +**Add value to object array variable** Adds a boolean to the end of an object array variable. -**Add variable array value** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (❓ True or False): Boolean to add + +**Add value to object array variable** Adds a number to the end of an object array variable. -**Add text variable** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (🔢 Number): Number to add + +**Add value to object array variable** Adds a text (string) to the end of an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Array variable + - Parameter 2 (string): Text to add + **Delete an object timer** Delete an object timer from memory. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Name (String)): Timer's name + **Start (or reset) an object timer** Reset the specified object timer, if the timer doesn't exist it's created and started. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Name (String)): Timer's name + **Rotate** -Rotate an object, clockwise if the speed is positive, counterclockwise otherwise. +Rotate an object, clockwise if the speed is positive, counterclockwise otherwise. For 3D objects, this is the rotation around the Z axis. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Angular speed (in degrees per second) + + > Technical note: parameter 2 are internal parameters handled by GDevelop. **Rotate toward angle** Rotate an object towards an angle with the specified speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Angle to rotate towards (in degrees) + - Parameter 2 (🔢 Number): Angular speed (in degrees per second) + Enter 0 for an immediate rotation. + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Rotate toward another object** +Rotate an object towards another object, with the specified speed. Note that if multiple instances of the target object are picked, only the first one will be used. Use a For Each event or actions like "Pick nearest object", "Pick a random object" to refine the choice of the target object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (👾 Object): Target object + - Parameter 2 (🔢 Number): Angular speed (in degrees per second) + Enter 0 for an immediate rotation. + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Rotate toward position** Rotate an object towards a position, with the specified speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + Enter 0 for an immediate rotation. + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Separate objects** Move an object away from another using their collision masks. Be sure to call this action on a reasonable number of objects to avoid slowing down the game. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (👾 Object): Objects (won't move) + - Parameter 2 (❓ Yes or No): Ignore objects that are touching each other on their edges, but are not overlapping (default: no) + **Angle** -Change the angle of rotation of an object (in degrees). +Change the angle of rotation of an object (in degrees). For 3D objects, this is the rotation around the Z axis. -**Change boolean variable** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + +**Change object variable value** Modify the boolean value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Operator + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Center position** Change the position of an object, using its center. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): X position + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Y position + **Center X position** Change the X position of the center of rotation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Center Y position** Change the Y position of the center of rotation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Include in parent collision mask** Include or exclude a child from its parent collision mask. -**Change variable value** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Include in parent collision mask + +**Change object variable value** Modify the number value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Change boolean variable** Modify the boolean value of an object variable. -**Change text variable** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2 (❓ True or False): New Value: + +**Change object variable value** Modify the text of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + **Toggle boolean variable** Toggles the boolean value of an object variable. If it was true, it will become false, and if it was false it will become true. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + **Unpause an object timer** Unpause an object timer. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Name (String)): Timer's name + ### Object conditions **Angle** -Compare the angle of the specified object. +Compare the angle, in degrees, of the specified object. For 3D objects, this is the angle around the Z axis. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle to compare to (in degrees) **Object is stopped (no forces applied on it)** Check if an object is not moving +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Behavior activated** Check if the behavior is activated for the object. -**Boolean variable** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Object variable value** Compare the boolean value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2 (❓ True or False): Check if the value is + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Bounding box bottom position** Compare the bounding box (the area encapsulating the object) bottom position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Bounding box center X position** Compare the bounding box (the area encapsulating the object) center X position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Bounding box center Y position** Compare the bounding box (the area encapsulating the object) center Y position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Bounding box left position** Compare the bounding box (the area encapsulating the object) left position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Bounding box right position** Compare the bounding box (the area encapsulating the object) right position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Bounding box top position** Compare the bounding box (the area encapsulating the object) top position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Center X position** Compare the X position of the center of rotation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Center Y position** Compare the Y position of the center of rotation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Point inside object** Test if a point is inside the object collision masks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position of the point + - Parameter 2 (🔢 Number): Y position of the point + **Value of an object timer** Compare the elapsed time of an object timer. This condition doesn't start the timer. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Name (String)): Timer's name + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Time in seconds + **Angle of movement (using forces)** Compare the angle of movement of an object according to the forces applied on it. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Angle, in degrees + - Parameter 2 (🔢 Number): Tolerance, in degrees + **Current layer** Check if the object is on the specified layer. -**Variable value** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🔤 Layer name (String) + +**Object variable value** Compare the number value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Object timer paused** Test if specified object timer is paused. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 Name (String)): Timer's name + **Boolean variable** Compare the boolean value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2 (❓ True or False): Check if the value is + **Number of children** Compare the number of children in an object array variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Child existence** Check if the specified child of the object structure variable exists. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Structure variable + - Parameter 2 (string): Name of the child + **Z-order** Compare the Z-order of the specified object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **X position** Compare the X position of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Y position** Compare the Y position of an object. -**Text variable** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + +**Object variable value** Compare the text of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + **Number variable** Compare the number value of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Text variable** Compare the text of an object variable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🗄️ Object variable): Variable + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + **Visibility** Check if an object is visible. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Speed (from forces)** Compare the overall speed of an object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + ### Object expressions | Expression | Description | | |-----|-----|-----| -| `Object.Angle()` | Current angle, in degrees, of the object || -| `Object.AngleToObject()` | Compute the angle between two objects (in degrees). If you need the angle to an arbitrary position, use AngleToPosition. || -| `Object.AngleToPosition()` | Compute the angle between the object center and a "target" position (in degrees). If you need the angle between two objects, use AngleToObject. || -| `Object.ArrayVariableFirstNumber()` | Get the value of the first element of an object array variable, if it is a number variable. || -| `Object.ArrayVariableFirstString()` | Get the value of the first element of an object array variable, if it is a text (string) variable. || -| `Object.ArrayVariableLastNumber()` | Get the value of the last element of an object array variable, if it is a number variable. || -| `Object.ArrayVariableLastString()` | Get the value of the last element of an object array variable, if it is a text (string) variable. || +| `Object.Angle()` | Current angle, in degrees, of the object. For 3D objects, this is the angle around the Z axis. || +| `Object.AngleToObject(object)` | Compute the angle between two objects (in degrees). If you need the angle to an arbitrary position, use AngleToPosition. || +| | _👾 Object_ | Object | +| `Object.AngleToPosition(number, number)` | Compute the angle between the object center and a "target" position (in degrees). If you need the angle between two objects, use AngleToObject. || +| | _🔢 Number_ | Target X position | +| | _🔢 Number_ | Target Y position | +| `Object.ArrayVariableFirstNumber(object variable)` | Get the value of the first element of an object array variable, if it is a number variable. || +| | _🗄️ Object variable_ | Array variable | +| `Object.ArrayVariableFirstString(object variable)` | Get the value of the first element of an object array variable, if it is a text (string) variable. || +| | _🗄️ Object variable_ | Array variable | +| `Object.ArrayVariableLastNumber(object variable)` | Get the value of the last element of an object array variable, if it is a number variable. || +| | _🗄️ Object variable_ | Array variable | +| `Object.ArrayVariableLastString(object variable)` | Get the value of the last element of an object array variable, if it is a text (string) variable. || +| | _🗄️ Object variable_ | Array variable | | `Object.BoundingBoxBottom()` | Return the bounding box (the area encapsulating the object) bottom position. || | `Object.BoundingBoxCenterX()` | Return the bounding box (the area encapsulating the object) center X position. || | `Object.BoundingBoxCenterY()` | Return the bounding box (the area encapsulating the object) center Y position. || @@ -321,8 +957,11 @@ Compare the overall speed of an object | `Object.BoundingBoxTop()` | Return the bounding box (the area encapsulating the object) top position. || | `Object.CenterX()` | Return the X position of the center of rotation. || | `Object.CenterY()` | Return the Y position of the center of rotation. || -| `Object.Distance()` | Distance between two objects || -| `Object.DistanceToPosition()` | Distance between an object and a position || +| `Object.Distance(object)` | Distance between two objects || +| | _👾 Object_ | Object | +| `Object.DistanceToPosition(number, number)` | Distance between an object and a position || +| | _🔢 Number_ | Target X position | +| | _🔢 Number_ | Target Y position | | `Object.ForceAngle()` | Angle of the sum of forces (in degrees) || | `Object.ForceLength()` | Length of the sum of forces || | `Object.ForceX()` | X coordinate of the sum of forces || @@ -330,18 +969,34 @@ Compare the overall speed of an object | `Object.Height()` | Height of the object || | `Object.Layer()` | Return the name of the layer the object is on || | `Object.ObjectName()` | Return the name of the object || -| `Object.ObjectTimerElapsedTime()` | Value of an object timer || -| `Object.SqDistance()` | Square distance between two objects || -| `Object.SqDistanceToPosition()` | Square distance between an object and a position || -| `Object.Variable()` | Number value of an object variable || -| `Object.VariableChildCount()` | Number of children in an object array or structure variable || -| `Object.VariableString()` | Text of an object variable || +| `Object.ObjectTimerElapsedTime(string)` | Value of an object timer || +| | _🔤 Name (String)_ | Timer's name | +| `Object.SqDistance(object)` | Square distance between two objects || +| | _👾 Object_ | Object | +| `Object.SqDistanceToPosition(number, number)` | Square distance between an object and a position || +| | _🔢 Number_ | Target X position | +| | _🔢 Number_ | Target Y position | +| `Object.Variable(object variable)` | Number value of an object variable || +| | _🗄️ Object variable_ | Variable | +| `Object.VariableChildCount(object variable)` | Number of children in an object array or structure variable || +| | _🗄️ Object variable_ | Array or structure variable | +| `Object.VariableString(object variable)` | Text of an object variable || +| | _🗄️ Object variable_ | Variable | | `Object.Width()` | Width of the object || | `Object.X()` | X position of the object || -| `Object.XFromAngleAndDistance()` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| `Object.XFromAngleAndDistance(number, number)` | Compute the X position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | | `Object.Y()` | Y position of the object || -| `Object.YFromAngleAndDistance()` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| `Object.YFromAngleAndDistance(number, number)` | Compute the Y position when given an angle and distance relative to the starting object. This is also known as getting the cartesian coordinates of a 2D vector, using its polar coordinates. || +| | _🔢 Number_ | Angle, in degrees | +| | _🔢 Number_ | Distance | | `Object.ZOrder()` | Z-order of an object || + + --- + +The Objects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Objects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/opacity-capability/reference.md b/docs/gdevelop5/all-features/opacity-capability/reference.md index 338680d9e5..f2c193a2e3 100644 --- a/docs/gdevelop5/all-features/opacity-capability/reference.md +++ b/docs/gdevelop5/all-features/opacity-capability/reference.md @@ -1,28 +1,47 @@ -# Opacity capability Reference +# Objects with opacity Reference -Change the object opacity. [Read more explanations about it.](/gdevelop5/objects) +Action/condition/expression to change or check the opacity of an object (0-255). [Read more explanations about it.](/gdevelop5/objects) -## Opacity capability +## Objects with opacity -Change the object opacity. +Action/condition/expression to change or check the opacity of an object (0-255). ### Behavior actions **Opacity** Change the opacity of an object, between 0 (fully transparent) to 255 (opaque). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Opacity (0-255) + ### Behavior conditions **Opacity** Compare the opacity of an object, between 0 (fully transparent) to 255 (opaque). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Opacity (0-255) + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.Opacity::Value()` | Return the opacity of an object, between 0 (fully transparent) to 255 (opaque). || + + --- -*This page is an auto-generated reference page about the **Opacity capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Objects with opacity extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Objects with opacity** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/p2p/reference.md b/docs/gdevelop5/all-features/p2p/reference.md index 1e96a7699e..346578a3a6 100644 --- a/docs/gdevelop5/all-features/p2p/reference.md +++ b/docs/gdevelop5/all-features/p2p/reference.md @@ -7,6 +7,10 @@ Allow game instances to communicate remotely using messages sent via WebRTC (P2P **Connect to another client** Connects the current client to another client using its id. +??? quote "See parameters" + + - Parameter 0 (string): ID of the other client + **Disconnect from all** Disconnects the client from the broker server and all other clients. @@ -19,36 +23,89 @@ Disconnects the client from the broker server. **Disconnect from a peer** Disconnects this client from another client. +??? quote "See parameters" + + - Parameter 0 (string): ID of the peer to disconnect from + **Disable IP address sharing** Disables the sharing of IP addresses with the other peers. This action needs to be called BEFORE connecting to the broker server. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Disable sharing of IP addresses + **Get event data (variable)** Store the data of the specified event in a variable. Check in the conditions that the event was received using the "Event received" condition. +??? quote "See parameters" + + - Parameter 0 (string): Event name + - Parameter 1 (🗄️ Scene variable): Variable where to store the received data + **Override the client ID** Overrides the client ID of the current game instance with a specified ID. Must be called BEFORE connecting to a broker. +??? quote "See parameters" + + - Parameter 0 (string): ID + **Trigger event on all connected clients** Triggers an event on all connected clients +??? quote "See parameters" + + - Parameter 0 (string): Event name + - Parameter 1 (string): Extra data (optional) + **Trigger event on all connected clients (variable)** Triggers an event on all connected clients +??? quote "See parameters" + + - Parameter 0 (string): Event name + - Parameter 1 (🗄️ Scene variable): Variable containing the extra data + **Trigger event on a specific client** Triggers an event on a specific connected client +??? quote "See parameters" + + - Parameter 0 (string): ID of the other client + - Parameter 1 (string): Event name + - Parameter 2 (string): Extra data (optional) + **Trigger event on a specific client (variable)** Triggers an event on a specific connected client +??? quote "See parameters" + + - Parameter 0 (string): ID of the other client + - Parameter 1 (string): Event name + - Parameter 2 (🗄️ Scene variable): Variable containing the extra data + **Connect to the default broker server** Connects to the default broker server. **Connect to a broker server** Connects the extension to a broker server. +??? quote "See parameters" + + - Parameter 0 (string): Host + - Parameter 1 (🔢 Number): Port + - Parameter 2 (string): Path + - Parameter 3 (string): Key + - Parameter 4 (❓ Yes or No): SSl enabled? + **Use a custom ICE server** Disables the default ICE (STUN or TURN) servers list and use one of your own. Note that it is recommended to add at least 1 self-hosted STUN and TURN server for games that are not over LAN but over the internet. This action can be used multiple times to add multiple servers. This action needs to be called BEFORE connecting to the broker server. +??? quote "See parameters" + + - Parameter 0 (string): URL to the ICE server + - Parameter 1 (string): (Optional) Username + - Parameter 2 (string): (Optional) Password + ## Conditions **Is P2P ready** @@ -66,16 +123,28 @@ Triggers once when an error occurs. Use P2P::GetLastError() expression to get th **Event triggered by peer** Triggers once when a connected client sends the event +??? quote "See parameters" + + - Parameter 0 (string): Event name + - Parameter 1 (❓ Yes or No): Data loss allowed? + ## Expressions | Expression | Description | | |-----|-----|-----| -| `P2P::GetEventData()` | Returns the data received when the specified event was last triggered || -| `P2P::GetEventSender()` | Returns the id of the peer that triggered the event || +| `P2P::GetEventData(string)` | Returns the data received when the specified event was last triggered || +| | _string_ | Event name | +| `P2P::GetEventSender(string)` | Returns the id of the peer that triggered the event || +| | _string_ | Event name | | `P2P::GetID()` | Gets the client ID of the current game instance || | `P2P::GetLastConnectedPeer()` | Gets the ID of the newly connected peer. || | `P2P::GetLastDisconnectedPeer()` | Gets the ID of the latest peer that has disconnected. || | `P2P::GetLastError()` | Gets the description of the last P2P error || + + --- + +The P2P extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **P2P** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/panel-sprite-object/reference.md b/docs/gdevelop5/all-features/panel-sprite-object/reference.md index a30cf5c51c..c682d5239a 100644 --- a/docs/gdevelop5/all-features/panel-sprite-object/reference.md +++ b/docs/gdevelop5/all-features/panel-sprite-object/reference.md @@ -13,11 +13,28 @@ An image with edges and corners that are stretched separately from the full imag **Tint color** Change the tint of a Panel Sprite. The default color is white. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (color): Tint + **Image name** Change the image of a Panel Sprite. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (imageResource): Image file (or image resource name) + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this object._ + + --- + +The Panel Sprite (9-patch) Object extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Panel Sprite (9-patch) Object** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/particle-system/reference.md b/docs/gdevelop5/all-features/particle-system/reference.md index 7b7c072cc8..19d3dd9670 100644 --- a/docs/gdevelop5/all-features/particle-system/reference.md +++ b/docs/gdevelop5/all-features/particle-system/reference.md @@ -1,202 +1,555 @@ # Particle system Reference -A particle emitter allows to create various effects by showing a lot of tiny images called particles. It's ideal for fires, smoke, explosions, magical effects, etc... [Read more explanations about it.](/gdevelop5/objects/particles_emitter) +A 2D particle emitter allows to create various effects by showing a lot of tiny images called particles. It's ideal for fires, smoke, explosions, magical effects, etc... in 2D games. For 3D games, use the 3D particle emitter instead. [Read more explanations about it.](/gdevelop5/objects/particles_emitter) -## Particles emitter +## 2D particles emitter -Displays a large number of small particles to create visual effects. +Displays a large number of small 2D particles to create visual effects in a 2D game or user interface. ### Object actions **Angle of the spray cone** Modify the angle of the spray cone. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + **Emission angle** Modify emission angle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + **Emission maximal force** Modify maximal emission force of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Emission minimal force** Modify minimal emission force of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Jump emitter forward in time** Simulate the passage of time for an emitter, including creating and moving particles +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Seconds of time + **Start opacity** Modify the start opacity of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **End opacity** Modify the end opacity of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **Start color blue component** Modify the start color blue component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **End color blue component** Modify the end color blue component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **Start color** Modify start color of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (color): Start color + **End color** Modify end color of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (color): End color + **Activate particles additive rendering** Set (or unset) if the particles additive rendering is activated. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): New value + **Number of displayed particles** Change the maximum number of displayed particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Particle rotation max speed** Change the maximum rotation speed of the particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angular speed (in degrees per second) + **Particle rotation min speed** Change the minimum rotation speed of the particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angular speed (in degrees per second) + **Gravity angle** Change gravity angle +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + **Gravity** Change the gravity of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Gravity value on X axis** Change value of the gravity on X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Gravity value on Y axis** Change value of the gravity on Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Start color green component** Modify the start color green component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **End color green component** Modify the end color green component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **Maximum lifetime** Modify particles maximum lifetime. Particles have to be recreated in order to take changes in account. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Duration (in seconds) + **Minimum lifetime** Modify particles minimum lifetime. Particles have to be recreated in order to take changes in account. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Duration (in seconds) + **Start color red component** Modify the start color red component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **End color red component** Modify the end color red component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value (0-255) + **Start size** Modify the particle start size. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **End size** Modify the particle end size. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Recreate particles** Destroy and recreate particles, so as to take changes made to setup of the emitter in account. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Flow** Change the flow of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Flow (in particles per second) + **Capacity** Change the capacity of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Capacity + **Particle image** Change the image of particles (if displayed). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (imageResource): Image file (or image resource name) + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Start emission** Refill tank (if not infinite) and start emission of the particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Stop emission** Stop the emission of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Creation radius** Modify creation radius of particles. Particles have to be recreated in order to take changes in account. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + ### Object conditions **Angle of the spray cone** Test the angle of the spray cone of the emitter +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle to compare to (in degrees) + **Emission angle** Test the value of emission angle of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle to compare to (in degrees) + **Flow** Test the flow of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Flow to compare to (in particles per second) + **No more particles** Check if the object does not emit particles any longer, so as to destroy it for example. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Start opacity** Compare the start opacity of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **End opacity** Compare the end opacity of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **Start color blue component** Compare the start color blue component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **End color blue component** Compare the end color blue component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **Activate particles additive rendering** Check if the particles additive rendering is activated. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Number of displayed particles** Compare the maximum number of displayed particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Particle rotation max speed** Compare the maximum rotation speed of the particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angular speed (in degrees per second) + **Particle rotation min speed** Compare the minimum rotation speed of the particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angular speed (in degrees per second) + **Gravity angle** Test the gravity angle of the emitter +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle to compare to (in degrees) + **Gravity** Test the gravity of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Gravity value on X axis** Compare value of the gravity on X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Gravity value on Y axis** Compare value of the gravity on Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Start color green component** Compare the start color green component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **End color green component** Compare the end color green component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **Maximum lifetime** Test maximum lifetime of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Duration to compare to (in seconds) + **Minimum lifetime** Test minimum lifetime of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Duration to compare to (in seconds) + **Start color red component** Compare the start color red component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **End color red component** Compare the end color red component. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare to (0-255) + **Start size** Compare the particle start size. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **End size** Compare the particle end size. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Capacity** Test the capacity of the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Capacity to compare to + **Image** Test the name of the image displayed by particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + **Creation radius** Test creation radius of particles. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + ### Object expressions | Expression | Description | | @@ -232,5 +585,10 @@ Test creation radius of particles. | `Object.Texture()` | Name of the image displayed by particles. || | `Object.ZoneRadius()` | The radius of the emission zone. || + + --- + +The Particle system extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Particle system** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/pathfinding-behavior/reference.md b/docs/gdevelop5/all-features/pathfinding-behavior/reference.md index 609af1fbeb..a2177c13fe 100644 --- a/docs/gdevelop5/all-features/pathfinding-behavior/reference.md +++ b/docs/gdevelop5/all-features/pathfinding-behavior/reference.md @@ -13,89 +13,277 @@ Move objects to a target while avoiding all objects that are flagged as obstacle **Acceleration** Change the acceleration when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Diagonal movement** Allow or restrict diagonal movement on the path +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Allow? + **Rotation offset** Change the rotation offset applied when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Angular maximum speed** Change the maximum angular speed when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max angular speed (in degrees per second) + **Height of the cells** Change the height of the cells of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Width of the cells** Change the width of the cells of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Extra border** Change the size of the extra border applied to the object when planning a path +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Maximum speed** Change the maximum speed when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max speed (in pixels per second) + **Grid X offset** Change X offset of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Grid Y offset** Change Y offset of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Rotate the object** Enable or disable rotation of the object on the path +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Rotate object? + **Move to a position** Move the object to a position +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 3 (🔢 Number): Destination X position + - Parameter 4 (🔢 Number): Destination Y position + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Speed** Change the speed of the object on the path +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + ### Behavior conditions **Acceleration** Compare the acceleration when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Rotation offset** Compare the rotation offset when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angle to compare to (in degrees) + **Angular maximum speed** Compare the maximum angular speed when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max angular speed to compare to (in degrees per second) + **Height of the virtual grid** Compare the height of the cells of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Width of the virtual grid** Compare the width of the cells of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Destination reached** Check if the destination was reached. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Diagonal movement** Check if the object is allowed to move diagonally on the path +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Extra border** Compare the size of the extra border applied to the object when planning a path +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Maximum speed** Compare the maximum speed when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max speed to compare to (in pixels per second) + **Object rotated** Check if the object is rotated when traveling on its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Path found** Check if a path has been found. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Grid X offset** Compare X offset of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Grid Y offset** Compare Y offset of the virtual grid. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Angle of movement on its path** Compare the angle of movement of an object on its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle, in degrees + - Parameter 3 (🔢 Number): Tolerance, in degrees + **Speed on its path** Compare the speed of the object on its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + ### Behavior expressions | Expression | Description | | @@ -108,8 +296,10 @@ Compare the speed of the object on its path. | `Object.Pathfinding::DestinationX()` | Destination X position || | `Object.Pathfinding::DestinationY()` | Destination Y position || | `Object.Pathfinding::ExtraBorder()` | Extra border applied the object on the path || -| `Object.Pathfinding::GetNodeX()` | Get next waypoint X position || -| `Object.Pathfinding::GetNodeY()` | Get next waypoint Y position || +| `Object.Pathfinding::GetNodeX(number)` | Get next waypoint X position || +| | _🔢 Number_ | Node index (start at 0!) | +| `Object.Pathfinding::GetNodeY(number)` | Get next waypoint Y position || +| | _🔢 Number_ | Node index (start at 0!) | | `Object.Pathfinding::GridOffsetX()` | Return X offset of the virtual grid. || | `Object.Pathfinding::GridOffsetY()` | Return Y offset of the virtual grid. || | `Object.Pathfinding::LastNodeX()` | Last waypoint X position || @@ -131,22 +321,52 @@ Flag objects as being obstacles for pathfinding. **Cost** Change the cost of going through the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Should object be impassable** Decide if the object is an impassable obstacle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Impassable + ### Behavior conditions **Cost** Compare the cost of going through the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Impassable obstacle** Check if the obstacle is impassable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.PathfindingObstacle::Cost()` | Obstacle cost || + + --- + +The Pathfinding behavior extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Pathfinding behavior** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/physics-behavior/reference.md b/docs/gdevelop5/all-features/physics-behavior/reference.md index 7c916ead24..b6fa92944b 100644 --- a/docs/gdevelop5/all-features/physics-behavior/reference.md +++ b/docs/gdevelop5/all-features/physics-behavior/reference.md @@ -13,112 +13,403 @@ Make objects move as if they are subject to the laws of physics. If you're creat **Add a gear between two objects** Add a virtual gear between two objects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + - Parameter 3 (🔢 Number): Ratio + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Add a hinge** Add a hinge that the object will rotate around. The distance between the hinge and the object will remain identical. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Hinge X position + - Parameter 3 (🔢 Number): Hinge Y position + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Add a hinge between two objects** Add a hinge that the object will rotate around. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + - Parameter 4 (🔢 Number): X position of the hinge, from the first object mass center + - Parameter 5 (🔢 Number): Y position of the hinge, from the first object mass center + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Add a force** Add a force to the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component ( Newtons ) + - Parameter 3 (🔢 Number): Y component ( Newtons ) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Apply a force toward a position** Apply a force, directed toward a position, to the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (🔢 Number): Length of the force ( Newtons ) + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Apply a force ( angle )** Apply a force to an object, using an angle and a length as coordinates. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + - Parameter 3 (🔢 Number): Length of the force ( Newtons ) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Apply an impulse** Apply an impulse to the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component ( Newtons/Seconds ) + - Parameter 3 (🔢 Number): Y component ( Newtons/Seconds ) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Apply an impulse toward a position** Apply an impulse, directed toward a position, to the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (🔢 Number): Impulse value ( Newton/seconds ) + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Apply an impulse (angle)** Apply an impulse to an object, using an angle and a length as coordinates. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + - Parameter 3 (🔢 Number): Impulse value ( Newton/seconds ) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Add a torque (a rotation)** Add a torque (a rotation) to the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Torque value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Do not treat object like a bullet** Do not treat the object like a bullet, so it will use standard collision handling. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Angular damping** Modify the angular damping of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Angular speed** Modify the angular velocity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): New value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Treat object like a bullet.** Treat the object like a bullet, so it will have better collision handling. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Make the object dynamic** Make the object dynamic ( affected by forces and other objects ). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Fix rotation** Prevent the object from rotating +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Make object's rotation free** Allows the object to rotate. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Gravity** Modify the gravity +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X Coordinate + - Parameter 3 (🔢 Number): Y Coordinate + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Linear damping** Modify the linear damping of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Linear velocity** Modify the velocity of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X Coordinate + - Parameter 3 (🔢 Number): Y Coordinate + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Change the X scale of a collision polygon** Change the X scale of the polygon. Use a value greater than 1 to enlarge the polygon, less than 1 to reduce it. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Scale + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Change the Y scale of a collision polygon** Change the Y scale of the polygon. Use a value greater than 1 to enlarge the polygon, less than 1 to reduce it. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Scale + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Make the object static** Make the object immovable. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Angular damping** Test the object's angular damping +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Angular speed** Compare the angular speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Collision** Test if two objects are colliding. Attention! Only objects specified in the first parameter will be taken into account by the next actions and conditions, if they are colliding with the other objects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Collision polygon X scale** Test the value of the X scale of the collision polygon. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Collision polygon Y scale** Test the value of the Y scale of the collision polygon. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Object is treated like a bullet** Test if the object is treated like a bullet +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **The object is dynamic** Test if an object is dynamic ( affected by forces and other objects ). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Fixed rotation** Test if the object's rotation is fixed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Linear damping** Compare the linear damping of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Linear speed** Compare the linear velocity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **X component** Compare the linear velocity on the X axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Y component** Compare the linear velocity on the Y axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -132,5 +423,10 @@ Compare the linear velocity on the Y axis of the object. | `Object.Physics::PolygonScaleX()` | Collision polygon X scale || | `Object.Physics::PolygonScaleY()` | Collision polygon Y scale || + + --- + +The Physics Engine (deprecated) extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Physics Engine (deprecated)** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/physics2/reference.md b/docs/gdevelop5/all-features/physics2/reference.md index e9740e1c65..16f4350d36 100644 --- a/docs/gdevelop5/all-features/physics2/reference.md +++ b/docs/gdevelop5/all-features/physics2/reference.md @@ -1,350 +1,1248 @@ -# Physics Engine 2.0 Reference +# 2D Physics Engine Reference -The physics engine simulates realistic object physics, with gravity, forces, joints, etc. It's perfect for games that need to have realistic behaving objects and a gameplay centered around it. [Read more explanations about it.](/gdevelop5/behaviors/physics2) +The 2D physics engine simulates realistic object physics, with gravity, forces, collisions, joints, etc. It's perfect for 2D games that need to have realistic behaving objects and a gameplay centered around it. + +Objects like floors or wall objects should usually be set to "Static" as type. Objects that should be moveable are usually "Dynamic" (default). "Kinematic" objects (typically, players or controlled characters) are only moved by their "linear velocity" and "angular velocity" - they can interact with other objects but only these other objects will move. + +Forces (and impulses) are expressed in all conditions/expressions/actions of the 2D physics engine in Newtons (N). Typical values for a force are 10-200 N. One meter is 100 pixels by default in the game (check the world scale). Mass is expressed in kilograms (kg). [Read more explanations about it.](/gdevelop5/behaviors/physics2) ## Actions **World time scale** Modify the world time scale. While an object is needed, this will apply to all objects using the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Time scale (1 by default) + ## Conditions **Collision** Check if two objects collide. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Collision started** Check if two objects just started colliding during this frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Collision stopped** Check if two objects just stopped colliding at this frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + > Technical note: parameter 3 are internal parameters handled by GDevelop. -## Physics Engine 2.0 -Simulate realistic object physics with gravity, forces, joints, etc. + +## 2D Physics Engine + +Simulate realistic 2D physics for the object including gravity, forces, collisions, and joints. ### Behavior actions **Add distance joint** Add a distance joint between two objects. The length is converted to meters using the world scale on X. The frequency and damping ratio are related to the joint speed of oscillation and how fast it stops. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Length (-1 to use current objects distance) (default: -1) + - Parameter 8 (🔢 Number): Frequency (Hz) (non-negative) (default: 0) + - Parameter 9 (🔢 Number): Damping ratio (non-negative) (default: 1) + - Parameter 10 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 11 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add friction joint** Add a friction joint between two objects. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Maximum force (non-negative) + - Parameter 8 (🔢 Number): Maximum torque (non-negative) + - Parameter 9 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 10 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add gear joint** Add a gear joint between two joints. Attention: Gear joints require the joints to be revolute or prismatic, and both of them to be attached to a static body as first object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): First joint ID + - Parameter 3 (🔢 Number): Second joint ID + - Parameter 4 (🔢 Number): Ratio (non-zero) (default: 1) + - Parameter 5 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 6 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add motor joint** Add a motor joint between two objects. The position and angle offsets are relative to the first object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Second object + - Parameter 3 (🔢 Number): Offset X position + - Parameter 4 (🔢 Number): Offset Y position + - Parameter 5 (🔢 Number): Offset Angle + - Parameter 6 (🔢 Number): Maximum force (non-negative) + - Parameter 7 (🔢 Number): Maximum torque (non-negative) + - Parameter 8 (🔢 Number): Correction factor (default: 1) + - Parameter 9 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 10 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add mouse joint** Add a mouse joint to an object (makes the object move towards a specific point). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Target X + - Parameter 3 (🔢 Number): Target Y + - Parameter 4 (🔢 Number): Maximum force (N) (non-negative) (default: 500) + - Parameter 5 (🔢 Number): Frequency (Hz) (positive) (default: 10) + - Parameter 6 (🔢 Number): Damping ratio (non-negative) (default: 1) + - Parameter 7 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add prismatic joint** Add a prismatic joint between two objects. The translation limits are converted to meters using the world scale on X. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Axis angle + - Parameter 8 (🔢 Number): Reference angle (default: 0) + - Parameter 9 (❓ Yes or No): Enable limits? (default: no) + - Parameter 10 (🔢 Number): Minimum translation (default: 0) + - Parameter 11 (🔢 Number): Maximum translation (default: 0) + - Parameter 12 (❓ Yes or No): Enable motor? (default: no) + - Parameter 13 (🔢 Number): Motor speed (default: 0) + - Parameter 14 (🔢 Number): Motor maximum force (default: 0) + - Parameter 15 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 16 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add pulley joint** Add a pulley joint between two objects. Lengths are converted to meters using the world scale on X. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Ground anchor X for first object + - Parameter 8 (🔢 Number): Ground anchor Y for first object + - Parameter 9 (🔢 Number): Ground anchor X for second object + - Parameter 10 (🔢 Number): Ground anchor Y for second object + - Parameter 11 (🔢 Number): Length for first object (-1 to use anchor positions) (default: -1) + - Parameter 12 (🔢 Number): Length for second object (-1 to use anchor positions) (default: -1) + - Parameter 13 (🔢 Number): Ratio (non-negative) (default: 1 + - Parameter 14 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 15 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add revolute joint** Add a revolute joint to an object at a fixed point. The object is attached as the second object in the joint, so you can use this for gear joints. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X anchor + - Parameter 3 (🔢 Number): Y anchor + - Parameter 4 (❓ Yes or No): Enable angle limits? (default: no) + - Parameter 5 (🔢 Number): Reference angle (default: 0) + - Parameter 6 (🔢 Number): Minimum angle (default: 0) + - Parameter 7 (🔢 Number): Maximum angle (default: 0) + - Parameter 8 (❓ Yes or No): Enable motor? (default: no) + - Parameter 9 (🔢 Number): Motor speed (default: 0) + - Parameter 10 (🔢 Number): Motor maximum torque (default: 0) + - Parameter 11 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add revolute joint between two bodies** Add a revolute joint between two objects. The reference angle determines what is considered as the base angle at the initial state. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (❓ Yes or No): Enable angle limits? (default: no) + - Parameter 8 (🔢 Number): Reference angle (default: 0) + - Parameter 9 (🔢 Number): Minimum angle (default: 0) + - Parameter 10 (🔢 Number): Maximum angle (default: 0) + - Parameter 11 (❓ Yes or No): Enable motor? (default: no) + - Parameter 12 (🔢 Number): Motor speed (default: 0) + - Parameter 13 (🔢 Number): Motor maximum torque (default: 0) + - Parameter 14 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 15 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add rope joint** Add a rope joint between two objects. The maximum length is converted to meters using the world scale on X. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Maximum length (-1 to use current objects distance) (default: -1) + - Parameter 8 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 9 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add weld joint** Add a weld joint between two objects. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Reference angle (default: 0) + - Parameter 8 (🔢 Number): Frequency (Hz) (non-negative) (default: 10) + - Parameter 9 (🔢 Number): Damping ratio (non-negative) (default: 1) + - Parameter 10 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 11 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Add wheel joint** Add a wheel joint between two objects. Higher frequencies means higher suspensions. Damping determines oscillations, critical damping of 1 means no oscillations. +??? quote "See parameters" + + - Parameter 0 (👾 Object): First object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Anchor X on first body + - Parameter 3 (🔢 Number): Anchor Y on first body + - Parameter 4 (👾 Object): Second object + - Parameter 5 (🔢 Number): Anchor X on second body + - Parameter 6 (🔢 Number): Anchor Y on second body + - Parameter 7 (🔢 Number): Axis angle + - Parameter 8 (🔢 Number): Frequency (Hz) (non-negative) (default: 10) + - Parameter 9 (🔢 Number): Damping ratio (non-negative) (default: 1) + - Parameter 10 (❓ Yes or No): Enable motor? (default: no) + - Parameter 11 (🔢 Number): Motor speed (default: 0) + - Parameter 12 (🔢 Number): Motor maximum torque (default: 0) + - Parameter 13 (❓ Yes or No): Allow collision between connected bodies? (default: no) + - Parameter 14 (🗄️ Scene variable): Variable where to store the joint ID (default: none) + **Angular damping** Modify an object angular damping. How much angular speed is lost across the time. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Angular velocity** Modify an object angular velocity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + **Apply angular impulse (rotational impulse)** Apply an angular impulse (also called a "rotational impulse") to the object. It instantly changes the rotation speed, to give an initial speed for instance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angular impulse (N·m·s) + An impulse is like a rotation speed addition but depends on the mass. + **Apply force** Apply a force to the object over time. It "accelerates" an object and must be used every frame during a time period. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component (N) + - Parameter 3 (🔢 Number): Y component (N) + A force is like an acceleration but depends on the mass. + - Parameter 4 (🔢 Number): Application point on X axis + - Parameter 5 (🔢 Number): Application point on Y axis + Use `MassCenterX` and `MassCenterY` expressions to avoid any rotation. + **Apply force toward position** Apply a force to the object over time to move it toward a position. It "accelerates" an object and must be used every frame during a time period. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Length (N) + A force is like an acceleration but depends on the mass. + - Parameter 3 (🔢 Number): X position + - Parameter 4 (🔢 Number): Y position + - Parameter 5 (🔢 Number): Application point on X axis + - Parameter 6 (🔢 Number): Application point on Y axis + Use `MassCenterX` and `MassCenterY` expressions to avoid any rotation. + **Apply impulse** Apply an impulse to the object. It instantly changes the speed, to give an initial speed for instance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component (N·s or kg·m·s⁻¹) + - Parameter 3 (🔢 Number): Y component (N·s or kg·m·s⁻¹) + An impulse is like a speed addition but depends on the mass. + - Parameter 4 (🔢 Number): Application point on X axis + - Parameter 5 (🔢 Number): Application point on Y axis + Use `MassCenterX` and `MassCenterY` expressions to avoid any rotation. + **Apply impulse toward position** Apply an impulse to the object to move it toward a position. It instantly changes the speed, to give an initial speed for instance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Length (N·s or kg·m·s⁻¹) + An impulse is like a speed addition but depends on the mass. + - Parameter 3 (🔢 Number): X position + - Parameter 4 (🔢 Number): Y position + - Parameter 5 (🔢 Number): Application point on X axis + - Parameter 6 (🔢 Number): Application point on Y axis + Use `MassCenterX` and `MassCenterY` expressions to avoid any rotation. + **Apply force (angle)** Apply a force to the object over time using polar coordinates. It "accelerates" an object and must be used every frame during a time period. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + - Parameter 3 (🔢 Number): Length (N) + A force is like an acceleration but depends on the mass. + - Parameter 4 (🔢 Number): Application point on X axis + - Parameter 5 (🔢 Number): Application point on Y axis + Use `MassCenterX` and `MassCenterY` expressions to avoid any rotation. + **Apply impulse (angle)** Apply an impulse to the object using polar coordinates. It instantly changes the speed, to give an initial speed for instance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + - Parameter 3 (🔢 Number): Length (N·s or kg·m·s⁻¹) + An impulse is like a speed addition but depends on the mass. + - Parameter 4 (🔢 Number): Application point on X axis + - Parameter 5 (🔢 Number): Application point on Y axis + Use `MassCenterX` and `MassCenterY` expressions to avoid any rotation. + **Apply torque (rotational force)** Apply a torque (also called "rotational force") to the object. It "accelerates" an object rotation and must be used every frame during a time period. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Torque (N·m) + A torque is like a rotation acceleration but depends on the mass. + **Density** Modify an object density. The body's density and volume determine its mass. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Distance joint damping ratio** Modify a distance joint damping ratio. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Distance joint frequency** Modify a distance joint frequency. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Distance joint length** Modify a distance joint length. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Enable layer** Enable or disable a layer for an object. Two objects collide if any layer of the first object matches any mask of the second one and vice versa. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Layer (1 - 16) + - Parameter 3 (❓ Yes or No): Enable + **Enable mask** Enable or disable a mask for an object. Two objects collide if any layer of the first object matches any mask of the second one and vice versa. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Mask (1 - 16) + - Parameter 3 (❓ Yes or No): Enable + **Enable prismatic joint limits** Enable or disable a prismatic joint limits. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (❓ Yes or No): Enable + **Enable prismatic joint motor** Enable or disable a prismatic joint motor. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (❓ Yes or No): Enable + **Enable revolute joint limits** Enable or disable a revolute joint angle limits. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (❓ Yes or No): Enable + **Enable revolute joint motor** Enable or disable a revolute joint motor. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (❓ Yes or No): Enable + **Enable wheel joint motor** Enable or disable a wheel joint motor. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (❓ Yes or No): Enable + **Friction** Modify an object friction. How much energy is lost from the movement of one object over another. The combined friction from two bodies is calculated as 'sqrt(bodyA.friction * bodyB.friction)'. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Friction joint max force** Modify a friction joint maximum force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Friction joint max torque** Modify a friction joint maximum torque. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Gear joint ratio** Modify a Gear joint ratio. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **World gravity** Modify the world gravity. While an object is needed, this will apply to all objects using the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Gravity X + - Parameter 3 (🔢 Number): Gravity Y + **Gravity scale** Modify an object gravity scale. The gravity applied to an object is the world gravity multiplied by the object gravity scale. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Linear damping** Modify an object linear damping. How much movement speed is lost across the time. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Linear velocity towards an angle** Set the linear velocity towards an angle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Linear velocity X** Modify an object linear velocity on X. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Linear velocity Y** Modify an object linear velocity on Y. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Motor joint angular offset** Modify a motor joint angular offset. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Motor joint correction factor** Modify a motor joint correction factor. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Motor joint max force** Modify a motor joint maximum force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Motor joint max torque** Modify a motor joint maximum torque. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Motor joint offset** Modify a motor joint offset. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (🔢 Number): Offset X + - Parameter 4 (🔢 Number): Offset Y + **Mouse joint damping ratio** Set a mouse joint damping ratio. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Mouse joint frequency** Set a mouse joint frequency. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Mouse joint max force** Set a mouse joint maximum force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Mouse joint target** Set a mouse joint target. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (🔢 Number): Target X + - Parameter 4 (🔢 Number): Target Y + **Prismatic joint limits** Modify a prismatic joint limits. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (🔢 Number): Minimum translation + - Parameter 4 (🔢 Number): Maximum translation + **Prismatic joint max motor force** Modify a prismatic joint maximum motor force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Prismatic joint motor speed** Modify a prismatic joint motor speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Remove joint** Remove a joint from the scene. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + **Restitution** Modify an object restitution. Energy conservation on collision. The combined restitution from two bodies is calculated as 'max(bodyA.restitution, bodyB.restitution)'. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Revolute joint limits** Modify a revolute joint angle limits. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3 (🔢 Number): Minimum angle + - Parameter 4 (🔢 Number): Maximum angle + **Revolute joint max motor torque** Modify a revolute joint maximum motor torque. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Revolute joint motor speed** Modify a revolute joint motor speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Rope joint max length** Modify a rope joint maximum length. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Treat as bullet** Treat the object as a bullet. Better collision handling on high speeds at cost of some performance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Treat as bullet + **Set as dynamic** Set an object as dynamic. Is affected by gravity, forces and velocities. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Fixed rotation** Enable or disable an object fixed rotation. If enabled the object won't be able to rotate. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Fixed rotation + **Set as kinematic** Set an object as kinematic. Is like a static body but can be moved through its velocity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Sleeping allowed** Allow or not an object to sleep. If enabled the object will be able to sleep, improving performance for non-currently-moving objects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Can sleep + **Set as static** Set an object as static. Is not affected by gravity, and can't be moved by forces or velocities at all. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Shape scale** Modify an object shape scale. It affects custom shape dimensions and shape offset, if custom dimensions are not set the body will be scaled automatically to the object size. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Weld joint damping ratio** Modify a weld joint damping ratio. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Weld joint frequency** Modify a weld joint frequency. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Wheel joint damping ratio** Modify a wheel joint damping ratio. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Wheel joint frequency** Modify a wheel joint frequency. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Wheel joint max motor torque** Modify a wheel joint maximum motor torque. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + **Wheel joint motor speed** Modify a wheel joint motor speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Operator + - Parameter 4 (🔢 Number): Value + ### Behavior conditions **Angular damping** Test an object angular damping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Angular velocity** Test an object angular velocity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angular speed to compare to (in degrees per second) + **Density** Test an object density. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Friction** Test an object friction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Gravity scale** Test an object gravity scale. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Scale to compare to (1 by default) + **World gravity on X axis** Compare the world gravity on X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity to compare to (in pixels per second per second) + **World gravity on Y axis** Compare the world gravity on Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity to compare to (in pixels per second per second) + **Has fixed rotation** -Test if an object has fixed rotation. +Check if an object has fixed rotation. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is treated as a bullet** +Check if the object is being treated as a bullet. -**Is treat as bullet** -Test if an object is being treat as a bullet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Is dynamic** -Test if an object is dynamic. +Check if an object is dynamic. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Is kinematic** -Test if an object is kinematic. +Check if an object is kinematic. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Is sleeping** -Test if an object is sleeping. +Check if an object is sleeping. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Is sleeping allowed** -Test if an object can sleep. +Check if an object can sleep. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Is static** -Test if an object is static. +Check if an object is static. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior **Joint first object** -Test if an object is the first object on a joint. +Check if an object is the first object on a joint. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID **Joint reaction force** Test a joint reaction force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + **Joint reaction torque** Test a joint reaction torque. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + **Joint second object** -Test if an object is the second object on a joint. +Check if an object is the second object on a joint. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID **Layer enabled** -Test if an object has a specific layer enabled. +Check if an object has a specific layer enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Layer (1 - 16) **Linear damping** Test an object linear damping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Linear velocity** Test an object linear velocity length. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Linear velocity X** Test an object linear velocity on X. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Linear velocity Y** Test an object linear velocity on Y. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Mask enabled** -Test if an object has a specific mask enabled. +Check if an object has a specific mask enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Mask (1 - 16) **Linear velocity angle** Compare the linear velocity angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3 (🔢 Number): Tolerance (in degrees) + **Prismatic joint limits enabled** -Test if a prismatic joint limits are enabled. +Check if a prismatic joint limits are enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID **Prismatic joint motor enabled** -Test if a prismatic joint motor is enabled. +Check if a prismatic joint motor is enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID **Restitution** Test an object restitution. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Revolute joint limits enabled** -Test if a revolute joint limits are enabled. +Check if a revolute joint limits are enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID **Revolute joint motor enabled** -Test if a revolute joint motor is enabled. +Check if a revolute joint motor is enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID **World time scale** Compare the world time scale. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Time scale to compare to (1 by default) + **Wheel joint motor enabled** -Test if a wheel joint motor is enabled. +Check if a wheel joint motor is enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Joint ID ### Behavior expressions @@ -353,25 +1251,39 @@ Test if a wheel joint motor is enabled. | `Object.Physics2::AngularDamping()` | Get the angular damping of an object. || | `Object.Physics2::AngularVelocity()` | Get the angular velocity of an object. || | `Object.Physics2::Density()` | Get the density of an object. || -| `Object.Physics2::DistanceJointDampingRatio()` | Distance joint damping ratio || -| `Object.Physics2::DistanceJointFrequency()` | Distance joint frequency || -| `Object.Physics2::DistanceJointLength()` | Distance joint length || +| `Object.Physics2::DistanceJointDampingRatio(number)` | Distance joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::DistanceJointFrequency(number)` | Distance joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::DistanceJointLength(number)` | Distance joint length || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::Friction()` | Get the friction of an object. || -| `Object.Physics2::FrictionJointMaxForce()` | Friction joint maximum force || -| `Object.Physics2::FrictionJointMaxTorque()` | Friction joint maximum torque || -| `Object.Physics2::GearJointFirstJoint()` | Gear joint first joint || -| `Object.Physics2::GearJointRatio()` | Gear joint ratio || -| `Object.Physics2::GearJointSecondJoint()` | Gear joint second joint || +| `Object.Physics2::FrictionJointMaxForce(number)` | Friction joint maximum force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::FrictionJointMaxTorque(number)` | Friction joint maximum torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::GearJointFirstJoint(number)` | Gear joint first joint || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::GearJointRatio(number)` | Gear joint ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::GearJointSecondJoint(number)` | Gear joint second joint || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::GravityScale()` | Get the gravity scale of an object. || | `Object.Physics2::GravityX()` | World gravity on X axis || | `Object.Physics2::GravityY()` | World gravity on Y axis || | `Object.Physics2::Inertia()` | Return the rotational inertia of the object (in kilograms · meters²) || -| `Object.Physics2::JointFirstAnchorX()` | Joint first anchor X || -| `Object.Physics2::JointFirstAnchorY()` | Joint first anchor Y || -| `Object.Physics2::JointReactionForce()` | Joint reaction force || -| `Object.Physics2::JointReactionTorque()` | Joint reaction torque || -| `Object.Physics2::JointSecondAnchorX()` | Joint second anchor X || -| `Object.Physics2::JointSecondAnchorY()` | Joint second anchor Y || +| `Object.Physics2::JointFirstAnchorX(number)` | Joint first anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointFirstAnchorY(number)` | Joint first anchor Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointReactionForce(number)` | Joint reaction force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointReactionTorque(number)` | Joint reaction torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointSecondAnchorX(number)` | Joint second anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::JointSecondAnchorY(number)` | Joint second anchor Y || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::LinearDamping()` | Get the linear damping of an object. || | `Object.Physics2::LinearVelocity()` | Get the linear velocity of an object. || | `Object.Physics2::LinearVelocityAngle()` | Get the linear velocity angle of an object. || @@ -380,56 +1292,108 @@ Test if a wheel joint motor is enabled. | `Object.Physics2::Mass()` | Return the mass of the object (in kilograms) || | `Object.Physics2::MassCenterX()` | Mass center X || | `Object.Physics2::MassCenterY()` | Mass center Y || -| `Object.Physics2::MotorJointAngularOffset()` | Motor joint angular offset || -| `Object.Physics2::MotorJointCorrectionFactor()` | Motor joint correction factor || -| `Object.Physics2::MotorJointMaxForce()` | Motor joint maximum force || -| `Object.Physics2::MotorJointMaxTorque()` | Motor joint maximum torque || -| `Object.Physics2::MotorJointOffsetX()` | Motor joint offset X || -| `Object.Physics2::MotorJointOffsetY()` | Motor joint offset Y || -| `Object.Physics2::MouseJointDampingRatio()` | Mouse joint damping ratio || -| `Object.Physics2::MouseJointFrequency()` | Mouse joint frequency || -| `Object.Physics2::MouseJointMaxForce()` | Mouse joint maximum force || -| `Object.Physics2::MouseJointTargetX()` | Mouse joint target X || -| `Object.Physics2::MouseJointTargetY()` | Mouse joint target Y || -| `Object.Physics2::PrismaticJointAxisAngle()` | Prismatic joint axis angle || -| `Object.Physics2::PrismaticJointMaxMotorForce()` | Prismatic joint maximum motor force || -| `Object.Physics2::PrismaticJointMaxTranslation()` | Prismatic joint maximum translation || -| `Object.Physics2::PrismaticJointMinTranslation()` | Prismatic joint minimum translation || -| `Object.Physics2::PrismaticJointMotorForce()` | Prismatic joint motor force || -| `Object.Physics2::PrismaticJointMotorSpeed()` | Prismatic joint motor speed || -| `Object.Physics2::PrismaticJointReferenceAngle()` | Prismatic joint reference angle || -| `Object.Physics2::PrismaticJointSpeed()` | Prismatic joint speed || -| `Object.Physics2::PrismaticJointTranslation()` | Prismatic joint current translation || -| `Object.Physics2::PulleyJointFirstGroundAnchorX()` | Pulley joint first ground anchor X || -| `Object.Physics2::PulleyJointFirstGroundAnchorY()` | Pulley joint first ground anchor Y || -| `Object.Physics2::PulleyJointFirstLength()` | Pulley joint first length || -| `Object.Physics2::PulleyJointRatio()` | Pulley joint ratio || -| `Object.Physics2::PulleyJointSecondGroundAnchorX()` | Pulley joint second ground anchor X || -| `Object.Physics2::PulleyJointSecondGroundAnchorY()` | Pulley joint second ground anchor Y || -| `Object.Physics2::PulleyJointSecondLength()` | Pulley joint second length || +| `Object.Physics2::MotorJointAngularOffset(number)` | Motor joint angular offset || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointCorrectionFactor(number)` | Motor joint correction factor || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointMaxForce(number)` | Motor joint maximum force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointMaxTorque(number)` | Motor joint maximum torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointOffsetX(number)` | Motor joint offset X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MotorJointOffsetY(number)` | Motor joint offset Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointDampingRatio(number)` | Mouse joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointFrequency(number)` | Mouse joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointMaxForce(number)` | Mouse joint maximum force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointTargetX(number)` | Mouse joint target X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::MouseJointTargetY(number)` | Mouse joint target Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointAxisAngle(number)` | Prismatic joint axis angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMaxMotorForce(number)` | Prismatic joint maximum motor force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMaxTranslation(number)` | Prismatic joint maximum translation || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMinTranslation(number)` | Prismatic joint minimum translation || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMotorForce(number)` | Prismatic joint motor force || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointMotorSpeed(number)` | Prismatic joint motor speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointReferenceAngle(number)` | Prismatic joint reference angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointSpeed(number)` | Prismatic joint speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PrismaticJointTranslation(number)` | Prismatic joint current translation || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointFirstGroundAnchorX(number)` | Pulley joint first ground anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointFirstGroundAnchorY(number)` | Pulley joint first ground anchor Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointFirstLength(number)` | Pulley joint first length || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointRatio(number)` | Pulley joint ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointSecondGroundAnchorX(number)` | Pulley joint second ground anchor X || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointSecondGroundAnchorY(number)` | Pulley joint second ground anchor Y || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::PulleyJointSecondLength(number)` | Pulley joint second length || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::Restitution()` | Get the restitution of an object. || -| `Object.Physics2::RevoluteJointAngle()` | Revolute joint current angle || -| `Object.Physics2::RevoluteJointMaxAngle()` | Revolute joint maximum angle || -| `Object.Physics2::RevoluteJointMaxMotorTorque()` | Revolute joint maximum motor torque || -| `Object.Physics2::RevoluteJointMinAngle()` | Revolute joint minimum angle || -| `Object.Physics2::RevoluteJointMotorSpeed()` | Revolute joint motor speed || -| `Object.Physics2::RevoluteJointMotorTorque()` | Revolute joint motor torque || -| `Object.Physics2::RevoluteJointReferenceAngle()` | Revolute joint reference angle || -| `Object.Physics2::RevoluteJointSpeed()` | Revolute joint angular speed || -| `Object.Physics2::RopeJointMaxLength()` | Rope joint maximum length || +| `Object.Physics2::RevoluteJointAngle(number)` | Revolute joint current angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMaxAngle(number)` | Revolute joint maximum angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMaxMotorTorque(number)` | Revolute joint maximum motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMinAngle(number)` | Revolute joint minimum angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMotorSpeed(number)` | Revolute joint motor speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointMotorTorque(number)` | Revolute joint motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointReferenceAngle(number)` | Revolute joint reference angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RevoluteJointSpeed(number)` | Revolute joint angular speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::RopeJointMaxLength(number)` | Rope joint maximum length || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::TimeScale()` | World time scale || -| `Object.Physics2::WeldJointDampingRatio()` | Weld joint damping ratio || -| `Object.Physics2::WeldJointFrequency()` | Weld joint frequency || -| `Object.Physics2::WeldJointReferenceAngle()` | Weld joint reference angle || -| `Object.Physics2::WheelJointAxisAngle()` | Wheel joint axis angle || -| `Object.Physics2::WheelJointDampingRatio()` | Wheel joint damping ratio || -| `Object.Physics2::WheelJointFrequency()` | Wheel joint frequency || -| `Object.Physics2::WheelJointMaxMotorTorque()` | Wheel joint maximum motor torque || -| `Object.Physics2::WheelJointMotorSpeed()` | Wheel joint motor speed || -| `Object.Physics2::WheelJointMotorTorque()` | Wheel joint motor torque || -| `Object.Physics2::WheelJointSpeed()` | Wheel joint speed || -| `Object.Physics2::WheelJointTranslation()` | Wheel joint current translation || +| `Object.Physics2::WeldJointDampingRatio(number)` | Weld joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WeldJointFrequency(number)` | Weld joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WeldJointReferenceAngle(number)` | Weld joint reference angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointAxisAngle(number)` | Wheel joint axis angle || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointDampingRatio(number)` | Wheel joint damping ratio || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointFrequency(number)` | Wheel joint frequency || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointMaxMotorTorque(number)` | Wheel joint maximum motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointMotorSpeed(number)` | Wheel joint motor speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointMotorTorque(number)` | Wheel joint motor torque || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointSpeed(number)` | Wheel joint speed || +| | _🔢 Number_ | Joint ID | +| `Object.Physics2::WheelJointTranslation(number)` | Wheel joint current translation || +| | _🔢 Number_ | Joint ID | | `Object.Physics2::WorldScale()` | Return the world scale. || + + --- -*This page is an auto-generated reference page about the **Physics Engine 2.0** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The 2D Physics Engine extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **2D Physics Engine** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/physics3d/reference.md b/docs/gdevelop5/all-features/physics3d/reference.md new file mode 100644 index 0000000000..e339f01404 --- /dev/null +++ b/docs/gdevelop5/all-features/physics3d/reference.md @@ -0,0 +1,1329 @@ +# 3D physics engine Reference + +The 3D physics engine simulates realistic object physics, with gravity, forces, collisions, joints, etc. It's perfect for almost all 3D games. + +Objects like floors or wall objects should usually be set to "Static" as type. Objects that should be moveable are usually "Dynamic" (default). "Kinematic" objects (typically, players or controlled characters) are only moved by their "linear velocity" and "angular velocity" - they can interact with other objects but only these other objects will move. + +Forces (and impulses) are expressed in all conditions/expressions/actions of the 3D physics engine in Newtons (N). Typical values for a force are 10-200 N. One meter is 100 pixels by default in the game (check the world scale). Mass is expressed in kilograms (kg). [Read more explanations about it.](/gdevelop5/behaviors/physics3d) + +## Conditions + +**Collision** +Check if two objects collide. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + - Parameter 3: 🧩 Behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Collision started** +Check if two objects just started colliding during this frame. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + - Parameter 3: 🧩 Behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Collision stopped** +Check if two objects just stopped colliding at this frame. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + - Parameter 3: 🧩 Behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Character is on given platform** +Check if a 3D physics character is on a given platform. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Platforms + - Parameter 3: 🧩 Behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + + + +## 3D physics engine + +Simulate realistic 3D physics for this object including gravity, forces, collisions, etc. + +### Behavior actions + +**Apply angular impulse (rotational impulse)** +Apply an angular impulse (also called a "rotational impulse") to the object. It instantly changes the rotation speed, to give an initial speed for instance. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angular impulse around X (N·m·s) + - Parameter 3 (🔢 Number): Angular impulse around Y (N·m·s) + - Parameter 4 (🔢 Number): Angular impulse around Z (N·m·s) + An impulse is like a rotation speed addition but depends on the mass. + +**Apply force (at a point)** +Apply a force to the object over time. It "accelerates" an object and must be used every frame during a time period. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component (N) + - Parameter 3 (🔢 Number): Y component (N) + - Parameter 4 (🔢 Number): Z component (N) + A force is like an acceleration but depends on the mass. + - Parameter 5 (🔢 Number): Application point on X axis + - Parameter 6 (🔢 Number): Application point on Y axis + - Parameter 7 (🔢 Number): Application point on Z axis + Use `MassCenterX`, `MassCenterY` and `MassCenterZ` expressions to avoid any rotation. + +**Apply force (at center)** +Apply a force to the object over time. It "accelerates" an object and must be used every frame during a time period. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component (N) + - Parameter 3 (🔢 Number): Y component (N) + - Parameter 4 (🔢 Number): Z component (N) + A force is like an acceleration but depends on the mass. + +**Apply force toward position** +Apply a force to the object over time to move it toward a position. It "accelerates" an object and must be used every frame during a time period. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Length (N) + A force is like an acceleration but depends on the mass. + - Parameter 3 (🔢 Number): X position + - Parameter 4 (🔢 Number): Y position + - Parameter 5 (🔢 Number): Z position + +**Apply impulse (at a point)** +Apply an impulse to the object. It instantly changes the speed, to give an initial speed for instance. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component (N·s or kg·m·s⁻¹) + - Parameter 3 (🔢 Number): Y component (N·s or kg·m·s⁻¹) + - Parameter 4 (🔢 Number): Z component (N·s or kg·m·s⁻¹) + An impulse is like a speed addition but depends on the mass. + - Parameter 5 (🔢 Number): Application point on X axis + - Parameter 6 (🔢 Number): Application point on Y axis + - Parameter 7 (🔢 Number): Application point on Z axis + Use `MassCenterX`, `MassCenterY` and `MassCenterZ` expressions to avoid any rotation. + +**Apply impulse (at center)** +Apply an impulse to the object. It instantly changes the speed, to give an initial speed for instance. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X component (N·s or kg·m·s⁻¹) + - Parameter 3 (🔢 Number): Y component (N·s or kg·m·s⁻¹) + - Parameter 4 (🔢 Number): Z component (N·s or kg·m·s⁻¹) + An impulse is like a speed addition but depends on the mass. + +**Apply impulse toward position** +Apply an impulse to the object to move it toward a position. It instantly changes the speed, to give an initial speed for instance. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Length (N·s or kg·m·s⁻¹) + An impulse is like a speed addition but depends on the mass. + - Parameter 3 (🔢 Number): X position + - Parameter 4 (🔢 Number): Y position + - Parameter 5 (🔢 Number): Z position + +**Apply torque (rotational force)** +Apply a torque (also called "rotational force") to the object. It "accelerates" an object rotation and must be used every frame during a time period. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Torque around X (N·m) + - Parameter 3 (🔢 Number): Torque around Y (N·m) + - Parameter 4 (🔢 Number): Torque around Z (N·m) + A torque is like a rotation acceleration but depends on the mass. + +**Enable layer** +Enable or disable a layer for an object. Two objects collide if any layer of the first object matches any mask of the second one and vice versa. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Layer (1 - 8) + - Parameter 3 (❓ Yes or No): Enable + +**Enable mask** +Enable or disable a mask for an object. Two objects collide if any layer of the first object matches any mask of the second one and vice versa. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Mask (1 - 8) + - Parameter 3 (❓ Yes or No): Enable + +**Angular damping** +Change the object angular damping. How much angular speed is lost across the time.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Angular velocity X** +Change the object angular velocity around X. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + +**Angular velocity Y** +Change the object angular velocity around Y. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + +**Angular velocity Z** +Change the object angular velocity around Z. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + +**Treat as bullet** +Treat the object as a bullet. Better collision handling on high speeds at cost of some performance. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Treat as bullet + +**Density** +Change the object density. The body's density and volume determine its mass.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Fixed rotation** +Enable or disable an object fixed rotation. If enabled the object won't be able to rotate. This action has no effect on characters. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Fixed rotation + +**Friction** +Change the object friction. How much energy is lost from the movement of one object over another. The combined friction from two bodies is calculated as 'sqrt(bodyA.friction * bodyB.friction)'.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Gravity scale** +Change the object gravity scale. The gravity applied to an object is the world gravity multiplied by the object gravity scale.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + +**World gravity on X axis** +Change the world gravity on X axis While an object is needed, this will apply to all objects using the behavior.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Gravity (in Newton) + +**World gravity on Y axis** +Change the world gravity on Y axis While an object is needed, this will apply to all objects using the behavior.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Gravity (in Newton) + +**World gravity on Z axis** +Change the world gravity on Z axis While an object is needed, this will apply to all objects using the behavior.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Gravity (in Newton) + +**Linear damping** +Change the object linear damping. How much movement speed is lost across the time.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Linear velocity X** +Change the object linear velocity on X. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Linear velocity Y** +Change the object linear velocity on Y. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Linear velocity Z** +Change the object linear velocity on Z. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Restitution** +Change the object restitution. Energy conservation on collision. The combined restitution from two bodies is calculated as 'max(bodyA.restitution, bodyB.restitution)'.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Shape offset X** +Change the object shape offset on X.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Shape offset Y** +Change the object shape offset on Y.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Shape offset Z** +Change the object shape offset on Z.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + +**Shape scale** +Modify an object shape scale. It affects custom shape dimensions, if custom dimensions are not set the body will be scaled automatically to the object size. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + +### Behavior conditions + +**Angular damping** +Compare the object angular damping. How much angular speed is lost across the time.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Angular velocity X** +Compare the object angular velocity around X. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + +**Angular velocity Y** +Compare the object angular velocity around Y. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + +**Angular velocity Z** +Compare the object angular velocity around Z. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angular speed (in degrees per second) + +**Density** +Compare the object density. The body's density and volume determine its mass.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Friction** +Compare the object friction. How much energy is lost from the movement of one object over another. The combined friction from two bodies is calculated as 'sqrt(bodyA.friction * bodyB.friction)'.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Gravity scale** +Compare the object gravity scale. The gravity applied to an object is the world gravity multiplied by the object gravity scale.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Scale (1 by default) + +**World gravity on X axis** +Compare the world gravity on X axis While an object is needed, this will apply to all objects using the behavior.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity (in Newton) + +**World gravity on Y axis** +Compare the world gravity on Y axis While an object is needed, this will apply to all objects using the behavior.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity (in Newton) + +**World gravity on Z axis** +Compare the world gravity on Z axis While an object is needed, this will apply to all objects using the behavior.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity (in Newton) + +**Has fixed rotation** +Check if an object has fixed rotation. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is treated as a bullet** +Check if the object is being treated as a bullet. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is dynamic** +Check if an object is dynamic. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is kinematic** +Check if an object is kinematic. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is static** +Check if an object is static. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Layer enabled** +Check if an object has a specific layer enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Layer (1 - 8) + +**Linear damping** +Compare the object linear damping. How much movement speed is lost across the time.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Linear velocity** +Compare the object linear velocity length. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + +**Linear velocity X** +Compare the object linear velocity on X. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Linear velocity Y** +Compare the object linear velocity on Y. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Linear velocity Z** +Compare the object linear velocity on Z. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Mask enabled** +Check if an object has a specific mask enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Mask (1 - 8) + +**Restitution** +Compare the object restitution. Energy conservation on collision. The combined restitution from two bodies is calculated as 'max(bodyA.restitution, bodyB.restitution)'.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Shape offset X** +Compare the object shape offset on X.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Shape offset Y** +Compare the object shape offset on Y.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +**Shape offset Z** +Compare the object shape offset on Z.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.Physics3D::AngularDamping()` | Return the object angular damping. How much angular speed is lost across the time.. || +| `Object.Physics3D::AngularVelocityX()` | Return the object angular velocity around X. || +| `Object.Physics3D::AngularVelocityY()` | Return the object angular velocity around Y. || +| `Object.Physics3D::AngularVelocityZ()` | Return the object angular velocity around Z. || +| `Object.Physics3D::Density()` | Return the object density. The body's density and volume determine its mass.. || +| `Object.Physics3D::Friction()` | Return the object friction. How much energy is lost from the movement of one object over another. The combined friction from two bodies is calculated as 'sqrt(bodyA.friction * bodyB.friction)'.. || +| `Object.Physics3D::GravityScale()` | Return the object gravity scale. The gravity applied to an object is the world gravity multiplied by the object gravity scale.. || +| `Object.Physics3D::GravityX()` | Return the world gravity on X axis While an object is needed, this will apply to all objects using the behavior.. || +| `Object.Physics3D::GravityY()` | Return the world gravity on Y axis While an object is needed, this will apply to all objects using the behavior.. || +| `Object.Physics3D::GravityZ()` | Return the world gravity on Z axis While an object is needed, this will apply to all objects using the behavior.. || +| `Object.Physics3D::InertiaAroundX()` | Return the inertia around X axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) || +| `Object.Physics3D::InertiaAroundY()` | Return the inertia around Y axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) || +| `Object.Physics3D::InertiaAroundZ()` | Return the inertia around Z axis of the object (in kilograms · meters²) when for its default rotation is (0°; 0°; 0°) || +| `Object.Physics3D::LinearDamping()` | Return the object linear damping. How much movement speed is lost across the time.. || +| `Object.Physics3D::LinearVelocityLength()` | Return the object linear velocity length. || +| `Object.Physics3D::LinearVelocityX()` | Return the object linear velocity on X. || +| `Object.Physics3D::LinearVelocityY()` | Return the object linear velocity on Y. || +| `Object.Physics3D::LinearVelocityZ()` | Return the object linear velocity on Z. || +| `Object.Physics3D::Mass()` | Return the mass of the object (in kilograms) || +| `Object.Physics3D::MassCenterX()` | Mass center X || +| `Object.Physics3D::MassCenterY()` | Mass center Y || +| `Object.Physics3D::MassCenterZ()` | Mass center Z || +| `Object.Physics3D::Restitution()` | Return the object restitution. Energy conservation on collision. The combined restitution from two bodies is calculated as 'max(bodyA.restitution, bodyB.restitution)'.. || +| `Object.Physics3D::ShapeOffsetX()` | Return the object shape offset on X.. || +| `Object.Physics3D::ShapeOffsetY()` | Return the object shape offset on Y.. || +| `Object.Physics3D::ShapeOffsetZ()` | Return the object shape offset on Z.. || +| `Object.Physics3D::WorldScale()` | Return the world scale. || + +## 3D physics car + +Simulate a realistic car using the 3D physics engine. This is mostly useful for the car controlled by the player (it's usually too complex for other cars in a game). + +This behavior is usually used with one or more "mapper" behavior to let the player move it. + +### Behavior actions + +**Engine inertia** +Change the engine inertia (kg·m²). It slows down car acceleration. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Engine inertia (kg·m²) + +**Engine max speed** +Change the engine max speed (RPM). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Engine max speed (RPM) + +**Engine max torque** +Change the engine max torque (N·m). It allows cars to climb steep slopes and push heavy obstacles. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Engine max torque (N·m) + +**Simulate accelerator stick control** +Simulate an accelerator stick control. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick force (between -1 and 1) + +**Simulate move backward key press** +Simulate a press of the move backward key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate move forward key press** +Simulate a press of the move forward key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate hand brake key press** +Simulate a press of the hand brake key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate move left key press** +Simulate a press of the move left key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate move right key press** +Simulate a press of the move right key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate steering stick control** +Simulate a steering stick control. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick force (between -1 and 1) + +### Behavior conditions + +**Current gear** +Compare the current gear (-1 = reverse, 0 = neutral, 1 = 1st gear). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Current gear + +**Engine inertia** +Compare the engine inertia (kg·m²). It slows down car acceleration. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Engine inertia (kg·m²) + +**Engine speed** +Compare the current engine speed (RPM). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Engine speed (RPM) + +**Engine max speed** +Compare the engine max speed (RPM). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Engine max speed (RPM) + +**Engine max torque** +Compare the engine max torque (N·m). It allows cars to climb steep slopes and push heavy obstacles. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Engine max torque (N·m) + +**Is on floor** +Check if any wheel is in contact with the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Steer angle** +Compare the current steer angle (in degree). The value is negative when cars turn left. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Steer angle (in degree) + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.PhysicsCar3D::CurrentGear()` | Return the current gear (-1 = reverse, 0 = neutral, 1 = 1st gear). || +| `Object.PhysicsCar3D::EngineInertia()` | Return the engine inertia (kg·m²). It slows down car acceleration. || +| `Object.PhysicsCar3D::EngineSpeed()` | Return the current engine speed (RPM). || +| `Object.PhysicsCar3D::EngineSpeedMax()` | Return the engine max speed (RPM). || +| `Object.PhysicsCar3D::EngineTorqueMax()` | Return the engine max torque (N·m). It allows cars to climb steep slopes and push heavy obstacles. || +| `Object.PhysicsCar3D::SteerAngle()` | Return the current steer angle (in degree). The value is negative when cars turn left. || + +## 3D physics character + +Allow an object to jump and run on platforms that have the 3D physics behavior(and which are generally set to "Static" as type, unless the platform is animated/moved in events). + +This behavior is usually used with one or more "mapper" behavior to let the player move it. + +### Behavior actions + +**Abort jump** +Abort the current jump and stop the object vertically. This action doesn't have any effect when the character is not jumping. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Maximum falling speed** +Change the maximum falling speed of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max speed (in pixels per second) + - Parameter 4 (❓ Yes or No): If jumping, try to preserve the current speed in the air + +**Allow jumping again** +When this action is executed, the object is able to jump again, even if it is in the air: this can be useful to allow a double jump for example. This is not a permanent effect: you must call again this action every time you want to allow the object to jump (apart if it's on the floor). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Forbid jumping again in the air** +This revokes the effect of "Allow jumping again". The object is made unable to jump while in mid air. This has no effect if the object is not in the air. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Current falling speed** +Change Compare the current falling speed of the object. Its value is always positive.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + +**Current forward speed** +Change the current forward speed of the object. The object moves backward with negative values and forward with positive ones. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Current jump speed** +Change Compare the current jump speed of the object. Its value is always positive.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + +**Current sideways speed** +Change the current sideways speed of the object. The object moves to the left with negative values and to the right with positive ones. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Forward acceleration** +Change the forward acceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + +**Forward angle** +Change the angle used by the character to go forward. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angle (in degrees) + +**Forward deceleration** +Change the forward deceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Deceleration (in pixels per second per second) + +**Forward max speed** +Change the forward max speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Gravity** +Change the gravity applied on an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Gravity (in pixels per second per second) + +**Jump speed** +Change the jump speed of an object. Its value is always positive. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Jump sustain time** +Change the jump sustain time of an object. This is the time during which keeping the jump button held allow the initial jump speed to be maintained. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Duration (in seconds) + +**Should bind object and forward angle** +Enable or disable keeping the object angle and forward angle the same. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Keep object angle and forward direction the same + +**Sideways acceleration** +Change the sideways acceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + +**Sideways deceleration** +Change the sideways deceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Deceleration (in pixels per second per second) + +**Sideways max speed** +Change the sideways max speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Simulate move backward key press** +Simulate a press of the move backward key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate move forward key press** +Simulate a press of the move forward key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate jump key press** +Simulate a press of the jump key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate move left key press** +Simulate a press of the move left key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate move right key press** +Simulate a press of the move right key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Simulate stick control** +Simulate a stick control. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick angle (in degrees) + - Parameter 3 (🔢 Number): Stick force (between 0 and 1) + +### Behavior conditions + +**Can jump** +Check if the object can jump. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Current falling speed** +Compare Compare the current falling speed of the object. Its value is always positive.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + +**Current forward speed** +Compare the current forward speed of the object. The object moves backward with negative values and forward with positive ones. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Current jump speed** +Compare Compare the current jump speed of the object. Its value is always positive.. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + +**Current sideways speed** +Compare the current sideways speed of the object. The object moves to the left with negative values and to the right with positive ones. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Maximum falling speed** +Compare the maximum falling speed of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max speed (in pixels per second) + +**Forward acceleration** +Compare the forward acceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + +**Forward deceleration** +Compare the forward deceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Deceleration (in pixels per second per second) + +**Forward max speed** +Compare the forward max speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Gravity** +Compare the gravity applied on an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity (in pixels per second per second) + +**Is falling** +Check if the object is falling. +Note that the object can be flagged as jumping and falling at the same time: at the end of a jump, the fall speed becomes higher than the jump speed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Forward angle** +Compare the angle used by the character to go forward. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3 (🔢 Number): Tolerance (in degrees) + +**Is jumping** +Check if the object is jumping. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is moving** +Check if the object is moving (whether it is on the floor or in the air). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Is on floor** +Check if the object is on a platform. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Jump speed** +Compare the jump speed of an object. Its value is always positive. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +**Jump sustain time** +Compare the jump sustain time of an object. This is the time during which keeping the jump button held allow the initial jump speed to be maintained. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Duration (in seconds) + +**Should bind object and forward angle** +Check if the object angle and forward angle should be kept the same. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + +**Sideways acceleration** +Compare the sideways acceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + +**Sideways deceleration** +Compare the sideways deceleration of an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Deceleration (in pixels per second per second) + +**Sideways max speed** +Compare the sideways max speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.PhysicsCharacter3D::CurrentFallSpeed()` | Return Compare the current falling speed of the object. Its value is always positive.. || +| `Object.PhysicsCharacter3D::CurrentForwardSpeed()` | Return the current forward speed of the object. The object moves backward with negative values and forward with positive ones. || +| `Object.PhysicsCharacter3D::CurrentJumpSpeed()` | Return Compare the current jump speed of the object. Its value is always positive.. || +| `Object.PhysicsCharacter3D::CurrentSidewaysSpeed()` | Return the current sideways speed of the object. The object moves to the left with negative values and to the right with positive ones. || +| `Object.PhysicsCharacter3D::FallingSpeedMax()` | Return the maximum falling speed of an object. || +| `Object.PhysicsCharacter3D::ForwardAcceleration()` | Return the forward acceleration of an object. || +| `Object.PhysicsCharacter3D::ForwardAngle()` | Return the angle used by the character to go forward. || +| `Object.PhysicsCharacter3D::ForwardDeceleration()` | Return the forward deceleration of an object. || +| `Object.PhysicsCharacter3D::ForwardSpeedMax()` | Return the forward max speed of the object. || +| `Object.PhysicsCharacter3D::Gravity()` | Return the gravity applied on an object. || +| `Object.PhysicsCharacter3D::JumpSpeed()` | Return the jump speed of an object. Its value is always positive. || +| `Object.PhysicsCharacter3D::JumpSustainTime()` | Return the jump sustain time of an object. This is the time during which keeping the jump button held allow the initial jump speed to be maintained. || +| `Object.PhysicsCharacter3D::SidewaysAcceleration()` | Return the sideways acceleration of an object. || +| `Object.PhysicsCharacter3D::SidewaysDeceleration()` | Return the sideways deceleration of an object. || +| `Object.PhysicsCharacter3D::SidewaysSpeedMax()` | Return the sideways max speed of the object. || + + + +--- + +The 3D physics engine extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **3D physics engine** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/platform-behavior/reference.md b/docs/gdevelop5/all-features/platform-behavior/reference.md index dd98738fbd..13dc549ed9 100644 --- a/docs/gdevelop5/all-features/platform-behavior/reference.md +++ b/docs/gdevelop5/all-features/platform-behavior/reference.md @@ -1,12 +1,20 @@ # Platform behavior Reference -The platformer engine allows to create controllable objects that can run and jump on other objects that are marked as platforms. It supports various features commonly found in platformers: grabbing the edge of a platform, sustaining the jump while a key is held, customizable gravity... It can be used for the player, but also for other objects moving on platforms. In this case though, it's recommended to first check if there is a simpler behavior that could be used. [Read more explanations about it.](/gdevelop5/behaviors/platformer) +The platformer engine allows to create controllable objects that can run and jump on other objects that are marked as platforms. It supports various features commonly found in platformers: grabbing the edge of a platform, sustaining the jump while a key is held, customizable gravity... It can be used for the player, but also for other objects moving on platforms. In this case though, it's recommended to first check if there is a simpler behavior that could be used. Default controls for keyboards are included. For touch or gamepads, use the "Multitouch Joystick" objects and the associated "mapper" behaviors. [Read more explanations about it.](/gdevelop5/behaviors/platformer) ## Conditions **Character is on given platform** Check if a platformer character is on a given platform. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Platforms + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ## Platform @@ -18,6 +26,12 @@ Flag objects as being platforms which characters can run on. **Platform type** Change the platform type of the object: Platform, Jump-Through, or Ladder. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Platform type (one of: "Platform", "Jumpthru", "Ladder") + _No expressions for this behavior._ @@ -30,140 +44,407 @@ Jump and run on platforms. **Acceleration** Change the horizontal acceleration of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + **Platform grabbing** Enable (or disable) the ability of the object to grab platforms when falling near to one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Can grab platforms + **Deceleration** Change the horizontal deceleration of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Deceleration (in pixels per second per second) + **Gravity** Change the gravity applied on an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Gravity (in pixels per second per second) + **Ignore default controls** De/activate the use of default controls. If deactivated, use the simulated actions to move the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Ignore controls + **Jump speed** Change the jump speed of an object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Jump sustain time** Change the jump sustain time of an object.This is the time during which keeping the jump button held allow the initial jump speed to be maintained. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Duration (in seconds) + **Ladder climbing speed** Change the ladder climbing speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Maximum falling speed** Change the maximum falling speed of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max speed (in pixels per second) + - Parameter 4 (❓ Yes or No): If jumping, try to preserve the current speed in the air + **Maximum horizontal speed** Change the maximum horizontal speed of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max speed (in pixels per second) + **Abort jump** Abort the current jump and stop the object vertically. This action doesn't have any effect when the character is not jumping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Forbid jumping again in the air** This revokes the effect of "Allow jumping again". The object is made unable to jump while in mid air. This has no effect if the object is not in the air. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Current falling speed** Change the current falling speed of the object. This action doesn't have any effect when the character is not falling or is in the first phase of a jump. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Current horizontal speed** Change the current horizontal speed of the object. The object moves to the left with negative values and to the right with positive ones +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Allow jumping again** When this action is executed, the object is able to jump again, even if it is in the air: this can be useful to allow a double jump for example. This is not a permanent effect: you must call again this action everytime you want to allow the object to jump (apart if it's on the floor). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate control** Simulate a press of a key. Valid keys are Left, Right, Jump, Ladder, Release Ladder, Up, Down. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Key (one of: "Left", "Right", "Jump", "Ladder", "Release Ladder", "Up", "Down") + **Simulate down key press** Simulate a press of the down key (used when on a ladder). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate jump key press** Simulate a press of the jump key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate ladder key press** Simulate a press of the ladder key (used to grab a ladder). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate left key press** Simulate a press of the left key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate release ladder key press** Simulate a press of the Release Ladder key (used to get off a ladder). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate release platform key press** Simulate a press of the release platform key (used when grabbing a platform ledge). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate right key press** Simulate a press of the right key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate up key press** Simulate a press of the up key (used when on a ladder). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + ### Behavior conditions **Acceleration** Compare the horizontal acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Acceleration to compare to (in pixels per second per second) + **Can grab platforms** Check if the object can grab the platforms. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Can jump** Check if the object can jump. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Current falling speed** Compare the current falling speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Current jump speed** Compare the current jump speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Current horizontal speed** Compare the current horizontal speed of the object. The object moves to the left with negative values and to the right with positive ones +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Deceleration** Compare the horizontal deceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Deceleration to compare to (in pixels per second per second) + **Gravity** Compare the gravity applied on the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Gravity to compare to (in pixels per second per second) + **Is falling** Check if the object is falling. Note that the object can be flagged as jumping and falling at the same time: at the end of a jump, the fall speed becomes higher than the jump speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Is grabbing platform ledge** Check if the object is grabbing a platform ledge. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Is jumping** Check if the object is jumping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Is on floor** Check if the object is on a platform. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Is on ladder** Check if the object is on a ladder. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Jump speed** Compare the jump speed of the object.Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Jump sustain time** Compare the jump sustain time of the object.This is the time during which keeping the jump button held allow the initial jump speed to be maintained. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Duration to compare to (in seconds) + **Ladder climbing speed** Compare the ladder climbing speed (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Maximum falling speed** Compare the maximum falling speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max speed to compare to (in pixels per second) + **Maximum horizontal speed** Compare the maximum horizontal speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max speed to compare to (in pixels per second) + **Is moving** Check if the object is moving (whether it is on the floor or in the air). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Control pressed or simulated** A control was applied from a default control or simulated by an action. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Key (one of: "Left", "Right", "Jump", "Ladder", "Release Ladder", "Up", "Down") + ### Behavior expressions | Expression | Description | | @@ -180,5 +461,10 @@ A control was applied from a default control or simulated by an action. | `Object.PlatformerObject::MaxFallingSpeed()` | Return the maximum falling speed of the object (in pixels per second). || | `Object.PlatformerObject::MaxSpeed()` | Return the maximum horizontal speed of the object (in pixels per second). || + + --- + +The Platform behavior extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Platform behavior** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/player-authentication/reference.md b/docs/gdevelop5/all-features/player-authentication/reference.md index 05050ad951..ccee94f2c4 100644 --- a/docs/gdevelop5/all-features/player-authentication/reference.md +++ b/docs/gdevelop5/all-features/player-authentication/reference.md @@ -7,15 +7,39 @@ Allow your game to authenticate players. [Read more explanations about it.](/gde **Display authentication banner** Display an authentication banner at the top of the game screen, for the player to log in. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Hide authentication banner** Hide the authentication banner from the top of the game screen. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Log out the player** Log out the player. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Open authentication window** Open an authentication window for the player to log in. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Player has logged in** @@ -34,5 +58,10 @@ Check if the player is authenticated. | `PlayerAuthentication::UserID()` | Get the unique user ID of the authenticated player. || | `PlayerAuthentication::Username()` | Get the username of the authenticated player. || + + --- + +The Player Authentication extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Player Authentication** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/primitive-drawing/reference.md b/docs/gdevelop5/all-features/primitive-drawing/reference.md index 67af153697..6a535c0fdd 100644 --- a/docs/gdevelop5/all-features/primitive-drawing/reference.md +++ b/docs/gdevelop5/all-features/primitive-drawing/reference.md @@ -1,131 +1,398 @@ # Shape painter Reference -This provides an object that can be used to draw arbitrary shapes on the screen using events. [Read more explanations about it.](/gdevelop5/objects/shape_painter) +An object that can be used to draw arbitrary 2D shapes on the screen using events. [Read more explanations about it.](/gdevelop5/objects/shape_painter) ## Shape painter -Allows you to draw simple shapes on the screen using the events. +Allows to draw simple 2D shapes on the screen using the events. ### Object actions **Arc** Draw an arc on screen. If "Close path" is set to yes, a line will be drawn between the start and end point of the arc, closing the shape. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of center + - Parameter 2 (🔢 Number): Y position of center + - Parameter 3 (🔢 Number): Radius (in pixels) + - Parameter 4 (🔢 Number): Start angle of the arc (in degrees) + - Parameter 5 (🔢 Number): End angle of the arc (in degrees) + - Parameter 6 (❓ Yes or No): Anticlockwise + - Parameter 7 (❓ Yes or No): Close path + **Begin fill path** Begin to draw a simple one-color fill. Subsequent actions, such as "Path line" (in the Advanced category) can be used to draw. Be sure to use "End fill path" action when you're done drawing the shape. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Start drawing x + - Parameter 2 (🔢 Number): Start drawing y + **Bezier curve** Draw a bezier curve on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of start point + - Parameter 2 (🔢 Number): Y position of start point + - Parameter 3 (🔢 Number): First control point x + - Parameter 4 (🔢 Number): First control point y + - Parameter 5 (🔢 Number): Second Control point x + - Parameter 6 (🔢 Number): Second Control point y + - Parameter 7 (🔢 Number): Destination point x + - Parameter 8 (🔢 Number): Destination point y + **Chamfer Rectangle** Draw a chamfer rectangle on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Left X position + - Parameter 2 (🔢 Number): Top Y position + - Parameter 3 (🔢 Number): Right X position + - Parameter 4 (🔢 Number): Bottom Y position + - Parameter 5 (🔢 Number): Chamfer (in pixels) + **Circle** Draw a circle on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of center + - Parameter 2 (🔢 Number): Y position of center + - Parameter 3 (🔢 Number): Radius (in pixels) + **Clear between frames** Activate (or deactivate) the clearing of the rendered shape at the beginning of each frame. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (❓ Yes or No): Clear between each frame + **Clear shapes** Clear the rendered shape(s). Useful if not set to be done automatically. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + **Ellipse** Draw an ellipse on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of center + - Parameter 2 (🔢 Number): Y position of center + - Parameter 3 (🔢 Number): The width of the ellipse + - Parameter 4 (🔢 Number): The height of the ellipse + **End fill path** Finish the filling drawing in an advanced path +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + **Fill color** Change the color used when filling +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (color): Fill color + **Fill opacity** Modify the opacity level used when filling future drawings. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Opacity (0-255) + **Fillet Rectangle** Draw a fillet rectangle on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Left X position + - Parameter 2 (🔢 Number): Top Y position + - Parameter 3 (🔢 Number): Right X position + - Parameter 4 (🔢 Number): Bottom Y position + - Parameter 5 (🔢 Number): Fillet (in pixels) + **Line** Draw a line on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of start point + - Parameter 2 (🔢 Number): Y position of start point + - Parameter 3 (🔢 Number): X position of end point + - Parameter 4 (🔢 Number): Y position of end point + - Parameter 5 (🔢 Number): Thickness (in pixels) + **Move path drawing position** Move the drawing position for the current path +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of start point + - Parameter 2 (🔢 Number): Y position of start point + **Outline color** Modify the color of the outline of future drawings. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: color + **Outline opacity** Modify the opacity of the outline of future drawings. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Opacity (0-255) + **Outline size** Modify the size of the outline of future drawings. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Path arc** Add to a path an arc to a position. The origin comes from the previous action or from "Begin fill path" or "Move path drawing position". By default, the start position will be the object's position. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Center x of circle + - Parameter 2 (🔢 Number): Center y of circle + - Parameter 3 (🔢 Number): Radius (in pixels) + - Parameter 4 (🔢 Number): Start angle + - Parameter 5 (🔢 Number): End angle + - Parameter 6 (❓ Yes or No): Anticlockwise + **Path bezier curve** Add to a path a bezier curve to a position. The origin comes from the previous action or from "Begin fill path" or "Move path drawing position". By default, the start position will be the object's position. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): First control point x + - Parameter 2 (🔢 Number): First control point y + - Parameter 3 (🔢 Number): Second Control point x + - Parameter 4 (🔢 Number): Second Control point y + - Parameter 5 (🔢 Number): Destination point x + - Parameter 6 (🔢 Number): Destination point y + **Path line** Add to a path a line to a position. The origin comes from the previous action or from "Begin fill path" or "Move path drawing position". By default, the start position will be the object's position. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of start point + - Parameter 2 (🔢 Number): Y position of start point + **Path quadratic curve** Add to a path a quadratic curve to a position. The origin comes from the previous action or from "Begin fill path" or "Move path drawing position". By default, the start position will be the object's position. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Control point x + - Parameter 2 (🔢 Number): Control point y + - Parameter 3 (🔢 Number): Destination point x + - Parameter 4 (🔢 Number): Destination point y + **Quadratic curve** Draw a quadratic curve on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of start point + - Parameter 2 (🔢 Number): Y position of start point + - Parameter 3 (🔢 Number): Control point x + - Parameter 4 (🔢 Number): Control point y + - Parameter 5 (🔢 Number): Destination point x + - Parameter 6 (🔢 Number): Destination point y + **Rectangle** Draw a rectangle on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Left X position + - Parameter 2 (🔢 Number): Top Y position + - Parameter 3 (🔢 Number): Right X position + - Parameter 4 (🔢 Number): Bottom Y position + **Regular Polygon** Draw a regular polygon on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of center + - Parameter 2 (🔢 Number): Y position of center + - Parameter 3 (🔢 Number): Number of sides of the polygon (minimum: 3) + - Parameter 4 (🔢 Number): Radius (in pixels) + - Parameter 5 (🔢 Number): Rotation (in degrees) + **Rounded rectangle** Draw a rounded rectangle on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): Left X position + - Parameter 2 (🔢 Number): Top Y position + - Parameter 3 (🔢 Number): Right X position + - Parameter 4 (🔢 Number): Bottom Y position + - Parameter 5 (🔢 Number): Radius (in pixels) + **Anti-aliasing** Anti-aliasing +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 String): Anti-aliasing quality level (one of: "none", "low", "medium", "high") + **Collision Mask** Change the collision mask of an object to a rectangle relatively to the object origin. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Left X position + - Parameter 2 (🔢 Number): Top Y position + - Parameter 3 (🔢 Number): Right X position + - Parameter 4 (🔢 Number): Bottom Y position + **Center of rotation** Change the center of rotation of an object relatively to the object origin. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + **Star** Draw a star on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of center + - Parameter 2 (🔢 Number): Y position of center + - Parameter 3 (🔢 Number): Number of points of the star (minimum: 2) + - Parameter 4 (🔢 Number): Radius (in pixels) + - Parameter 5 (🔢 Number): Inner radius (in pixels, half radius by default) + - Parameter 6 (🔢 Number): Rotation (in degrees) + **Torus** Draw a torus on screen +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (🔢 Number): X position of center + - Parameter 2 (🔢 Number): Y position of center + - Parameter 3 (🔢 Number): Inner Radius (in pixels) + - Parameter 4 (🔢 Number): Outer Radius (in pixels) + - Parameter 5 (🔢 Number): Start Arc (in degrees) + - Parameter 6 (🔢 Number): End Arc (in degrees) + **Use relative coordinates** Set if the object should use relative coordinates (by default) or not. It's recommended to use relative coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1 (❓ Yes or No): Use relative coordinates? + **Close Path** Close the path of the advanced shape. This closes the outline between the last and the first point. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + ### Object conditions **Relative coordinates** Check if the coordinates of the shape painter is relative. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + **Anti-aliasing type** Checks the selected type of anti-aliasing +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 String): Type of anti-aliasing to check the object against (one of: "none", "low", "medium", "high") + **Clear between frames** Check if the rendered image is cleared between frames. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + **Fill opacity** Test the value of the opacity level used when filling. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Opacity to compare to (0-255) + **Outline opacity** Test the opacity of the outline. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Opacity to compare to (0-255) + **Outline size** Test the size of the outline. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Shape Painter object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + ### Object expressions | Expression | Description | | @@ -140,10 +407,23 @@ Test the size of the outline. | `Object.OutlineColorRed()` | Outline color red component || | `Object.OutlineOpacity()` | Outline opacity || | `Object.OutlineSize()` | Outline size || -| `Object.ToDrawingX()` | X drawing coordinate of a point from the scene || -| `Object.ToDrawingY()` | Y drawing coordinate of a point from the scene || -| `Object.ToSceneX()` | X scene coordinate of a point from the drawing || -| `Object.ToSceneY()` | Y scene coordinate of a point from the drawing || +| `Object.ToDrawingX(number, number)` | X drawing coordinate of a point from the scene || +| | _🔢 Number_ | X scene position | +| | _🔢 Number_ | Y scene position | +| `Object.ToDrawingY(number, number)` | Y drawing coordinate of a point from the scene || +| | _🔢 Number_ | X scene position | +| | _🔢 Number_ | Y scene position | +| `Object.ToSceneX(number, number)` | X scene coordinate of a point from the drawing || +| | _🔢 Number_ | X drawing position | +| | _🔢 Number_ | Y drawing position | +| `Object.ToSceneY(number, number)` | Y scene coordinate of a point from the drawing || +| | _🔢 Number_ | X drawing position | +| | _🔢 Number_ | Y drawing position | + + --- + +The Shape painter extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Shape painter** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/resizable-capability/reference.md b/docs/gdevelop5/all-features/resizable-capability/reference.md index 2e03b44b58..3b3e08acdf 100644 --- a/docs/gdevelop5/all-features/resizable-capability/reference.md +++ b/docs/gdevelop5/all-features/resizable-capability/reference.md @@ -1,34 +1,74 @@ -# Resizable capability Reference +# Resizable objects Reference -Change the object dimensions. [Read more explanations about it.](/gdevelop5/objects) +Change or compare the size (width/height) of an object which can be resized (i.e: most objects). [Read more explanations about it.](/gdevelop5/objects) -## Resizable capability +## Resizable objects -Change the object dimensions. +Change or compare the size (width/height) of an object which can be resized (i.e: most objects). ### Behavior actions **Height** Change the height of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Height + **Size** Change the size of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Width + - Parameter 3 (🔢 Number): Height + **Width** Change the width of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Width + ### Behavior conditions **Height** Compare the height of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Height + **Width** Compare the width of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Width + _No expressions for this behavior._ + + --- -*This page is an auto-generated reference page about the **Resizable capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Resizable objects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Resizable objects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/resources-loading/index.md b/docs/gdevelop5/all-features/resources-loading/index.md index dd2f1232d0..5554024c6f 100644 --- a/docs/gdevelop5/all-features/resources-loading/index.md +++ b/docs/gdevelop5/all-features/resources-loading/index.md @@ -3,6 +3,10 @@ title: Resources loading --- # Resources loading +
+ +
+ ## Understand how resources are loaded When a game starts a loading screen is shown while resources for the first scene (the one with a flag) are downloaded. It also includes resources used by global objects. @@ -11,6 +15,17 @@ The resources used by other scenes are downloaded in background while users inte It may happen that all the resources needed for a scene are not ready when the scene must be displayed. In this case, the loading is shown a second time while its resources are downloaded as soon as possible. +## Control preloading and unloading + +By default, the resources of every scene are preloaded in the background and kept in memory even after leaving a scene. This makes switching scenes faster but increases memory usage. + +You can change this behavior: + +* In **Project properties**, modify **Scenes resources preloading** to disable preloading for all scenes. +* In **Scene properties**, override the preloading for a particular scene and use **Resources unloading** to remove its resources from memory when leaving it. + +When a scene with unloading enabled is displayed again, its resources are loaded once more. These options are helpful for large or modular games or to reduce memory usage in web games. + ## Optimize resource loading Intermediary loading screens can be avoided by choosing in which order scenes are pre-loaded. diff --git a/docs/gdevelop5/all-features/save-state/index.md b/docs/gdevelop5/all-features/save-state/index.md new file mode 100644 index 0000000000..06b27a058a --- /dev/null +++ b/docs/gdevelop5/all-features/save-state/index.md @@ -0,0 +1,109 @@ +--- +title: Save & Load (Save State) +--- + +# Save & Load (Save State) + +The **Save State** extension allows you to **save and restore the full state of your game** at any time — including all objects, variables, sounds, effects, and more. + +It is designed to be **easy to use by default**, while also providing **advanced configuration options** for developers who need finer control over what gets saved or loaded. + +These two short videos are illustrating save states being used/restored in a 3D game (using the 3D physics engine) and a 2D game: + +
+ +
+ +
+ +
+ +## Basic Usage + +You can save and load the game state in **two main ways**: to a device storage handled by GDevelop or to a variable. + +### 1. Save to Device Storage + +This is the **recommended** approach for most games. It automatically stores the save data in the player’s **device storage** (web, desktop, or mobile), ensuring that the save persists between sessions — even if the game is closed or restarted. + +For this, use actions **Save game to device storage** and **Load game from device storage**. + +![](save-device-storage-action.png) + +Each save uses a **storage key**, such as `"Save1"`, `"CheckpointA"`, or `"Autosave"`, to identify the save slot. This enables you to offer multiple save slots (in some games, it's usual to have 3 to 5 save slots that the player can use). + + +!!! tip + + While there is no hard limitation on the number of saves, some devices or browsers might have a limitation on the total size occupied by the saves. It's usually safer to limit the number of saves the player can do. + +### 2. Save to a Variable (Advanced) + +You can also save the entire game state into a **scene or global variable**. +This is useful for: + +- Implementing checkpoints or quicksaves that don’t persist after closing the game. In this case, be sure to exclude the variable from the save state (see "Exclude Variables or other scene/game data from Save States" section below). +- Sending save data to a remote server or cloud. +- Debugging. + +!!! important + Variable-based saves are stored only in memory — they are **not persisted** between game sessions. You must persist the variable somewhere if you want to keep the save state. + + +## Monitoring Save/Load Operations + +The extension provides a few **expressions and conditions** to help you monitor saves and loads. In particular, the "Load just succeeded" condition is perfect to run some logic after a scene was loaded. This is somewhat similar to "At the beginning of the scene", except that after a loading a scene is already considered as started (because it was "frozen in time" in the save state). + +## Advanced: Excluding Objects from Save States with the “Save Configuration” Behavior. + +By default, everything in the game is saved — all objects, scene data, and variables. In practice, there are objects you might want not to save, like interface elements, virtual joystick, backgrounds, etc... + +You can customize this behavior using the **Save Configuration** behavior or dedicated actions. + +Add the **Save Configuration** behavior to any object you don’t want to include in save states or only in some save states. Then, set up the properties: + +- **Default persistence**: + - "Persisted" (default): the object is included in save states and loaded back. + - "Do not save": the object is excluded. It won't be saved, and even if it was saved, it won't be loaded. +- **Profile names** (advanced usage): optional comma-separated list of profiles (see below) in which this object should be included. + +!!! tip + + The best practice is to tag all objects from your game interface, virtual controls as well as objects that are not part of the gameplay with this behavior and the "Do not save" mode. + +### Exclude Variables or other Scene/Game Data from Save States + +You can also configure **scene or global variables** to be included or excluded from save states dynamically. Use the action **"Change the save configuration of a variable"**. It lets you: + +- Exclude a variable from all saves. This is helpful for variables that must stay the same or that are already loaded from another storage, like game settings (audio volume, custom control schemes or keys, etc...). +- Include it only in certain save profiles (see next section). + +Similarly, you can use these actions for fine-grained control on what is saved/loaded in the rest of the game: + +- **Change the save configuration of the global game data**: this does the same for global variables and audio (sounds/musics being played). +- **Change the save configuration of a scene data**: this does the same for the scene variables, timers, layers, asynchronous actions (Wait X seconds). + +## Even More Advanced: Using Save Profiles + +The Save State system supports **profiles**, allowing you to save only some part of the game. For example, you could: + +- Make a full save of the game after a level is completed (this is what happens when you don't specify a profile: the "default" profile is used). +- During a level, use the save state with a specific profile `"enemies"` to save enemies positions when a checkpoint is reached. If they player dies, you put it back to the checkpoint position and the save state with the profile `"enemies"` so that enemies are restored - but the rest of the game continues to run. + +Each object, variable, or piece of scene/game data can be assigned one or more **profile names** (like `"default"`, `"checkpoint"`, `"player"`, etc.). For example, a coin can be `items, coins`. + +When you perform a save or load, you can specify one or more profiles — and only the data tagged with those profiles will be affected. + +## Known Limitations + +!!! note + + While it’s technically possible to save the game at any moment, it’s **recommended** to save or load at stable points in gameplay — such as checkpoints or after the end of an action — to avoid inconsistencies (e.g., during physics updates or combat animations). + +- **Custom objects** are not yet fully serialized. They will be recreated and placed correctly, but their internal state may reset to default. +- **Third-party extensions** that manage data outside of GDevelop’s variable/object system might not be captured. +- **Performance impact:** Saving large games (many objects or variables) can briefly freeze the game; use with care on mobile or web platforms. diff --git a/docs/gdevelop5/all-features/save-state/reference.md b/docs/gdevelop5/all-features/save-state/reference.md new file mode 100644 index 0000000000..9f66740862 --- /dev/null +++ b/docs/gdevelop5/all-features/save-state/reference.md @@ -0,0 +1,166 @@ +# Save State (experimental) Reference + +Allows to save and load the full state of a game, usually on the device storage. A Save State, by default, contains the full state of the game (objects, variables, sounds, music, effects etc.). Using the "Save Configuration" behavior, you can customize which objects should not be saved in a Save State. You can also use the "Change the save configuration of a variable" action to change the save configuration of a variable. Finally, both objects, variables and scene/game data can be given a profile name: in this case, when saving or loading with one or more profile names specified, only the object/variables/data belonging to one of the specified profiles will be saved or loaded. [Read more explanations about it.](/gdevelop5/all-features/save-state) + +## Actions + +**Save game to device storage** +Create a Save State and save it to device storage. + +??? quote "See parameters" + + - Parameter 1 (string): Storage key to save to + - Parameter 2 (string): Profile(s) to save + Comma-separated list of profile names that must be saved. Only objects tagged with at least one of these profiles will be saved. If no profile names are specified, all objects will be saved (unless they have a "Save Configuration" behavior set to "Do not save"). + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Save game to a variable** +Create a Save State and save it to a variable. This is for advanced usage, prefer to use "Save game to device storage" in most cases. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable to store the save to + - Parameter 2 (string): Profile(s) to save + Comma-separated list of profile names that must be saved. Only objects tagged with at least one of these profiles will be saved. If no profile names are specified, all objects will be saved (unless they have a "Save Configuration" behavior set to "Do not save"). + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Load game from device storage** +Restore the game from a Save State stored on the device. + +??? quote "See parameters" + + - Parameter 1 (string): Storage name to load the game from + - Parameter 2 (string): Profile(s) to load + Comma-separated list of profile names that must be loaded. Only objects tagged with at least one of these profiles will be loaded - others will be left alone. If no profile names are specified, all objects will be loaded. + - Parameter 3 (❓ Yes or No): Stop and restart all the scenes currently played? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Load game from variable** +Restore the game from a Save State stored in the specified variable. This is for advanced usage, prefer to use "Load game from device storage" in most cases. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable to load the game from + - Parameter 2 (string): Profile(s) to load + Comma-separated list of profile names that must be loaded. Only objects tagged with at least one of these profiles will be loaded - others will be left alone. If no profile names are specified, all objects will be loaded (unless they have a "Save Configuration" behavior set to "Do not save"). + - Parameter 3 (❓ Yes or No): Stop and restart all the scenes currently played? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Change the save configuration of the global game data** +Set if the global game data (audio & global variables) should be saved in the default save state. Also allow to specify one or more profiles in which the global game data should be saved. + +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Persist in default save states + - Parameter 2 (string): Profiles in which the global game data should be saved + Comma-separated list of profile names in which the global game data will be saved. When a save state is created with one or more profile names specified, the global game data will be saved only if it matches one of these profiles. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Change the save configuration of a scene data** +Set if the data of the specified scene (scene variables, timers, trigger once, wait actions, layers, etc.) should be saved in the default save state. Also allow to specify one or more profiles in which the scene data should be saved. Note: objects are always saved separately from the scene data (use the "Save Configuration" behavior to customize the configuration of objects). + +??? quote "See parameters" + + - Parameter 1 (🔤 Name of a scene (String)): Scene name for which configuration should be changed + - Parameter 2 (❓ Yes or No): Persist in default save states + - Parameter 3 (string): Profiles in which the scene data should be saved + Comma-separated list of profile names in which the scene data will be saved. When a save state is created with one or more profile names specified, the scene data will be saved only if it matches one of these profiles. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Change the save configuration of a variable** +Set if a scene or global variable should be saved in the default save state. Also allow to specify one or more profiles in which the variable should be saved. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable for which configuration should be changed + - Parameter 2 (❓ Yes or No): Persist in default save states + - Parameter 3 (string): Profiles in which the variable should be saved + Comma-separated list of profile names in which the variable will be saved. When a save state is created with one or more profile names specified, the variable will be saved only if it matches one of these profiles. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +## Conditions + +**Load just failed** +The last load attempt just failed. + +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Load just succeeded** +The last load attempt just succeeded. + +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Save just failed** +The last save attempt just failed. + +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Save just succeeded** +The last save attempt just succeeded. + +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Time since last load** +Compare Time since the last load, in seconds. Returns -1 if no load happened, and a positive number otherwise.. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +**Time since last save** +Compare Time since the last save, in seconds. Returns -1 if no save happened, and a positive number otherwise.. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + +## Expressions + +| Expression | Description | | +|-----|-----|-----| +| `SaveState::TimeSinceLastLoad()` | Return Time since the last load, in seconds. Returns -1 if no load happened, and a positive number otherwise.. || +| `SaveState::TimeSinceLastSave()` | Return Time since the last save, in seconds. Returns -1 if no save happened, and a positive number otherwise.. || + +## Save state configuration + +Allow the customize how the object is persisted in a save state. + +_No expressions for this behavior._ + + + + +--- + +The Save State (experimental) extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Save State (experimental)** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/save-state/save-action.png b/docs/gdevelop5/all-features/save-state/save-action.png new file mode 100644 index 0000000000..6216e6156f Binary files /dev/null and b/docs/gdevelop5/all-features/save-state/save-action.png differ diff --git a/docs/gdevelop5/all-features/save-state/save-device-storage-action.png b/docs/gdevelop5/all-features/save-state/save-device-storage-action.png new file mode 100644 index 0000000000..f5b5b17a73 Binary files /dev/null and b/docs/gdevelop5/all-features/save-state/save-device-storage-action.png differ diff --git a/docs/gdevelop5/all-features/save-state/save-load-3d-demo.mp4 b/docs/gdevelop5/all-features/save-state/save-load-3d-demo.mp4 new file mode 100644 index 0000000000..1e36679d15 Binary files /dev/null and b/docs/gdevelop5/all-features/save-state/save-load-3d-demo.mp4 differ diff --git a/docs/gdevelop5/all-features/save-state/save-load-demo.mp4 b/docs/gdevelop5/all-features/save-state/save-load-demo.mp4 new file mode 100644 index 0000000000..503dd4ae34 Binary files /dev/null and b/docs/gdevelop5/all-features/save-state/save-load-demo.mp4 differ diff --git a/docs/gdevelop5/all-features/scalable-capability/reference.md b/docs/gdevelop5/all-features/scalable-capability/reference.md index d9e2310200..cd62cf4af6 100644 --- a/docs/gdevelop5/all-features/scalable-capability/reference.md +++ b/docs/gdevelop5/all-features/scalable-capability/reference.md @@ -1,35 +1,77 @@ -# Scalable capability Reference +# Scalable objects Reference -Change the object scale. [Read more explanations about it.](/gdevelop5/objects) +Actions/conditions/expression to change or check the scale of an object (default: 1). [Read more explanations about it.](/gdevelop5/objects) -## Scalable capability +## Scalable objects -Change the object scale. +Actions/conditions/expression to change or check the scale of an object (default: 1). ### Behavior actions **Scale** Change the scale of the object (default scale is 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Scale on X axis** Change the scale on X axis of the object (default scale is 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Scale on Y axis** Change the scale on Y axis of the object (default scale is 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + ### Behavior conditions **Scale** Compare the scale of the object (default scale is 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Scale on X axis** Compare the scale on X axis of the object (default scale is 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Scale on Y axis** Compare the scale on Y axis of the object (default scale is 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Scale (1 by default) + ### Behavior expressions | Expression | Description | | @@ -38,5 +80,10 @@ Compare the scale on Y axis of the object (default scale is 1). | `Object.Scale::X()` | Return the scale on X axis of the object (default scale is 1). || | `Object.Scale::Y()` | Return the scale on Y axis of the object (default scale is 1). || + + --- -*This page is an auto-generated reference page about the **Scalable capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Scalable objects extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Scalable objects** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/scene/reference.md b/docs/gdevelop5/all-features/scene/reference.md index 71e251ff35..71b8ff64fe 100644 --- a/docs/gdevelop5/all-features/scene/reference.md +++ b/docs/gdevelop5/all-features/scene/reference.md @@ -1,6 +1,6 @@ # Scene Reference -Actions and conditions to manipulate the scenes during the game. +Actions/conditions to change the current scene (or pause it and launch another one, or go back to the previous one), check if a scene or the game has just started/resumed, preload assets of a scene, get the current scene name or loading progress, quit the game, set background color, or disable input when focus is lost. ## Actions @@ -8,48 +8,129 @@ Actions and conditions to manipulate the scenes during the game. Stop this scene and go back to the previous paused one. To pause a scene, use the "Pause and start a new scene" action. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Preload scene** Preload a scene resources as soon as possible in background. +??? quote "See parameters" + + - Parameter 1 (🔤 Name of a scene (String)): Name of the new scene + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pause and start a new scene** Pause this scene and start the specified one. Later, you can use the "Stop and go back to previous scene" action to go back to this scene. +??? quote "See parameters" + + - Parameter 1 (🔤 Name of a scene (String)): Name of the new scene + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Quit the game** Quit the game +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Change the scene** Stop this scene and start the specified one instead. +??? quote "See parameters" + + - Parameter 1 (🔤 Name of a scene (String)): Name of the new scene + - Parameter 2 (❓ Yes or No): Stop any other paused scenes? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Background color** Change the background color of the scene. +??? quote "See parameters" + + - Parameter 1: color + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Scene preloaded** Check if scene resources have finished to load in background. +??? quote "See parameters" + + - Parameter 1: 🔤 Name of a scene (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **At the beginning of the scene** Is true only when scene just begins. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Does scene exist** Check if a scene exists. +??? quote "See parameters" + + - Parameter 1 (🔤 Name of a scene (String)): Name of the scene to check + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Game has just resumed** Check if the game has just resumed from being hidden. It happens when the game tab is selected, a minimized window is restored or the application is put back on front. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Scene just resumed** The scene has just resumed after being paused. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Scene loading progress** Compare The progress of resources loading in background for a scene (between 0 and 1).. +??? quote "See parameters" + + - Parameter 1: 🔤 Name of a scene (String) + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `CurrentSceneName()` | Name of the current scene || -| `SceneLoadingProgress()` | Return The progress of resources loading in background for a scene (between 0 and 1).. || +| `SceneLoadingProgress(scene name)` | Return The progress of resources loading in background for a scene (between 0 and 1).. || +| | _🔤 Name of a scene (String)_ | Scene name | + + --- + +The Scene extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Scene** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/scene3d/reference.md b/docs/gdevelop5/all-features/scene3d/reference.md index d63e301bf8..3369f5b83b 100644 --- a/docs/gdevelop5/all-features/scene3d/reference.md +++ b/docs/gdevelop5/all-features/scene3d/reference.md @@ -1,63 +1,203 @@ # 3D Reference -Support for 3D in GDevelop. +Support for 3D in GDevelop: this provides 3D objects and the common features for all 3D objects. ## Actions **Camera far plane** Change the camera far plane distance. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Distance (> 0) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera field of view (fov)** Change the camera field of view. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Field of view in degrees (between 0° and 180°) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera near plane** Change the camera near plane distance. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Distance (> 0) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera X rotation** Change the camera rotation on X axis. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera Y rotation** Change the camera rotation on Y axis. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera Z position** Change the camera position on Z axis. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Look at an object** Change the camera rotation to look at an object. The camera top always face the screen. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2: 🔤 Layer name (String) + - Parameter 3 (🔢 Number): Camera number + - Parameter 4 (❓ Yes or No): Stand on Y instead of Z + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Look at a position** Change the camera rotation to look at a position. The camera top always face the screen. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): X position + - Parameter 2 (🔢 Number): Y position + - Parameter 3 (🔢 Number): Z position + - Parameter 4: 🔤 Layer name (String) + - Parameter 5 (🔢 Number): Camera number + - Parameter 6 (❓ Yes or No): Stand on Y instead of Z + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Camera far plane** Compare the camera far plane distance. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Distance (> 0) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera field of view (fov)** Compare the camera field of view. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Field of view in degrees (between 0° and 180°) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera near plane** Compare the camera near plane distance. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Distance (> 0) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera X rotation** Compare the camera rotation on X axis. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera Y rotation** Compare the camera rotation on Y axis. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Camera Z position** Compare the camera position on Z axis. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Scene3D::CameraFarPlane()` | Return the camera far plane distance. || -| `Scene3D::CameraFov()` | Return the camera field of view. || -| `Scene3D::CameraNearPlane()` | Return the camera near plane distance. || -| `Scene3D::CameraRotationX()` | Return the camera rotation on X axis. || -| `Scene3D::CameraRotationY()` | Return the camera rotation on Y axis. || -| `Scene3D::CameraZ()` | Return the camera position on Z axis. || +| `Scene3D::CameraFarPlane(layer name, number)` | Return the camera far plane distance. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraFov(layer name, number)` | Return the camera field of view. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraNearPlane(layer name, number)` | Return the camera near plane distance. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraRotationX(layer name, number)` | Return the camera rotation on X axis. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraRotationY(layer name, number)` | Return the camera rotation on Y axis. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | +| `Scene3D::CameraZ(layer name, number)` | Return the camera position on Z axis. || +| | _🔤 Layer name (String)_ | Layer _Optional_. | +| | _🔢 Number_ | Camera number (default : 0) _Optional_. | ## 3D Box @@ -68,83 +208,231 @@ A box with images for each face **Face image** Change the image of the face. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D cube + - Parameter 1 (🔤 String): Face (one of: "front", "back", "left", "right", "top", "bottom") + - Parameter 2 (imageResource): Image + **Face visibility** Set (or unset) if a face should be visible. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D cube + - Parameter 1 (🔤 String): Face (one of: "front", "back", "left", "right", "top", "bottom") + - Parameter 2 (❓ Yes or No): Visible? + +**Tint color** +Change the tint of the cube. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D Cube + - Parameter 1 (color): Tint + ### Object conditions **Face visibility** Check if a face should be visible. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D cube + - Parameter 1 (🔤 String): Face (one of: "front", "back", "left", "right", "top", "bottom") + _No expressions for this object._ ## 3D Model -An animated 3D model. +An animated 3D model, useful for most elements of a 3D game. + +### Object actions + +**Set crossfade duration** +Set the crossfade duration when switching to a new animation. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D model + - Parameter 1 (🔢 Number): Crossfade duration (in seconds) _No expressions for this object._ ## 3D capability -Move the object in 3D space. +Common features for all 3D objects: position in 3D space (including the Z axis, in addition to X and Y), size (including depth, in addition to width and height), rotation (on X and Y axis, in addition to the Z axis), scale (including Z axis, in addition to X and Y), flipping (on Z axis, in addition to horizontal (Y)/vertical (X) flipping). ### Behavior actions **Flip the object on Z** Flip the object on Z axis +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Activate flipping + **Center Z position** Change the Z position of the center of rotation. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Depth (size on Z axis)** Change the depth (size on Z axis). +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Rotation on X axis** Change the rotation on X axis. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Rotation on Y axis** Change the rotation on Y axis. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Scale on Z axis** Change the scale on Z axis of an object (default scale is 1). +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Z (elevation)** Change the Z position (the "elevation"). +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + **Turn around X axis** Turn the object around X axis. This axis doesn't move with the object rotation. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle to add (in degrees) + **Turn around Y axis** Turn the object around Y axis. This axis doesn't move with the object rotation. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle to add (in degrees) + **Turn around Z axis** Turn the object around Z axis. This axis doesn't move with the object rotation. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle to add (in degrees) + ### Behavior conditions **Center Z position** Compare the Z position of the center of rotation. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Depth (size on Z axis)** Compare the depth (size on Z axis). +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + **Flipped on Z** Check if the object is flipped on Z axis +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + **Rotation on X axis** Compare the rotation on X axis. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Rotation on Y axis** Compare the rotation on Y axis. +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Scale on Z axis** Compare the scale on Z axis of an object (default scale is 1). +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Scale (1 by default) + **Z (elevation)** Compare the Z position (the "elevation"). +??? quote "See parameters" + + - Parameter 0 (👾 Object): 3D object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + ### Behavior expressions | Expression | Description | | @@ -156,5 +444,137 @@ Compare the Z position (the "elevation"). | `Object.Object3D::ScaleZ()` | Return the scale on Z axis of an object (default scale is 1). || | `Object.Object3D::Z()` | Return the Z position (the "elevation"). || +### Effect "Ambient light" + +A light that illuminates all objects from every direction. Often used along with a Directional light (though a Hemisphere light can be used instead of an Ambient light). + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Light color**. Default value is `255;255;255`. For events, write: `"color"`. +- **Intensity**. Default value is `0.75`. For events, write: `"intensity"`. + +### Effect "Bloom" + +Apply a bloom effect. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Radius (between 0 and 1)**. Default value is `0`. For events, write: `"radius"`. +- **Strength (between 0 and 3)**. Default value is `1`. For events, write: `"strength"`. +- **Threshold (between 0 and 1)**. Default value is `0`. For events, write: `"threshold"`. + +### Effect "Brightness and contrast." + +Adjust brightness and contrast. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Brightness (between -1 and 1)**. Default value is `0`. For events, write: `"brightness"`. +- **Contrast (between -1 and 1)**. Default value is `0`. For events, write: `"contrast"`. + +### Effect "Directional light" + +A very far light source like the sun. This is the light to use for casting shadows for 3D objects (other lights won't emit shadows). Often used along with a Hemisphere light. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Light color**. Default value is `255;255;255`. For events, write: `"color"`. +- **Distance from layer's camera**. Default value is `1500`. For events, write: `"distanceFromCamera"`. +- **Elevation (in degrees)**: Maximal elevation is reached at 90°.. Default value is `45`. For events, write: `"elevation"`. +- **Shadow frustum size**. Default value is `4000`. For events, write: `"frustumSize"`. +- **Intensity**. Default value is `0.5`. For events, write: `"intensity"`. +- **Shadow casting**. Default value is `false`. For events, write: `"isCastingShadow"`. +- **Shadow bias**: Use this to avoid "shadow acne" due to depth buffer precision. Choose a value small enough like 0.001 to avoid creating distance between shadows and objects but not too small to avoid shadow glitches on low/medium quality. This value is used for high quality, and multiplied by 1.25 for medium quality and 2 for low quality.. Default value is `0`. For events, write: `"minimumShadowBias"`. +- **Rotation (in degrees)**. Default value is `0`. For events, write: `"rotation"`. +- **Shadow quality**. Default value is `medium`. For events, write: `"shadowQuality"`. +- **3D world top**. Default value is `Z+`. For events, write: `"top"`. + +### Effect "Fog (exponential)" + +Exponential fog for 3D objects. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Fog color**. Default value is `255;255;255`. For events, write: `"color"`. +- **Density**: Density of the fog. Usual values are between 0.0005 (far away) and 0.005 (very thick fog).. Default value is `0.0012`. For events, write: `"density"`. + +### Effect "Exposure" + +Adjust exposure. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Exposure (positive value)**. Default value is `1`. For events, write: `"exposure"`. + +### Effect "Hemisphere light" + +A light that illuminates objects from every direction with a gradient. Often used along with a Directional light. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Elevation (in degrees)**: Maximal elevation is reached at 90°.. Default value is `90`. For events, write: `"elevation"`. +- **Ground color**. Default value is `127;127;127`. For events, write: `"groundColor"`. +- **Intensity**. Default value is `0.5`. For events, write: `"intensity"`. +- **Rotation (in degrees)**. Default value is `0`. For events, write: `"rotation"`. +- **Sky color**. Default value is `255;255;255`. For events, write: `"skyColor"`. +- **3D world top**. Default value is `Z+`. For events, write: `"top"`. + +### Effect "Hue and saturation" + +Adjust hue and saturation. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Hue in degrees (between -180 and 180)**. Default value is `0`. For events, write: `"hue"`. +- **Saturation (between -1 and 1)**. Default value is `0`. For events, write: `"saturation"`. + +### Effect "Fog (linear)" + +Linear fog for 3D objects. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Fog color**. Default value is `255;255;255`. For events, write: `"color"`. +- **Distance where the fog is fully opaque**. Default value is `2000`. For events, write: `"far"`. +- **Distance where the fog starts**. Default value is `200`. For events, write: `"near"`. + +### Effect "Skybox" + +Display a background on a cube surrounding the scene. + +This effect is for 3D layers only. + +Properties of this effect are: + +- **Back face (Z-)**. Default value is ``. For events, write: `"backFaceResourceName"`. +- **Bottom face (Y+)**. Default value is ``. For events, write: `"bottomFaceResourceName"`. +- **Front face (Z+)**. Default value is ``. For events, write: `"frontFaceResourceName"`. +- **Left face (X-)**. Default value is ``. For events, write: `"leftFaceResourceName"`. +- **Right face (X+)**. Default value is ``. For events, write: `"rightFaceResourceName"`. +- **Top face (Y-)**. Default value is ``. For events, write: `"topFaceResourceName"`. + + + --- + +The 3D extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **3D** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/screenshot/reference.md b/docs/gdevelop5/all-features/screenshot/reference.md index ea371bc44c..554087e2ed 100644 --- a/docs/gdevelop5/all-features/screenshot/reference.md +++ b/docs/gdevelop5/all-features/screenshot/reference.md @@ -7,7 +7,18 @@ Allows to save screenshots of a running game. [Read more explanations about it.] **Take screenshot** Take a screenshot of the game, and save it to a png file (supported only when running on Windows/Linux/macOS). +??? quote "See parameters" + + - Parameter 1 (string): Save path + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The Screenshot extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Screenshot** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/shopify/reference.md b/docs/gdevelop5/all-features/shopify/reference.md index 00240eec97..9bf19668cb 100644 --- a/docs/gdevelop5/all-features/shopify/reference.md +++ b/docs/gdevelop5/all-features/shopify/reference.md @@ -7,10 +7,35 @@ Interact with products and generate URLs for checkouts with your Shopify shop. [ **Initialize a shop** Initialize a shop with your credentials. Call this action first, and then use the shop name in the other actions to interact with products. +??? quote "See parameters" + + - Parameter 1 (string): Shop name + - Parameter 2 (string): Domain (xxx.myshopify.com) + - Parameter 3 (string): App Id + - Parameter 4 (string): Access Token + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Get the URL for buying a product** Get the URL for buying a product from a shop. The URL will be stored in the scene variable that you specify. You can then use the action to open an URL to redirect the player to the checkout. +??? quote "See parameters" + + - Parameter 1 (string): Shop name (initialized with "Initialize a shop" action) + - Parameter 2 (string): Product id + - Parameter 3 (🔢 Number): Quantity + - Parameter 4 (🔢 Number): Variant (0 by default) + - Parameter 5 (🗄️ Scene variable): Scene variable where the URL for checkout must be stored + - Parameter 6 (🗄️ Scene variable): Scene variable containing the error (if any) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The Shopify extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Shopify** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/spatial-sound/reference.md b/docs/gdevelop5/all-features/spatial-sound/reference.md index a1768a8b60..4b03d5743d 100644 --- a/docs/gdevelop5/all-features/spatial-sound/reference.md +++ b/docs/gdevelop5/all-features/spatial-sound/reference.md @@ -7,10 +7,30 @@ Allow positioning sounds in a 3D space. The stereo system of the device is used **Listener position** Change the spatial position of the listener/player. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): X position + - Parameter 1 (🔢 Number): Y position + - Parameter 2 (🔢 Number): Z position + **Set position of sound** Sets the spatial position of a sound. When a sound is at a distance of 1 to the listener, it's heard at 100% volume. Then, it follows an *inverse distance model*. At a distance of 2, it's heard at 50%, and at a distance of 4 it's heard at 25%. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Channel + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (🔢 Number): Z position + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The Spatial sound extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Spatial sound** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/spine-object/reference.md b/docs/gdevelop5/all-features/spine-object/reference.md index e415ba45b9..96c8882a07 100644 --- a/docs/gdevelop5/all-features/spine-object/reference.md +++ b/docs/gdevelop5/all-features/spine-object/reference.md @@ -13,24 +13,61 @@ Display and smoothly animate a 2D object with skeletal animations made with Spin **Animation mixing duration** Change the duration of the smooth transition between 2 animations (in second). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Spine + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + ### Object conditions **Animation mixing duration** Compare the duration of the smooth transition between 2 animations (in second). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Spine + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Point attachment X position** Compare x position of spine point attachment. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Spine + - Parameter 1 (string): Attachment name + - Parameter 2 (string): Slot name (use "" if names are the same) + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + **Point attachment Y position** Compare y position of spine point attachment. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Spine + - Parameter 1 (string): Attachment name + - Parameter 2 (string): Slot name (use "" if names are the same) + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + ### Object expressions | Expression | Description | | |-----|-----|-----| | `Object.Animation()` | Return the duration of the smooth transition between 2 animations (in second). || -| `Object.PointAttachmentX()` | Return x position of spine point attachment. || -| `Object.PointAttachmentY()` | Return y position of spine point attachment. || +| `Object.PointAttachmentX(string, string)` | Return x position of spine point attachment. || +| | _string_ | Attachment name | +| | _string_ | Slot name (use "" if names are the same) | +| `Object.PointAttachmentY(string, string)` | Return y position of spine point attachment. || +| | _string_ | Attachment name | +| | _string_ | Slot name (use "" if names are the same) | + + --- + +The Spine (experimental) extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Spine (experimental)** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/sprite/reference.md b/docs/gdevelop5/all-features/sprite/reference.md index 013561dec5..f5cfe53050 100644 --- a/docs/gdevelop5/all-features/sprite/reference.md +++ b/docs/gdevelop5/all-features/sprite/reference.md @@ -1,12 +1,12 @@ # Sprite Reference -Sprite are animated object which can be used for most elements of a game. [Read more explanations about it.](/gdevelop5/objects/sprite) +Sprite are animated objects which can be used for most elements of a 2D game. [Read more explanations about it.](/gdevelop5/objects/sprite) ## Sprite -Animated object which can be used for most elements of a game. +Animated object which can be used for most elements of a 2D game. ### Object actions @@ -14,28 +14,63 @@ Animated object which can be used for most elements of a game. Change the number of the blend mode of an object. The default blend mode is 0 (Normal). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔢 Number): Mode (0: Normal, 1: Add, 2: Multiply, 3: Screen) + **Tint color** Change the tint of an object. The default color is white. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (color): Tint + **Current frame** Modify the current frame of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + ### Object conditions **Blend mode** Compare the number of the blend mode currently used by an object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Current frame** Compare the index of the current frame in the animation displayed by the specified object. The first frame in an animation starts at index 0. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + ### Object expressions | Expression | Description | | |-----|-----|-----| | `Object.AnimationFrameCount()` | Number of frames in the current animation of the object || -| `Object.PointX()` | X position of a point || -| `Object.PointY()` | Y position of a point || +| `Object.PointX(object point name)` | X position of a point || +| | _🔤 Object Point Name (String)_ | Name of the point | +| `Object.PointY(object point name)` | Y position of a point || +| | _🔤 Object Point Name (String)_ | Name of the point | | `Object.Sprite()` | Current frame of the animation of the object || + + --- + +The Sprite extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Sprite** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/steamworks/reference.md b/docs/gdevelop5/all-features/steamworks/reference.md index b300be450a..d046a6b8ed 100644 --- a/docs/gdevelop5/all-features/steamworks/reference.md +++ b/docs/gdevelop5/all-features/steamworks/reference.md @@ -7,33 +7,87 @@ Adds integrations for Steam's Steamworks game development SDK. **Activate an action set** Activates a Steam Input action set of a Steam Input controller. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Controller number + - Parameter 1 (🔤 Name (String)): ActionName + **Claim achievement** Marks a Steam achievement as obtained. Steam will pop-up a notification with the achievement's data defined on the Steamworks partner website. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Achievement ID + **Create a lobby** Creates a new steam lobby owned by the player, for other players to join. +??? quote "See parameters" + + - Parameter 0 (🔤 String): Visibility + [Click here](https://partner.steamgames.com/doc/api/ISteamMatchmaking#ELobbyType) to learn more about the different lobby visibilities. (one of: "Private", "FriendsOnly", "Public", "Invisible") + - Parameter 1 (🔢 Number): Maximal player count + - Parameter 2 (🗄️ Scene variable): Store results in + The variable will be set to the ID of the lobby if successful, otherwise to "failure". + **Create a Workshop item** Creates an item owned by the current player on the Steam Workshop. This only assignes an ID to an item for the user - use the action "Update workshop item" to set the item data and upload the workshop file. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): The variable where to store the result + This will be set to the Workshop item ID if successful and to the string "failure" otherwise. + **Delete a file** Deletes a file from the Steam Cloud. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Name of file to delete + - Parameter 1 (🗄️ Scene variable): Variable where to store the result + The variable will be set to true if the file was successfully deleted and to false if it could not be. + **Download a Workshop item** Initiates the download of a Workshop item now. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Workshop Item ID + - Parameter 1 (❓ Yes or No): Stop other downloads? + This will temporarily pause any other Steam download on the player's machine to download the Workshop item NOW without waiting for other pending downloads to finish. + **Get the lobby's members** Gets the Steam ID of all players in the current lobby. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Variable where to store the player list + **Get a list of lobbies** Fills an array variable with a list of lobbies for the player to join. +??? quote "See parameters" + + - Parameter 0 (🗄️ Scene variable): Array to fill with lobbies + The variable will be set to an array of the IDs of the lobbies if they could be successfully obtained. If they could not be obtained, it is set to the string "failure". + **Get a lobby's members** Gets the Steam ID of all players in a lobby. +??? quote "See parameters" + + - Parameter 0 (string): The lobby ID + - Parameter 1 (🗄️ Scene variable): Variable where to store the player list + **Join a lobby (by ID)** Join a Steam lobby, using its lobby ID. +??? quote "See parameters" + + - Parameter 0 (string): Lobby ID + - Parameter 1 (🗄️ Scene variable): Store results in + The variable will be set to the ID of the lobby if successful, otherwise to "failure". + **Leave current lobby** Marks the player as having left the current lobby. @@ -43,47 +97,126 @@ Opens the steam invitation dialogue to let the player invite their Steam friends **Set a lobby attribute** Sets an attribute of the current lobby. Attributes are readable to anyone that can see the lobby. They can contain public information about the lobby like a description, or for example a P2P ID for knowing where to connect to join this lobby. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): The attribute to set + - Parameter 1 (string): Value to set the attribute to + - Parameter 2 (🗄️ Scene variable): Variable where to store the result + The variable will be set to true if the attribute was successfully set and to false if it could not be set. + **Set the lobby joinability** Sets whether other users can join the current lobby or not. +??? quote "See parameters" + + - Parameter 0 (❓ Yes or No): Should the lobby be joinable? + - Parameter 1 (🗄️ Scene variable): Variable where to store the result + The variable will be set to true if the joinability was successfully set and to false if it could not be changed. + **Steam rich presence** Changes an attribute of Steam's rich presence. Allows other player to see exactly what the player's currently doing in the game. +??? quote "See parameters" + + - Parameter 0 (🔤 String): The attribute to change + [Click here](https://partner.steamgames.com/doc/api/ISteamFriends#SetRichPresence) to find out more about the different default rich-presence attributes. (one of: "status", "connect", "steam_display", "steam_player_group", "steam_player_group_size") + - Parameter 1 (string): The new value for that attribute + **Subscribe to a Workshop item** Makes the player subscribe to a workshop item. This will cause it to be downloaded and installed ASAP. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Workshop Item ID + - Parameter 1 (🗄️ Scene variable): The variable where to store the result + This will be set to `true` if successful and to `false` otherwise. + **Unclaim achievement** Removes a player's Steam achievement. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Achievement ID + **Unsubscribe to a Workshop item** Makes the player unsubscribe to a workshop item. This will cause it to removed after quitting the game. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Workshop Item ID + - Parameter 1 (🗄️ Scene variable): The variable where to store the result + This will be set to `true` if successful and to `false` otherwise. + **Update a Workshop item** Releases an update to a Workshop item owned by the player. If you leave a field empty, it will be kept unmodified as it was before the update. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Workshop Item ID + - Parameter 1 (string): Title + - Parameter 2 (string): Description + - Parameter 3 (string): Changelog + - Parameter 4 (string): Path to the preview image file + An absolute file-path to an image file to be shown as preview of the workshop item on Steam. + - Parameter 5 (string): Path to the file with the item's file + An absolute file-path to a file that contains the all the data for your workshop item. You can use the Filesystem actions to write a JSON file with your player's Workshop item's data to a file in the temporary data folder, and pass the path here. + - Parameter 6 (string): Tags + The tags must be comma-separated without spaces after the comma, for example: `mytag,another tag,my_last_tag`. + - Parameter 7 (🔤 String): Visibility (one of: "Public", "FriendsOnly", "Private", "Unlisted") + - Parameter 8 (🗄️ Scene variable): The variable where to store the result + This will be set to `true` if the update is successfully release and to `false` otherwise. + **Write a file** Writes a file onto the Steam Cloud. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Name of file to write + - Parameter 1 (string): File contents + - Parameter 2 (🗄️ Scene variable): Variable where to store the result + The variable will be set to true if the file was successfully written and to false if it could not be. + ## Conditions **Has achievement** Checks if a player owns one of this game's Steam achievement. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Achievement ID + **Player bought the game** Checks if the current user actually bought & owns the game. If the "Require Steam" checkbox has been checked in the game properties, this will always be true as Steam will not allow to launch the game if it is not owned. Can be used to display an anti-piracy message instead of straight up blocking the launch of the game. **Player installed an application** Checks if the current user has a Steam application currently installed. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): The Steam App ID of the application + **Player installed DLC** Checks if the current user has installed a piece of DLC. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): The Steam App ID of the DLC + **File exists** Checks if a file exists on Steam Cloud. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): File name + **Digital action activated** Triggers when a digital action (a button that is either pressed or not) of a Steam Input controller has been triggered. +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Controller number + - Parameter 1 (🔤 Name (String)): ActionName + **Is on Steam Deck** Checks whether the game is currently running on a Steam Deck or not. @@ -93,6 +226,10 @@ Checks if the current user may only be exposed to low violence, due to e.g. thei **Player owns an application** Checks if the current user owns an application on Steam. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): The Steam App ID of the application + **Player has a VAC ban** Checks if the current user has a VAC ban on their account. @@ -105,38 +242,65 @@ Checks whether the Steamworks SDK could be properly loaded. If steam is not inst **Check workshop item state** Check whether a state flag is set for a Workshop item. +??? quote "See parameters" + + - Parameter 0 (🔤 Name (String)): Workshop Item ID + - Parameter 1 (🔤 String): State flag to check for (one of: "None", "Subscribed", "LegacyItem", "Installed", "NeedsUpdate", "Downloading", "DownloadPending") + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Steamworks::ActionVectorX()` | The action vector of a Steam Input analog joystick on the X-axis, from 1 (all right) to -1 (all left). || -| `Steamworks::ActionVectorY()` | The action vector of a Steam Input analog joystick on the Y-axis, from 1 (all up) to -1 (all down). || +| `Steamworks::ActionVectorX(number, string)` | The action vector of a Steam Input analog joystick on the X-axis, from 1 (all right) to -1 (all left). || +| | _🔢 Number_ | Controller number | +| | _🔤 Name (String)_ | ActionName | +| `Steamworks::ActionVectorY(number, string)` | The action vector of a Steam Input analog joystick on the Y-axis, from 1 (all up) to -1 (all down). || +| | _🔢 Number_ | Controller number | +| | _🔤 Name (String)_ | ActionName | | `Steamworks::AppBuildID()` | Gets the ID of the current app build. || | `Steamworks::AppID()` | Obtains the game's Steam app ID, as declared in the games properties. || | `Steamworks::BetaName()` | Gets the name of the beta the player enrolled to in the Steam game properties. || | `Steamworks::ControllerCount()` | The amount of connected Steam Input controllers. || | `Steamworks::CountryCode()` | The player's country represented as its two-letter code. || -| `Steamworks::CurrentLobbyAttribute()` | Obtains the value of one of the current lobby's attributes. || +| `Steamworks::CurrentLobbyAttribute(string)` | Obtains the value of one of the current lobby's attributes. || +| | _🔤 Name (String)_ | The attribute to read | | `Steamworks::CurrentLobbyID()` | The ID of the current lobby, useful for letting other players join it. || | `Steamworks::CurrentLobbyMemberCount()` | Obtains the current lobby's member count. || | `Steamworks::CurrentLobbyMemberLimit()` | Obtains the current lobby's maximum member limit. || | `Steamworks::CurrentLobbyOwner()` | Obtains the Steam ID of the user that owns the current lobby. || | `Steamworks::GameLanguage()` | Gets the language the user set in the Steam game properties. || -| `Steamworks::InstalledApplicationPath()` | Gets the path to an installed Steam application. || +| `Steamworks::InstalledApplicationPath(string)` | Gets the path to an installed Steam application. || +| | _🔤 Name (String)_ | The Steam App ID of the application | | `Steamworks::Level()` | Obtains the player's Steam level || -| `Steamworks::LobbyAttribute()` | Obtains the value of one of a lobby's attributes. || -| `Steamworks::LobbyMemberCount()` | Obtains a lobby's member count. || -| `Steamworks::LobbyMemberLimit()` | Obtains a lobby's maximum member limit. || -| `Steamworks::LobbyOwner()` | Obtains the Steam ID of the user that owns a lobby. || +| `Steamworks::LobbyAttribute(string, string)` | Obtains the value of one of a lobby's attributes. || +| | _string_ | The ID of the lobby | +| | _🔤 Name (String)_ | The attribute to read | +| `Steamworks::LobbyMemberCount(string)` | Obtains a lobby's member count. || +| | _string_ | The ID of the lobby | +| `Steamworks::LobbyMemberLimit(string)` | Obtains a lobby's maximum member limit. || +| | _string_ | The ID of the lobby | +| `Steamworks::LobbyOwner(string)` | Obtains the Steam ID of the user that owns a lobby. || +| | _string_ | The ID of the lobby | | `Steamworks::Name()` | The player's registered name on Steam. || -| `Steamworks::ReadCloudFile()` | Reads a file from Steam Cloud and returns its contents. || +| `Steamworks::ReadCloudFile(string)` | Reads a file from Steam Cloud and returns its contents. || +| | _🔤 Name (String)_ | Name of file to read | | `Steamworks::ServerTime()` | Obtains the real current time from the Steam servers, which cannot be faked by changing the system time. || | `Steamworks::SteamID()` | The player's unique Steam ID number. Note that it is too big a number to load correctly as a traditional number ("floating point number"), and must be used as a string. || -| `Steamworks::WorkshopItemDownloadProgress()` | The amount of data that has been downloaded by Steam for a currrently downloading item so far. || -| `Steamworks::WorkshopItemDownloadTotal()` | The amount of data that needs to be downloaded in total by Steam for a currrently downloading item. || -| `Steamworks::WorkshopItemInstallationTimestamp()` | The timestamp of the last time the contents file of an installed workshop item was updated. || -| `Steamworks::WorkshopItemLocation()` | The file path to the contents file of an installed workshop item. || -| `Steamworks::WorkshopItemSize()` | The size on disk taken by the contents file of an installed workshop item. || +| `Steamworks::WorkshopItemDownloadProgress(string)` | The amount of data that has been downloaded by Steam for a currrently downloading item so far. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemDownloadTotal(string)` | The amount of data that needs to be downloaded in total by Steam for a currrently downloading item. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemInstallationTimestamp(string)` | The timestamp of the last time the contents file of an installed workshop item was updated. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemLocation(string)` | The file path to the contents file of an installed workshop item. || +| | _🔤 Name (String)_ | Workshop Item ID | +| `Steamworks::WorkshopItemSize(string)` | The size on disk taken by the contents file of an installed workshop item. || +| | _🔤 Name (String)_ | Workshop Item ID | + + --- + +The Steamworks (Steam) (experimental) extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Steamworks (Steam) (experimental)** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/storage/reference.md b/docs/gdevelop5/all-features/storage/reference.md index 3427e88e11..67658b6564 100644 --- a/docs/gdevelop5/all-features/storage/reference.md +++ b/docs/gdevelop5/all-features/storage/reference.md @@ -7,38 +7,83 @@ Actions and conditions to store data (like the player progress or anything else **Clear a storage** Clear the specified storage, removing all data saved in it. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + **Delete an element** This action deletes the specified element from the specified storage. Specify the structure leading to the element using / (example : Root/Level/Current) Spaces are forbidden in element names. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + - Parameter 1 (string): Group + **Save a value** Save the result of the expression in the stored data, in the specified element. Specify the structure leading to the element using / (example : Root/Level/Current) Spaces are forbidden in element names. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + - Parameter 1 (string): Group + - Parameter 2: 🔢 Number + **Save a text** Save the text in the specified storage, in the specified element. Specify the structure leading to the element using / (example : Root/Level/Current) Spaces are forbidden in element names. -**Load a storage in memory** -This action loads the specified storage in memory, so you can write and read it. -You can open and write without using this action, but it will be slower. -If you use this action, do not forget to unload the storage from memory. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + - Parameter 1 (string): Group + - Parameter 2 (string): Text + +**Manually preload a storage in memory** +Forces the specified storage to be loaded and kept in memory, allowing faster reads/writes. However, it requires manual management: if you use this action, you *must* also unload the storage manually when it's no longer needed to ensure data is persisted. + +Unless you have a specific performance need, avoid using this action. The system already handles loading/unloading automatically. + +??? quote "See parameters" + + - Parameter 0 (string): Storage name **Load a value** Load the value saved in the specified element and store it in a variable. Specify the structure leading to the element using / (example : Root/Level/Current) Spaces are forbidden in element names. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + - Parameter 1 (string): Group + - Parameter 3: 🗄️ Any variable + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Load a text** Load the text saved in the specified element and store it in a variable. Specify the structure leading to the element using / (example : Root/Level/Current) Spaces are forbidden in element names. -**Close a storage** -This action closes the structured data previously loaded in memory, saving all changes made. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + - Parameter 1 (string): Group + - Parameter 3: 🗄️ Any variable + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Manually unload and persist a storage** +Close the specified storage previously loaded in memory, saving all changes made. + +??? quote "See parameters" + + - Parameter 0 (string): Storage name ## Conditions @@ -46,7 +91,17 @@ This action closes the structured data previously loaded in memory, saving all c Check if an element (example : PlayerState/CurrentLevel) exists in the stored data. Spaces are forbidden in element names. +??? quote "See parameters" + + - Parameter 0 (string): Storage name + - Parameter 1 (string): Group + + + --- + +The Storage extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Storage** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/string-instructions/reference.md b/docs/gdevelop5/all-features/string-instructions/reference.md index c483fdcadb..9996f623fe 100644 --- a/docs/gdevelop5/all-features/string-instructions/reference.md +++ b/docs/gdevelop5/all-features/string-instructions/reference.md @@ -1,23 +1,57 @@ # Text manipulation Reference -Provides expressions to manipulate strings (also called texts). +Provides expressions to manipulate strings (also called texts): new line, upper/lowercase, substring, find, replace, etc... ## Expressions | Expression | Description | | |-----|-----|-----| -| `FromCodePoint()` | Get character from code point || +| `FromCodePoint(number)` | Get character from code point || +| | _🔢 Number_ | Code point | | `NewLine()` | Insert a new line || -| `StrAt()` | Get a character from a text || -| `StrFind()` | Search in a text (return the position of the result or -1 if not found) || -| `StrFindFrom()` | Search in a text, starting from a position (return the position of the result or -1 if not found) || -| `StrFindLast()` | Search the last occurrence in a string (return the position of the result, from the beginning of the string, or -1 if not found) || -| `StrFindLastFrom()` | Search in a text the last occurrence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) || -| `StrLength()` | Length of a text || -| `StrRepeat()` | Repeat a text || -| `SubStr()` | Get a portion of a text || -| `ToLowerCase()` | Lowercase a text || -| `ToUpperCase()` | Uppercase a text || +| `StrAt(string, number)` | Get a character from a text || +| | _string_ | Text | +| | _🔢 Number_ | Position of the character (the first letter is at position 0) | +| `StrFind(string, string)` | Search in a text (return the position of the result or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| `StrFindFrom(string, string, number)` | Search in a text, starting from a position (return the position of the result or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| | _🔢 Number_ | Position of the first character in the string to be considered in the search | +| `StrFindLast(string, string)` | Search the last occurrence in a string (return the position of the result, from the beginning of the string, or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| `StrFindLastFrom(string, string, number)` | Search in a text the last occurrence, starting from a position (return the position of the result, from the beginning of the string, or -1 if not found) || +| | _string_ | Text | +| | _string_ | Text to search for | +| | _🔢 Number_ | Position of the last character in the string to be considered in the search | +| `StrLength(string)` | Length of a text || +| | _string_ | Text | +| `StrRepeat(string, number)` | Repeat a text || +| | _string_ | Text to repeat | +| | _🔢 Number_ | Repetition count | +| `StrReplaceAll(string, string, string)` | Replace all occurrences of a text by another. || +| | _string_ | Text in which the replacement(s) must be done | +| | _string_ | Text to find inside the first text | +| | _string_ | Replacement to put instead of the text to find | +| `StrReplaceOne(string, string, string)` | Replace the first occurrence of a text by another. || +| | _string_ | Text in which the replacement must be done | +| | _string_ | Text to find inside the first text | +| | _string_ | Replacement to put instead of the text to find | +| `SubStr(string, number, number)` | Get a portion of a text || +| | _string_ | Text | +| | _🔢 Number_ | Start position of the portion (the first letter is at position 0) | +| | _🔢 Number_ | Length of the portion | +| `ToLowerCase(string)` | Lowercase a text || +| | _string_ | Text | +| `ToUpperCase(string)` | Uppercase a text || +| | _string_ | Text | + + --- + +The Text manipulation extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Text manipulation** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/system-info/reference.md b/docs/gdevelop5/all-features/system-info/reference.md index c9962d3501..0653b3ae00 100644 --- a/docs/gdevelop5/all-features/system-info/reference.md +++ b/docs/gdevelop5/all-features/system-info/reference.md @@ -1,28 +1,57 @@ # System information Reference -Get information about the system and device running the game. +Conditions to check if the device has a touchscreen, is a mobile, or if the game runs as a preview. ## Conditions **Device has a touchscreen** Check if the device running the game has a touchscreen (typically Android phones, iPhones, iPads, but also some laptops). +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Is a mobile device** Check if the device running the game is a mobile device (phone or tablet on iOS, Android or other mobile devices). The game itself might be a web game or distributed as a native mobile app (to check this precisely, use other conditions). **Is a native desktop app** Check if the game is running as a native desktop app. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Is a native mobile app** Check if the game is running as a native mobile app (iOS or Android app). **Is the game running as a preview** Check if the game is currently being previewed in the editor. This can be used to enable a "Debug mode" or do some work only in previews. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Is WebGL supported** Check if GPU accelerated WebGL is supported on the target device. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + + + --- + +The System information extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **System information** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/text-container-capability/reference.md b/docs/gdevelop5/all-features/text-container-capability/reference.md index ff6c847742..c7b0f61aa3 100644 --- a/docs/gdevelop5/all-features/text-container-capability/reference.md +++ b/docs/gdevelop5/all-features/text-container-capability/reference.md @@ -1,28 +1,47 @@ -# Text capability Reference +# Objects containing a text Reference -Animate objects. [Read more explanations about it.](/gdevelop5/objects) +Allows an object to contain a text, usually shown on screen, that can be modified. [Read more explanations about it.](/gdevelop5/objects) -## Text capability +## Objects containing a text -Access objects text. +Allows an object to contain a text, usually shown on screen, that can be modified. ### Behavior actions **Text** Change the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Text + ### Behavior conditions **Text** Compare the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Text + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.Text::Value()` | Return the text. || + + --- -*This page is an auto-generated reference page about the **Text capability** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file + +The Objects containing a text extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + +*This page is an auto-generated reference page about the **Objects containing a text** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/text-entry-object/reference.md b/docs/gdevelop5/all-features/text-entry-object/reference.md index 3a78568c22..b4358cd36f 100644 --- a/docs/gdevelop5/all-features/text-entry-object/reference.md +++ b/docs/gdevelop5/all-features/text-entry-object/reference.md @@ -13,22 +13,48 @@ Invisible object used to get the text entered with the keyboard. **De/activate capturing text input** Activate or deactivate the capture of text entered with keyboard. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Activate + **Text in memory** Modify text in memory of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Text + ### Object conditions **Text input** Test if the object captured text entered with keyboard. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Text in memory** Test the text of a Text Entry object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Text to compare to + ### Object expressions | Expression | Description | | |-----|-----|-----| | `Object.String()` | Text entered with keyboard || + + --- + +The Text entry object extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Text entry object** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/text-input/reference.md b/docs/gdevelop5/all-features/text-input/reference.md index f2475056ba..f16f5e286c 100644 --- a/docs/gdevelop5/all-features/text-input/reference.md +++ b/docs/gdevelop5/all-features/text-input/reference.md @@ -13,74 +13,220 @@ A text field the player can type text into. **Focus** Focus the input so that text can be entered (like if it was touched/clicked). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + **Border color** Set the border color of the object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: color + **Border opacity** Change the border opacity, between 0 (fully transparent) and 255 (opaque). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Opacity (0-255) + **Border width** Change the border width. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Disabled** Set (or unset) if the text input is disabled. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1 (❓ Yes or No): New value + **Fill color** Set the fill color of the object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: color + **Fill opacity** Change the fill opacity, between 0 (fully transparent) and 255 (opaque). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Opacity (0-255) + **Font size** Change the font size. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Font name** Set the font of the object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1 (fontResource): Font resource name + **Input type** Change the input type. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 String): Input type (one of: "text", "text area", "email", "password", "number", "telephone number", "url", "search") + **Placeholder** Change the placeholder. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Text + **Read-only** Set (or unset) if the text input is read-only. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1 (❓ Yes or No): Read-only? + +**Spell check enabled** +Set (or unset) if spell check is enabled. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1 (❓ Yes or No): New value + **Text color** Set the text color of the object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: color + ### Object conditions **Border opacity** Compare the border opacity, between 0 (fully transparent) and 255 (opaque). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Opacity (0-255) + **Border width** Compare the border width. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Disabled** Check if the text input is disabled. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + **Fill opacity** Compare the fill opacity, between 0 (fully transparent) and 255 (opaque). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Opacity (0-255) + **Focused** Check if the text input is focused (the cursor is in the field and player can type text in). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + **Font size** Compare the font size. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Font name** Compare the font name. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + **Input type** Compare the input type. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Input type (one of: "text", "text area", "email", "password", "number", "telephone number", "url", "search") + +**Input is submitted** +Check if the input is submitted, which usually happens when the Enter key is pressed on a keyboard, or a specific button on mobile virtual keyboards. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + **Placeholder** Compare the placeholder. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Text + **Read-only** Check if the text input is read-only. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + +**Spell check enabled** +Check if spell check is enabled. + +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text input + ### Object expressions | Expression | Description | | @@ -93,5 +239,10 @@ Check if the text input is read-only. | `Object.InputType()` | Return the input type. || | `Object.Placeholder()` | Return the placeholder. || + + --- + +The Text Input extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Text Input** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/text-object/reference.md b/docs/gdevelop5/all-features/text-object/reference.md index 5176cdb576..4230865219 100644 --- a/docs/gdevelop5/all-features/text-object/reference.md +++ b/docs/gdevelop5/all-features/text-object/reference.md @@ -13,110 +13,310 @@ Displays a text on the screen. **Color** Change the color of the text. The color is white by default. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: color + **Font** Change the font of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (fontResource): Font resource name + **Bold** De/activate bold +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Set bold style + **Gradient** Change the gradient of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 String): Gradient type (one of: "LINEAR_VERTICAL", "LINEAR_HORIZONTAL") + - Parameter 2 (color): First Color + - Parameter 3 (color): Second Color + - Parameter 4 (color): Third Color + - Parameter 5 (color): Fourth Color + **Italic** De/activate italic. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Set italic + **Padding** Set the number of pixels around a text object. If the shadow or the outline around the text are getting cropped, raise this value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Alignment** -Set the text alignment of a multiline text object (does not work with single line texts). +Change the text alignment of a multiline text object. -**Wrapping** +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 String): Alignment (one of: "left", "center", "right") + +**Word wrapping** De/activate word wrapping. Note that word wrapping is a graphical option, you can't get the number of lines displayed +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Wrapping + **Enable shadow** Enable or disable the shadow of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Show the shadow + **Font size** Change the font size of a text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + +**Line height** +Change the line height of a text object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Outline color** Change the outline color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: color + **Enable outline** Enable or disable the outline of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Enable outline + **Outline thickness** Change the outline thickness of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Thickness + **Shadow angle** Change the shadow angle of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Angle (in degrees) + **Shadow blur radius** Change the shadow blur radius of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Blur radius + **Shadow color** Change the shadow color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: color + **Shadow distance** Change the shadow distance of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Distance + **Shadow opacity** Change the shadow opacity of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Opacity (0 - 255) + **Wrapping width** -Modify the word wrapping width of a Text object. +Change the word wrapping width of a Text object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value ### Object conditions **Bold** Check if the bold style is activated +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Italic** Check if the italic style is activated +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Wrapping** -Test if the word wrapping style of an object is set. +Check if word wrapping is enabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object **Padding** Compare the number of pixels around a text object. If the shadow or the outline around the text are getting cropped, raise this value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Font size** Compare the font size of a text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Outline enabled** Check if the text outline is enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + **Shadow enabled** Check if the text shadow is enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + +**Line height** +Compare the line height of a text object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Outline thickness** Compare the outline thickness of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Thickness + **Shadow angle** Compare the shadow angle of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Angle (in degrees) + **Shadow blur radius** Compare the shadow blur radius of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Blur radius + **Shadow distance** Compare the shadow distance of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Distance + **Shadow opacity** Compare the shadow opacity of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Opacity (0 - 255) + **Alignment** Compare the text alignment of a multiline text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Alignment (one of: "left", "center", "right") + **Wrapping width** -Test the word wrapping width of a Text object. +Compare the word wrapping width of a Text object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare ### Object expressions | Expression | Description | | |-----|-----|-----| | `Object.FontSize()` | Return the font size of a text object. || +| `Object.LineHeight()` | Return the line height of a text object. || | `Object.OutlineThickness()` | Return the outline thickness of the text. || | `Object.Padding()` | Padding || | `Object.ShadowAngle()` | Return the shadow angle of the text. || @@ -124,5 +324,10 @@ Test the word wrapping width of a Text object. | `Object.ShadowDistance()` | Return the shadow distance of the text. || | `Object.ShadowOpacity()` | Return the shadow opacity of the text. || + + --- + +The Text object extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Text object** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/tiled-sprite-object/reference.md b/docs/gdevelop5/all-features/tiled-sprite-object/reference.md index ccf83d088d..e2f8f268c4 100644 --- a/docs/gdevelop5/all-features/tiled-sprite-object/reference.md +++ b/docs/gdevelop5/all-features/tiled-sprite-object/reference.md @@ -1,6 +1,6 @@ # Tiled Sprite Object Reference -Displays an image in a repeating pattern over an area. Useful for making backgrounds, including background that are scrolling when the camera moves. This is more performant than using multiple Sprite objects. [Read more explanations about it.](/gdevelop5/objects/tiled_sprite) +Displays a 2D image in a repeating pattern over an area. Useful for making backgrounds, including background that are scrolling when the camera moves. This is more performant than using multiple Sprite objects. [Read more explanations about it.](/gdevelop5/objects/tiled_sprite) @@ -13,20 +13,49 @@ Displays an image repeated over an area. **Tint color** Change the tint of a Tiled Sprite. The default color is white. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (color): Tint + **Image X Offset** Modify the offset used on the X axis when displaying the image. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Image Y Offset** Modify the offset used on the Y axis when displaying the image. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + ### Object conditions **Image X Offset** Test the offset used on the X axis when displaying the image. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Image Y Offset** Test the offset used on the Y axis when displaying the image. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + ### Object expressions | Expression | Description | | @@ -34,5 +63,10 @@ Test the offset used on the Y axis when displaying the image. | `Object.XOffset()` | Return the offset used on the X axis when displaying the image. || | `Object.YOffset()` | Return the offset used on the Y axis when displaying the image. || + + --- + +The Tiled Sprite Object extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Tiled Sprite Object** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/tilemap/reference.md b/docs/gdevelop5/all-features/tilemap/reference.md index 27e57de7c3..6851e03053 100644 --- a/docs/gdevelop5/all-features/tilemap/reference.md +++ b/docs/gdevelop5/all-features/tilemap/reference.md @@ -1,6 +1,6 @@ # Tile map Reference -The Tilemap object can be used to display tile-based objects. It's a good way to create maps for RPG, strategy games or create objects by assembling tiles, useful for platformer, retro-looking games, etc... [Read more explanations about it.](/gdevelop5/objects/tilemap) +The Tilemap object can be used to display tile-based objects. It's a good way to create maps for RPG, strategy games or create objects by assembling tiles, useful for platformer, retro-looking games, etc... External tilemaps are also supported - but it's recommended to use the built-in, simple Tilemap object for most use cases. [Read more explanations about it.](/gdevelop5/objects/tilemap) @@ -13,96 +13,248 @@ Invisible object handling collisions with parts of a tilemap. **Tilemap JSON file** Set the JSON file containing the Tilemap data to display. This is usually the JSON file exported from Tiled. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map collision mask + - Parameter 1 (jsonResource): Tilemap JSON file + **Tileset JSON file** Set the JSON file with the tileset data (sometimes that is embedded in the Tilemap, so not needed) +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map collision mask + - Parameter 1 (jsonResource): Tileset JSON file + ### Object conditions **Tilemap JSON file** Check the Tilemap JSON file being used. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map collision mask + - Parameter 1 (jsonResource): Tilemap JSON file + **Tileset JSON file** Check the tileset JSON file being used. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map collision mask + - Parameter 1 (jsonResource): Tileset JSON file + _No expressions for this object._ ## Tile map -Displays a tiled-based map. +Displays a tile-based map. Recommended for most games that need to use static tiles. ### Object actions **Flip tile horizontally (on the grid)** Flip tile horizontally at grid coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Grid X + - Parameter 2 (🔢 Number): Grid Y + - Parameter 3 (❓ Yes or No): Flip horizontally + **Flip tile horizontally (at position)** Flip tile horizontally at scene coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Position X + - Parameter 2 (🔢 Number): Position Y + - Parameter 3 (❓ Yes or No): Flip horizontally + **Flip tile vertically (on the grid)** Flip tile vertically at grid coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Grid X + - Parameter 2 (🔢 Number): Grid Y + - Parameter 3 (❓ Yes or No): Flip vertically + **Flip tile vertically (at position)** Flip tile vertically at scene coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Position X + - Parameter 2 (🔢 Number): Position Y + - Parameter 3 (❓ Yes or No): Flip vertically + **Remove tile (on the grid)** Remove the tile at the grid coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Grid X + - Parameter 2 (🔢 Number): Grid Y + **Remove tile (at position)** Remove the tile at the scene coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Position X + - Parameter 2 (🔢 Number): Position Y + **Grid column count** Change the grid column count in the tile map. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Grid row count** Change the grid row count in the tile map. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Tile (on the grid)** Change the id of the tile at the grid coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔢 Number): Grid X + - Parameter 4 (🔢 Number): Grid Y + **Tile (at position)** Change the id of the tile at the scene coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔢 Number): Position X + - Parameter 4 (🔢 Number): Position Y + ### Object conditions **Tile flipped horizontally (on the grid)** Check if tile at grid coordinates is flipped horizontally. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Grid X + - Parameter 2 (🔢 Number): Grid Y + **Tile flipped horizontally (at position)** Check if tile at scene coordinates is flipped horizontally. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Position X + - Parameter 2 (🔢 Number): Position Y + **Tile flipped vertically (on the grid)** Check if tile at grid coordinates is flipped vertically. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Grid X + - Parameter 2 (🔢 Number): Grid Y + **Tile flipped vertically (at position)** Check if tile at scene coordinates is flipped vertically. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔢 Number): Position X + - Parameter 2 (🔢 Number): Position Y + **Grid column count** Compare the grid column count in the tile map. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Grid row count** Compare the grid row count in the tile map. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Tile (on the grid)** Compare the id of the tile at the grid coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔢 Number): Grid X + - Parameter 4 (🔢 Number): Grid Y + **Tile (at position)** Compare the id of the tile at the scene coordinates. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔢 Number): Position X + - Parameter 4 (🔢 Number): Position Y + ### Object expressions | Expression | Description | | |-----|-----|-----| | `Object.GridColumnCount()` | Return the grid column count in the tile map. || | `Object.GridRowCount()` | Return the grid row count in the tile map. || -| `Object.GridX()` | Get the grid column coordinates in the tile map corresponding to the scene coordinates. || -| `Object.GridY()` | Get the grid row coordinates in the tile map corresponding to the scene coordinates. || -| `Object.TileCenterX()` | Get the scene X position of the center of the tile. || -| `Object.TileCenterY()` | Get the scene Y position of the center of the tile. || -| `Object.TileIdAtGrid()` | Return the id of the tile at the grid coordinates. || -| `Object.TileIdAtPosition()` | Return the id of the tile at the scene coordinates. || -| `Object.TilesetColumnCount()` | Get the number of column in the tileset. || -| `Object.TilesetRowCount()` | Get the number of row in the tileset. || +| `Object.GridX(number, number)` | Get the grid column coordinates in the tile map corresponding to the scene coordinates. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `Object.GridY(number, number)` | Get the grid row coordinates in the tile map corresponding to the scene coordinates. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `Object.TileCenterX(number, number)` | Get the scene X position of the center of the tile. || +| | _🔢 Number_ | Grid X | +| | _🔢 Number_ | Grid Y | +| `Object.TileCenterY(number, number)` | Get the scene Y position of the center of the tile. || +| | _🔢 Number_ | Grid X | +| | _🔢 Number_ | Grid Y | +| `Object.TileIdAtGrid(number, number)` | Return the id of the tile at the grid coordinates. || +| | _🔢 Number_ | Grid X | +| | _🔢 Number_ | Grid Y | +| `Object.TileIdAtPosition(number, number)` | Return the id of the tile at the scene coordinates. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `Object.TilesetColumnCount()` | Get the number of columns in the tileset. || +| `Object.TilesetRowCount()` | Get the number of rows in the tileset. || ## External Tilemap (Tiled/LDtk) @@ -113,44 +265,116 @@ Displays a tiled-based map, made with the Tiled editor (https://www.mapeditor.or **Animation speed (FPS)** Set the animation speed of the Tilemap. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Animation speed (in frames per second) + **Animation speed scale** Set the animation speed scale of the Tilemap. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Speed scale (1 by default) + **Display mode** Set the display mode +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔤 String): Display mode (one of: "visible", "all", "index") + **Layer index** Set the layer index of the Tilemap. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + **Tilemap file (Tiled or LDtk)** Set the Tiled or LDtk file containing the Tilemap data to display. This is usually the main file exported from Tiled/LDtk. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (tilemapResource): Tilemap file (Tiled or LDtk) + **Tileset JSON file** Set the JSON file with the tileset data (sometimes that is embedded in the Tilemap, so not needed) +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (tilesetResource): Tileset JSON file + ### Object conditions **Animation speed (FPS)** Compare the animation speed. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Animation speed to compare to (in frames per second) + **Animation speed scale** Compare the animation speed scale. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Speed scale to compare to (1 by default) + **Display mode** Compare the value of the display mode. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (🔤 String): Display mode (one of: "visible", "all", "index") + **Layer index** Compare the value of the layer index. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Level index** Compare the level index being displayed.. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + **Tilemap file (Tiled or LDtk)** Check the tilemap file (Tiled or LDtk) being used. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (tilemapResource): Tilemap file (Tiled or LDtk) + **Tileset JSON file** Check the tileset JSON file being used. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Tile map + - Parameter 1 (tilesetResource): Tileset JSON file + ### Object expressions | Expression | Description | | @@ -160,5 +384,10 @@ Check the tileset JSON file being used. | `Object.LayerIndex()` | Get the layer index being displayed || | `Object.LevelIndex()` | Return the level index being displayed.. || + + --- + +The Tile map extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Tile map** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/time/reference.md b/docs/gdevelop5/all-features/time/reference.md index 4269298b1f..457dfbe313 100644 --- a/docs/gdevelop5/all-features/time/reference.md +++ b/docs/gdevelop5/all-features/time/reference.md @@ -1,47 +1,109 @@ # Timers and time Reference -Actions and conditions to run timers, get the current time or modify the time scale (speed at which the game is running - useful for slow motion effects). [Read more explanations about it.](/gdevelop5/all-features/timers-and-time) +Actions and conditions to start, pause or reset scene timers, modify the time scale (speed at which the game is running - useful for slow motion effects). Also contains an action that wait for a delay before running the next actions and sub-events and expressions to read the time scale, time delta of the last frame or timer elapsed time. [Read more explanations about it.](/gdevelop5/all-features/timers-and-time) ## Actions **Time scale** Change the time scale of the scene. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Scale (1: Default, 2: 2x faster, 0.5: 2x slower...) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pause a scene timer** Pause a scene timer. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Timer's name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Delete a scene timer** Delete a scene timer from memory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Timer's name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Start (or reset) a scene timer** Reset the specified scene timer, if the timer doesn't exist it's created and started. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Timer's name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Unpause a scene timer** Unpause a scene timer. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Timer's name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Wait X seconds** Waits a number of seconds before running the next actions (and sub-events). +??? quote "See parameters" + + - Parameter 0 (🔢 Number): Time to wait in seconds + ## Conditions **Value of a scene timer** -Compare the elapsed time of a scene timer. This condition doesn't start the timer. +Compare the elapsed time of a scene timer. This condition doesn't start the timer and will always be false if the timer was not started previously (whatever the comparison being made). + +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Timer's name + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Time in seconds + + > Technical note: parameter 0 are internal parameters handled by GDevelop. **Time scale** Compare the time scale of the scene. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Time scale (1 by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Scene timer paused** Test if the specified scene timer is paused. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Timer's name + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Time()` | Current time || +| `Time(string)` | Gives the current time || +| | _🔤 String_ | - Hour of the day: "hour"- Minutes: "min"- Seconds: "sec"- Day of month: "mday"- Months since January: "mon"- Year since 1900: "year"- Days since Sunday: "wday"- Days since Jan 1st: "yday"- Timestamp (ms): "timestamp" | | `TimeDelta()` | Time elapsed since the last frame rendered on screen || -| `TimeFromStart()` | Time elapsed since the beginning of the scene || +| `TimeFromStart()` | Time elapsed since the beginning of the scene (in seconds). || | `TimeScale()` | Returns the time scale of the scene. || -| `TimerElapsedTime()` | Value of a scene timer || +| `TimerElapsedTime(string)` | Value of a scene timer (in seconds) || +| | _🔤 Name (String)_ | Timer's name | + + --- + +The Timers and time extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Timers and time** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/timers-and-time/index.md b/docs/gdevelop5/all-features/timers-and-time/index.md index 0ad7d1f667..c5b85f4bf5 100644 --- a/docs/gdevelop5/all-features/timers-and-time/index.md +++ b/docs/gdevelop5/all-features/timers-and-time/index.md @@ -9,6 +9,10 @@ Time management is important in a game. GDevelop provides a few different tools: * Special actions like "Wait X seconds" can be used to wait before launching the next actions in an event. This is useful for creating cut-scenes, timelines or just effects happening not immediately. * Finally, there are expressions to get the current time, day and time since the start of the game. +
+ +
+ ## The "Wait X seconds" action The “Wait X seconds” action waits for the specified time before running the next actions, and the sub events (if any). For example: diff --git a/docs/gdevelop5/all-features/top-down-movement-behavior/reference.md b/docs/gdevelop5/all-features/top-down-movement-behavior/reference.md index 2703012b86..e9e0c003f3 100644 --- a/docs/gdevelop5/all-features/top-down-movement-behavior/reference.md +++ b/docs/gdevelop5/all-features/top-down-movement-behavior/reference.md @@ -1,6 +1,6 @@ # Top-down movement Reference -Allows to move objects in either 4 or 8 directions, with the keyboard or using events. [Read more explanations about it.](/gdevelop5/behaviors/topdown) +Allows to move an object in either 4 or 8 directions, with the keyboard (default), a virtual stick (for this, also add the "Top-down multitouch controller mapper" behavior and a"Multitouch Joystick" object), gamepad or manually using events. [Read more explanations about it.](/gdevelop5/behaviors/topdown) @@ -13,100 +13,298 @@ Move objects left, up, right, and down (and, optionally, diagonally). **Acceleration** Change the acceleration of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + **Diagonal movement** Allow or restrict diagonal movement +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Allow? + **Rotation offset** Change the rotation offset applied when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Angular maximum speed** Change the maximum angular speed of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max angular speed (in degrees per second) + **Deceleration** Change the deceleration of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Deceleration (in pixels per second per second) + **Ignore default controls** De/activate the use of default controls. If deactivated, use the simulated actions to move the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Ignore controls + **Maximum speed** Change the maximum speed of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Max speed (in pixels per second) + **Rotate the object** Enable or disable rotation of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Rotate object? + **Simulate control** Simulate a press of a key. Valid keys are Left, Right, Up, Down. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Key (one of: "Left", "Right", "Up", "Down") + **Simulate down key press** Simulate a press of down key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate left key press** Simulate a press of left key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate right key press** Simulate a press of right key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Simulate stick control** Simulate a stick control. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick angle (in degrees) + - Parameter 3 (🔢 Number): Stick force (between 0 and 1) + **Simulate up key press** Simulate a press of up key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Movement angle offset** Change the movement angle offset. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Speed on the X axis** Change the speed on the X axis of the movement +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + **Speed on the Y axis** Change the speed on the Y axis of the movement +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Speed (in pixels per second) + ### Behavior conditions **Acceleration** Compare the acceleration of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Acceleration to compare to (in pixels per second per second) + **Rotation offset** Compare the rotation offset applied when moving the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angle to compare to (in degrees) + **Angular maximum speed** Compare the maximum angular speed of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max angular speed to compare to (in degrees per second) + **Deceleration** Compare the deceleration of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Deceleration to compare to (in pixels per second per second) + **Diagonal movement** Check if the object is allowed to move diagonally +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Is moving** Check if the object is moving. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Maximum speed** Compare the maximum speed of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Max speed to compare to (in pixels per second) + **Object rotated** Check if the object is rotated while traveling on its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + **Speed** Compare the speed of the object +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Angle of movement** Compare the angle of the top-down movement of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3 (🔢 Number): Tolerance (in degrees) + **Control pressed or simulated** A control was applied from a default control or simulated by an action. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Key (one of: "Left", "Right", "Up", "Down", "Stick") + **Movement angle offset** Compare the movement angle offset. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Angle (in degrees) + **Speed on X axis** Compare the velocity of the top-down movement of the object on the X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + **Speed on Y axis** Compare the velocity of the top-down movement of the object on the Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Speed to compare to (in pixels per second) + ### Behavior expressions | Expression | Description | | @@ -123,5 +321,10 @@ Compare the velocity of the top-down movement of the object on the Y axis. | `Object.TopDownMovement::XVelocity()` | Speed on the X axis of the movement || | `Object.TopDownMovement::YVelocity()` | Speed on the Y axis of the movement || + + --- + +The Top-down movement extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Top-down movement** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/tween/reference.md b/docs/gdevelop5/all-features/tween/reference.md index 24c2e14ef3..39be6862b5 100644 --- a/docs/gdevelop5/all-features/tween/reference.md +++ b/docs/gdevelop5/all-features/tween/reference.md @@ -1,66 +1,211 @@ # Tweening Reference -Animate object properties over time. This allows smooth transitions, animations or movement of objects to specified positions. [Read more explanations about it.](/gdevelop5/behaviors/tween) +Smoothly animate object properties over time — such as position, rotation scale, opacity, and more — as well as variables. Ideal for creating fluid transitions and UI animations. While you can use tweens to move objects, other behaviors (like platform, physics, ellipse movement...) or forces are often better suited for dynamic movement. Tween is best used for animating UI elements, static objects that need to move from one point to another, or other values like variables. [Read more explanations about it.](/gdevelop5/behaviors/tween) ## Actions **Tween a layer value** Tweens a layer value that can be use with the expression Tween::Value. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🔢 Number): From value + - Parameter 3 (🔢 Number): To value + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Exponential interpolation + - Parameter 7: 🔤 Layer name (String) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween a scene value** Tweens a scene value that can be use with the expression Tween::Value. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🔢 Number): From value + - Parameter 3 (🔢 Number): To value + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Exponential interpolation + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Pause a scene tween** Pause the running scene tween. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Remove a scene tween** Remove the scene tween. Call this when the tween is no longer needed to free memory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Resume a scene tween** Resume the scene tween. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Stop a scene tween** Stop the running scene tween. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (❓ Yes or No): Jump to the end + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween the camera position** Tweens the camera position from the current one to a new one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🔢 Number): Target X position + - Parameter 3 (🔢 Number): Target Y position + - Parameter 4: 🔤 Layer name (String) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween the camera rotation** Tweens the camera rotation from the current angle to a new one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🔢 Number): Target rotation (in degrees) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween the camera zoom** Tweens the camera zoom from the current zoom factor to a new one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🔢 Number): Target zoom + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween color effect property** Tweens a color effect property from its current value to a new one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (color): To color + - Parameter 3: 🔤 Layer name (String) + - Parameter 4: 🔤 Layer Effect Name (String) + - Parameter 5: 🔤 Layer Effect Property Name (String) + - Parameter 6 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 7 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween number effect property** Tweens a number effect property from its current value to a new one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🔢 Number): To value + - Parameter 3: 🔤 Layer name (String) + - Parameter 4: 🔤 Layer Effect Name (String) + - Parameter 5: 🔤 Layer Effect Property Name (String) + - Parameter 6 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 7 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Tween a number in a scene variable** Tweens a scene variable's numeric value from its current value to a new one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2 (🗄️ Scene variable): The variable to tween + - Parameter 3 (🔢 Number): Final value + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Tween progress** Compare the progress of a tween (between 0.0 and 1.0). +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Scene tween exists** Check if the scene tween exists. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Scene tween finished playing** Check if the scene tween has finished playing. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Scene tween is playing** Check if the scene tween is currently playing. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Tween Identifier + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Tween::Ease()` | Tween between 2 values according to an easing function. || -| `Tween::Progress()` | Return the progress of a tween (between 0.0 and 1.0). || -| `Tween::Value()` | Return the value of a tween. It is always 0 for tweens with several values. || +| `Tween::Ease(string, number, number, number)` | Tween between 2 values according to an easing function. || +| | _🔤 String_ | Easing | +| | _🔢 Number_ | From value | +| | _🔢 Number_ | To value | +| | _🔢 Number_ | Weighting From 0 to 1. | +| `Tween::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). || +| | _🔤 Name (String)_ | Tween Identifier | +| `Tween::Value(string)` | Return the value of a tween. It is always 0 for tweens with several values. || +| | _🔤 Name (String)_ | Tween Identifier | ## Tween @@ -71,98 +216,388 @@ Smoothly animate position, angle, scale and other properties of objects. **Tween object depth** Tweens an object depth (suitable 3D objects only) from its current depth to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 Name (String)): Tween Identifier + - Parameter 4 (🔢 Number): To depth + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Destroy this object when tween finishes + **Tween object Z position** Tweens an object Z position (3D objects only) from its current Z position to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 Name (String)): Tween Identifier + - Parameter 4 (🔢 Number): To Z + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Destroy this object when tween finishes + **Pause a tween** Pause the running tween animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + **Remove a tween** Remove the tween animation from the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + **Resume a tween** Resume the tween animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + **Stop a tween** Stop the running tween animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (❓ Yes or No): Jump to end + **Tween color effect property** Tweens a color effect property from its current value to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): Effect capability + - Parameter 3 (🔤 Name (String)): Tween Identifier + - Parameter 4 (color): To color + - Parameter 5: 🔤 Object Effect Name (String) + - Parameter 6: 🔤 Object Effect Property Name (String) + - Parameter 7 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 8 (🔢 Number): Duration (in seconds) + - Parameter 9 (❓ Yes or No): Destroy this object when tween finishes + **Tween number effect property** Tweens a number effect property from its current value to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): Effect capability + - Parameter 3 (🔤 Name (String)): Tween Identifier + - Parameter 4 (🔢 Number): To value + - Parameter 5: 🔤 Object Effect Name (String) + - Parameter 6: 🔤 Object Effect Property Name (String) + - Parameter 7 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 8 (🔢 Number): Duration (in seconds) + - Parameter 9 (❓ Yes or No): Destroy this object when tween finishes + **Tween object angle** Tweens an object angle from its current angle to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To angle (in degrees) + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + **Tween object HSL color** Tweens the object color using Hue/Saturation/Lightness. Hue is in degrees, Saturation and Lightness are between 0 and 100. Use -1 for Saturation and Lightness to let them unchanged. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To Hue (in degrees) + - Parameter 4 (❓ Yes or No): Animate Hue + - Parameter 5 (🔢 Number): To Saturation (0 to 100, -1 to ignore) + - Parameter 6 (🔢 Number): To Lightness (0 to 100, -1 to ignore) + - Parameter 7 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 8 (🔢 Number): Duration (in seconds) + - Parameter 9 (❓ Yes or No): Destroy this object when tween finishes + **Tween object color** Tweens the object color from its current value to a new one. Format: "128;200;255" with values between 0 and 255 for red, green and blue +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (color): To color + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + - Parameter 7 (❓ Yes or No): Tween on the Hue/Saturation/Lightness (HSL) + Useful to have a more natural change between colors. + **Tween object height** Tweens an object height from its current height to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To height + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + **Tween object opacity** Tweens the object opacity from its current value to a new one (note: the value shall stay between 0 and 255). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To opacity + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + **Tween object position** Tweens an object position from its current position to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To X + - Parameter 4 (🔢 Number): To Y + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Destroy this object when tween finishes + **Tween object X position** Tweens an object X position from its current X position to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To X + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + **Tween object Y position** Tweens an object Y position from its current Y position to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To Y + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + **Tween object rotation on X axis** Tweens an object rotation on X axis from its current angle to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 Name (String)): Tween Identifier + - Parameter 4 (🔢 Number): To angle (in degrees) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Destroy this object when tween finishes + **Tween object rotation on Y axis** Tweens an object rotation on Y axis from its current angle to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 Name (String)): Tween Identifier + - Parameter 4 (🔢 Number): To angle (in degrees) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Destroy this object when tween finishes + **Tween object scale** Tweens an object scale from its current value to a new one (note: the scale can never be 0 or less). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To scale + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + - Parameter 7 (❓ Yes or No): Scale from center of object + **Tween object X-scale** Tweens an object X-scale from its current value to a new one (note: the scale can never be 0 or less). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To scale X + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + - Parameter 7 (❓ Yes or No): Scale from center of object + **Tween object Y-scale** Tweens an object Y-scale from its current value to a new one (note: the scale can never be 0 or less). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To scale Y + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + - Parameter 7 (❓ Yes or No): Scale from center of object + **Tween an object value** Tweens an object value that can be use with the object expression Tween::Value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): From value + - Parameter 4 (🔢 Number): To value + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Exponential interpolation + - Parameter 8 (❓ Yes or No): Destroy this object when tween finishes + **Tween a number in an object variable** Tweens an object variable's numeric value from its current value to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🗄️ Object variable): Object variable + - Parameter 4 (🔢 Number): To value + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration (in seconds) + - Parameter 7 (❓ Yes or No): Destroy this object when tween finishes + **Tween object width** Tweens an object width from its current width to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To width + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + **Tween text size** Tweens the text object character size from its current value to a new one (note: the size can never be less than 1). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Text object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3 (🔢 Number): To character size + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 5 (🔢 Number): Duration (in seconds) + - Parameter 6 (❓ Yes or No): Destroy this object when tween finishes + ### Behavior conditions **Tween exists** Check if the tween animation exists. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + **Tween finished playing** Check if the tween animation has finished playing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + **Tween is playing** Check if the tween animation is currently playing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + **Tween progress** Compare the progress of a tween (between 0.0 and 1.0). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween Identifier + - Parameter 3: 🟰 Relational operator + - Parameter 4 (🔢 Number): Value to compare + ### Behavior expressions | Expression | Description | | |-----|-----|-----| -| `Object.Tween::Progress()` | Return the progress of a tween (between 0.0 and 1.0). || -| `Object.Tween::Value()` | Return the value of a tween. It is always 0 for tweens with several values. || +| `Object.Tween::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). || +| | _🔤 Name (String)_ | Tween Identifier | +| `Object.Tween::Value(string)` | Return the value of a tween. It is always 0 for tweens with several values. || +| | _🔤 Name (String)_ | Tween Identifier | + + --- + +The Tweening extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Tweening** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/variables/index.md b/docs/gdevelop5/all-features/variables/index.md index f04d534354..574e9500b9 100644 --- a/docs/gdevelop5/all-features/variables/index.md +++ b/docs/gdevelop5/all-features/variables/index.md @@ -10,7 +10,7 @@ In GDevelop, you can use _variables_ to store temporary data, such as numbers an To learn how to store data that isn't temporary, such as a player's saved progress, refer to [storage](/gdevelop5/all-features/storage).
- +
## Data types @@ -41,27 +41,9 @@ the terms *text* and *string* are used interchangeably. A variable with the *Boolean* data type contains the simplest form of information: either yes or no, 1 or 0, true or false. They are useful as they can be easily toggled. -### Structure +### Structures and arrays -A Structure variable maps names to other variables (called "child variables"). - -For example, a simple structure can map the name "Hello" to one sub-variable and the name "World" to another sub-variable. -You can use this data type to organize related variables within a single variable. - -!!! tip - - In programming languages, this data type is often referred to as an _object_, _map_, _hash_, or *dictionary*. - -Structures can be created in the Variables Editor, using events or by using an extension like [JSON resource loader](../../extensions/jsonresource-loader/). - -### Array - -An Array variable, also sometimes called _list_ in programming languages, is like a list of variables. - -Each variable in an Array has an index, which defines their position in the array. -The indices begin at 0 and go up to however long the array is. - -Arrays can be created in the Variables Editor, using events or by using an extension like [JSON resource loader](../../extensions/jsonresource-loader/). +[Structure and array variables](structures-and-arrays) allow to organize values and access them dynamically. ## Using a variable in expressions @@ -84,66 +66,6 @@ For a variable of an object, you write the object name first followed by a dot a This means if there are conflicting names, the object will always be used in priority. Otherwise, in the events of a scene, it will be a scene variable if it exists, otherwise a global variable if it exists. In an extension, the parameter with the given name will be used first, other a property if it exists. -## Accessing child variables in structures or arrays - -Variables that exist within a collection variable (i.e: an array or a structure) are known as _child variables_. -To access the value of a child variable, use the following syntax in an [expressions](/gdevelop5/all-features/expressions), replacing the values in angled brackets with variable names: - -``` -. -``` -Assume we have this structure: - -![](structure-variable.png) - -To get the value `123` we can write the following expression - -``` -players.player1.level1score -``` - -Or, using brackets: - -``` -players["player1"]["level1score"] -``` - -!!! tip - - On structures, `` is the name of the child variable. On arrays it is the index of the child variable. Only **numbers work as indices** for arrays. - -Parent variables need to be declared, but it's not the case for children variables. The benefit of declaring children is to get autocompletion in the events. - -!!! note - - Collection variables (structures and arrays) can contain other collection variables. This makes it possible to store complex data in a single variable. This is helpful when dealing with structured data coming from various sources, including data served from web services or third parties. - - Just be careful the data doesn't become too difficult to manage if you create structures with a lot of variables. - -### Accessing child variables dynamically - -You can use expressions to dynamically access child variables. - -For example, imagine storing the player's score for each level, called `Level1`, `Level2`, `Level3`. If you want to show the player's score for a specific level, you may store the current level number in a variable called `CurrentLevel`. You could then use the following syntax to access the score: - -``` -PlayerScore["Level" + CurrentLevel] -``` - -Whatever is inside the square brackets will be interpreted as the name of the child. - -If you need to use a variable to define part of the child path, all the subsequent children in the path will need to be in square brackets as well. In the above example if you wanted to address a child called `PlayerScore.Level1.enemies.killbonus` but still define the level dynamically, it would look like this: - -``` -PlayerScore["Level" + CurrentLevel].enemies.killbonus -``` - -Note that this is equivalent to writing: - -``` -PlayerScore["Level" + CurrentLevel]["enemies"]["killbonus"] -``` - ## Scopes The _scope_ of a variable determines: diff --git a/docs/gdevelop5/all-features/variables/local-variables.md b/docs/gdevelop5/all-features/variables/local-variables/index.md similarity index 100% rename from docs/gdevelop5/all-features/variables/local-variables.md rename to docs/gdevelop5/all-features/variables/local-variables/index.md diff --git a/docs/gdevelop5/all-features/variables/local-variable-inside-the-loop.png b/docs/gdevelop5/all-features/variables/local-variables/local-variable-inside-the-loop.png similarity index 100% rename from docs/gdevelop5/all-features/variables/local-variable-inside-the-loop.png rename to docs/gdevelop5/all-features/variables/local-variables/local-variable-inside-the-loop.png diff --git a/docs/gdevelop5/all-features/variables/local-variable-outside-the-loop.png b/docs/gdevelop5/all-features/variables/local-variables/local-variable-outside-the-loop.png similarity index 100% rename from docs/gdevelop5/all-features/variables/local-variable-outside-the-loop.png rename to docs/gdevelop5/all-features/variables/local-variables/local-variable-outside-the-loop.png diff --git a/docs/gdevelop5/all-features/variables/local-variable-random.png b/docs/gdevelop5/all-features/variables/local-variables/local-variable-random.png similarity index 100% rename from docs/gdevelop5/all-features/variables/local-variable-random.png rename to docs/gdevelop5/all-features/variables/local-variables/local-variable-random.png diff --git a/docs/gdevelop5/all-features/variables/reference.md b/docs/gdevelop5/all-features/variables/reference.md index 68c6916dbb..e851b06113 100644 --- a/docs/gdevelop5/all-features/variables/reference.md +++ b/docs/gdevelop5/all-features/variables/reference.md @@ -7,170 +7,153 @@ Actions, conditions and expressions to handle variables, from simple variables l **Clear children** Remove all the children from the structure or array variable. -**Clear children** -Remove all the children from the global structure or array variable. - -**Add existing variable** -Adds an existing variable at the end of a global array variable. +??? quote "See parameters" -**Add boolean variable** -Adds a boolean at the end of a global array variable. + - Parameter 0 (🗄️ Any variable): Structure or array variable -**Add number variable** -Adds a number at the end of a global array variable. +**Add value to array variable** +Adds a boolean at the end of an array variable. -**Add text variable** -Adds a text (string) at the end of a global array variable. +??? quote "See parameters" -**Remove variable by index** -Removes a variable at the specified index of a global array variable. + - Parameter 0 (🗄️ Any variable): Array variable + - Parameter 1 (❓ True or False): Boolean to add -**Remove a child** -Remove a child from a global structure variable. +**Add value to array variable** +Adds a number at the end of an array variable. -**Change number variable** -Modify the number value of a global variable. +??? quote "See parameters" -**Change text variable** -Modify the text (string) of a global variable. + - Parameter 0 (🗄️ Any variable): Array variable + - Parameter 1 (🔢 Number): Number to add -**Change number variable** -Modify the number value of a scene variable. +**Add value to array variable** +Adds a text (string) at the end of a array variable. -**Change text variable** -Modify the text (string) of a scene variable. +??? quote "See parameters" -**Add boolean variable** -Adds a boolean at the end of an array variable. - -**Add variable array value** -Adds a number at the end of an array variable. - -**Add text variable** -Adds a text (string) at the end of a array variable. + - Parameter 0 (🗄️ Any variable): Array variable + - Parameter 1 (string): Text to add **Add existing variable** Adds an existing variable at the end of an array variable. +??? quote "See parameters" + + - Parameter 0 (🗄️ Any variable): Array variable + - Parameter 1 (🗄️ Any variable): Variable with the content to add + The content of the variable will *be copied* and added at the end of the array. + **Remove variable by index** Removes a variable at the specified index of an array variable. +??? quote "See parameters" + + - Parameter 0 (🗄️ Any variable): Array variable + - Parameter 1 (🔢 Number): Index to remove + **Remove a child** Remove a child from a structure variable. -**Add existing variable** -Adds an existing variable at the end of a scene array variable. - -**Add boolean variable** -Adds a boolean at the end of a scene array variable. +??? quote "See parameters" -**Add number variable** -Adds a number at the end of a scene array variable. + - Parameter 0 (🗄️ Any variable): Structure variable + - Parameter 1 (string): Child's name -**Add text variable** -Adds a text (string) at the end of a scene array variable. +**Change variable value** +Modify the boolean value of a variable. -**Remove variable by index** -Removes a variable at the specified index of a scene array variable. +??? quote "See parameters" -**Change boolean variable** -Modify the boolean value of a variable. + - Parameter 0 (variableOrProperty): Variable + - Parameter 1: 🟰 Operator -**Change boolean variable** -Modify the boolean value of a global variable. + > Technical note: parameter 2 are internal parameters handled by GDevelop. **Change variable value** Modify the number value of a variable. -**Change boolean variable** -Modify the boolean value of a scene variable. +??? quote "See parameters" -**Change text variable** -Modify the text (string) of a variable. + - Parameter 0 (variableOrProperty): Variable + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value -**Toggle boolean variable** -Toggle the boolean value of a global variable. -If it was true, it will become false, and if it was false it will become true. +**Change variable value** +Modify the text (string) of a variable. -**Toggle boolean variable** -Toggle the boolean value of a scene variable. -If it was true, it will become false, and if it was false it will become true. +??? quote "See parameters" -**Clear children** -Remove all the children from the scene structure or array variable. - -**Remove a child** -Remove a child from a scene structure variable. + - Parameter 0 (variableOrProperty): Variable + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value ## Conditions **Variable value** Compare the boolean value of a variable. -**Boolean variable** -Compare the boolean value of a global variable. +??? quote "See parameters" -**Number of children** -Compare the number of children in a global array variable. + - Parameter 0 (variableOrPropertyOrParameter): Variable + - Parameter 1 (❓ True or False): Check if the value is -**Child existence** -Check if the specified child of the global structure variable exists. + > Technical note: parameter 2 are internal parameters handled by GDevelop. **Variable value** Compare the number value of a variable. -**Boolean variable** -Compare the boolean value of a scene variable. +??? quote "See parameters" -**Number of children** -Compare the number of children in a scene array variable. + - Parameter 0 (variableOrPropertyOrParameter): Variable + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare **Variable value** Compare the text (string) of a variable. -**Number variable** -Compare the number value of a global variable. +??? quote "See parameters" -**Text variable** -Compare the text (string) of a global variable. - -**Number variable** -Compare the number value of a scene variable. - -**Text variable** -Compare the text (string) of a scene variable. + - Parameter 0 (variableOrPropertyOrParameter): Variable + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare **Number of children** Compare the number of children in an array variable. -**Child existence** -Check if the specified child of the scene structure variable exists. +??? quote "See parameters" + + - Parameter 0 (🗄️ Any variable): Array variable + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare **Child existence** Check if the specified child of the structure variable exists. +??? quote "See parameters" + + - Parameter 0: 🗄️ Any variable + - Parameter 1 (string): Name of the child + ## Expressions | Expression | Description | | |-----|-----|-----| -| `GlobalVariable()` | Number value of a global variable || -| `GlobalVariableChildCount()` | Number of children in a global array or structure variable || -| `GlobalVariableFirstNumber()` | Value of the first element of a global array variable, if it is a number variable || -| `GlobalVariableFirstString()` | Value of the first element of a global array variable, if it is a text (string) variable. || -| `GlobalVariableLastNumber()` | Value of the last element of a global array variable, if it is a number variable || -| `GlobalVariableLastString()` | Value of the last element of a global array variable, if it is a text (string) variable. || -| `GlobalVariableString()` | Text of a global variable || -| `SceneVariableFirstNumber()` | Get the value of the first element of a scene array variable, if it is a number. || -| `SceneVariableFirstString()` | Get the value of the first element of a scene array variable, if it is a text (string). || -| `SceneVariableLastNumber()` | Get the value of the last element of a scene array variable, if it is a number. || -| `SceneVariableLastString()` | Get the value of the last element of a scene array variable, if it is a text (string). || -| `Variable()` | Number value of a scene variable || -| `VariableChildCount()` | Number of children in a scene array or structure variable || -| `VariableFirstNumber()` | Get the value of the first element of an array variable, if it is a number. || -| `VariableFirstString()` | Get the value of the first element of an array variable, if it is a text (string). || -| `VariableLastNumber()` | Get the value of the last element of an array variable, if it is a number. || -| `VariableLastString()` | Get the value of the last element of an array variable, if it is a text (string). || -| `VariableString()` | Text of a scene variable || +| `VariableChildCount(variable)` | Number of children in a scene array or structure variable || +| | _🗄️ Any variable_ | Array or structure variable | +| `VariableFirstNumber(variable)` | Get the value of the first element of an array variable, if it is a number. || +| | _🗄️ Any variable_ | Array variable | +| `VariableFirstString(variable)` | Get the value of the first element of an array variable, if it is a text (string). || +| | _🗄️ Any variable_ | Array variable | +| `VariableLastNumber(variable)` | Get the value of the last element of an array variable, if it is a number. || +| | _🗄️ Any variable_ | Array variable | +| `VariableLastString(variable)` | Get the value of the last element of an array variable, if it is a text (string). || +| | _🗄️ Any variable_ | Array variable | + + --- + +The Variables extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Variables** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/variables/structure-variable.png b/docs/gdevelop5/all-features/variables/structure-variable.png deleted file mode 100644 index c1c47e5ca0..0000000000 Binary files a/docs/gdevelop5/all-features/variables/structure-variable.png and /dev/null differ diff --git a/docs/gdevelop5/all-features/variables/structures-and-arrays/array-of-structures.png b/docs/gdevelop5/all-features/variables/structures-and-arrays/array-of-structures.png new file mode 100644 index 0000000000..a16ee1f72e Binary files /dev/null and b/docs/gdevelop5/all-features/variables/structures-and-arrays/array-of-structures.png differ diff --git a/docs/gdevelop5/all-features/variables/structures-and-arrays/array-variable.png b/docs/gdevelop5/all-features/variables/structures-and-arrays/array-variable.png new file mode 100644 index 0000000000..cb449315bc Binary files /dev/null and b/docs/gdevelop5/all-features/variables/structures-and-arrays/array-variable.png differ diff --git a/docs/gdevelop5/all-features/variables/structures-and-arrays/index.md b/docs/gdevelop5/all-features/variables/structures-and-arrays/index.md new file mode 100644 index 0000000000..0202a6b741 --- /dev/null +++ b/docs/gdevelop5/all-features/variables/structures-and-arrays/index.md @@ -0,0 +1,94 @@ +--- +title: Structure and array variables +--- +# Structure and array variables + +
+ +
+ +!!! warning + + Reading the [variable](..) page first will help understanding this page. + +### Structure + +A Structure variable maps names to other variables (called "child variables"). + +For example, a simple structure can map the name "Hello" to one sub-variable and the name "World" to another sub-variable. +You can use this data type to organize related variables within a single variable. + +!!! tip + + In programming languages, this data type is often referred to as an _object_, _map_, _hash_, or *dictionary*. + +Structures can be created in the Variables Editor, using events or by using an extension like [JSON resource loader](../../../extensions/jsonresource-loader/). + +![](structure-variable.png) + +### Array + +An Array variable, also sometimes called _list_ in programming languages, is like a list of variables. + +Each variable in an Array has an index, which defines their position in the array. +The indices begin at 0 and go up to however long the array is. + +Arrays can be created in the Variables Editor, using events or by using an extension like [JSON resource loader](../../../extensions/jsonresource-loader/). + +![](array-variable.png) + +!!! note + + Array variables should only contain children of the same type, here numbers. When you need a mix of numbers and strings (or even only several numbers), you can make each child a structure as explained in the [Array of structures](#array-of-structures) section. + +## Accessing child variables in structures or arrays + +Variables that exist within a collection variable (i.e: an array or a structure) are known as _child variables_. +To access the value of a child variable, use the following syntax in an [expressions](/gdevelop5/all-features/expressions), replacing the values in angled brackets with variable names: + +``` +. +``` +Assume we have this structure: + +![](structure-of-arrays.png) + +To get the value `123` we can write the following expression + +``` +Scores.Alice.Levels[0] +``` + +Or, using brackets: + +``` +Scores["Alice"]["Levels"][0] +``` + +!!! tip + + On structures, `` is the name of the child variable. On arrays it is the index of the child variable. Only **numbers work as indices** for arrays. + +Parent variables need to be declared, but it's not the case for children variables. The benefit of declaring children is to get autocompletion in the events. + +!!! note + + Collection variables (structures and arrays) can contain other collection variables. This makes it possible to store complex data in a single variable. This is helpful when dealing with structured data coming from various sources, including data served from web services or third parties. + + Just be careful the data doesn't become too difficult to manage if you create structures with a lot of variables. + +### Accessing child variables dynamically + +You can use expressions to dynamically access child variables. + +For example, imagine storing the player's score for each level. If you want to show the player's score for a specific level, you may store the current level number in a variable called `CurrentLevel`. You can then use the following syntax to access the score: + +``` +Scores.Alice.Levels[CurrentLevel] +``` + +### Array of structures + +Array variables can contain structure variables. It allows to have several values for one index. + +![](array-of-structures.png) diff --git a/docs/gdevelop5/all-features/variables/structures-and-arrays/structure-of-arrays.png b/docs/gdevelop5/all-features/variables/structures-and-arrays/structure-of-arrays.png new file mode 100644 index 0000000000..5cadfab67b Binary files /dev/null and b/docs/gdevelop5/all-features/variables/structures-and-arrays/structure-of-arrays.png differ diff --git a/docs/gdevelop5/all-features/variables/structures-and-arrays/structure-variable.png b/docs/gdevelop5/all-features/variables/structures-and-arrays/structure-variable.png new file mode 100644 index 0000000000..729596d16d Binary files /dev/null and b/docs/gdevelop5/all-features/variables/structures-and-arrays/structure-variable.png differ diff --git a/docs/gdevelop5/all-features/video/reference.md b/docs/gdevelop5/all-features/video/reference.md index 4a0271fdf7..ded494cd76 100644 --- a/docs/gdevelop5/all-features/video/reference.md +++ b/docs/gdevelop5/all-features/video/reference.md @@ -13,53 +13,133 @@ Displays a video. **Loop a video** Loop the specified video. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1 (❓ Yes or No): Activate loop + **Mute a video** Mute, or unmute, the specified video. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1 (❓ Yes or No): Activate mute + **Pause a video** Pause the specified video. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Play a video** Play a video (recommended file format is MPEG4, with H264 video codec and AAC audio codec). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Set playback speed** Set playback speed of the specified video object, (1 = the default speed, >1 = faster and <1 = slower). +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Playback speed (1 by default) + **Current time** Set the time of the video +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Position (in seconds) + **Volume** Set the volume of the video object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Volume (0-100) + ### Object conditions **Current time** Compare the current time of a video object +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Time to compare to (in seconds) + **Duration** Compare the duration of a video object +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Duration to compare to (in seconds) + **Is ended** Check if a video is ended +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Playback speed ** Compare the playback speed of a video object +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Playback speed (1 by default) + **Is looped** Check if the video is looped. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Is muted** Check if a video is muted. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Is paused** Check if the video is paused. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Is played** Check if a video is played. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + **Volume** Compare the current volume of a video object. +??? quote "See parameters" + + - Parameter 0 (👾 Object): Video object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Volume to compare to (0-100) + ### Object expressions | Expression | Description | | @@ -69,5 +149,10 @@ Compare the current volume of a video object. | `Object.PlaybackSpeed()` | Return the playback speed of a video object || | `Object.Volume()` | Get the volume of a video object, between 0 (muted) and 100 (maximum). || + + --- + +The Video extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Video** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/all-features/window/reference.md b/docs/gdevelop5/all-features/window/reference.md index 614a2e3b18..18fa2ba04e 100644 --- a/docs/gdevelop5/all-features/window/reference.md +++ b/docs/gdevelop5/all-features/window/reference.md @@ -1,38 +1,101 @@ # Game window and resolution Reference -Provides actions and conditions to manipulate the game window. Depending on the platform on which the game is running, not all of these features can be applied. [Read more explanations about it.](/gdevelop5/all-features/window) +Actions and conditions to manipulate the game window or change how the game is resized according to the screen size. Depending on the platform on which the game is running, not all of these features can be applied. +Also contains expressions to read the screen size. [Read more explanations about it.](/gdevelop5/all-features/window) ## Actions **Center the game window on the screen** This action centers the game window on the screen. This only works on Windows, macOS and Linux (not when the game is executed in a web-browser or on iOS/Android). +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Automatically adapt the game resolution** Set if the game resolution should be automatically adapted when the game window or screen size change. This will only be the case if the game resolution resize mode is configured to adapt the width or the height of the game. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Update resolution during the game to fit the screen or window size? + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **De/activate fullscreen** This action activates or deactivates fullscreen. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Activate fullscreen + - Parameter 2 (❓ Yes or No): Keep aspect ratio (HTML5 games only, yes by default) + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Game resolution resize mode** Set if the width or the height of the game resolution should be changed to fit the game window - or if the game resolution should not be updated automatically. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Resize mode + Empty to disable resizing. "adaptWidth" will update the game width to fit in the window or screen. "adaptHeight" will do the same but with the game height. (one of: "adaptWidth", "adaptHeight", "") + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Game resolution** Changes the resolution of the game, effectively changing the game area size. This won't change the size of the window in which the game is running. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Width + - Parameter 2 (🔢 Number): Height + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window's margins** This action changes the margins, in pixels, between the game frame and the window borders. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Top + - Parameter 2 (🔢 Number): Right + - Parameter 3 (🔢 Number): Bottom + - Parameter 4 (🔢 Number): Left + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Game window size** Changes the size of the game window. Note that this will only work on platform supporting this operation: games running in browsers or on mobile phones can not update their window size. Game resolution can still be updated. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Width + - Parameter 2 (🔢 Number): Height + - Parameter 3 (❓ Yes or No): Also update the game resolution? If not, the game will be stretched or reduced to fit in the window. + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + **Window's title** This action changes the title of the game's window. +??? quote "See parameters" + + - Parameter 1 (string): New title + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Conditions **Fullscreen activated?** Check if the game is currently in fullscreen. +??? quote "See parameters" + + + + > Technical note: parameter 0 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -43,5 +106,10 @@ Check if the game is currently in fullscreen. | `ScreenWidth()` | Width of the screen (or the page for HTML5 games in browser) || | `WindowTitle()` | Window's title || + + --- + +The Game window and resolution extension is always installed in all GDevelop projects: there is no need to add it from the Project Manager. + *This page is an auto-generated reference page about the **Game window and resolution** feature of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop features here](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/gdevelop5/behaviors/.pages b/docs/gdevelop5/behaviors/.pages index c75b0ce0b4..3c21498d8a 100644 --- a/docs/gdevelop5/behaviors/.pages +++ b/docs/gdevelop5/behaviors/.pages @@ -1,13 +1,12 @@ nav: - - Anchor Behavior: anchor - - Bounce Behavior: bounce - - Destroy outside screen behavior: destroyoutside - - Draggable Object Behavior: draggable - - pathfinding - - Physics behavior: physics - - Physics Engine: physics2 - - Platform and platformer character behaviors: platformer - - Top-Down Movement behavior: topdown - - Tween behavior: tween - - ... - - Custom behaviors: events-based-behaviors \ No newline at end of file + - Anchor Behavior: anchor + - Destroy outside screen behavior: destroyoutside + - Draggable Object Behavior: draggable + - pathfinding + - 2D Physics Engine: physics2 + - 3D Physics Engine: physics3d + - Platform and platformer character behaviors: platformer + - Top-Down Movement behavior: topdown + - Tween behavior: tween + - ... + - Custom behaviors: events-based-behaviors diff --git a/docs/gdevelop5/behaviors/add-behavior-list.png b/docs/gdevelop5/behaviors/add-behavior-list.png new file mode 100644 index 0000000000..6b858f0757 Binary files /dev/null and b/docs/gdevelop5/behaviors/add-behavior-list.png differ diff --git a/docs/gdevelop5/behaviors/add-behavior-properties-panel.png b/docs/gdevelop5/behaviors/add-behavior-properties-panel.png new file mode 100644 index 0000000000..5094c2bf07 Binary files /dev/null and b/docs/gdevelop5/behaviors/add-behavior-properties-panel.png differ diff --git a/docs/gdevelop5/behaviors/bounce/index.md b/docs/gdevelop5/behaviors/bounce/index.md deleted file mode 100644 index 02f665a4c5..0000000000 --- a/docs/gdevelop5/behaviors/bounce/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: Bounce Behavior ---- -# Bounce Behavior - -GDevelop makes it easy to simulate real bouncing in a game. _Bounce behavior_ can be applied to any object that may be involved in a collision. Because the [behavior](/gdevelop5/behaviors) considers the angle and speed of forces applied to the [object](/gdevelop5/objects), the bounce response will feel realistic to the player. - -!!! warning - - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Examples - -!!! tip - - **See it in action!** 🎮 - Open these examples online. - -**Breakout-like** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://breakout){ .md-button .md-button--primary } - -[![](/gdevelop5/tutorials/breakout-screenshot.png){ width="320" }](https://editor.gdevelop.io/?project=example://breakout) - - -## What's the logic behind the behavior? - -!!! tip - - - The behavior looks at the object's position and velocity at the time of the collision. It adds a force in the direction of the normal vector between the collided object and the object, and then adds the difference between the normal vector and the previous angle of movement. diff --git a/docs/gdevelop5/behaviors/community-behaviors.png b/docs/gdevelop5/behaviors/community-behaviors.png new file mode 100644 index 0000000000..424e84aa48 Binary files /dev/null and b/docs/gdevelop5/behaviors/community-behaviors.png differ diff --git a/docs/gdevelop5/behaviors/draggable/index.md b/docs/gdevelop5/behaviors/draggable/index.md index 8733aae0dc..d097d9cc83 100644 --- a/docs/gdevelop5/behaviors/draggable/index.md +++ b/docs/gdevelop5/behaviors/draggable/index.md @@ -58,7 +58,7 @@ Using events, you can also check if an object is being dragged: [Open example in GDevelop](https://editor.gdevelop.io/?project=example://save-load){ .md-button .md-button--primary } -[![](/gdevelop5/behaviors/saveandloadexample.png){ width="320" }](https://editor.gdevelop.io/?project=example://save-load) +[![](saveandloadexample.png){ width="320" }](https://editor.gdevelop.io/?project=example://save-load) diff --git a/docs/gdevelop5/behaviors/saveandloadexample.png b/docs/gdevelop5/behaviors/draggable/saveandloadexample.png similarity index 100% rename from docs/gdevelop5/behaviors/saveandloadexample.png rename to docs/gdevelop5/behaviors/draggable/saveandloadexample.png diff --git a/docs/gdevelop5/behaviors/custom-behavior-action-events-sheet.png b/docs/gdevelop5/behaviors/events-based-behaviors/custom-behavior-action-events-sheet.png similarity index 100% rename from docs/gdevelop5/behaviors/custom-behavior-action-events-sheet.png rename to docs/gdevelop5/behaviors/events-based-behaviors/custom-behavior-action-events-sheet.png diff --git a/docs/gdevelop5/behaviors/example-test-destructible-behavior-debugger.png b/docs/gdevelop5/behaviors/events-based-behaviors/example-test-destructible-behavior-debugger.png similarity index 100% rename from docs/gdevelop5/behaviors/example-test-destructible-behavior-debugger.png rename to docs/gdevelop5/behaviors/events-based-behaviors/example-test-destructible-behavior-debugger.png diff --git a/docs/gdevelop5/behaviors/events-based-behaviors/generate-property-accessors.png b/docs/gdevelop5/behaviors/events-based-behaviors/generate-property-accessors.png new file mode 100644 index 0000000000..d26dbdab06 Binary files /dev/null and b/docs/gdevelop5/behaviors/events-based-behaviors/generate-property-accessors.png differ diff --git a/docs/gdevelop5/behaviors/events-based-behaviors/index.md b/docs/gdevelop5/behaviors/events-based-behaviors/index.md index b595894494..6976b0f1fc 100644 --- a/docs/gdevelop5/behaviors/events-based-behaviors/index.md +++ b/docs/gdevelop5/behaviors/events-based-behaviors/index.md @@ -31,9 +31,9 @@ Behaviors are grouped into [extensions](/gdevelop5/extensions). They are the sam Click on **Create or search for new extensions** at the bottom. Then, select **Create a new extension** to [create a new extension](/gdevelop5/extensions/create). -By default, extensions don't have any behavior. Add one by clicking on **Add a new behavior** on the left. +By default, extensions don't have any behavior. Add one by clicking on the "+" button on the left next to **Behaviors**. -![](pasted/20210906-234614.png) +![](/gdevelop5/events/functions/empty-extension.png) You can choose the description and the name to display to users when they will add your behavior to an object. If you need to use a specific object (sprites, texts...), you can choose it with the drop-down list at the bottom. @@ -105,7 +105,7 @@ You can run the game and see that the events in "doStepPreEvents" function (or " To test this, we've added the "Destructible" behavior to object "Platform". Then, when using the debugger, we can inspect "Platform" instances and see that they have a "Damage" variable (set to 0). If we use the debugger (or an event) to set it to 100, the object is removed from the scene: -![](/gdevelop5/behaviors/example-test-destructible-behavior-debugger.png) +![](example-test-destructible-behavior-debugger.png) ### 2. Use actions, conditions and expressions @@ -114,7 +114,7 @@ Like any other "built-in behavior", you can also use actions/conditions (or expr ![](pasted/20210907-000606.png) It is displayed in the events sheet: -![](/gdevelop5/behaviors/custom-behavior-action-events-sheet.png) +![](custom-behavior-action-events-sheet.png) As you can see, this allows creating very expressive and easy-to-read events. You can then make the behavior more complex or reuse it on other objects. @@ -142,14 +142,11 @@ Properties can also be used to required behaviors as described in a following se ### Use actions and conditions to manipulate the properties -Once you have created some properties on your behavior, conditions and actions will be automatically added in the events sheet. For each property, there will be a condition to compare its value, and an action for changing it. -Strings and numbers will also have an expression to get their values. +Number, string and boolean parameters can be used with the same actions and conditions as global and scene [variables](/gdevelop5/all-features/variables). Properties can also be used directly in expressions by writing their name. For instance, a property called "ScoreToMultiply" can be used the following: `2 * ScoreToMultiply`. -!!! note - - If you rename your properties, the actions/conditions/expressions will be updated automatically. +Properties won't be usable from outside of the behavior. Properties are said to be "private", they can only be manipulated by the behavior. If you want to let extension users modifying them from the scene events, you can generate an action and a condition from the drop-down menu of the property. -These actions/conditions/expressions won't be usable from outside of the behavior. Properties are said to be "private", they can only be manipulated by the behavior. If you want to let extension user modifying them from the scene events, you can generate an action and a condition from the drop-down menu of the property. +![](generate-property-accessors.png) ## Behaviors using other behaviors as properties @@ -164,6 +161,18 @@ If you create a behavior and want to use this, just go to the properties of this To use a behavior based on another, you don't need to do anything special! Just add it to your object as usual: any missing behavior will be added to your object, so you can start using it immediately. +## Write behaviors dedicated to your project + +You probably used extensions from the community. These extensions aim to be usable in many projects, but extensions can also be created with only one project in mind. + +The [platformer template](https://gdevelop.io/game-example/free/platformer) has a `Enemy` extension with a `MonsterEnemy` behavior. This behavior toggle between +- a **Fire** state where it hurts the player +- a **NoFire** state where the player can jump on it + +![](platformer-enemy-extension.png) + +The [Bomberman-like template](https://gdevelop.io/game-example/free/3d-bomber-bunny) shows how a game can be organized into extensions. The players, bombs and bonuses have their own custom behavior. It allows to gather the logic of each object in one place: their extension. The main events can then focus on how these objects interact with each other. + ## A word about the advantages of behaviors Creating your own behaviors has multiple advantages: @@ -178,6 +187,11 @@ Creating your own behaviors has multiple advantages: ## Examples/ideas for custom behaviors +Installing and opening existing extensions can be a good way to see how behaviors work. The following extensions are simple enough not to feel lost when looking at their events: + +- [Animated back and forth movement](https://wiki.gdevelop.io/gdevelop5/extensions/animated-back-and-forth-movement/) +- [Flash object](https://wiki.gdevelop.io/gdevelop5/extensions/flash/) + You can imagine tons of different behaviors. Here are a few examples: * A behavior to **manage the health of an enemy or a boss**. diff --git a/docs/gdevelop5/behaviors/events-based-behaviors/platformer-enemy-extension.png b/docs/gdevelop5/behaviors/events-based-behaviors/platformer-enemy-extension.png new file mode 100644 index 0000000000..6522229ffa Binary files /dev/null and b/docs/gdevelop5/behaviors/events-based-behaviors/platformer-enemy-extension.png differ diff --git a/docs/gdevelop5/behaviors/choose-custom-behavior-in-list.png b/docs/gdevelop5/behaviors/events-based-behaviors/unused/choose-custom-behavior-in-list.png similarity index 100% rename from docs/gdevelop5/behaviors/choose-custom-behavior-in-list.png rename to docs/gdevelop5/behaviors/events-based-behaviors/unused/choose-custom-behavior-in-list.png diff --git a/docs/gdevelop5/behaviors/custom-behavior-action.png b/docs/gdevelop5/behaviors/events-based-behaviors/unused/custom-behavior-action.png similarity index 100% rename from docs/gdevelop5/behaviors/custom-behavior-action.png rename to docs/gdevelop5/behaviors/events-based-behaviors/unused/custom-behavior-action.png diff --git a/docs/gdevelop5/behaviors/empty-behavior-functions-list.png b/docs/gdevelop5/behaviors/events-based-behaviors/unused/empty-behavior-functions-list.png similarity index 100% rename from docs/gdevelop5/behaviors/empty-behavior-functions-list.png rename to docs/gdevelop5/behaviors/events-based-behaviors/unused/empty-behavior-functions-list.png diff --git a/docs/gdevelop5/behaviors/setup-destructible-behavior.png b/docs/gdevelop5/behaviors/events-based-behaviors/unused/setup-destructible-behavior.png similarity index 100% rename from docs/gdevelop5/behaviors/setup-destructible-behavior.png rename to docs/gdevelop5/behaviors/events-based-behaviors/unused/setup-destructible-behavior.png diff --git a/docs/gdevelop5/behaviors/index.md b/docs/gdevelop5/behaviors/index.md index b4471c2b25..b948e46fa0 100644 --- a/docs/gdevelop5/behaviors/index.md +++ b/docs/gdevelop5/behaviors/index.md @@ -1,70 +1,71 @@ --- title: Behaviors +icon: material/robot --- # Behaviors -In GDevelop, _behaviors_ add significant features to [objects](/gdevelop5/objects) in a matter of clicks. +In GDevelop, _behaviors_ add significant features to [objects](/gdevelop5/objects) with just a few clicks. For example, behaviors can: +* Move the camera to follow an object. * Automatically remove objects from a scene when they move outside the edges of the screen. +* Handle health, damage, ammo, and other elements of the player or an enemy. * Make objects move in a realistic way by following the laws of physics. * Allow players to move an object with the arrow keys. -You can also customize behaviors to make your game feel unique and use [events](/gdevelop5/events) to manipulate behaviors. +Most behaviors can be customized to make your game feel unique. Behaviors attached to an object can be manipulated in [events](/gdevelop5/events).
-## List of behaviors +## Most commonly used behaviors -This section lists the different types of behaviors, each of which is useful for adding different types of features to objects. +Here are some commonly used behaviors: - [Anchor](/gdevelop5/behaviors/anchor) -- [Bounce](/gdevelop5/behaviors/bounce) - [Destroy outside screen](/gdevelop5/behaviors/destroyoutside) - [Draggable](/gdevelop5/behaviors/draggable) - [Pathfinding](/gdevelop5/behaviors/pathfinding) -- [Physics 2](/gdevelop5/behaviors/physics2) +- [Physics](/gdevelop5/behaviors/physics2) - [Platformer objects and platforms](/gdevelop5/behaviors/platformer) - [Top-down movement](/gdevelop5/behaviors/topdown) - [Tween](/gdevelop5/behaviors/tween) +- [Multiplayer Object](/gdevelop5/all-features/multiplayer) -Refer to the linked pages to learn more about each type of behavior. +While these behaviors are often used, the [full list of behaviors available in GDevelop](/gdevelop5/extensions/) keeps growing every day: see the [list of all GDevelop extensions](/gdevelop5/extensions/) to discover them. -### Deprecated behaviors +Behaviors can be contributed by the community or the GDevelop core development team. You can [create new behaviors](/gdevelop5/behaviors/events-based-behaviors), with or without code, directly inside GDevelop. -- [Old Physics](/gdevelop5/behaviors/physics) +!!! tip + + When your game is growing, it's a good idea to make [your own behaviors](/gdevelop5/behaviors/events-based-behaviors) for each object in your game. Making your own behaviors allows you to keep your game modular. ## Adding a behavior to an object -1. Right-click an object in the **Objects** panel. -2. Select **Edit behaviors**. -3. Click the **Add a behavior to the object** button. -4. Select a behavior from the list. -5. Customize the behavior. The available settings depend on the behavior. -6. Click **Apply**. +To add a behavior to an object, you can either: -![](/gdevelop5/behaviors-demo-create.gif) +* Select the object in the list of objects and then, in the **Properties** panel, click the + next to the "Behaviors" section: -## Installing new behaviors + ![Add a behavior from the properties panel](./add-behavior-properties-panel.png) -Anyone can [create custom behaviors](/gdevelop5/behaviors/events-based-behaviors) and share them with the GDevelop community. + You can then browse the list of behaviors. The most commonly used are displayed at the top of the list: + + ![The list of behaviors](./add-behavior-list.png) -![](pasted/20230305-104957.png) +* Or you can double-click on an object and choose "Add a behavior" in the "Behaviors" tab. + +## Enable searching for community-made behaviors + +Anyone can [create custom behaviors](/gdevelop5/behaviors/events-based-behaviors) and share them with the GDevelop community. -To search for and install community-created behaviors: +To search for and install community-created behaviors, enable them in the list of behaviors: -1. Right click an object in the **Objects** panel. -2. Select **Edit behaviors**. -4. Click the **Add a behavior to the object** icon. -5. Switch to the **Search new behaviors** tab. -6. Search for a behavior. -7. Select a behavior. -8. Click **Install in project**. +![Enable community behaviors](./community-behaviors.png) -Installed behaviors appear in the **Installed behaviors** tab: +Note that these behaviors are not fully reviewed and might not have the same quality, flexibility, and polish as the behaviors that are considered "reviewed" and shown by default in the interface. -![](pasted/20230305-105029.png) +!!! note + You can contribute by submitting your own behaviors—or improvements to existing ones—on the [GDevelop GitHub repository](https://github.com/GDevelopApp/GDevelop-extensions). diff --git a/docs/gdevelop5/behaviors/physics2/index.md b/docs/gdevelop5/behaviors/physics2/index.md index 3737533f2e..35e2a96f33 100644 --- a/docs/gdevelop5/behaviors/physics2/index.md +++ b/docs/gdevelop5/behaviors/physics2/index.md @@ -1,15 +1,15 @@ --- -title: Physics Engine +title: 2D Physics Engine --- -# Physics Engine +# 2D Physics Engine -You can add the **Physics [behavior](/gdevelop5/behaviors)** to [objects](/gdevelop5/objects) to make them move realistically, following the laws of physics. This is adapted to a large range of games: "Angry Bird" like games, "Cut the Ropes", bike simulation, Pool Games and many other games uses a physics engine for animating the objects. +You can add the **2D Physics [behavior](/gdevelop5/behaviors)** to [objects](/gdevelop5/objects) to make them move realistically, following the laws of physics. This is adapted to a large range of 2D games: "Angry Bird" like games, "Cut the Ropes", bike simulation, Pool Games and many other games uses a physics engine for animating the objects. !!! tip This behavior is based on *Box2D*, a fast and complete rigid bodies physics simulation library in the background. -The behavior is composed of three big concepts: the world that hold the bodies (this is the scene), the bodies themselves (these are the objects), and optionally the joints that link bodies. All of them are explained in this reading. +The behavior is based on three big concepts: the world that hold the bodies (this is the scene), the bodies themselves (these are the objects), and optionally the joints that link bodies. All of them are explained in this reading. !!! warning @@ -17,7 +17,11 @@ The behavior is composed of three big concepts: the world that hold the bodies ( ![](pasted/20230304-145455.png) -##World +
+ +
+ +## World The world is the place where simulations run, bodies and joints are attached to a world to interact with other entities. This corresponds to the scene in GDevelop. Like GDevelop scenes size, the world size is infinite, so you don't have to care where your objects are. They will always follow the laws of physics once they have the physics behavior added and enabled. @@ -409,4 +413,4 @@ The motor joint specific settings: ## Reference -All actions, conditions and expressions are listed in [the physics Engine 2.0 reference page](/gdevelop5/all-features/physics2/reference/). \ No newline at end of file +All actions, conditions and expressions are listed in [the physics Engine 2.0 reference page](/gdevelop5/all-features/physics2/reference/). diff --git a/docs/gdevelop5/behaviors/physics3d/car-coin-hunt.png b/docs/gdevelop5/behaviors/physics3d/car-coin-hunt.png new file mode 100644 index 0000000000..7fbbf436d2 Binary files /dev/null and b/docs/gdevelop5/behaviors/physics3d/car-coin-hunt.png differ diff --git a/docs/gdevelop5/behaviors/physics3d/first-person.png b/docs/gdevelop5/behaviors/physics3d/first-person.png new file mode 100644 index 0000000000..eee4461382 Binary files /dev/null and b/docs/gdevelop5/behaviors/physics3d/first-person.png differ diff --git a/docs/gdevelop5/behaviors/physics3d/index.md b/docs/gdevelop5/behaviors/physics3d/index.md new file mode 100644 index 0000000000..f85ddcc10d --- /dev/null +++ b/docs/gdevelop5/behaviors/physics3d/index.md @@ -0,0 +1,168 @@ +--- +title: 3D Physics Engine +--- +# 3D Physics Engine + +GDevelop provides a powerful 3D Physics Engine, allowing to create any kind of 3D games. + +!!! tip + + The 3D physics engine is powered by Jolt Physics a **modern, performant, battle-tested, fully featured** 3D physics engine used in AAA games, like Horizon: Forbidden West. It's perfect for making FPS, TPS, 3D platformers and in the future 3D racing games or any 3D game. + +The 3D Physics Engine is available through: + +* A behavior **3D physics** to apply to any 3D object of the physics world. +* A dedicated behavior for 3D characters: **3D physics character**. +* A few behaviors add out of the box support for touch screens, gamepads and keyboard/mouse (see [Move a 3D character with controls](#move-a-3d-character-with-controls) section). + + +## Make ground, walls and platforms + +Add the behavior **3D physics** to the object and choose **Static** for the **Type** in the behavior properties. Static objects can't be moved though collisions nor forces. + +!!! tip + For complicated structures like a bridge, you can use hidden objects to build the shape and add the **3D physics** behavior to these objects instead of the bridge model. + +## Make pushable objects + +When you want objects to be kicked out and fall, you should set the **Type** to **Dynamic**. + + +## Move platforms or enemies + +Platforms and enemies usually loop on the same path. They must not fall be pushed by other objects. +Objects with the **Kinematic** type won't be moved according to physics rules. They can only be moved by changing their **linear velocity** and **angular velocity**. They can interact with other objects but only these other objects will move. +The [3D ellipse movement](/gdevelop5/extensions/physics-ellipse-movement3d/) behavior allow to easily move objects on ellipses or smoothly back and forth in one direction. + +!!! tip + The **3D physics character** can also be used for enemies that need to follow slopes or jump. + + +## Move a 3D character with controls + +The **3D physics character** behavior allows characters to walk, jump, follow slopes and stick to moving platforms. + +!!! tip + The **Capsule** shape is recommended for characters to avoid them floating over slopes. + + +### Move a 3D platformer character + +These behaviors make the character move according to player inputs automatically: + +* [3D platformer keyboard mapper](/gdevelop5/extensions/physics-character3dkey-mapper) +* [3D platformer multitouch controller mapper](/gdevelop5/objects/multitouch-joystick) +* [3D shooter gamepad mapper](/gdevelop5/all-features/gamepad/) + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-platformer){ .md-button .md-button--primary } + +[![](platformer3d.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-platformer) + + +### Move a 3D shooter ("FPS") character + +These behaviors make the character move according to player inputs automatically: + +* [3D shooter keyboard mapper](/gdevelop5/extensions/physics-character3dkey-mapper) and [First person camera mouse mapper](/gdevelop5/extensions/mouse-pointer-lock/#first-person-camera-mouse-mapper) +* [3D shooter multitouch controller mapper](/gdevelop5/objects/multitouch-joystick) +* [3D platformer gamepad mapper](/gdevelop5/all-features/gamepad/) + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-first-person){ .md-button .md-button--primary } + +[![](first-person.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-first-person) + + +## Move a 3D car with controls + +The **3D physics car** behavior simulates a realistic car using the 3D physics engine. + +Physics properties often have an impact on several parts of the car movement. Following these steps can help to save time: + +- Avoid the car to roll when it turns +- Setup how quick the car falls back on the road +- Avoid the car to slip when it turns +- Setup how fast the car moves + +You may need to do the last 2 steps many times to finely tweak your game feel. + +!!! tip + It can be a good idea to start from an example and change some properties to see how they affect the game feel. + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-car-coin-hunt){ .md-button .md-button--primary } + +[![](car-coin-hunt.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-car-coin-hunt) + +### Choose a realistic world scale + +The first thing to setup for any realistic game that uses the physics behavior is the world scale. Objects are placed in a scene using pixels but the physics behavior works with meters. The world scale allows to do the conversion. For instance, let's say the car is 40 pixels wide in the scene. Considering a car is about 2 meters wide, you would set a world scale of `40 / 2` which is `20`. + +### Avoid cars to levitate + +By default, the physics shape encompasses the whole 3D model. If your 3d model includes the wheels, you need to set a custom shape size to exclude them. For instance, let's say: + +- the whole car **depth** is `30` pixels +- the wheel radius is `6` pixels +You would set: + +- a custom depth of `30 - 6` which is `24` +- a **shape offset Z** of `6 / 2` which is `3` to move the shape up on the car chassis + +The default positions of the wheels are in the bottom corners of the car. The wheels are centered in Z axis on the bottom of the physics shape, but don't stick out on X and Y axis. + +![](wheels-default-position.png) + +You may want to adjust the **back wheels offset X** and the **front wheels offset X** by setting a negative value to move them a bit inside the car. + +### Avoid cars to roll when it turns + +Cars center of mass is as low as possible to avoid cars to roll. By default, the physics behavior set the center of mass is at the exact center of the object. For instance, to move center of mass at the bottom of the car, let's say your car **depth** is `30` pixels, you could set `-15` pixels for the **center of mass offset Z**. + +!!! tip + + In case your car is still rolling when it turns, you can try reducing the **friction**. + +### Setup how quick cars fall back on the road + +**Mass override** + +A car usually weight about 1,500 kg. It can be a good value to start + +**Gravity scale** + +When a car jumps off from a slope, you may want to give back control to the player by making quickly it go back on the road. It's better to use the gravity scale instead of the mass for this because it won't affect the car acceleration and collision. + +### Avoid cars to slip when it turns + +**Friction** + +Cars with greater friction can turn at higher speed without slipping. The friction of the ground also matters. For instance, a smaller value can be set for a grass object to make cars slip when they are off the road. + +!!! tip + + **Gravity scale** and **mass override** also change how cars slip. Make sure you have followed the steps described in the above sections first. + +### Setup how fast cars move + +You set the **engine inertia** to adjust how fast the car accelerate: + +- a smaller value gives faster acceleration +- a greater value gives slower acceleration + +The **max engine speed** allows to adjust how fast a car can go. + +The **max engine torque** allows to climb slopes faster. + +!!! tip + + **Friction**, **gravity scale** and **mass override** also change how fast cars move. Make sure you have followed the steps described in the above sections first. + + +## Concepts used in Physics + +This section is being written and will be available soon. +In the meantime, you can refer to the descriptions for the [2D Physics Engine](/gdevelop5/behaviors/physics2/) as most concepts are the same. + + +## Reference + +All actions, conditions and expressions are listed in the [3D Physics reference page](/gdevelop5/all-features/physics3d/reference/). diff --git a/docs/gdevelop5/behaviors/physics3d/platformer3d.png b/docs/gdevelop5/behaviors/physics3d/platformer3d.png new file mode 100644 index 0000000000..15681ff217 Binary files /dev/null and b/docs/gdevelop5/behaviors/physics3d/platformer3d.png differ diff --git a/docs/gdevelop5/behaviors/physics3d/wheels-default-position.png b/docs/gdevelop5/behaviors/physics3d/wheels-default-position.png new file mode 100644 index 0000000000..12ea619a3b Binary files /dev/null and b/docs/gdevelop5/behaviors/physics3d/wheels-default-position.png differ diff --git a/docs/gdevelop5/behaviors/platformer/index.md b/docs/gdevelop5/behaviors/platformer/index.md index bf7f239b62..550b392104 100644 --- a/docs/gdevelop5/behaviors/platformer/index.md +++ b/docs/gdevelop5/behaviors/platformer/index.md @@ -5,6 +5,10 @@ title: Platform and platformer character behaviors GDevelop comes with two [behaviors](/gdevelop5/behaviors) to build platformer games. This first one, "Platform", allows to mark objects as platforms. The second, "Platformer character", allows the object to run and jump on platforms. +
+ +
+ ## Mark platform and walls with the Platform behavior Like any behavior, edit an object and choose "Add a behavior" to find the **Platform** behavior: @@ -114,7 +118,7 @@ It's not easy to know how these values change the jump trajectory. The best is t The [hot reload](/gdevelop5/interface/preview) is a great help to speed up the process of finding the right jump. -### Tip: Use the Platformer jump evaluator example +**Platformer jump evaluator** [Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer-jump-evaluator){ .md-button .md-button--primary } @@ -136,7 +140,7 @@ The [advanced platformer movements](/gdevelop5/extensions/advanced-jump/referenc **See it in action!** 🎮 Open these examples online. -**Platformer Behavior** +**Platformer** [Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } @@ -145,7 +149,7 @@ The [advanced platformer movements](/gdevelop5/extensions/advanced-jump/referenc -**Parallax Scrolling Behavior** +**Parallax Scrolling** [Open example in GDevelop](https://editor.gdevelop.io/?project=example://parallax-scrolling){ .md-button .md-button--primary } diff --git a/docs/gdevelop5/behaviors/screenshot_2019-05-07_23.48.04.png b/docs/gdevelop5/behaviors/platformer/unused/screenshot_2019-05-07_23.48.04.png similarity index 100% rename from docs/gdevelop5/behaviors/screenshot_2019-05-07_23.48.04.png rename to docs/gdevelop5/behaviors/platformer/unused/screenshot_2019-05-07_23.48.04.png diff --git a/docs/gdevelop5/behaviors/select-platform-behavior.png b/docs/gdevelop5/behaviors/platformer/unused/select-platform-behavior.png similarity index 100% rename from docs/gdevelop5/behaviors/select-platform-behavior.png rename to docs/gdevelop5/behaviors/platformer/unused/select-platform-behavior.png diff --git a/docs/gdevelop5/behaviors/topdown/index.md b/docs/gdevelop5/behaviors/topdown/index.md index e6755c3bc8..e002d53a00 100644 --- a/docs/gdevelop5/behaviors/topdown/index.md +++ b/docs/gdevelop5/behaviors/topdown/index.md @@ -8,6 +8,9 @@ title: Top-Down Movement behavior **See it in action!** 🎮 [I would rather see the Top Down Movement behavior examples! Please take me there now.](/#Examples) +
+ +
#### Add "Top-Down Movement" behavior diff --git a/docs/gdevelop5/behaviors/tween/index.md b/docs/gdevelop5/behaviors/tween/index.md index c30d3c1c1d..0ae71b5d24 100644 --- a/docs/gdevelop5/behaviors/tween/index.md +++ b/docs/gdevelop5/behaviors/tween/index.md @@ -16,6 +16,10 @@ The Tween (from inbe**tween**) [behavior](/gdevelop5/behaviors) animates [object [easings.net](https://easings.net/) is an interactive catalog of all easing functions (speed shapes) that can be used by the tween behavior. +
+ +
+ ## Play tweens simultaneously Tweens can be played simultaneously simply by adding actions next to each other. diff --git a/docs/gdevelop5/behaviors/addbehavior.jpg b/docs/gdevelop5/behaviors/unused/addbehavior.jpg similarity index 100% rename from docs/gdevelop5/behaviors/addbehavior.jpg rename to docs/gdevelop5/behaviors/unused/addbehavior.jpg diff --git a/docs/gdevelop5/behaviors/bulletshootingexplanationexample.png b/docs/gdevelop5/behaviors/unused/bulletshootingexplanationexample.png similarity index 100% rename from docs/gdevelop5/behaviors/bulletshootingexplanationexample.png rename to docs/gdevelop5/behaviors/unused/bulletshootingexplanationexample.png diff --git a/docs/gdevelop5/behaviors/eventstab.jpg b/docs/gdevelop5/behaviors/unused/eventstab.jpg similarity index 100% rename from docs/gdevelop5/behaviors/eventstab.jpg rename to docs/gdevelop5/behaviors/unused/eventstab.jpg diff --git a/docs/gdevelop5/behaviors/eventstabnew.jpg b/docs/gdevelop5/behaviors/unused/eventstabnew.jpg similarity index 100% rename from docs/gdevelop5/behaviors/eventstabnew.jpg rename to docs/gdevelop5/behaviors/unused/eventstabnew.jpg diff --git a/docs/gdevelop5/behaviors/health-behavior-properties.png b/docs/gdevelop5/behaviors/unused/health-behavior-properties.png similarity index 100% rename from docs/gdevelop5/behaviors/health-behavior-properties.png rename to docs/gdevelop5/behaviors/unused/health-behavior-properties.png diff --git a/docs/gdevelop5/behaviors/select-platformer-character-behavior.png b/docs/gdevelop5/behaviors/unused/select-platformer-character-behavior.png similarity index 100% rename from docs/gdevelop5/behaviors/select-platformer-character-behavior.png rename to docs/gdevelop5/behaviors/unused/select-platformer-character-behavior.png diff --git a/docs/gdevelop5/collaboration/index.md b/docs/gdevelop5/collaboration/index.md index a66c9a5a25..523a242573 100644 --- a/docs/gdevelop5/collaboration/index.md +++ b/docs/gdevelop5/collaboration/index.md @@ -1,18 +1,25 @@ --- title: Collaborate on a GDevelop project +icon: material/account-multiple --- # Collaborate on a GDevelop project -GDevelop allows you to collaborate on your project with other users, for example teammates or co-workers. -There are 2 requirements to collaborate on a project: +GDevelop allows you to share your project with other users, for example teammates or co-workers. +This allows these users to open and modify the project when you're not editing it. Note that **real-time collaboration is not yet ready** and will be added in the future. + +There are two requirements to collaborate on a project: - The project must be saved to GDevelop Cloud. -- The owner of the project must have a [Startup subscription](https://gdevelop.io/pricing/business). +- The people sharing a project must all have the [Pro subscription](https://gdevelop.io/pricing/business). Up to **one guest collaborator** (not having a Pro subscription) can be added per project. ![Share dialog](/gdevelop5/collaboration/share-dialog.png) -## Invite people to collaborate +!!! note + + Are you in the field of education? This feature is **NOT** ready for production and it is **NOT** part of the GDevelop for Education subscription. Check out the [GDevelop for Education plan](https://gdevelop.io/pricing/education) for all of the features bundled there instead, including a full curriculum, classroom management tools, remote student project overview, and more. + +## Invite people to share a project From the Share dialog, you can invite people to collaborate on your project. For security, you can only invite people via their email address (not their username). You can then decide if they can edit the project or only view it. @@ -24,7 +31,7 @@ For security, you can only invite people via their email address (not their user ## Limits -There are no limits to the number of collaborators you can invite to a project, as long as they all have a [Startup subscription](https://gdevelop.io/pricing/business). +There are no limits to the number of collaborators you can invite to a project, as long as **they all have a [Pro subscription](https://gdevelop.io/pricing/business)**. !!! tip @@ -51,4 +58,4 @@ You will then have 2 choices: ## Collaborate locally If you don't want to use GDevelop Cloud, you can still collaborate on a project by saving it locally and using a version control system like Git. -Checkout the [Git tutorial](/gdevelop5/tutorials/using-github-desktop) for more information. +Check out the [Git tutorial](/gdevelop5/tutorials/using-github-desktop) for more information. diff --git a/docs/gdevelop5/community/.pages b/docs/gdevelop5/community/.pages index 3125ad1020..1377234540 100644 --- a/docs/gdevelop5/community/.pages +++ b/docs/gdevelop5/community/.pages @@ -1,7 +1,7 @@ nav: - - "Sell asset packs": sell-asset-pack-store + - "Sell on the Asset Store": sell-asset-pack-store - "Submit asset packs": contribute-to-the-assets-store - - "Submit examples": guide-for-submitting-an-example + - "Submit game templates": guide-for-submitting-an-example - "Contribute to the documentation": contribute-to-the-wiki - "Report a bug": guide-to-reporting-a-bug - ... diff --git a/docs/gdevelop5/community/contribute-to-the-assets-store/index.md b/docs/gdevelop5/community/contribute-to-the-assets-store/index.md index ec9ada7cb3..54dbdb1823 100644 --- a/docs/gdevelop5/community/contribute-to-the-assets-store/index.md +++ b/docs/gdevelop5/community/contribute-to-the-assets-store/index.md @@ -1,153 +1,77 @@ --- -title: Contributing to the assets store +title: Submit an Asset Pack --- -# Contributing to the assets store -You can contribute to GDevelop's Assets Store with royalty free/public domain resources that can be used by everyone for any kind of project, or submit your own game art. -Assets have to be submitted into category and sub-category folders. Images, audio and fonts should be named in plain English as the final user will read them. +# Submit an Asset Pack -GDevelop creators can add assets to the project without having to worry about editing. This means that submitted art, has to follow a number of technical constraints. +Publish on GDevelop's asset store, you can publish royalty-free, public domain assets, or even [sell your own game art](/gdevelop5/community/sell-asset-pack-store). +GDevelop streamlines the integration of assets into game projects, eliminating the need for manually editing the assets. To ensure seamless compatibility with the asset store, submitted art must adhere to specific technical requirements. These constraints are easily managed within the engine: simply create objects with your art, configure the objects appropriately, and GDevelop will handle the necessary processing to export your assets in a `.gdo` file format ready for the asset store. -## Prepare an asset pack packaging +Before integrating your art into a pack, you'll need to consider its fundamental elements, such as a thumbnail, title, description, and other key details. Let's explore each of these components that define an asset pack. -A pack with an attractive thumbnail makes it more visible, contrasted colors can be used. The thumbnail should reflect the pack's. Thumbnails that put assets in context should be preferred to grids of assets. +## Get your pack ready -- Thumbnail and previews must be 16:9 1280x720 pixels or 1920x1080 in PNG only. -- The thumbnail must be named: `thumbnail.png`. +### Make a thumbnail & previews files +A pack with an attractive thumbnail makes it more visible. Additional images can help them decide if a pack suits their needs. Use contrasting colors to make your thumbnail stand out. The thumbnail should accurately represent the contents of the pack. Thumbnails that show assets in context are preferred over simple grids of assets. -### Prepare additional packaging for paid packs +All preview images and the thumbnail must be submitted inside a folder named `previewImages`. -Users won't be able to browse the content of a pack before they buy it. Additional images can help them figuring out if a pack suit their needs. -There can be up 9 of them. They must be named `preview1.png`, `preview2.png`, ..., `preview9.png`. +**Thumbnail requirements:** -Paid packs also need an extra `pack.json` file located at the root of the pack folder. -It contains the pack's name, description, price in Euro, and the categories. +- Size: 16:9 ratio. Example: `1280x720` or `1920x1080` +- File: `.png` +- Name: `thumbnail.png` -!!! note - - - Value: 123 = 1.23€ (Euro) - - Categories: Remove words that don't correspond to your pack. - - -pack.json -``` -{ - "longDescription": "Write the description of your pack here. You can add a new line like this:\nThis is a new line.", - "tag": "The name of your pack", - "sellerId": "LEAVE EMPTY", - "sellerStripeAccountId": "LEAVE EMPTY", - "prices": [ - { - "value": 123, - "name": "default" - } - ], - "categories": ["full-game-pack", "character", "props", "background", "visual-effect", "interface", "prefab", "sounds"] -} -``` - -!!! note - - Learn more about the selling process on the [selling assets page](/gdevelop5/community/sell-asset-pack-store). - - -## Package the asset images - -In a nutshell: these are the basic rules to submit video game asset images. Make sure that your files respect the following guidelines: - - * Each image frame, has to be a png transparency file - * Every animation frame has to be the same pixel size as the other animation states - * Tiles and GUI images have to be properly aligned - -!!! note - - Sprite sheets **are not supported**! Each animation frame must **be a separate image**. - GDevelop does not support image the origin point for different animations yet. - - -GDevelop's most common sizes for animation assets are: - - * Mobile: 720x1280 - * Desktop: 1280x720 - * Desktop full HD: 1920x1080 +**Previews of your assets:** Extra images that display your pack to convince the user to purchase it. If you contribute a Free Asset Pack, preview assets are not mandatory. +- They can be from 1 to 9 +- Must be named `preview1.png`, `preview2.png`, ..., `preview9.png` +- Must be 16:9, `1280x720` or `1920x1080` +- File format in `.png` or `.gif` -## Package images using GDevelop - -You can create an asset pack with GDevelop editor following these steps: - -- Create an empty scene -- Create objects that use the images -- Right click on **Scene Objects** and choose **Export as a pack** - -![](export-gdo.png) - -The exported GDO file contains all the objects configuration and the images files that they use. +### Name your pack -### Still images +Having a good title is important, buyers search using keywords. Choose a unique and short title that represents your pack. +A good asset pack title is concise, descriptive, and engaging, clearly indicating the pack's primary content and making it easily discoverable and memorable for users. -Still images don't need any configuration with GDevelop editor. You can put them in a folder next to the GDO file. You Still have to make sure to follow the [naming best practices](#follow-naming-best-practices). +### Get a description +A good asset pack description clearly and concisely communicates the contents and value of the pack to potential users by highlighting included items, intended use cases, and any relevant details. -### Sprites with animations or states +### Define a price -Images that represent a same object at different states should be in the same [Sprite](/gdevelop5/objects/sprite) object as animations. +(This step can be skipped for free packs.) -!!! tip +A paid pack can have two different prices, to fit the needs of the buyer. - Frames of all animations of an object can be imported at once by selecting several files. The editor will detect animation names automatically. +- **Single Commercial**: The price for one commercial game only. +- **Unlimited Commercial**: The price for unlimited commercial games, an unlimited number of projects and platforms. -Each state (called **Animation** in the editor) can be animated or not. +Usually the Unlimited Commercial price is 20% to 30% more expensive. +You can mention the prices in Euro (€) or USD ($). -Some instances of states: +### Choose a category -- Empty or Filled -- Close or Open -- Locked or Unlocked -- On or Off +Your pack must comply with at least one of these main categories: -If your pack contains color variations of the same, it's recommended to create an object for each one. +- Full Game Asset Packs +- Prefabs (Ready-to-use Objects) +- UI/Interface +- Visual Effects +- Backgrounds +- Characters +- Props +- Sounds and musics +- Ready-made games -Collections of images like playing cards should be merged into one object that contains an animation for each card. +### File organization for submission +A pack is organized into folders. Each folders name will be used by the asset store as tags to let users search for assets. +The folders name should not be too specific, because that is the purpose of object names. For example, objects `BlueCar` and `RedCar` should be in a folder named `Vehicle` and not `Car` because it allows users to browse every vehicle in the asset store. Users can still find cars easily, since the search bar also looks at object names. -### Tiled images - -Images that can be used as a pattern should be [Tiled sprites](/gdevelop5/objects/tiled_sprite). - - -### 9-patches - -[Panel Sprite ("9-patch")](/gdevelop5/objects/panel_sprite) is an object where its image is split into 9 pieces or slices and each slice is scaled separately. - -Corners should be fit as precisely as possible. This allows to use smaller objects size (where the center reaches 0 pixel). - - -### Tile maps - -[Tile map](/gdevelop5/objects/tilemap) are not supported by the asset store. - - -### UI assets - -Some instances of UI objects that can be included in an asset pack: - -- [Button](/gdevelop5/objects/button) -- [Multi-touch joystick](/gdevelop5/objects/multitouch-joystick) -- [Slider](/gdevelop5/objects/slider) -- [Toggle switch](/gdevelop5/objects/toggle-switch) -- [Resource bar](/gdevelop5/objects/resource-bar) - - -### Organize assets into folders - -In the editor, objects can be organized into folder. The asset store will display the same folders and use them as tags to let users search for assets. - -Folders name should not be too specific because it's the purpose of object names. For example, objects "BlueCar" and "RedCar" should be in a folder named "Vehicle" and not "Car" because it allows users to browse every vehicle in the asset store. They can already find cars as the search also use object names. - -Some examples of folders names +Some examples of folder names - Character - Animal @@ -165,120 +89,84 @@ Some examples of folders names !!! note - When a pack contains a lot of objects, more specific folders can be used. - - -## Package 3D models - -3D models don't need any configuration with GDevelop editor. You send them in an archive directly. You Still have to make sure to follow the [naming best practices](#follow-naming-best-practices). - -Supported 3D file formats are: - -- .glb -- .blend -- .gltf -- .obj -- .fbx -- .x3d -- .vrml - -**Animation names** should be meaningful such as `run`, `jump`, `idle`, etc. - -**Dimensions** of 3d models must be consistent across a pack. For instance, props should fit characters hands. - -**The point of origin** is important, it will be used as the position and rotation center of object in GDevelop. - -**Textures** are supported only in format types that are contained, such as `.glb`, `.blend`, `.fbx`. - - -!!! note - - There's no need to add images preview for the models, the asset store will automatically generate them. - + When a pack contains a lot of objects, more specific folders and sub-folders can be used. -## Package audio +### Follow naming best practices -Put your .aac or .wav files (prefer .aac) directly in a folder, with the name to be displayed: `Laser effect.aac`, `Background music.aac`. +The object names must be descriptive. They are used by the search engine of the asset store. -!!! warning +Examples of good names: - 🚨 Careful about the size! Players are sensitive to the size of a game download (especially on mobile and on the web). **Try to keep music file sizes around 1 to 2 MB. In rare cases, these can be 4 or 5 MB, but not larger.** Consider downgrading the quality a bit to keep the music files around these sizes. - Sound effects are usually even smaller. If a sound file is larger than 200 or 300 KB, consider downgrading the quality. +- Tall Palm Tree +- Desert Background +- Yellow Sport Car -`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images. +Generic names to avoid: -A great tool to convert audio files to AAC format is [fre:ac](https://www.freac.org/). fre:ac is free, open-source, and cross-platform. It can process batches of files, with many options on how they are named and put into folders. +- Building 5 +- Player +- Item 37 +- Robert (a proper noun) -- Choose the encoder called "Fraunhofer FDK AAC Encoder". -- Select "File format > AAC" -- Select "Quality > Set Quality > 3" +## Package your art -This will create high-quality audio files, but using a variable bit rate that won't exceed 96 kbps (assuming stereo input). +There are two ways you can package your Asset Pack to submit it to the GDevelop Store: +- **Recommended:** Set your objects through the engine, and export the `.gdo` file that was automatically generated. This file will include the complete object configuration and folder structure as set up in the engine. -![](freac-aac.jpg) +- **Manual packaging:** Set your files manually, if you have a large number of assets, you can create a pack by manually organizing the files without using the game engine editor, following [the provided technical specifications](./technical-speficication.md). -![](freac-quality.jpg) +To export a `.gdo` file from the GDevelop editor, follow these steps: -!!! tip +- Create an empty scene. +- Create objects that use your art. +- Right click on **Scene Objects** and choose **Export as a pack**. - **How to submit my sounds and music when they are ready?** +![](export-gdo.png) - Zip the folder containing them and send them to the GDevelop team on Github by opening an [issue here](https://github.com/4ian/GDevelop/issues/new?assignees=&labels=%F0%9F%93%A6+Asset+Store+submission&template=--asset-store-submission.md&title=). +### Fit art with an object +Your files must all match an object type, please [follow the object page](/gdevelop5/objects/) which details each type and will help you to integrate your files correctly. -## Package fonts +### Fonts -Put the fonts in to a `Font` folders. +Put the fonts into a `Font` folder. Formats supported are: - .ttf - .otf +### Package audio -## Follow naming best practices +Put your audio files `.aac`, `.wav`, `.mp3` (prefer `.aac`) directly into an `Audio` folder, with the name to be displayed: `Laser effect.aac`, `Background music.aac`. -Object (or file) names must be descriptive. They are used by the search engine of the asset store. +!!! warning -Instances of good names: + 🚨 Careful about the size! Players are sensitive to the size of a game download (especially on mobile and on the web). **Try to keep music file sizes around 1 to 2 MB. In rare cases, these can be 4 or 5 MB, but not larger.** Consider downgrading the quality a bit to keep the music files around these sizes. + Sound effects are usually even smaller. If a sound file is larger than 200 or 300 KB, consider downgrading the quality. -- Tall Palm Tree -- Desert Background -- Yellow Sport Car +### Other objects -Generic names to avoid: +If you are in doubt, ask to the GDevelop team or the community if your files can be supported by an objects, or fit a [custom objects (prefab)](/gdevelop5/objects/custom-objects-prefab-template/). -- Building 5 -- Player -- Item 37 -- Robert (a proper noun) +### Limitations -If your file names are already set, you don't need to change them unless they are only numbers. +GDevelop have several limitation for now, as they are: !!! note - In this last case, you can rename several files at once by selecting them in the file explorer and using a shortcuts (F2 to rename on Windows, Enter on macOS...). The file explorer will automatically add a number suffix to them. - - -## License - -Put a license.txt file in your folder. Make sure to put your name in this license file too (or the name of the original author). -The importer will be adapted to understand the license file. - -!!! danger - - Free asset packs with unclear licenses won't be accepted. In this case, you should get in touch with the author for clarifications and ask if they allow redistribution of their assets. The license must: - - - Allow to Use the assets for free and for any purpose - - Allow modifications or derived work - - State if attribution is required or not + - Sprite sheets **are not supported yet**! Each animation frame must **be a separate image**. + - Each animation image must have the same pixel size as the other animation states. + - GDevelop does not support image the origin point for different animations yet. + - Audio files are not yet supported within the `.gdo` format. Please place your audio files in an `Audio` folder located in the same directory as your `.gdo` file. Subsequently, compress both the `.gdo` file and the Audio folder into a `.zip` or `.rar` archive for submission via the application form. ## Something unclear? Ask a question on [this Trello board](https://trello.com/c/s8RctC9M/2-asset-rules-and-regulations) card. If the rules here are too complicated or are giving you too much work, you can suggest a new rule and we'll see if we can adapt the importer so that it can understand your asset structure. The goal is to make objects more or less automatically! +## Submitting the asset pack -## How to send my assets when they are ready? +When you're ready to submit your asset pack (free or paid), compress the folder containing the `.gdo` or the other folders of your pack, then send it to GDevelop by filling the application form with the button below: -Zip the folder containing them and send them to the GDevelop team on Github by opening an [issue here](https://github.com/4ian/GDevelop/issues/new?assignees=&labels=%F0%9F%93%A6+Asset+Store+submission&template=--asset-store-submission.md&title=). +[Send my asset pack on the GDevelop's store](https://forms.gle/F1qU2V3MwZ91zqRn9){ .md-button .md-button--primary } diff --git a/docs/gdevelop5/community/contribute-to-the-assets-store/technical-specifications.md b/docs/gdevelop5/community/contribute-to-the-assets-store/technical-specifications.md new file mode 100644 index 0000000000..603f575012 --- /dev/null +++ b/docs/gdevelop5/community/contribute-to-the-assets-store/technical-specifications.md @@ -0,0 +1,340 @@ +--- +title: Manually package the assets +--- + +# Manually package the assets + +## Overview of a pack + +!!! warning + + This page may be not exhaustive. Contact the GDevelop team if you need help, or use the `.gdo` export. + +If you have too many files, you can manually package an asset pack without the game engine editor. + +Here is an example for an imaginary `French food` asset pack: + +``` +French food +│ +├── pack.json << Asset pack metadata +│ +├── previewImages << Sub folder with public resources +│ ├── IGNORED.md +│ ├── thumbnail.png << png only +│ ├── preview1.png << png only +│ └── preview2.png << png only +│ +├── previewSounds << Sub folder with public resources +│ ├── IGNORED.md +│ ├── preview1.aac << aac, wav, ogg or mp3 +│ └── preview2.wav << aac, wav, ogg or mp3 +│ +│ +├── Character +│ ├── Enemy 1_Attack Bottom_METADATA.png +│ ├── Enemy 1_Attack Bottom_1.png +│ ├── Enemy 1_Attack Bottom_2.png +│ ├── Enemy 1_Attack Bottom_3.png +│ ├── Enemy 1_Attack Bottom_4.png +│ ├── Enemy 1_Attack Top_METADATA.png +│ ├── Enemy 1_Attack Top_1.png +│ ├── Enemy 1_Attack Top_2.png +│ ├── Enemy 1_Attack Top_3.png +│ ├── Enemy 1_Attack Top_4.png +│ ├── Enemy 2_Attack Bottom_METADATA.png +│ ├── Enemy 2_Attack Bottom_1.png +│ ├── Enemy 2_Attack Bottom_2.png +│ ├── Enemy 2_Attack Bottom_3.png +│ ├── Enemy 2_Attack Bottom_4.png +│ ├── Enemy 2_Attack Top_METADATA.png +│ ├── Enemy 2_Attack Top_1.png +│ ├── Enemy 2_Attack Top_2.png +│ ├── Enemy 2_Attack Top_3.png +│ └── Enemy 2_Attack Top_4.png + +│ +├── Props +│ ├── 9patch_French Table_all_128.png +│ ├── 9patch_French Table_center.png +│ ├── 9patch_French Table_east.png +│ ├── 9patch_French Table_north.png +│ ├── 9patch_French Table_northeast.png +│ ├── 9patch_French Table_northwest.png +│ ├── 9patch_French Table_south.png +│ ├── 9patch_French Table_southeast.png +│ ├── 9patch_French Table_southwest.png +│ ├── 9patch_French Table_west.png +│ ├── quiche_resting_1.png +│ └── quiche_resting_2.png +│ +├── Audio +│ └── cooking.aac +│ +├── Font +│ └── bonne maman.ttf +│ +└── Splash << Sub folder with a partial asset + ├── IGNORED_FOR_IMAGE_ASSETS.md + ├── SauceSplashing.asset.json + ├── SauceSplashing.png + └── SauceSplashing.preview.png + +``` + +## The title, description, and price + +Each pack needs to be defined in a `pack.json` file located at the root of your pack folder. In it, you'll put the pack's name, description, price in Euro or USD in cents, and the categories. + +**Note:** + +- **Value:** `123` = `1.23€` (Euro) +- **Categories:** full-game-pack, character, props, background, visual-effect, interface, prefab, sounds] + +```json +// pack.json +{ + "longDescription": "Write the description of your pack here. You can add a new line like this:\nThis is a new line.", + "tag": "The name of your pack", + "sellerId": "LEAVE EMPTY", + "sellerStripeAccountId": "LEAVE EMPTY", + "prices": [ + { + "value": 399, + "usageType": "commercial", + "currency": "USD" + }, + { + "value": 1099, + "usageType": "unlimited", + "currency": "USD" + } + ], + "categories": ["interface"] +} +``` + +## Make a thumbnail & previews files + +A pack with an attractive thumbnail makes it more visible. Additional images can help them decide if a pack suits their needs. Use contrasting colors to make your thumbnail stand out. The thumbnail should accurately represent the contents of the pack. Thumbnails that show assets in context are preferred over simple grids of assets. + +All preview images and the thumbnail must be submitted inside a folder named `previewImages`. + +**Thumbnail requirements:** + +- Size: 16:9 ratio. Example: `1280x720` or `1920x1080` +- File: `.png` +- Name: `thumbnail.png` + +**Previews of your assets:** Extra images that display your pack to convince the user to purchase it. If you contribute a Free Asset Pack, preview assets are not mandatory. + +- They can be from 1 to 9 +- Must be named `preview1.png`, `preview2.png`, ..., `preview9.png` +- Must be 16:9, `1280x720` or `1920x1080` +- File format in `.png` or `.gif` + +## License + +Put a license.txt file in your folder. Make sure to put your name in this license file too (or the name of the original author). +The importer will be adapted to understand the license file. + +!!! danger + + Free asset packs with unclear licenses won't be accepted. In this case, you should get in touch with the author for clarifications and ask if they allow redistribution of their assets. The license must: + + - Allow to Use the assets for free and for any purpose + - Allow modifications or derived work + - State if attribution is required or not + +## Adding tags to your assets + +Tags allow creators to search your assets. These tags can be things like "side view," "pixel art," and so on. We recommend you use the Asset Store's existing tags. + +Put all your images in a single folder, and inside that folder create a file called `TAGS.md`. In this file, put the tags of the assets, separated by a comma. All tags must be singular, not plural. Start the file with one of these tags (depending on the type of pack): `top-down`, `side view`, or `interface`. +For example: + +`side view, pirate, ship, sea` + +**Tip:** + +- Folder names will be read as tags. Make sure to use plain English for each folder. +- You can put your images in different subfolders. Each subfolder will be used as a tag name. Some folder names like "PNG," "SVG," etc., will be ignored (so don't change the whole structure of your assets, we'll ignore anything that does not make sense). +- Note that you can put assets in a folder called `Unimplemented`, `TODO`, and `SOURCE FILE` if the packaging isn't completely done, or if you want to keep source files of the pack. These folders will be entirely hidden in the store but are useful for updates or edits on the pack. + +## Limitations + +GDevelop have several limitation for now, as they are: + +!!! note + + - Sprite sheets **are not supported yet**! Each animation frame must **be a separate image**. + - Each animation image must have the same pixel size as the other animation states. + - GDevelop does not support image the origin point for different animations yet. + - Audio files are not yet supported within the `.gdo` format. Please place your audio files in an `Audio` folder located in the same directory as your `.gdo` file. Subsequently, compress both the `.gdo` file and the Audio folder into a `.zip` or `.rar` archive for submission via the application form. + +## Package your art + +### Sprite + +You can put them in a folder of your choice. You Still have to make sure to follow the [naming best practices](/gdevelop5/community/contribute-to-the-assets-store#follow-naming-best-practices). + +#### Static sprite + +For unanimated [Sprites](/gdevelop5/objects/sprite), a single image with the name of the object is enough. + +`Chair.png` + +#### Sprites with animations or states + +For animated sprites require multiple animated frames, which have to be named properly. While writing your file names, it is important that you follow a specific naming structure: + +`BaseName_AnimationState_frame#.png` + +For a character called "Red Hero," with 4 frames of a Running animation: + +![](anim1.png) + +- `RedHero_Run_1.png` +- `RedHero_Run_2.png` +- `RedHero_Run_3.png` +- `RedHero_Run_4.png` + +If the same character is carrying a prop, the naming should appear on the Animation State, not on the Character name. + +![](anim2.png) + +- `RedHero_RunJewel_1.png` +- `RedHero_RunJewel_2.png` +- `RedHero_RunJewel_3.png` +- `RedHero_RunJewel_4.png` + +**Note on animation states:** +If the **animated** object only has one animation state, there is no need to specify if the animation is "Walk, Idle, Climb, Death..." on the name. An animation index will do: `Jewel_1.png`, `Jewel_2.png`, `Jewel_3.png`. + +#### Assets with specific time duration + +To specify FPS and looping for an animation, you'll need to add some metadata with the animations files. + +Save the `METADATA.json` file of your object with the following structure: `BaseName_METADATA.json` + +```json +// basename_METADATA.json +{ + "timeBetweenFrames": 0.2, + "loop": false +} +``` + +If you have **multiple animation states** and **each must have a different speed**, create a `.json` file **per animation state**, using this name: `BaseName_AnimationState_METADATA.json`. +For example: + +- `Spaceship_Idle_METADATA.json` +- `Spaceship_Flying_METADATA.json` +- `Spaceship_Destroyed_METADATA.json` +- ... + +Your file should look something like this: + +![](animation-files.png) + +If you are not sure about the number that "time between frames" will represent, [this article](https://www.google.com/search?q=https://forum.gdevelop.io/t/image-asset-store-how-to-contribute-your-image-assets-to-the-asset-store/40798) explains it. + +![](fps.png) + +### Tiled sprite + +If you want to create a [Tiled sprite](/gdevelop5/objects/tiled_sprite) (for backgrounds or repeating patterns): +Prefix the **base name** by `tiled_`. For example: `tiled_Grass Background.png` + +### Panel sprite + +A [Panel sprite](/gdevelop5/objects/tiled_sprite) object can be stretched with the center and the border repeated. + +In an image software, slice your image into 9 different images, and name them: `9patch_BaseName_gravity.png` with gravity being: `southwest`, `southeast`, `south`, `northwest`, `northeast`, `north`, `west`, and `east`. +All these files will be used by our server to generate a unique texture used in the 9-Patch object. +For example: + +- `9patch_Grass_center.png` +- `9patch_Grass_east.png` +- `9patch_Grass_north.png` +- `9patch_Grass_northeast.png` +- `9patch_Grass_northwest.png` +- `9patch_Grass_south.png` +- `9patch_Grass_southeast.png` +- `9patch_Grass_southwest.png` +- `9patch_Grass_west.png` + +### 3D Box + +[3D Box](/gdevelop5/objects/3d-box) are not yet supported for manual packaging. It must be integrated and configured in GDevelop then exported as `.gdo` by a right-click on the object. + +### 3D Models + +Supported 3D file formats are: + +- .glb +- .blend +- .gltf +- .obj +- .fbx +- .x3d +- .vrml + +**Animation names** should be meaningful such as `run`, `jump`, `idle`, etc. + +**Dimensions** of 3d models must be consistent across a pack. For instance, props should fit characters hands. + +**The point of origin** is important, it will be used as the position and rotation center of object in GDevelop. + +**Textures** are supported only in format types that are contained, such as `.glb`, `.blend`, `.fbx`. + +!!! note + + There's no need to add images preview for the models, the asset store will automatically generate them. + +### Tile map + +[Tile map](/gdevelop5/objects/tilemap) are not yet supported for manual packaging. It must be integrated and configured in GDevelop then exported as `.gdo` by a right-click on the object. + +### Fonts + +Put the fonts in to a `Font` folders. +Formats supported are: + +- .ttf +- .otf + +### Package audio + +Put your audio files `.aac`, `.wav`, `.mp3` (prefer `.aac`) directly in a `Audio` folder, with the name to be displayed: `Laser effect.aac`, `Background music.aac`. + +`TAGS.md` files will work like for images. Subfolders are also used for tags as described for images. + +!!! warning + + 🚨 Careful about the size! Players are sensitive to the size of a game download (especially on mobile and on the web). **Try to keep music file sizes around 1 to 2 MB. In rare cases, these can be 4 or 5 MB, but not larger.** Consider downgrading the quality a bit to keep the music files around these sizes. + Sound effects are usually even smaller. If a sound file is larger than 200 or 300 KB, consider downgrading the quality. + +A great tool to convert audio files to AAC format is [fre:ac](https://www.freac.org/). fre:ac is free, open-source, and cross-platform. It can process batches of files, with many options on how they are named and put into folders. + +- Choose the encoder called "Fraunhofer FDK AAC Encoder". +- Select "File format > AAC" +- Select "Quality > Set Quality > 3" + +This will create high-quality audio files, but using a variable bit rate that won't exceed 96 kbps (assuming stereo input). + +![](freac-aac.jpg) + +![](freac-quality.jpg) + +### Spine + +[Spine](/gdevelop5/objects/spine) are not yet supported for manual packaging. It must be integrated and configured in GDevelop then exported as `.gdo` by a right-click on the object. + +### Custom objects + +[Custom object (prefab)](/gdevelop5/objects/custom-objects-prefab-template/) with and without variant(s) are not yet supported for manual packaging. It must be integrated and configured in GDevelop then exported as `.gdo` by a right-click on the object. + +### 2D & 3D Particules emitter + +3D and [2D particle emitter](/gdevelop5/objects/particles_emitter/) with and without variant(s) are not yet supported for manual packaging. It must be integrated and configured in GDevelop then exported as `.gdo` by a right-click on the object. diff --git a/docs/gdevelop5/community/faq.md b/docs/gdevelop5/community/faq.md index 62136652da..34a450394b 100644 --- a/docs/gdevelop5/community/faq.md +++ b/docs/gdevelop5/community/faq.md @@ -1,104 +1,45 @@ --- -title: GDevelop FAQ +title: GDevelop Community FAQ --- -# GDevelop FAQ - -## What is the DNA of GD ? - -4ian : My idea with GDevelop, when I started it a while ago (~10 years ago :) ) was to make anyone able to create games - so that not only people with a heavy programming background could create their own games. -For this I worked on making an editor that is accessible (with an interface not cluttered and easy to learn) and for making the rules of the game, a system based on visual events. - -I initially worked on a more targeted software to create adventure games. But as the time was passing, I was always adding new features and wondered if I could make a game engine that was both general purpose for 2D games and with a gentle learning curve. -There were existing similar game creators at this time, but most were either requiring you to code to make anything complex or were very limited. -Visual events as done in GDevelop are the best thing I found. They are simple yet super quick to write - even compared to traditional programming. - -The goal with GDevelop is to have an engine that is both easy to use, with an intuitive interface and concepts that are fast to learn, and still capable to create very advanced, indie or commercial games. This can be achieved as GDevelop concepts are based on solid foundations (events, objects, behaviors), that are inspired by programming languages or libraries. The game engine and the editor are built with performant, best in class open-source libraries. Finally, the whole engine is flexible enough to be augmented with extensions, that can even be written using events in GDevelop itself - so that GDevelop is being improved by its community itself! - -## What is the first public version of GD ? - -GD “1.0.8504202 Beta” in 11 Aug 2008 -You can download it and try it ! -[Original Link](http://www.compilgames.net/dl/gdbeta5.exe) | [Mirror #1](https://drive.google.com/open?id=1iqUsXVzJjavWhgGUzINrFowIfv3xt2zR) - -## What is the first release of GD5 beta ? - -5.0.0-beta14 , 18 Jan 2018 - -## What is the last release of GD4 Stable ? - -GD 4.0.97, 3 Apr 2018 +# GDevelop Community FAQ ## When was the Discord opened? -The GDevelop discord is open since December 14, 2016 +The GDevelop Discord has been open since December 14, 2016. -## Why is GDevelop can not export directly to mobile and desktop and why use an online build service instead? -Building games as stand-alone executables for Windows, macOS, Linux or for a mobile platform like Android need large, heavyweight SDKs to be downloaded and properly installed (for example, the Android SDK). -Things can break easily in case of misconfiguration. -Instead, GDevelop can do all the packaging automatically - without having to install, configure or do anything - using the one click exports (that are powered by an online build service). +## Why can't GDevelop export directly to mobile and desktop? Why use an online build service instead? -Note that it’s perfectly possible to export and do manual compilation using technologies like Electron or Cordova - but this requires to install these development tools and others. +Building standalone executables for Windows, macOS, Linux, or mobile platforms like Android requires large SDKs to be downloaded and properly installed (for example, the Android SDK). +Things can easily break if misconfigured. +Instead, GDevelop can handle all the packaging automatically—using one-click exports powered by an online build service—so you don't need to install or configure anything. + +It's still possible to export and compile manually using technologies like Electron or Cordova, but you must install these development tools and their dependencies. ## Is GDevelop trying to copy and be a free alternative to Construct (they look and feel very similar)? + No, GDevelop was started roughly at the same time as Construct 1. The ideas behind both softwares are similar - because Construct team and GDevelop authors naturally found similar concepts to work. In particular, behaviors and events have been “discovered” by both teams separately as a superior alternative to any other kind of visual programming. Such concepts can then have been integrated into other game engines, or the other way, GDevelop or Construct can have been inspired by each other or by other game engines. ## Why are GDevelop and my games flagged by my antivirus? -There is no virus, it's because the app is new and not yet signed by Microsoft. +There is no virus; the app is new and not yet signed by Microsoft. If you want to be sure, you can go on Github and make your own review of the source code. It's open source, meaning you can check all the code online. -## When 3D will be supported in GDevelop? - -GDevelop is a 2D-centric engine, we strive to provide a fast and easy to use engine for everyone. -There are many things left to do in 2D, exploring the totally different world of 3D is not yet planned. -If you're looking for a 3D game engine here's a list: https://en.wikipedia.org/wiki/List_of_game_engines - ## I saw an update being announced, but GDevelop isn't auto-updating. When an update is published, we do not directly mark it as latest for the auto-updater, as we don't want to make everyone update in case the new version has an important issue. -Note that it sometimes happen that the auto-updater breaks, you'll need to manually download the next version in that case. -To download a new version that just got published, download it on GDevelop's GitHub releases page: -https://github.com/4ian/GDevelop/releases/ +Sometimes the auto-updater breaks, and you'll need to download the next version manually. +To download a new version that just got published, download it on [GDevelop's GitHub releases page](https://github.com/4ian/GDevelop/releases/). ## The text objects are blurry when scaled, how can I fix that? -Sadly, that is a known issue with the renderer and its way of scaling. Fortunately, from beta110, there is an new text objects called [Bitmap Text](/gdevelop5/objects/bitmap_text) should will solve the problem - -## Will there be a Raspberry PI build? - -No, as the GDevelop team doesn't have the time/devices to test efficiently releases on raspberry pi, and it is too much trouble to support a full other platform more than the 3 main ones. -Don't worry though, you should be able to build it yourself with those commands: -```sh -sudo apt-get update -sudo apt-get install npm git -git clone https://github.com/4ian/GDevelop -cd GDevelop/newIDE/app -npm i -cd ../electron-app -npm i -npm run build -- -l AppImage --arm64 -``` +Sadly, that is a known issue with the renderer and its way of scaling. You can use [Bitmap Text](/gdevelop5/objects/bitmap_text) to solve the issue, especially for pixel-art games. ## Where can I find the latest nightly build? -You can find it here: -https://gdevelop-releases.s3.amazonaws.com/master/latest/GDevelop%205%20Setup%205.0.0-beta103.exe -You may need to replace the "beta103" with the latest released version of GDevelop. -For more details, see this document: https://github.com/4ian/GDevelop/blob/master/newIDE/docs/Nightly-Builds-and-continuous-deployment.md - -## How can I make multiplayer? - -You can do networking in GDevelop using the P2P, MQTT or Firebase extension. -Using those, you can communicate data over the internet from one game instance to the other. By sending data like player position and the general state of the game, you can make multiplayer. -P2P docs: http://wiki.compilgames.net/doku.php/gdevelop5/all-features/p2p -MQTT docs: http://wiki.compilgames.net/doku.php/gdevelop5/extensions#mqtt_client_advanced -Firebase docs: http://wiki.compilgames.net/doku.php/gdevelop5/all-features/firebase -P2P example: https://editor.gdevelop.io/?project=example://p2p-networking -Firebase example: https://editor.gdevelop.io/?project=example://firebase-example - +[See this document](https://github.com/4ian/GDevelop/blob/master/newIDE/docs/Nightly-Builds-and-continuous-deployment.md). ## How can I contribute to GDevelop? @@ -113,4 +54,4 @@ Any kind of work that spreads the word about GDevelop or improves the user exper - Talk about GDevelop to big group of people/schools - Help translate the project on Crowdin - Create a good game and leave the "Made with GDevelop splash screen" -- And of course writing code for the engine itself \ No newline at end of file +- And of course writing code for the engine itself diff --git a/docs/gdevelop5/community/guide-for-submitting-an-example/index.md b/docs/gdevelop5/community/guide-for-submitting-an-example/index.md index f7217fdf69..f55196c586 100644 --- a/docs/gdevelop5/community/guide-for-submitting-an-example/index.md +++ b/docs/gdevelop5/community/guide-for-submitting-an-example/index.md @@ -1,12 +1,20 @@ --- title: Guide for submitting examples --- + # Guide for submitting examples -Submitting example is a great way to contribute to GDevelop and help others. If your example is good enough, it will be accepted to the example library and will be available in GDevelop. +Submitting an example is a great way to contribute to GDevelop and help others. If your example is good enough, it will be accepted to the example library and will be available in GDevelop. + +## Check if the same example already exists + +The first thing you should do is check if an example that does the same thing already exists. So you don't spend your time making something that has already been done. -This Guide shows how you can submit an example to GDevelop example library. +Search through the examples list in GDevelop (**Create a new project** → **Examples tab**), and make sure the same example doesn't exist. + +## Discussing with the community +You can discuss with the GDevelop community on [Discord](https://discord.com/invite/rjdYHvj) or open a new thread on the [GDevelop forum](https://forum.gdevelop.io) on how the example can be improved or if you have any doubts before starting something. ## Choose a scope @@ -16,18 +24,15 @@ A game that could almost be published as it is. It should be well organized and !!! note - Full games templates are good candidates to be sold in the asset store. - + Full game templates are good candidates to be sold in the asset store. ### Make a game as a proof of concept -A game that is as simple as possible. The amount of content should be kept to the bare minimum. Visual effects are welcomed but functions must be used to avoid to cluttered events. - +A game that is as simple as possible. The amount of content should be kept to the bare minimum. Visual effects are welcomed but functions must be used to avoid cluttered events. ### Showcase engine or extension features -A toy that uses some features in a smart or fun way. They are a good way to show how a feature may help to make a game without actually making one. - +A project that uses some features in a smart or fun way. They are a good way to show how a feature may help to make a game without actually making one. ### Test an extension @@ -37,27 +42,16 @@ An example that focuses on 1 feature and allows users to see how it works in eve The engine is checked with automatic tests, but these examples can be useful for users to check the features themselves and investigate an issue before retorting it. - -## Check if the same example already exists - -The first thing you should do is check if an example that does the same thing already exists. You won't be excited to take your time making something that already has been done. - -Search through the examples list in GDevelop (**Create a new project** → **Examples tab**), and make sure the same example doesn't exist. - - -## Discussing with the community - -You can discuss with the GDevelop community on [Discord](https://discord.com/invite/rjdYHvj) or open a new thread on the [GDevelop forum](https://forum.gdevelop.io) on how the example can be improved or if you have any doubts before starting something. - - ## License -The free examples will be MIT licensed (see this [Wikipedia page](https://en.wikipedia.org/wiki/MIT_License) for more info about the MIT license). +- **Free**: The free games template are also know as example projects. The free examples are all [MIT licensed](https://en.wikipedia.org/wiki/MIT_License). +- **Paid**: You are agreeing to this final license for the end-user buying your assets: [Asset Store License Agreement](https://gdevelop.io/page/asset-store-license-agreement) -You will have to make sure the example can be MIT licensed and make sure the resources can also be distributed under the MIT license. If you are having doubts about the license of the resources, ask the creator and ask for permission (this is important!). +!!! warning + Ensure that the example and the associate resources can be MIT licensed, or that you hold full rights for your paid game template and the associate resources. If you are uncertain about the licensing of any resource, consult the original creator or contact the GDevelop team for verification. -## Best Practices +## Best practices #### Naming conventions @@ -65,10 +59,7 @@ You will have to make sure the example can be MIT licensed and make sure the res - Names should not have spaces in them. Example: use `PlayerName` instead of `Player Name`. - - -- `PascalCase` is recommended, but using other styles is fine. - +- `PascalCase` is recommended, but using other styles is fine. #### Variables @@ -76,22 +67,19 @@ You will have to make sure the example can be MIT licensed and make sure the res - Unused variables should be deleted - #### Extensions - If custom extensions are used, add proper comments, description to the events see [Extension best practices](/gdevelop5/extensions/best-practices) for more info - #### Structuring events - Related events should be added into a group with proper naming. - - You can use color code to allow differentiating them quickly if you want. + - You can use color code to allow differentiating them quickly if you want. - If the same events are used in multiple places, you can use [external events](/gdevelop5/interface/events-editor/external-events) or a [function](/gdevelop5/events/functions) in an extension. - Remove empty events. - Remove disabled events or events that were used for testing. - Unfold any events so that they are easily visible. -- Move events that are not the main focus of the example into external events or other scenes (for instance, an example that shows a character movement should not be cluttered with events about unrelated UI). - +- Move events that are not the main focus of the example into external events or other scenes (for instance, an example that shows a character movement should not be cluttered with events about unrelated UI). #### Write insightful comments @@ -101,107 +89,108 @@ Comments should not paraphrase the events. For instance, "Delete the block when ![](collision-event.png) - ##### Give the bigger picture Every event doesn't need to be commented. It's usually a good idea to comment a group of events as a whole to give the bigger picture. - ##### Pinpoint oddities -It can happen that you have no other choice but to use big formulas or use engine features in a smart but uncommon way. Comments are really important in these situations. - +It can happen that you have no other choice but to use big formulas or use engine features in a smart but uncommon way. Comments are really important in these situations. ##### Write a documentation page if necessary Sometimes words alone are not enough. If you feel diagrams will help, you can [submit a documentation page](/gdevelop5/community/contribute-to-the-wiki) for your example and add a link in a comment. - ##### Keep simple colors You can change the color of the comments according to its use (for example, green for a tip, orange for a warning). Otherwise, just keep the default color. - -#### Resources - -- Remove unused resources from both the [resource manager](/gdevelop5/interface/project-manager/resources) and then from the project folder - -- It is recommended to add all the resources in a folder called `assets`, and add sub-folders according to the use of the assets (GUI, Player, Power-ups) if needed. -- The images should not be too large (2000x2000 is a maximum). -- You will have to confirm that this example and all of its resources can be integrated to the GitHub repository (where all the example are stored), distributed and MIT licensed. - - -#### Keep everything clean +#### Keep a project clean - Remove any unnecessary scenes, external events, external layouts - Remove unused variables +- Remove unused resources from both the [resource manager](/gdevelop5/interface/project-manager/resources) and then from the project folder +- The images should not be too large (2000x2000 is a maximum). +- It is recommended to add all the resources in a folder called `assets`, and add sub-folders according to the use of the assets (GUI, Player, Power-ups) if needed. - Remove unused resources, images, sounds, fonts, from the project folder - Remove any unnecessary events from the event sheet - #### Projects folder -- the `.json` file and the project folder's name should be renamed to the example's name, with `-` instead of spaces. For example: an example with `Not a vania` as name should have `not-a-vania` as its folder name and its `.json` filename. +- The `.json` file and the project folder's name should be renamed to the example's name, with `-` instead of spaces. For example: an example with `Not a vania` as name should have `not-a-vania` as its folder name and its `.json` filename. - The project should not be using multiple files for saving (using a single JSON file). -- The project should have a `README.md` file with a text describing the example (see *Submitting examples* section for more information). - +- The project should have a `README.md` file with a text describing the example. -#### Project Properties +#### Project properties - The project properties should be properly filled out. -- *Project Name* The project name should be the example name. -- *Package Name* The package name should follow `com.example.`. In PascalCase, e.g: `com.example.RotateSprite` -- *Version* The version that is added to the library (after review) should be `1.0.0`, and incremented as changes are added after it's added. -- *Author* is your username. An account will have to be registered and a proper username will be needed to be able to add the username. Type the username and pick the username from the drop-down menu +- _Project Name_ The project name should be the example name. +- _Package Name_ The package name should follow `com.example.`. In PascalCase, e.g: `com.example.RotateSprite` +- _Version_ The version that is added to the library (after review) should be `1.0.0`, and incremented as changes are added after it's added. +- _Author_ is your username. An account will have to be registered and a proper username will be needed to be able to add the username. Type the username and pick the username from the drop-down menu +##### Game resolution -##### Game Resolution +- Game resolution shouldn't exceed **1920x1080** so that the example can run on all devices without any performance issues . +- If the example uses pixel art with small assets, "nearest neighbor" rendering is recommended. - - Game resolution shouldn't exceed **1920x1080** so that the example can run on all devices without any performance issues . - - If the example uses pixel art with small assets, "nearest neighbor" rendering is recommended. +## Submitting the game +### Paid game template -## Thumbnail and example description +Open your game in GDevelop, do a Save As in a new folder, then zip the folder containing the game, the resources, and send them to the GDevelop team with **[this form to publish on the GDevelop's store](https://forms.gle/rqQajpDWEF3Em8HS6)**. -- You can include a `thumbnail.png` which is the icon for the example and will be shown in the examples library -- The project folder should include a `README.md` file that has a description of the example. - You can create a `.md` file by opening any text editor (like Notepad on Windows), writing the description and saving the files with the name `README.md`. -- Both the thumbnail and the Readme.md file should be in the main folder and not in any sub-folders. +### Free game template +Open your game in GDevelop, do a Save As in a new folder, then zip the folder containing the game, the resources, and send them to the GDevelop team with these additional files and informations: + +- Get a thumbnail: + + - Must be 16:9, `1280x720` or `1920x1080`. + - File format in `.png`. + - Must be named: `thumbnail.png`. + +- Get a description: + + - Must be an inline description that represent the game shortly. + - File format in `.md`. + - Must be named: `readme.md`. + +!!! note -## Submitting the example + Both the thumbnail and the Readme.md file should be in the main folder and not in any sub-folders. -You can submit the example to the [Example repository](https://github.com/GDevelopApp/GDevelop-examples/issues) as an issue. +Then you can submit your free example directly to the [Example repository](https://github.com/GDevelopApp/GDevelop-examples/issues) as an issue. - - Go to the site, - - Click The Green **New Issue** button: +- Go to the site, +- Click The Green **New Issue** button: ![](newissuegithub.png) - - A option to select issue template will be shown, click **New Example**: +- A option to select issue template will be shown, click **New Example**: ![](example-templategithub.png) - - You will get a text box where you can write the "issue" which is where you can upload the project file (as a `zip` file) and add a proper description about it. - - Change the title to the example's name. +- You will get a text box where you can write the "issue" which is where you can upload the project file (as a `zip` file) and add a proper description about it. +- Change the title to the example's name. ![](github-example-submission-title.png) - - Under `## Describe the example` in the textbox, add a proper description about the example, feel free to add any screenshots. - - You will also be given a checklist of what is necessary. If you have done them, add `x` in the in brackets against each checklist. +- Under `## Describe the example` in the textbox, add a proper description about the example, feel free to add any screenshots. +- You will also be given a checklist of what is necessary. If you have done them, add `x` in the in brackets against each checklist. - ``` - - [ ] My Game has a proper name in the game properties. - - [ ] My Game package name begins with 'com.examples'. - - [ ] My Game has all events unfolded. - - [ ] I've added myself as the author in the game properties. - - [ ] I've included a file called 'README.md' with a description in proper English, explaining what this example is doing. - - [ ] I confirm that this game and all its resources can be integrated to this Github repository, distributed and MIT licensed. - - [ ] I've cleaned unused resources in the project. - ``` +``` +- [ ] My Game has a proper name in the game properties. +- [ ] My Game package name begins with 'com.examples'. +- [ ] My Game has all events unfolded. +- [ ] I've added myself as the author in the game properties. +- [ ] I've included a file called 'README.md' with a description in proper English, explaining what this example is doing. +- [ ] I confirm that this game and all its resources can be integrated to this Github repository, distributed and MIT licensed. +- [ ] I've cleaned unused resources in the project. +``` - - Under `## Game folder`, add a zip of your project and drag and drop it into the text box. - - Now click `Submit Issue`. +- Under `## Game folder`, add a zip of your project and drag and drop it into the text box. +- Now click `Submit Issue`. ![](github-submit-issue.png) @@ -209,5 +198,4 @@ Congratulations! Now your example has been submitted, but it won't be directly a !!! warning - There is no guarantee that your example will be accepted, it can be rejected if the example is not suitable - for the library. Also remember that while it's hard to get some feedback, reviewers are asking for changes because they believe this will improve your example. Try to rework the example using their feedback! Once you think it's good enough, you can ask for another review or discuss points where you might disagree. + There is no guarantee that your example will be accepted, it can be rejected if the example is not for the library. Also remember that while it's hard to get some feedback, reviewers are asking for changes because they believe this will improve your example. Try to rework the example using their feedback! Once you think it's good enough, you can ask for another review or discuss points where you might disagree. diff --git a/docs/gdevelop5/community/index.md b/docs/gdevelop5/community/index.md index 74183ce612..52f6289e08 100644 --- a/docs/gdevelop5/community/index.md +++ b/docs/gdevelop5/community/index.md @@ -1,5 +1,6 @@ --- title: GDevelop community +icon: material/account-group --- # GDevelop community diff --git a/docs/gdevelop5/community/sell-asset-pack-store/index.md b/docs/gdevelop5/community/sell-asset-pack-store/index.md index 1f7368e2b5..78147c9d64 100644 --- a/docs/gdevelop5/community/sell-asset-pack-store/index.md +++ b/docs/gdevelop5/community/sell-asset-pack-store/index.md @@ -1,125 +1,115 @@ --- title: Selling assets on GDevelop's Asset Store --- + # Selling assets on GDevelop's Asset Store -GDevelop has its own built-in asset store, allowing game creators to access game art directly on the app. -By providing easy-to-use and high-quality assets we're allowing creators to get a head start on their video game creation journey. +GDevelop has its own built-in asset store, allowing game creators to access game art and game templates directly within the app. +By providing easy-to-use and high-quality assets, we're enabling creators to get a head start on their video game creation journey. ![](asset-store.png) -It contains 2 types of asset packs: - -- **Free** to use art, accessible to anyone, royalty-free, and open for any type of modification -- **Premium art**, carefully selected by the GDevelop team for a more unique game style - -This page provides information on how to sell your assets on GDevelop's Asset Store. You can also directly **[open this form to sell premium assets on GDevelop's store](https://forms.gle/rqQajpDWEF3Em8HS6)**. -If we've already contacted us or want to know more, just keep reading! +To become a seller you will be required to: +1. Agree to revenue sharing. +2. Choose for your pack: a title, a description, a price (free or paid), and a license. +3. Produce a thumbnail image in 16:9 format. +4. Produce between 1 and 10 images (or audio) representing the content of the pack. +5. Integrate your assets into a GDevelop project or export valid files for the store. +6. Send us your files. -## Asset Pack pricing - -The price of every asset pack is defined by its creator. -Nevertheless, if the core team thinks that the price of a creator is either too high or too low compared to the average price on the Asset Store, a member of the core team will reach out to the creator to let them know. -It is the creator's decision to keep their original price, or if they prefer to adjust it to the market before making it public for purchase. -!!! note - - Please note that if you would like to change the price of the pack afterwards, you will have to get in touch with us. +Read on to learn more about revenue sharing, transactions, and other agreements to know before becoming a seller. ## Revenue sharing -When an asset pack is sold on GDevelop's Asset Store, the purchase is distributed as follows: 27% for government taxes (VAT) and payment provider fees, 40% for the Asset creator, and 33% for GDevelop. - ![](revenue-sharing.png) - -!!! tip - - Earnings from GDevelop paying services (including [premium licenses](https://gdevelop.io/pricing)) are re-invested in internet hosting fees, engine development, product research, and feature development. +When an asset is sold on GDevelop's Asset Store, the purchase is distributed as follows: 40% for the Asset creator, 33% for GDevelop, and 27% for government taxes (VAT) and payment provider fees. Note that: -- The VAT and payment providers fees might amount to something larger than 27%. In this case, **you still keep 40%** and it's us, GDevelop, *who will have our margin reduced*. -- A cut of 33% might sound a bit higher than some other stores - but when these stores expressed their percent, they don't mention VAT. So the real percent you are earning is less than what they advertise. For example, if a store says they takes 30%, it does not include the VAT and payment process fee, so you will earn way less than 70% (probably something between 25% and 45% of the total price after VAT and additional fees). -- An interesting feature of the GDevelop asset store is that it gives **ready-to-use objects** for creator games. This means the value someone is getting when buying an asset in GDevelop is higher: they get something we prepared as an object ready to be used (no manual work is involved). +- The VAT and payment providers' fees might amount to something larger than 27%. In this case, **you still keep 40%**, and it's us, GDevelop, who will have our margin reduced. +- A cut of 33% might sound a bit higher than some other stores - but other stores express their percentage without mentioning VAT. So the real percentage you are earning is less than what they advertise. For example, if a store says they take 30%, it does not include the VAT and payment process fee, so you will earn way less than 70% (probably something between 25% and 45% of the total price after VAT and additional fees). +- An interesting feature of the GDevelop asset store is that it gives **ready-to-use objects** for creators' games. This means the value someone gets when buying an asset in GDevelop is higher: they receive something we prepared as an object ready to be used (no manual work is involved). -## Discounts and coupons (coming soon) +!!! note -Momentary discounts and single-purchase coupons will be available for creators. -The following rules apply to prevent marketplace abuse: + Earnings from GDevelop paying services (including [premium licenses](https://gdevelop.io/pricing)) are reinvested in internet hosting fees, engine development, product research, and feature development. - - Discounts and coupons will be valid for a maximum of 31 days, after which they'll automatically expire. - - Coupons will only be valid to purchase assets from the creator that released the coupon. - - Only one coupon can be applied to a single asset pack purchase. -Creators will always have the choice to participate (or not) in GDevelop discounts like "Black Fridays" or "Cyber Mondays", as well as the packs that they'll make available for those events. +## The pricing -## Creator tips (coming soon) +Products on the store can be: -Purchasers will be available to "tip" creators during checkout. -After Stripe's service fee, the amount donated by the buyer will go straight to the creator. -GDevelop chooses to not take any fee or cut from the creator's tips. +- **Free**: These assets are accessible to anyone, royalty-free, and open for any type of modification. +- **Paid**: These assets are of higher quality and are carefully selected by the GDevelop team for a more unique game style. -## Commissions +Setting the right price for your work is important. A lower price reduces your revenue share, while a higher price may lead to fewer sales. Check some products on the Asset Store to understand current pricing. -As a creator, you might receive requests for commissions. For instance a user that purchased a pack from you needs additional objects for their project and would like you to create those assets. +If your price is significantly above or below the average, the GDevelop team may contact you to suggest an adjustment. -Through your Stripe account, you will be able to create invoices for customers and use Stripe's checkout interface to receive your payment. -We will soon provide a guide for that purpose. +!!! note -## Transaction Management + Please note that if you would like to change the price of the pack afterward, you will have to get in touch with us. -GDevelop uses Stripe's Marketplace in order to handle payments. -In order to be eligible to sell Asset Packs on the app, you'll need: +## The license(s) - * To be older than 13 years old - * A valid email - * An address in your country of residence - * A bank account in your country of residence +We suggest these licenses for your assets: -Once your assets have been accepted, GDevelop's team will create a Stripe account for you. -You will have to complete your registration with your email address, home address, full name, and bank details. Once you've filled in this information, your Stripe account will be up and running with a purchases dashboard, where you'll be able to follow all your transactions. -Payments to your bank account can be scheduled directly on Stripe to happen on a daily basis. +- **Free**: [CC0](https://creativecommons.org/public-domain/cc0/), [MIT licensed](https://en.wikipedia.org/wiki/MIT_License) or [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/). +- **Paid**: Assets are covered by the [Asset Store License Agreement](https://gdevelop.io/page/asset-store-license-agreement). -!!! tip +!!! warning - According to [Stripe's terms and conditions](https://support.stripe.com/questions/age-requirement-to-create-a-stripe-account), users under 18 years old will need the permission of a legal tutor to withdraw their earnings. + You have to own the rights to your assets. If an asset is flagged for infringing copyright after being accepted and uploaded to the store, we reserve the right to remove the entire pack or the asset and cancel all purchases that have been processed for it. -## Invoices management +## Invoice management GDevelop's Asset Store is built as a marketplace: GDevelop hosts a digital solution that allows users to sell their products (sellers) to users that would like to use them in their projects (buyers). Here is what happens when a buyer purchases a product on the asset store: -* GDevelop buys the product from the seller -* GDevelop resells it to the buyer +- GDevelop buys the product from the seller. +- GDevelop resells it to the buyer. From the accounting point of view, the seller should create an invoice addressed to GDevelop. -To avoid obliging sellers to create such invoices, GDevelop will create self-billing invoices that you will be able to retrieve. +To avoid obliging sellers to create such invoices, GDevelop will create self-billing invoices that you will be able to retrieve with Stripe. As a seller, by selling your products on GDevelop's Asset Store, you accept that GDevelop creates self-billing invoices for each purchase of your products. -## Asset Pack storage and safety +## Transaction management -All Asset Packs are safely stored on GDevelop's cloud. -This way we ensure that the files are available for instant purchase and in-app use. -Every asset pack has to be uploaded and submitted following [GDevelop's art submission standards](https://wiki.gdevelop.io/gdevelop5/community/contribute-to-the-assets-store) -. -## Submitting premium assets +Every few months or when you have a significant number of sales, payments are sent to you through Stripe or [Tremendous](https://www.tremendous.com/catalog/). -First and foremost, we want to ensure the Asset Store remains a place of high quality and safe for everyone's use. -Thus, every asset creator must go through a selection process. -If you're an artist and wish to submit your assets to the store, contact us and make sure to send the following information: +- **Stripe:** Recommended for professionals and most EU countries. With Stripe, you’ll get access to a dashboard where you can view your transactions and invoices. The GDevelop team will create a Stripe vendor account for you. To activate it, you’ll need to complete your registration by providing your email address, home address, full name, and bank details. Once set up, you’ll be able to track all your transactions through the dashboard. Payouts to your bank account can be scheduled directly from Stripe, with daily transfers available. - * Name - * Country of residence - * Link to your premium pack for revision - * An introduction about who you are, and what inspired you to create that pack +- **Tremendous:** You will receive an email with a private link to claim your gift card or Virtual Visa Card. -For this, use **[this form to sell premium assets on GDevelop's store](https://forms.gle/rqQajpDWEF3Em8HS6)**. Thank you! +GDevelop issues invoices. To do this, and to be eligible to sell on the Asset Store, we require the following: +- Your full name. +- Email address. +- An address in your country of residence. +- Bank details (Stripe only) +- You need to be older than 13 years old. (According to [Stripe's terms and conditions](https://support.stripe.com/questions/age-requirement-to-create-a-stripe-account) users under 18 years old will need the permission of a legal guardian to withdraw their earnings.) -## Disclaimer +See the table below to check if your country is eligible. If your country is not on the list, please reach out to us so we can verify and let you know. -!!! warning +| Provider(s) | Country | +| ----------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Stripe | Estonia, Finland, Croatia, Cyprus, Australia, Belgium, Bulgaria, Czech Republic, Denmark, France, Germany, Gibraltar, Greece, Hungary, Ireland, Italy, Liechtenstein, Lithuania, Luxembourg, Malta, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Switzerland, United Kingdom. | +| Tremendous | Albania, Algeria, American Samoa, Andorra, Angola, Anguilla, Antarctica, Antigua and Barbuda, Argentina, Armenia, Aruba, Austria, Azerbaijan, Bahamas, Bahrain, Bangladesh, Barbados, Belize, Benin, Bermuda, Bhutan, Bolivia, Bonaire, Bosnia and Herzegovina, Botswana, Bouvet Island, Brazil, British Indian Ocean Territory, British Virgin Islands, Brunei Darussalam, Burkina Faso, Burundi, Cambodia, Cameroon, Canada, Cape Verde, Cayman Islands, Chad, Chile, Christmas Island, Cocos (Keeling) Islands, Colombia, Comoros, Congo, Cook Islands, Costa Rica, Cote d'Ivoire, Curacao, Djibouti, Dominica, Dominican Republic, East Timor, Ecuador, Egypt, El Salvador, Equatorial Guinea, Eritrea, Eswatini, Falkland Islands (Malvinas), Faroe Islands, Fiji, French Guiana, French Polynesia, French Southern Territories, Gabon, Gambia, Georgia, Ghana, Greenland, Grenada, Guadeloupe, Guam, Guatemala, Guernsey, Guinea, Guinea-Bissau, Guyana, Haiti, Heard Island and McDonald Islands, Honduras, Iceland, Isle of Man, Israel, Jamaica, Japan, Jersey, Jordan, Kazakhstan, Kenya, Kiribati, Kuwait, Kyrgyzstan, Laos, Latvia, Lesotho, Liberia, Macao, Madagascar, Malawi, Maldives, Marshall Islands, Martinique, Mauritania, Mauritius, Mayotte, Mexico, Micronesia, Moldova, Monaco, Mongolia, Montenegro, Montserrat, Morocco, Mozambique, Namibia, Nauru, Nepal, Netherlands, New Caledonia, New Zealand, Niger, Nigeria, Niue, Norfolk Island, North Macedonia, Northern Mariana Islands, Oman, Pakistan, Palau, Palestine, Panama, Paraguay, Peru, Pitcairn, Puerto Rico, Qatar, Reunion, Rwanda, Saint Barthelemy, Saint Helena, Saint Kitts and Nevis, Saint Lucia, Saint Martin (French part), Saint Pierre and Miquelon, Saint Vincent and the Grenadines, Samoa, San Marino, Sao Tome and Principe, Saudi Arabia, Senegal, Serbia, Seychelles, Sierra Leone, Singapore, Sint Maarten (Dutch part), Solomon Islands, South Africa, South Georgia and the South Sandwich Islands, South Korea, Sri Lanka, Suriname, Svalbard and Jan Mayen, Taiwan, Tajikistan, Tanzania, Togo, Tokelau, Tonga, Trinidad and Tobago, Tunisia, Turkey, Turkmenistan, Turks and Caicos Islands, Tuvalu, United Arab Emirates, United States, United States Minor Outlying Islands, Uruguay, US Virgin Islands, Uzbekistan, Vatican City, Vietnam, Wallis and Futuna, Western Sahara, Zambia, Estonia, Finland, Croatia, Cyprus, Australia, Belgium, Bulgaria, Czech Republic, Denmark, France, Germany, Gibraltar, Greece, Hungary, Ireland, Italy, Liechtenstein, Lithuania, Luxembourg, Malta, Norway, Poland, Portugal, Romania, Slovakia, Slovenia, Spain, Sweden, Switzerland, United Kingdom. | + +## Asset Pack Storage and Safety + +All Asset Packs are safely stored on GDevelop's cloud. +This way, we ensure that the files are available for instant purchase and in-app use. + +## Submitting on the Asset Store + +First and foremost, we want to ensure the Asset Store remains a place of high quality and is safe for everyone to use. Assets must be fully functional within the game engine to be eligible for the Asset Store. + +Follow the guide that applies to your submission: + +[Submitting an asset pack](/gdevelop5/community/contribute-to-the-assets-store/){ .md-button .md-button--primary } - If an asset is flagged for infringing copyright after being accepted and uploaded to the store, we reserve the right to remove it and cancel all purchases that have been processed for it. \ No newline at end of file +[Submitting a game template](/gdevelop5/community/guide-for-submitting-an-example/){ .md-button .md-button--primary } diff --git a/docs/gdevelop5/community/sell-asset-pack-store/revenue-sharing.png b/docs/gdevelop5/community/sell-asset-pack-store/revenue-sharing.png index 3d4bf70b47..44fdd41a89 100644 Binary files a/docs/gdevelop5/community/sell-asset-pack-store/revenue-sharing.png and b/docs/gdevelop5/community/sell-asset-pack-store/revenue-sharing.png differ diff --git a/docs/gdevelop5/draft/schools.md b/docs/gdevelop5/draft/schools.md deleted file mode 100644 index 36e9eae82f..0000000000 --- a/docs/gdevelop5/draft/schools.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: schools ---- -GDevelop requires an internet connection to access services such as: exporting a game, games examples, tutorials, cloud saves etc. See below for a list of domains that need to be whitelisted for the services to work fully. - -# Domains to be allowed for GDevelop app & services to function correctly. - -If you can, allow the main domain ``*.gdevelop.io``. Then other domains can be called such as: - - *.gdevelop.io - *.liluo.io - *.gd.games - *.gdevelop-app.com - *.compilgames.net - *.github.com - *.cloudfront.net - *.googleapis.com - gdevelop-services.firebaseapp.com - gdevelop-services.firebaseio.com - gdevelop-services.appspot.com diff --git a/docs/gdevelop5/education/index.md b/docs/gdevelop5/education/index.md index 3dbaea7145..62b2055625 100644 --- a/docs/gdevelop5/education/index.md +++ b/docs/gdevelop5/education/index.md @@ -1,5 +1,6 @@ --- title: GDevelop for Education +icon: material/human-male-board --- # GDevelop for Education @@ -12,7 +13,7 @@ You can read more about [all the benefits that GDevelop and game creation can br The GDevelop for Education plan gives access to **a curriculum designed by the GDevelop team and by teachers**. It includes multiple ready-to-teach lessons that cover game development theory and step-by-step practical lessons to create full games. -Once you've purchased the GDevelop for Education plan, these curriculum and extra educational resources are accessible from the Classroom tab, visible for teachers. +Once you've purchased the GDevelop for Education plan, these curriculum and extra educational resources are accessible from the Teach tab, visible for teachers. ## Getting the Education plan @@ -26,11 +27,11 @@ For instance with 10 seats you can have: ## Teacher accounts: managing students and their work -Besides teaching resources, teacher accounts gain access to the Classrooms tab on GDevelop's homepage. +Besides teaching resources, teacher accounts gain access to the Teach tab on GDevelop's homepage. In this tab, they can view all the student accounts linked to the plan. The student accounts can be sorted into Rooms for a better organization between teachers: -![The Classroom Tab to handle students](./classroom-tab.png) +![The Teach Tab to handle students](./classroom-tab.png) A teacher has access to the projects made by each student. They can open them in a read-only mode. This is useful for: @@ -39,7 +40,7 @@ A teacher has access to the projects made by each student. They can open them in ## Student accounts: optimized for learning -Student accounts are fully anonymized accounts which can be administrated by teachers. The credentials for those accounts (disposable email address + password) are accessible to teachers from the "Manage Seats" page, available through the Classrooms tab: +Student accounts are fully anonymized accounts which can be administrated by teachers. The credentials for those accounts (disposable email address + password) are accessible to teachers from the "Manage Seats" page, available through the Teach tab: ![The "Manage Seats" page for education](./manage-edu-seats.png) @@ -59,7 +60,14 @@ Student accounts also have access to the version history feature for Cloud proje ## Manage seats -From the "Manage Seats" page, it is possible to administrate your plan. +From the "Manage Seats" page, it is possible to administrate your plan and student accounts. + +### Set or change a student full name + +By default, a student account is fully anonymous (the email and passwords are auto-generated). +If you have a lot of students, you can set for each account a full name (for example, the first and/or last name of a student). + +Click on the "Edit" icon next to the student account username to change it. It will then be displayed next to the username. ### Change account password @@ -81,7 +89,7 @@ Teacher accounts have the same rights as the main account but cannot unsubscribe ### Add, archive and restore student accounts -Once you've purchased GDevelop for Education, head to the classroom tab and click on "Manage Seats" to start creating accounts for your students. +Once you've purchased GDevelop for Education, head to the Teach tab and click on "Manage Seats" to start creating accounts for your students. Using this field, create multiple student accounts at once: @@ -104,3 +112,11 @@ Here is the recommended way of managing student accounts: !!! tip It is possible to activate again a student account that was disabled (for example, in the case of a student joining again your class), but you have to wait 15 days before you can restore them after disabling them. + +## Cancel your subscription + +The main teacher account is the account that holds the subscription. + +To cancel it, log in to GDevelop with this account, go to "My profile", click "Manage subscription" and finally click on "Cancel subscription". + +Your subscription will be still available until the end of the current period (the month or the year depending which period you chose when subscribing). diff --git a/docs/gdevelop5/all-features/expressions/index.md b/docs/gdevelop5/events/expressions/index.md similarity index 99% rename from docs/gdevelop5/all-features/expressions/index.md rename to docs/gdevelop5/events/expressions/index.md index 5c25162330..83ba77254a 100644 --- a/docs/gdevelop5/all-features/expressions/index.md +++ b/docs/gdevelop5/events/expressions/index.md @@ -21,7 +21,7 @@ These icons indicate that the field accepts an _expression_. An expression is a For a complete list of the function expressions that GDevelop provides out of the box, refer to [expressions reference](/gdevelop5/all-features/expressions-reference).
- +
## Numbers diff --git a/docs/gdevelop5/events/foreach/index.md b/docs/gdevelop5/events/foreach/index.md index 41818ba19d..0a5f7e20fa 100644 --- a/docs/gdevelop5/events/foreach/index.md +++ b/docs/gdevelop5/events/foreach/index.md @@ -20,7 +20,7 @@ Most of the time, a "For Each" event is not required because conditions and acti !!! warning - [Trigger once](/gdevelop5/all-features/advanced-conditions/#trigger-once) conditions are not checked per instance. Within a "for each" event, [object variables](/gdevelop5/all-features/variables/object-variables/) must be used to follow the state of object instances one by one. + [Trigger once](/gdevelop5/all-features/advanced-conditions/trigger-once) conditions are not checked per instance. Within a "for each" event, [object variables](/gdevelop5/all-features/variables/object-variables/) must be used to follow the state of object instances one by one. There are specific circumstances that do require using a "For Each" event, including: diff --git a/docs/gdevelop5/events/functions/.pages b/docs/gdevelop5/events/functions/.pages new file mode 100644 index 0000000000..41b809dd30 --- /dev/null +++ b/docs/gdevelop5/events/functions/.pages @@ -0,0 +1,4 @@ +nav: + - "Extract Events to a Function": extract-events + - "Example of replacing external events by a function": replace-external-events + - ... diff --git a/docs/gdevelop5/events/functions/asynchronous-functions/async-function-call.png b/docs/gdevelop5/events/functions/asynchronous-functions/async-function-call.png new file mode 100644 index 0000000000..50236e89c7 Binary files /dev/null and b/docs/gdevelop5/events/functions/asynchronous-functions/async-function-call.png differ diff --git a/docs/gdevelop5/events/functions/asynchronous-functions/async-function-events.png b/docs/gdevelop5/events/functions/asynchronous-functions/async-function-events.png new file mode 100644 index 0000000000..b10455365a Binary files /dev/null and b/docs/gdevelop5/events/functions/asynchronous-functions/async-function-events.png differ diff --git a/docs/gdevelop5/events/functions/asynchronous-functions/end-action.png b/docs/gdevelop5/events/functions/asynchronous-functions/end-action.png new file mode 100644 index 0000000000..c72b76983b Binary files /dev/null and b/docs/gdevelop5/events/functions/asynchronous-functions/end-action.png differ diff --git a/docs/gdevelop5/events/functions/asynchronous-functions/index.md b/docs/gdevelop5/events/functions/asynchronous-functions/index.md new file mode 100644 index 0000000000..b52057f87f --- /dev/null +++ b/docs/gdevelop5/events/functions/asynchronous-functions/index.md @@ -0,0 +1,33 @@ +--- +title: Asynchronous functions +--- +# Asynchronous functions + +Some actions like web requests can take a lot of time and you don't want your game to freeze until the server respond. This is why they are asynchronous. It allows: +- to let the game continue +- to have the actions under it to run once the asynchronous action ends. + +## Use asynchronous functions in scene events + +For instance, in the following example, the loader is hidden back when the response is received. You can notice the icon with the 2 blue arrows. It means this action is asynchronous. + +![](async-function-call.png) + +## Write custom asynchronous functions + +Custom asynchronous functions use either built-in asynchronous actions or other custom asynchronous functions. + +![](async-function-events.png) + +Don't forget to use the action "End asynchronous function" to mark the end of the action. Otherwise, the actions which follow your function in the scene events will never be executed. + +![](end-action.png) + +!!! note + + The full example which contains an asynchronous function with events or JavaScript can be open is accessible online ([Open the example in GDevelop](https://editor.gdevelop.io/?project=example://parse-json-from-api)). + + +### Use time-based actions in asynchronous functions + +Some actions trigger something for a given duration, for instance [tweens](/gdevelop5/behaviors/tween/) or [sprite](/gdevelop5/objects/sprite/) animations. You may be tempted to use them in an asynchronous function but they are not asynchronous actions. Thanks fully, since you know how much time the animations last, you can use the [wait action](/gdevelop5/all-features/timers-and-time/wait-action/) to wait for them to finish and even schedule them to start at different times. \ No newline at end of file diff --git a/docs/gdevelop5/events/functions/call-function-snap-grid.png b/docs/gdevelop5/events/functions/call-function-snap-grid.png deleted file mode 100644 index 0c71c8a82f..0000000000 Binary files a/docs/gdevelop5/events/functions/call-function-snap-grid.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/empty-extension.png b/docs/gdevelop5/events/functions/empty-extension.png new file mode 100644 index 0000000000..f0eb20596a Binary files /dev/null and b/docs/gdevelop5/events/functions/empty-extension.png differ diff --git a/docs/gdevelop5/events/functions/extension-name-and-function-name.png b/docs/gdevelop5/events/functions/extension-name-and-function-name.png deleted file mode 100644 index 3327290512..0000000000 Binary files a/docs/gdevelop5/events/functions/extension-name-and-function-name.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/external-events-include-snap-grid.png b/docs/gdevelop5/events/functions/external-events-include-snap-grid.png deleted file mode 100644 index a4c0b400db..0000000000 Binary files a/docs/gdevelop5/events/functions/external-events-include-snap-grid.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/external-events-snap-grid.png b/docs/gdevelop5/events/functions/external-events-snap-grid.png deleted file mode 100644 index 3cf4f9853d..0000000000 Binary files a/docs/gdevelop5/events/functions/external-events-snap-grid.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/extract-events/extension-name-and-function-name.png b/docs/gdevelop5/events/functions/extract-events/extension-name-and-function-name.png new file mode 100644 index 0000000000..b753e8dcb9 Binary files /dev/null and b/docs/gdevelop5/events/functions/extract-events/extension-name-and-function-name.png differ diff --git a/docs/gdevelop5/events/functions/extract-events/function-parameters-setup.png b/docs/gdevelop5/events/functions/extract-events/function-parameters-setup.png new file mode 100644 index 0000000000..83ddbbffd4 Binary files /dev/null and b/docs/gdevelop5/events/functions/extract-events/function-parameters-setup.png differ diff --git a/docs/gdevelop5/events/functions/extract-events/function-setup.png b/docs/gdevelop5/events/functions/extract-events/function-setup.png new file mode 100644 index 0000000000..ad2ee8ca88 Binary files /dev/null and b/docs/gdevelop5/events/functions/extract-events/function-setup.png differ diff --git a/docs/gdevelop5/events/functions/extract-events/function-used-as-action.png b/docs/gdevelop5/events/functions/extract-events/function-used-as-action.png new file mode 100644 index 0000000000..295cbe4bec Binary files /dev/null and b/docs/gdevelop5/events/functions/extract-events/function-used-as-action.png differ diff --git a/docs/gdevelop5/events/functions/extract-events.md b/docs/gdevelop5/events/functions/extract-events/index.md similarity index 100% rename from docs/gdevelop5/events/functions/extract-events.md rename to docs/gdevelop5/events/functions/extract-events/index.md diff --git a/docs/gdevelop5/events/functions/function-parameters-setup.png b/docs/gdevelop5/events/functions/function-parameters-setup.png deleted file mode 100644 index 6cb1b95210..0000000000 Binary files a/docs/gdevelop5/events/functions/function-parameters-setup.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/function-setup.png b/docs/gdevelop5/events/functions/function-setup.png deleted file mode 100644 index 06808fc943..0000000000 Binary files a/docs/gdevelop5/events/functions/function-setup.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/function-snap-grid.png b/docs/gdevelop5/events/functions/function-snap-grid.png deleted file mode 100644 index 4a29548066..0000000000 Binary files a/docs/gdevelop5/events/functions/function-snap-grid.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/function-used-as-action.png b/docs/gdevelop5/events/functions/function-used-as-action.png deleted file mode 100644 index 3604bf3577..0000000000 Binary files a/docs/gdevelop5/events/functions/function-used-as-action.png and /dev/null differ diff --git a/docs/gdevelop5/events/functions/index.md b/docs/gdevelop5/events/functions/index.md index c774d97480..4d45c15a3c 100644 --- a/docs/gdevelop5/events/functions/index.md +++ b/docs/gdevelop5/events/functions/index.md @@ -25,9 +25,9 @@ Functions are grouped into [extensions](/gdevelop5/extensions). They are the sam Click on **Create or search for new extensions** at the bottom. Then, select **Create a new extension** to [create a new extension](/gdevelop5/extensions/create). -By default, extensions don't have any function. Add one by clicking on **Add a new function** on the left. +By default, extensions don't have any function. Add one by clicking on the "+" button on the left next to **Functions**. -![](pasted/20221118-093435.png) +![](empty-extension.png) A new function is added, it's time to give it a name. By convention: @@ -79,9 +79,11 @@ Conditions and actions from behaviors can also be used in functions events. For #### Use parameter values -A number, string and boolean parameter values can be compared with conditions. +Number, string and boolean parameters can be compared with the same conditions as global and scene [variables](/gdevelop5/all-features/variables). -![](functionn-parameter-condition.png) +!!! note + + Parameter values can't be changed with actions. If you want to give back a value to scene events, you have to create a [custom expression](#return-a-value-from-a-function). Parameters can also be used directly in expressions by writing their name. For instance, a parameter called "ScoreToMultiply" can be used the following: `2 * ScoreToMultiply`. @@ -109,12 +111,11 @@ Function that are conditions or expressions must return a value. The returned va ### Use variables from function events -Variable can be useful within functions for intermediary results or to keep a state in the extension. -From function events, expressions must be used to access variable values: +Variables can be useful within functions for intermediary results or to keep a state in the extension. You can declare new [variables](/gdevelop5/all-features/variables) that are accessible only inside the extension by clicking on **Extension global variables** or **Extension scene variables**. -- `GlobalVariable(MyVariable)` for global variables -- `Variable(MyVariable)` for scene variables -- `MyObject.Variable(MyVariable)` for object variables +!!! tip + + If you feel the need to modify object variables, there is a good chance that you should rather make a [custom behavior](/gdevelop5/behaviors/events-based-behaviors/) and use properties. ## Use functions in events @@ -122,6 +123,18 @@ Extension functions can be found in conditions and actions lists like any other ![](pasted/20221118-094110.png) +## Write functions dedicated to your project + +You probably used extensions from the community. These extensions aim to be usable in many projects, but extensions can also be created with only one project in mind. + +The [platformer template](https://gdevelop.io/game-example/free/platformer) has a `Player` extension with a few functions. For instance, the function `AnimateFallingIntoPortal` uses a few actions to make an animation that is played at the end of the level. + +![](platformer-player-extension.png) + +Visual and sound effects can quickly take a lot of space. Making small functions like this allow to keep the scene events easy to follow. + +![](platformer-player-extension-usage.png) + ## Advanced usages This page gave a basic overview of what functions are. They are one of the more powerful features of GDevelop, as you can extend the events by using them, enabling to create very readable and concise events sheets. By using them, you can reduce the amounts of events that you write for your game, avoid copy-pasting them and even reduce bugs by ensuring that functions are always used for common tasks on your objects. diff --git a/docs/gdevelop5/events/functions/platformer-player-extension-usage.png b/docs/gdevelop5/events/functions/platformer-player-extension-usage.png new file mode 100644 index 0000000000..0e27960482 Binary files /dev/null and b/docs/gdevelop5/events/functions/platformer-player-extension-usage.png differ diff --git a/docs/gdevelop5/events/functions/platformer-player-extension.png b/docs/gdevelop5/events/functions/platformer-player-extension.png new file mode 100644 index 0000000000..451f6ac33d Binary files /dev/null and b/docs/gdevelop5/events/functions/platformer-player-extension.png differ diff --git a/docs/gdevelop5/events/functions/replace-external-events/call-function-snap-grid.png b/docs/gdevelop5/events/functions/replace-external-events/call-function-snap-grid.png new file mode 100644 index 0000000000..9bc23867a2 Binary files /dev/null and b/docs/gdevelop5/events/functions/replace-external-events/call-function-snap-grid.png differ diff --git a/docs/gdevelop5/events/functions/replace-external-events/external-events-include-snap-grid.png b/docs/gdevelop5/events/functions/replace-external-events/external-events-include-snap-grid.png new file mode 100644 index 0000000000..c7ebb1e8f5 Binary files /dev/null and b/docs/gdevelop5/events/functions/replace-external-events/external-events-include-snap-grid.png differ diff --git a/docs/gdevelop5/events/functions/replace-external-events/external-events-snap-grid.png b/docs/gdevelop5/events/functions/replace-external-events/external-events-snap-grid.png new file mode 100644 index 0000000000..c04501395d Binary files /dev/null and b/docs/gdevelop5/events/functions/replace-external-events/external-events-snap-grid.png differ diff --git a/docs/gdevelop5/events/functions/replace-external-events/function-snap-grid.png b/docs/gdevelop5/events/functions/replace-external-events/function-snap-grid.png new file mode 100644 index 0000000000..fbdc1968ac Binary files /dev/null and b/docs/gdevelop5/events/functions/replace-external-events/function-snap-grid.png differ diff --git a/docs/gdevelop5/events/functions/replace-external-events.md b/docs/gdevelop5/events/functions/replace-external-events/index.md similarity index 100% rename from docs/gdevelop5/events/functions/replace-external-events.md rename to docs/gdevelop5/events/functions/replace-external-events/index.md diff --git a/docs/gdevelop5/events/functions/pasted/20221118-093435.png b/docs/gdevelop5/events/functions/unused/20221118-093435.png similarity index 100% rename from docs/gdevelop5/events/functions/pasted/20221118-093435.png rename to docs/gdevelop5/events/functions/unused/20221118-093435.png diff --git a/docs/gdevelop5/events/functions/functionn-parameter-condition.png b/docs/gdevelop5/events/functions/unused/functionn-parameter-condition.png similarity index 100% rename from docs/gdevelop5/events/functions/functionn-parameter-condition.png rename to docs/gdevelop5/events/functions/unused/functionn-parameter-condition.png diff --git a/docs/gdevelop5/events/index.md b/docs/gdevelop5/events/index.md index 8118648e83..765b9a584d 100644 --- a/docs/gdevelop5/events/index.md +++ b/docs/gdevelop5/events/index.md @@ -1,25 +1,27 @@ --- title: Events +icon: material/lightning-bolt --- # Events -In GDevelop, **events** define the logic of a game. You can use events to create cause and effect. For example, an event might detect when the player has collided with a collectable item and, as a result, increment the player's score. You can create and manage events via the [Events editor](/gdevelop5/interface/events-editor). +In GDevelop, **events** define the logic of a game. You can use events to create cause and effect. For example, an event might detect when the player has collided with a collectible item and, as a result, increment the player's score. You can create and manage events via the [Events editor](/gdevelop5/interface/events-editor). ![](event-screenshot.png) !!! note - You don't have to be familiar with programming to create events. If you are familiar with programming though, some of the concepts will feel familiar. + You don't have to be familiar with programming to build your game with events. If you are familiar with programming, though, some of the concepts will feel familiar. + You can use [the GDevelop AI](/gdevelop5/interface/ai) to help you build your game, including the events running the game logic.
-## Event Structure - Conditions and actions +## Event structure - Conditions and actions Events are made up of **conditions** and **actions**. -**Conditions** are used to trigger when an action should happen and also select which objects or instances of an object are affected by the actions of the event. For instance, a condition can check when the player is colliding with another object. In this case, the actions in the event will only take place when the objects are touching each other and they will only affect the objects that are colliding. +**Conditions** are used to trigger when an action should happen and also select which objects or instances of an object are affected by the actions of the event. For instance, a condition can check when the player is colliding with another object. In this case, the actions in the event will only take place when the objects are touching each other and they will only affect the objects that are colliding. !!! note @@ -33,18 +35,18 @@ Events can have multiple conditions and multiple actions. For example, an event You can use events to create custom conditions, actions, and [expressions](/gdevelop5/all-features/expressions). For more information, refer to [Functions](/gdevelop5/events/functions). -## Event Execution Logic +## Event execution logic ### Execution order **Events** run in the order they are listed from top to bottom. The order of events can have a significant effect on what happens when an event is executed. -If an event is causing an unintended side-effect, verify that events listed higher in the event sheet aren't impacting events defined later in the frame. +If an event is causing an unintended side effect, verify that events listed higher in the event sheet aren't impacting events defined later in the frame. -### Object Picking +### Object picking -When a condition refers to objects, the game must decide which objects instances will be affected by any following actions and subevents. This process is called [object picking](/gdevelop5/events/object-picking). +When a condition refers to objects, the game must decide which object instances will be affected by any following actions and subevents. This process is called [object picking](/gdevelop5/events/object-picking). -By default, actions and conditions will apply to all instances of the object in the scene. Conditions (and a small number of actions) can then be used to "filter" (or "pick") which objects the following actions or conditions will apply to. +By default, actions and conditions will apply to all instances of the object in the scene. Conditions (and a small number of actions) can then be used to "filter" (or "pick") which objects the following actions or conditions will apply to. !!! note @@ -87,7 +89,7 @@ This action also increments a variable in every frame, but the value of the vari !!! tip - If you select the **Add an new empty event** icon, left click on the **Add a new event** shortcut link at the bottom of the event list, or click **Standard Event** in the **Choose and add an event** list above, GDevelop immediately creates a Standard event. Right-clicking the shortcut in the event list will show the list above, and choosing any special event type from either will will immediately create that event type + If you select the **Add a new empty event** icon, left-click on the **Add a new event** shortcut link at the bottom of the event list, or click **Standard Event** in the **Choose and add an event** list above, GDevelop immediately creates a Standard event. Right-clicking the shortcut in the event list will show the list above, and choosing any special event type from either will immediately create that event type. ### Adding conditions to an event @@ -124,7 +126,7 @@ Sub-events appear nested within their parent events. ## List of event types -This section lists the different types of events, each of which is useful for adding different types of logic to a game. If you're not familiar with the concept of events, refer to the previous sections. +This section lists the different types of events, each useful for adding logic to your game. If you're not familiar with events, refer to the previous sections. - [Standard events](/gdevelop5/events/standard) - [For each object events](/gdevelop5/events/foreach) @@ -140,4 +142,5 @@ Refer to the linked pages to learn more about each type of event. !!! note - The most commonly used types of events are **[Standard events](https://wiki.gdevelop.io/gdevelop5/events/standard)**. \ No newline at end of file + The most commonly used types of events are **[Standard events](https://wiki.gdevelop.io/gdevelop5/events/standard)**. + diff --git a/docs/gdevelop5/events/js-code/index.md b/docs/gdevelop5/events/js-code/index.md index c3907bc6c0..76534ffa5c 100644 --- a/docs/gdevelop5/events/js-code/index.md +++ b/docs/gdevelop5/events/js-code/index.md @@ -101,11 +101,15 @@ Equivalent events would be: By writing the **annotation** `/** @type {gdjs.XXX} */` just before the declaration of a variable in JavaScript, you let the code editor know that the variable has the type gdjs.XXX. The editor will be able to assist you by providing **autocompletion** while you type (or when you hover over a word). -Most of the time annotations are not needed. The methods that you are using are already setup with [type annotations](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/modules/gdjs.html). But when you use a list of objects, you may want to access this object specific method (for example, methods to modify the animation of a sprite object). In this case, you could write `/** @type {gdjs.SpriteRuntimeObject} */`. +Most of the time annotations are not needed. The methods that you are using are already setup with type annotations. But when you use a list of objects, you may want to access this object specific method (for example, methods to modify the animation of a sprite object). In this case, you could write `/** @type {gdjs.SpriteRuntimeObject} */`. -If you don't do this, the code will still work, but the editor will only be able to provide you with the methods of `gdjs.RuntimeObject` (the base class). +If you don't do this, the code will still work, but the editor will only be able to provide you with the methods of [gdjs.RuntimeObject](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.RuntimeObject.html) (the base class). -When you get the behavior from an object, you also know what kind of behavior you're getting. Let the editor know this using an annotation (otherwise, you'll only get autocompletion for the base class, `gdjs.RuntimeBehavior`). +When you get the behavior from an object, you also know what kind of behavior you're getting. Let the editor know this using an annotation (otherwise, you'll only get autocompletion for the base class, [gdjs.RuntimeBehavior](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.RuntimeBehavior.html)). + +!!! tip + + [gdjs.RuntimeObject](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.RuntimeObject.html) and [gdjs.RuntimeBehavior](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.RuntimeBehavior.html) pages give the list of all the objects and behaviors you can use in type annotations. ```javascript const players = runtimeScene.getObjects("Player"); diff --git a/docs/gdevelop5/events/js-code/javascript-in-extensions/extra-source-files.png b/docs/gdevelop5/events/js-code/javascript-in-extensions/extra-source-files.png new file mode 100644 index 0000000000..06644954e4 Binary files /dev/null and b/docs/gdevelop5/events/js-code/javascript-in-extensions/extra-source-files.png differ diff --git a/docs/gdevelop5/events/js-code/javascript-in-extensions/index.md b/docs/gdevelop5/events/js-code/javascript-in-extensions/index.md index 168d14d0f5..a6d629f139 100644 --- a/docs/gdevelop5/events/js-code/javascript-in-extensions/index.md +++ b/docs/gdevelop5/events/js-code/javascript-in-extensions/index.md @@ -7,7 +7,7 @@ title: Use JavaScript in extensions After [creating a new extension](/gdevelop5/extensions/create/), you need to define an action with a [JS event](/gdevelop5/events/js-code/) to declare the library code. -In order to get the library code, you can copy the content of a bundled library for instance a UMD one. You can usually find bundled libraries in the **node_modules** folder of a JS project after the installation of the library with a packet manager. +In order to get the library code, you can copy the content of a bundled library for instance a UMD one. You can usually find bundled libraries in the **node_modules** folder of a JS project after the installation of the library with a package manager. Bundled libraries have some extra code at the beginning and the end of the file to bundle the library. This code is not needed. Instead, the classes are added to the `gdjs` namespace like in the following code: @@ -111,7 +111,7 @@ for (const player of players) { After getting the events function parameter values, you can pass them to a JavaScript function. -#### Call a "static" function of the library +#### Call a "static" function of the library ```javascript gdjs._myNewExtension.doSomething(myParameter); @@ -161,7 +161,7 @@ In case you are writing your first custom behavior, please refer to the [custom ### Get an object behavior in Javascript -Behaviors parameter values are actually just a string of the behavior name. Each object instance has their own behavior instance so it avoids to pass an array for behaviors when they can be mapped from objects with `object.getBehavior(behaviorName)`. +Behaviors parameter values are actually just a string of the behavior name. Each object instance has their own behavior instance so it avoids to pass an array for behaviors when they can be mapped from objects with `object.getBehavior(behaviorName)`. For actions and conditions of behaviors, the object parameter **Object** only contains one instance because GDevelop does the iteration on object instances. For other object parameters you still need to iterate on all instances. @@ -183,6 +183,27 @@ const myPropertyValue = behavior._getMyProperty(); Setters also exist, but you should not need them. Behaviors may have events functions to change its property values but it's easier to implement them with events. If you need to change property values from your JavaScript code, you probably should use JavaScript attributes instead and define expressions to let events access their values. +## Wrap JavaScript rendering libraries in events-based objects + +GDevelop use [Pixi.js](https://github.com/pixijs/pixijs) to render 2D and [Three.js](https://github.com/mrdoob/three.js/) to render 3D. Some of these 2 libraries features are not exposed by GDevelop and you may want to do it by warping them into events-based objects. + +Events-based objects are generated as classes that inherit either: + +- [CustomRuntimeObject2D](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.CustomRuntimeObject2D.html) +- [CustomRuntimeObject3D](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.CustomRuntimeObject3D.html) + +Custom objects usually rely on their child-objects to do the rendering. You may want to override the [getRenderer](https://docs.gdevelop.io/GDJS%20Runtime%20Documentation/classes/gdjs.CustomRuntimeObject.html#getRenderer) method to use your own renderer. + +For instance, these 3 extensions expose events-based objects: + +- [3D particle emitter](/gdevelop5/extensions/particle-emitter3d/) uses the [three.quarks](https://github.com/Alchemist0823/three.quarks) library +- [3D sprite](/gdevelop5/extensions/sprite3d/) uses the [PlaneGeometry](https://threejs.org/docs/index.html#api/en/geometries/PlaneGeometry) of Three.js +- [3D text](/gdevelop5/extensions/text3d/) uses the [Troika Text for Three.js](https://github.com/protectwise/troika/tree/main/packages/troika-three-text) library + +!!! note + + Most of the previous section about events-based behaviors also applies to events-based objects. + ## Use the power of both events and JavaScript Although GDevelop engine features can be used in JavaScript (learn more about it in the [JavaScript events](/gdevelop5/events/js-code/) page). It's easier to use events for this. @@ -212,4 +233,21 @@ This is a few instances of extensions that use JavaScript: * The [Object stack](/gdevelop5/extensions/object-stack/) extension exposes conditions that pick object instances according to their position in a stack. * The [Clipboard](/gdevelop5/extensions/clipboard/) extension uses an asynchronous web API and implements fallbacks to Electron API or Cordova plugins. +## Experimental new option: JavaScript files in your project + +Starting with GDevelop 5.5.222, you can also open the extension properties, and then add a JavaScript source file: + +![Add a JavaScript file to an extension](./extra-source-files.png) + +This source file will be: + +- **only imported if the extension is used** in your game (for example, a scene uses an action or condition from the extension). +- imported as the same time as the files of the game engine or other extensions. It can either be set to be imported before the game engine files or after (but the order between files is not guaranteed). It works both for the preview and when the game is exported. +- no transpilation or changes are done on the file. +- the file will be added as a "JavaScript" resource in the resources editor. + +!!! warning + + Remember to make sure your extension is used by the game so that the file is included. + If you export your extension, this file *won't* be included. Consider this option as an experimental option to add custom JavaScript code to a project. diff --git a/docs/gdevelop5/tutorials/delete-square-condition.png b/docs/gdevelop5/events/standard/delete-square-condition.png similarity index 100% rename from docs/gdevelop5/tutorials/delete-square-condition.png rename to docs/gdevelop5/events/standard/delete-square-condition.png diff --git a/docs/gdevelop5/events/standard/index.md b/docs/gdevelop5/events/standard/index.md index 46eaf2c6e7..0e7fad8798 100644 --- a/docs/gdevelop5/events/standard/index.md +++ b/docs/gdevelop5/events/standard/index.md @@ -25,6 +25,6 @@ Remember that conditions also select *which* objects are affected by the actions Here is an event that will destroy the "Square" objects whose have a X position which is less than 100 pixels: -![](/gdevelop5/tutorials/delete-square-condition.png) +![](delete-square-condition.png) If you are still unsure how the events work, take a look at [basic game making concepts](/gdevelop5/tutorials/basic-game-making-concepts). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/.pages b/docs/gdevelop5/extensions/.pages index 2491e35b59..a33d941c5e 100644 --- a/docs/gdevelop5/extensions/.pages +++ b/docs/gdevelop5/extensions/.pages @@ -2,13 +2,9 @@ nav: - index.md - search.md - tiers.md - - Create your own extensions: - - Create a new extension : create.md - - best-practices.md - - share-extension.md - Ads: - - CrazyGames SDK v2: crazy-games-ad-api - Mobile In-App Purchase (experimental): in-app-purchase + - Playgama Bridge: playgama-bridge - Poki Games SDK: poki-games-sdkhtml - Advanced: - Base conversion: base-conversion @@ -36,47 +32,49 @@ nav: - Drag camera with the mouse (or touchscreen): drag-camera-with-pointer - Edge scroll camera: edge-scroll-camera - First person 3D camera: first-person-camera - - Follow multiple objects with camera: follow-objects-with-camera + - Follow multiple 2D objects with the camera: follow-objects-with-camera - Parallax for Tiled Sprite: parallax - Room-based camera movement: room-based-camera-movement - Smooth Camera: smooth-camera - Third person camera: third-person-camera - Game mechanic: - Checkpoints: checkpoints - - Create multiple copies of an object: create-multiple-copies-of-object - - Dungeon generator: dungeon-generator - Fire bullets: fire-bullet - Health points and damage: health - - Hexagonal grid: hexagonal-grid + - Hexagonal 2D grid: hexagonal-grid - Idle object tracker: idle-tracker - Simple inventories: inventories - Object "Is On Screen" Detection: is-on-screen - Linked Objects Tools: link-tools - Noise generator: noise - - Object spawner area: object-spawner + - Object spawner 2D area: object-spawner - Object Stack: object-stack - RTS-like unit selection: rtsunit-selection - Rectangular flood fill: rectangular-flood-fill - - Rectangular grid: snap-to-grid + - Rectangular 2D grid: snap-to-grid - Values of multiple objects: values-of-multiple-objects - General: - Array tools: array-tools - Extended variables support: extended-variables - Repeat every X seconds: repeat-every-xseconds - Input: - - Back button: back-button - - Behavior Remapper: behavior-remapper + - Android back button: back-button + - Platformer and top-down remapper: behavior-remapper - Cursor movement conditions: cursor-movement - - Double-click: double-click + - Double-click and tap: double-click - Gamepads (controllers): gamepads - Konami Code: konami-code - Cursor object: mouse-helper - Mouse Pointer Lock: mouse-pointer-lock + - 3D car keyboard mapper: physics-car3dkey-mapper + - 3D character keyboard mapper: physics-character3dkey-mapper - Pinching gesture: pinch-gesture - Multitouch joystick and buttons (sprite): sprite-multitouch-joystick - Swipe Gesture: swipe-gesture + - Two choices dialog boxes: two-choices-dialog-boxes - Movement: - Advanced platformer movements: advanced-jump + - Advanced movements for 3D physics characters: advanced-jump3d - Advanced projectile: advanced-projectile - Animated Back and Forth Movement: animated-back-and-forth-movement - Boids movement: boids-movement @@ -90,27 +88,32 @@ nav: - Homing projectile: homing-projectile - Linear Movement: linear-movement - Make objects orbit around a center object: orbiting-objects - - Physics car: physics-car + - 2D Top-Down Physics Car: physics-car + - 3D physics character animator: physics-character3danimator + - 3D ellipse movement: physics-ellipse-movement3d - Pixel perfect movement: pixel-perfect-movement - Platformer character animator: platformer-character-animator - Platformer trajectory: platformer-trajectory - Rectangular movement: rectangle-movement - Screen wrap: screen-wrap - Speed restrictions: speed-restrictions - - Stay On Screen: stay-on-screen + - Stay On Screen (2D): stay-on-screen - Stick objects to others: sticker - Timed Back and Forth Movement: timed-back-and-forth-movement + - Top-down movement animator: top-down-movement-animator - Make object travel to random positions: travel-to-random-positions - - Turret movement: turret + - Turret 2D movement: turret - Network: - Advanced HTTP: advanced-http - Advanced p2p event handling: advanced-p2pevent-handling - Platforms Validation: authorized-platforms-validation - Internet Connectivity : internet-connectivity - MQTT Client (advanced): mqtt + - Multiplayer custom lobbies: multiplayer-custom-lobbies - Webpage URL tools (Web browser): urltools - WebSocket client: web-socket-client - Third-party: + - CrazyGames SDK v3: crazy-games-ad-api - Discord rich presence (Windows, Mac, Linux): discord-rich-presence - User interface: - Auto typing animation for text ("typewriter" effect): auto-typing @@ -124,14 +127,16 @@ nav: - Iframe: iframe - Input Validation: input-validation - Language: language + - Leaderboard dialog: leaderboard-dialog - Panel sprite button: panel-sprite-button - Resource bar (continuous): panel-sprite-continuous-bar - Slider: panel-sprite-slider + - Player avatar: player-avatar - Pop-up: pop-up + - Animated Score Counter: score-counter - Share dialog and sharing options: share - Toggle switch: sprite-toggle-switch - - Console (commands handler for Text Entry objects): text-entry-console - - Mobile virtual keyboard for Text Entry: text-entry-virtual-keyboard + - Star Rating Bar: star-rating-bar - Resource bar (separated units): tiled-units-bar - Time formatting: time-formatter - Toggle switch (for Shape Painter): toggle-switch @@ -142,18 +147,18 @@ nav: - Flash layer: flash-layer - Flash and transition painter: flash-transition-painter - Marching Squares (experimental): marching-squares - - Slice an object into pieces: object-slicer + - Slice a 2D object into pieces: object-slicer - 3D particle emitter: particle-emitter3d - - Object recolorizer (experimental): recolorizer + - Rolling counter: rolling-counter - Animate Shadow Clones: shadow-clones - Shake object: shake-object - 3D object shake: shake-object3d - Shock wave effect: shock-wave-effect - Object Masking: sprite-masking - Sway: sway - - 3D Flip: three-dflip + - 3D-like Flip for 2D Sprites: three-dflip - YSort: ysort - - Community extensions: + - Experimental extensions: - Advanced: - Crypto Api: crypto-api - Game properties data: get-properties-data @@ -169,15 +174,15 @@ nav: - GPS: geolocation - Voice Recognition API: voice-recognition - Game mechanic: - - Extra inventory functions: extra-inventory + - Dungeon generator: dungeon-generator + - Extra inventory functions (deprecated): extra-inventory + - 3D height map: height-map3d - Ink Dialog Tree: ink-js - - Secret Code: secret-code - Slot system: slot-system - General: - - With Three JS: with-three-js - - Choose a random value (deprecated): choose + - Advanced 3D Features: a3f - 3D collision: collision3d - - Countdown Timer: countdown-timer + - Countdown timer (deprecated): countdown-timer - JSON Resource Loading: jsonresource-loader - Load images from a URL: load-image-from-url - Maze Generator: maze-generator @@ -185,32 +190,26 @@ nav: - 3D raycast: raycaster3d - Variables/References: references - 3D sprite: sprite3d - - TimeDetector: time-detector - Input: - - CheatCode: cheat-code - Double key press: double-key-press - - Multitouch joystick and buttons (deprecated): multitouch-joystick + - Screen Orientation Checker: screen-orientation-checker - Selection tools: selection-tools - Movement: - Flip Gravity: flip-gravity - 3D grid jump: grid-jump3d - HasLanded: has-landed - - Joint Connector: joint-connector - - 3D jump: jump3d + - Hedgehog platformer: hedgehog-platformer + - Joint connector: joint-connector + - 3D jump (deprecated): jump3d - Magnetic Effect: magnetic-effect - Navigation mesh pathfinding (experimental): nav-mesh-pathfinding - Platform ledge grabber: platform-ledge-grabber - Point and Orbit: point-and-orbit - Pushable/Pullable Box: pushable-and-pullable-box - - Pushable Box (Deprecated): pushable-box - Record Movements: record-movements - - Rectangular Movement (deprecated): rectangular-movement - - Sine (or ellipsis) Movement (deprecated): sine-movement - Top-down corner sliding: top-down-corner-sliding - - Top-down movement animator: top-down-movement-animator - Trampoline Platform: trampoline-platform - - Tween Z-Order: tween-zorder - - 3D walk: walk3d + - Top-down walk: walk3d - Network: - Update checker: update-checker - Upload Download Text File: upload-download-text-file @@ -220,6 +219,8 @@ nav: - GamePix SDK: game-pix-sdk - Gamejolt: gamejolt-api - Newgrounds API: newgrounds-api + - OllamaAI: ollama-ai + - Wortal SDK: wortal-sdk - Yandex Games SDK for GDevelop: ygame-sdk - User interface: - Align object on the screen: align-object @@ -228,13 +229,19 @@ nav: - Dialog Box: dialog-box - Flexbox: flex-box - Pause when losing focus: pause-focus-lost + - Scrollbar: scrollbar - Star Rating: star-rating - Visual effect: - Animation system: animation-system - Character game feel: character-game-feel - Dynamic Water: dynamic-water - Make it rain: make-it-rain + - Object recolorizer (experimental): recolorizer - Reflection: reflection - - Sprite Based Lighting: sprite-based-lighting + - 3D Sky and sun: sky3d - Advanced 3D tween: tween3d - ... + - Create your own extensions: + - Create a new extension : create.md + - best-practices.md + - share-extension.md diff --git a/docs/gdevelop5/extensions/a3f/index.md b/docs/gdevelop5/extensions/a3f/index.md new file mode 100644 index 0000000000..872fc64ca4 --- /dev/null +++ b/docs/gdevelop5/extensions/a3f/index.md @@ -0,0 +1,488 @@ +# Advanced 3D Features + + +This extension adds features to the built-in 3D. + +**Authors and contributors** to this experimental extension: [PANDAKO](https://gd.games/PANDAKO). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +3D features added by this extension: + +- Lighting +- Light color and intensity control +- Shadows +- Local translation and rotation +- Blend modes +- Opacity +- Overlay objects +- Linear interpolation +- Look At +- Distance between 3D objects +- Bone control +- Morph target control +- Access child objects of 3D objects +- Normalized direction +- Axes helper +- Light helper +- Shadow range helper +- Hierarchy output + +[Read more...](https://pandako.itch.io/a3f) + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Actions + +**🛟Add axes helper** +The axis helper is added to the 3D object. +Note that it is added to the center point, not the origin point. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): 3D object + - Parameter 2 (🧩 Behavior): 3D capability + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**🧱Change blend mode** +Change the blend mode of the 3D objects and all their children. +This affects all 3d objects that use the same material. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Blend mode (one of: "Keep model blend mode", "Normal", "Additive", "Subtractive", "Multiply") + - Parameter 4 (❓ Yes or No): Make the material unique to this object + If No, it will affect all 3D objects that use the same material. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**🔄️Change child angle** +Changes the angle of the 3D object's child along the child’s local axes. +The names of the children must be checked in advance using the "🛟Output children hierarchy" action or a 3D modeling tool. +This can also be used to rotate bones. +Note that if a child is affected by a playing animation, it will override this change. In that case, please pause the animation. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (string): Child name + - Parameter 4 (🔢 Number): X-axis angle (in degrees) + - Parameter 5 (🔢 Number): Y-axis angle (in degrees) + - Parameter 6 (🔢 Number): Z-axis angle (in degrees) + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + +**😀Change morph target value** +Change morph target values of 3D objects. +The names of the morph target must be checked in advance using the "🛟Output morph target names" action or a 3D modeling tool. +Note that if a morph target is affected by a playing animation, it will override this change. In that case, please pause the animation. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (string): Morph target name + - Parameter 4 (🔤 String): Operator (one of: "=", "+", "-", "*", "/") + - Parameter 5 (🔢 Number): Value (0 to 1.0) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + +**🥛Change opacity** +Change the opacity of the 3D objects and all their children. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Operator (one of: "=", "+", "-", "*", "/") + - Parameter 4 (🔢 Number): Opacity (0 to 255) + - Parameter 5 (❓ Yes or No): Make the material unique to this object + If No, it will affect all 3D objects that use the same material. + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + +**👤Change 3D shadow** +Change the shadow settings of 3D objects. +If both "Cast Shadow" and "Receive Shadow" are enabled, striped patterns are likely to occur in the shadow. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (❓ Yes or No): Cast Shadow + - Parameter 4 (❓ Yes or No): Receive Shadow + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**🔄️Rotate child by angle** +Rotate a child of the 3D objects along its local axes. +The names of the children must be checked in advance using the "🛟Output children hierarchy" action or a 3D modeling tool. +This can also be used to rotate bones. +Note that if a child is affected by a playing animation, it will override this change. In that case, please pause the animation. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (string): Child name + - Parameter 4 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 5 (🔢 Number): Angle (in degrees) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + +**🔄️Rotate child by speed** +Rotate a child of the 3D objects along its local axes. +The names of the children must be checked in advance using the "🛟Output children hierarchy" action or a 3D modeling tool. +This can also be used to rotate bones. +Note that if a child is affected by a playing animation, it will override this change. In that case, please pause the animation. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (string): Child name + - Parameter 4 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 5 (🔢 Number): Speed (in degrees per second) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + +**🔜Linearly interpolate camera** +Moves and/or rotates a 3D camera closer to another object’s position and rotation using linear and spherical linear interpolation. +Use the "factor" parameter to specify how much the camera should move and/or rotate (0 = no change, 0.5 = halfway, 1 = exact match). + +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Camera number + - Parameter 3 (👾 Object): Target 3D Object + - Parameter 4 (🧩 Behavior): Target 3D capability + - Parameter 5 (🔢 Number): Position interpolation factor (0 to 1) + Disable with 0 + - Parameter 6 (🔢 Number): Rotation interpolation factor (0 to 1) + Disable with 0 + - Parameter 7 (❓ Yes or No): Based on the object's viewpoint + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + +**🔜Linearly interpolate 3D object** +Moves and/or rotates a 3D object closer to another object’s position and rotation using linear and spherical linear interpolation. +Use the "factor" parameter to specify how much the object should move and/or rotate (0 = no change, 0.5 = halfway, 1 = exact match). + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (👾 Object): Target 3D Object + - Parameter 4 (🧩 Behavior): Target 3D capability + - Parameter 5 (🔢 Number): Position interpolation factor (0 to 1) + Disable with 0 + - Parameter 6 (🔢 Number): Rotation interpolation factor (0 to 1) + Disable with 0 + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + +**🔜Linearly interpolate toward child of 3D object (Experimental)** +Linearly interpolates 3D objects toward a child of another 3D object. +The names of the children must be checked in advance using the "🛟Output children hierarchy" action or a 3D modeling tool. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (👾 Object): Target 3D Object + - Parameter 4 (🧩 Behavior): Target 3D capability + - Parameter 5 (string): Target child name + - Parameter 6 (🔢 Number): Position interpolation factor (0 to 1) + Disable with 0 + - Parameter 7 (🔢 Number): Rotation interpolation factor (0 to 1) + Disable with 0 + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + +**🔄️Local rotate by angle** +Rotates the 3D object along its local axis. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 4 (🔢 Number): Angle (in degrees) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**🔄️Local rotate camera by angle** +Rotates the camera along its local axis. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**🔄️Local rotate camera by speed** +Rotates the camera along its local axis. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 2 (🔢 Number): Speed (in degrees per second) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**🔄️Local rotate by speed** +Rotates the 3D object along its local axis. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 4 (🔢 Number): Speed (in degrees per second) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**↔️Local translate camera by distance** +Translates the camera along its local axis. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 2 (🔢 Number): Distance (in pixels) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**↔️Local translate camera by speed** +Translates the camera along its local axis. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 2 (🔢 Number): Speed (in pixels per second) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera number + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**↔️Local translate by distance** +Translates the 3D object along its local axis. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 4 (🔢 Number): Distance (in pixels) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**↔️Local translate by speed** +Translates the 3D object along its local axis. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Axis (one of: "X", "Y", "Z") + - Parameter 4 (🔢 Number): Speed (in pixels per second) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**👀Look at 3D object** +Rotates the 3D object so that its local +X direction points toward the target 3D object. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (👾 Object): Target 3D Object + - Parameter 4 (🧩 Behavior): Target 3D capability + - Parameter 5 (🔤 String): The point of the target 3D object to look at (one of: "Center point", "Origin point") + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + +**👀Look at position** +Rotates the 3D object so that its local +X direction points toward a specified 3D position. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔢 Number): X position + - Parameter 4 (🔢 Number): Y position + - Parameter 5 (🔢 Number): Z position + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + +**↗️Store normalized direction in variable** +Stores the normalized direction vector of the 3D object in a variable. +The variable will be a structure variable with child variables x, y, and z. +Note that the variable will only store the value of the first referenced 3D object. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Axis (one of: "X", "Y", "Z", "-X", "-Y", "-Z") + - Parameter 4: 🗄️ Any variable + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**🛟Output children hierarchy** +Outputs the hierarchy of the 3D object's children to the console. +It is recommended to check in the developer tools console, where line breaks and indentation are displayed, rather than in GDevelop's debugger console. +Use the following shortcut in the preview window to open the Developer Tools and select the Console tab: +Ctrl + Shift + I (Cmd + Option + I). + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**🛟Output morph target names** +Outputs the morph target names of the 3D object to the console. +It is recommended to check in the developer tools console, where line breaks and indentation are displayed, rather than in GDevelop's debugger console. +Use the following shortcut in the preview window to open the Developer Tools and select the Console tab: +Ctrl + Shift + I (Cmd + Option + I). + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**📚Overlap objects** +Overlay the object on the 3D object. +⚠️ For objects to overlap correctly, they must be on a different layer than the 3D object. In the layer properties, the 'Default camera behavior' under 'Camera positioning' must be set to 'Keep top-left corner fixed'. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): Any object + - Parameter 2 (❓ Yes or No): Hide when behind the 3D camera + Hides the 2D object when the 3D object is behind the 3D camera. + - Parameter 3 (👾 Object): Target 3D object + - Parameter 4 (🧩 Behavior): Target 3D Capability + - Parameter 5 (🔤 String): Target point (one of: "Origin point", "Center point") + - Parameter 6 (🔢 Number): X Offset + - Parameter 7 (🔢 Number): Y Offset + - Parameter 8 (🔢 Number): Z Offset + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + +**😀Reset morph targets** +Sets all morph target values of the 3D object to 0. +Note that if a morph target is affected by a playing animation, it will override this change. In that case, please pause the animation. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +## Conditions + +**↔️Check the distance between two objects in 3D** +Checks the distance between two objects (origin points) in 3D. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3: 👾 Object + - Parameter 4 (🧩 Behavior): Target 3D capability + - Parameter 5 (🔤 String): Operator (one of: "=", "<", ">", "≤", "≥", "≠") + - Parameter 6 (🔢 Number): Distance + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + +**🥛Check opacity** +Check the opacity of the 3D object, or the first opacity found among its children. +This condition can be used for non-3D objects as well, but in those cases the opacity is always compared as 255. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔤 String): Operator (one of: "=", "<", ">", "≤", "≥", "≠") + - Parameter 4 (🔢 Number): Opacity (0 to 255) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +## Expressions + +| Expression | Description | | +|-----|-----|-----| +| `A3F::DistanceObjects(object, object)` | Returns the distance between objects in 3D. (Distance between origin points)This expression always returns 0 when a 2D object is selected. || +| | _👾 Object_ | Object | +| | _👾 Object_ | Target Object | +| `A3F::Opacity(object)` | Returns the opacity of the 3D object, or the first opacity found among its children. || +| | _👾 Object_ | Object | + +## Advanced 3D Initial Properties + +Use this when you want to set the initial properties of a 3D object. + +_No expressions for this behavior._ + + +## Advanced 3D Light + +⚠️ 3D Lights are highly loaded. + +### Behavior actions + +**💡Change Light Color** +Gradually changes the color of the 3D Light. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: color + - Parameter 3 (🔢 Number): Duration (in seconds) + If the duration is set to 0, the change is immediate. + - Parameter 4 (🔤 String): Gradient color space (one of: "RGB", "HSL") + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + +**💡Change Light Intensity** +Gradually changes the intensity of the 3D Light. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Intensity (Default: 1) + - Parameter 3 (🔢 Number): Duration (in seconds) + If the duration is set to 0, the change is immediate. + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +_No expressions for this behavior._ + + + +--- + +*This page is an auto-generated reference page about the **Advanced 3D Features** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/advanced-http/index.md b/docs/gdevelop5/extensions/advanced-http/index.md index 42ee6f23fb..14449a5cb4 100644 --- a/docs/gdevelop5/extensions/advanced-http/index.md +++ b/docs/gdevelop5/extensions/advanced-http/index.md @@ -3,7 +3,7 @@ An extension to create HTTP requests with more advanced settings than the built-in "Network request" action, like specifying headers or bypassing CORS. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- @@ -17,87 +17,265 @@ An extension to create HTTP requests with more advanced settings than the built- **Copy a request template** Creates a new request template with all the attributes from an existing one. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): New request template name + - Parameter 2 (🔤 Name (String)): Request to copy + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Create a new request template** Creates a template for your request. All requests must be made from a request template. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): New request template name + - Parameter 2 (🔤 Name (String)): URL the request will be sent to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Execute the request** Executes the request defined by a request template. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request to execute + - Parameter 2 (🗄️ Scene variable): Variable where to store the response to the request + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Get response body (JSON)** Reads the body sent by the server, parses it as JSON and stores the resulting structure in a variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): Variable containing the response + - Parameter 2 (🗄️ Scene variable): Variable where to write the body contents into + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Get response body (text)** Reads the body sent by the server, and store it as a string in a variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): Variable containing the response + - Parameter 2 (🗄️ Scene variable): Variable where to write the body contents into + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Body as form data** Sets the body of an HTTP request to a form data representation of a structure variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request template name + - Parameter 2 (🗄️ Scene variable): Variable with body contents + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Body as JSON** Sets the body of an HTTP request to a JSON representation of a structure variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request template name + - Parameter 2 (🗄️ Scene variable): Variable with body contents + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Body** Change the body of the HTTP request. Contains data to send to the server, ususally in plain text, JSON or FormData format. This cannot be set for GET requests. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + - Parameter 3 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **HTTP Caching strategy** Defines to what extent the results of the request is can/must be cached. When cached, instead of sending a request to the server, the browser will avoid making a real request to the server and will use a previous response given by the server for the same request. The server also has a say in this via the Cache-Control header. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request template name + - Parameter 2 (🔤 String): HTTP Caching strategy + Learn more about what each caching strategy does [on the MDN page for cache](https://developer.mozilla.org/en-US/docs/Web/API/Request/cache). (one of: "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Header** Change an HTTP header to be sent with the request. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + - Parameter 3 (🔤 Name (String)): Request template name + - Parameter 4 (🔤 Name (String)): HTTP header name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **HTTP Method (Verb)** The HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request template name + - Parameter 2 (🔤 String): HTTP Method (one of: "GET", "POST", "PUT", "PATCH", "DELETE", "HEAD", "TRACE", "CONNECT", "OPTIONS") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **URL** Change the request template's target URL. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 Name (String)): Value + - Parameter 3 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Enable CORS Bypass** CORS prevents most external websites from being queried with the browser's HTTP client, since the browser may be authenticated on that website and as such another website would be able to impersonate the player on that other website. When the CORS Bypass is enabled, the request will be made from a server that is not authenticated anywhere and as such is not blocked by CORS, and it will share the response with your game. Note that as such, authentication cookies are ignored! If you own the REST API you are requesting, add CORS headers to your server instead of using this CORS Bypass. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request template name + - Parameter 2 (❓ Yes or No): Enable the CORS Bypass? + The CORS Bypass server is offered for free by [arthuro555](https://twitter.com/arthuro555). Consider making a [donation](https://ko-fi.com/arthuro555) to help keep the CORS Bypass server running. + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **CORS Bypass enabled** Checks whether or not CORS Bypass has been enabled for the request template. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Body** Compare the body of the HTTP request. Contains data to send to the server, ususally in plain text, JSON or FormData format. This cannot be set for GET requests. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **HTTP Caching** Compare the HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Value to compare (one of: "default", "reload", "no-cache", "force-cache", "only-if-cached") + - Parameter 3 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Header** Compare an HTTP header to be sent with the request. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Request template name + - Parameter 4 (🔤 Name (String)): HTTP header name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **HTTP Method (Verb)** Compare the HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Value to compare (one of: "GET", "HEAD", "POST", "PUT", "OPTIONS", "CONNECT", "TRACE") + - Parameter 3 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **URL** Compare the request template's target URL. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 Name (String)): Value to compare + - Parameter 3 (🔤 Name (String)): Request template name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Header** Compare one of the HTTP headers included in the server's response. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🗄️ Scene variable): Variable containing the response + - Parameter 4 (🔤 Name (String)): Header + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Status code** Compare the status code of the HTTP request (e.g. 200 if succeeded, 404 if not found, etc). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Scene variable): Variable containing the response + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Success** Checks whether the server marked the response as a success (status code 1XX/2XX), not as a failure (status code 4XX/5XX). +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): Variable containing the response + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `AdvancedHTTP::RequestBody()` | Return the body of the HTTP request. Contains data to send to the server, ususally in plain text, JSON or FormData format. This cannot be set for GET requests. || -| `AdvancedHTTP::RequestCache()` | Return the HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. || -| `AdvancedHTTP::RequestHeader()` | Return an HTTP header to be sent with the request. || -| `AdvancedHTTP::RequestMethod()` | Return the HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. || -| `AdvancedHTTP::RequestURL()` | Return the request template's target URL. || -| `AdvancedHTTP::ResponseHeader()` | Return one of the HTTP headers included in the server's response. || -| `AdvancedHTTP::ResponseStatusCode()` | Return the status code of the HTTP request (e.g. 200 if succeeded, 404 if not found, etc). || -| `AdvancedHTTP::ResponseStatusText()` | Gets the status text for a response. For example, for a response with the status code 404, the status text will be "Not Found". || +| `AdvancedHTTP::RequestBody(string)` | Return the body of the HTTP request. Contains data to send to the server, ususally in plain text, JSON or FormData format. This cannot be set for GET requests. || +| | _🔤 Name (String)_ | Request template name | +| `AdvancedHTTP::RequestCache(string)` | Return the HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. || +| | _🔤 Name (String)_ | Request template name | +| `AdvancedHTTP::RequestHeader(string, string)` | Return an HTTP header to be sent with the request. || +| | _🔤 Name (String)_ | Request template name | +| | _🔤 Name (String)_ | HTTP header name | +| `AdvancedHTTP::RequestMethod(string)` | Return the HTTP method of the request. GET is the default and what you should use if you are unsure which to pick. A request to a REST API endpoint may have a different effect depending on the method - refer to the documentation of the API you are calling to learn about the appropriate method to use. || +| | _🔤 Name (String)_ | Request template name | +| `AdvancedHTTP::RequestURL(string)` | Return the request template's target URL. || +| | _🔤 Name (String)_ | Request template name | +| `AdvancedHTTP::ResponseHeader(scene variable, string)` | Return one of the HTTP headers included in the server's response. || +| | _🗄️ Scene variable_ | Variable containing the response | +| | _🔤 Name (String)_ | Header | +| `AdvancedHTTP::ResponseStatusCode(scene variable)` | Return the status code of the HTTP request (e.g. 200 if succeeded, 404 if not found, etc). || +| | _🗄️ Scene variable_ | Variable containing the response | +| `AdvancedHTTP::ResponseStatusText(scene variable)` | Gets the status text for a response. For example, for a response with the status code 404, the status text will be "Not Found". || +| | _🗄️ Scene variable_ | Variable containing the response | + --- diff --git a/docs/gdevelop5/extensions/advanced-jump/index.md b/docs/gdevelop5/extensions/advanced-jump/index.md index 5626fee7fb..bb82a5c81c 100644 --- a/docs/gdevelop5/extensions/advanced-jump/index.md +++ b/docs/gdevelop5/extensions/advanced-jump/index.md @@ -3,7 +3,7 @@ Let platformer characters: air jump, wall jump wall sliding, coyote time and dashing. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [shadow00dev](https://gd.games/shadow00dev), [Entropy](https://gd.games/Entropy), [CorianderGames](https://gd.games/CorianderGames). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [shadow00dev](https://gd.games/shadow00dev), [Entropy](https://gd.games/Entropy), [CorianderGames](https://gd.games/CorianderGames). --- @@ -32,23 +32,68 @@ Let platformer characters jump shortly after leaving a platform and also jump in **Remove a remaining air jump** Remove one of the remaining air jumps of a character. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reset air jumps** Allow back all air jumps of a character. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Air jumps** Change the number of times the character can jump in mid-air. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Number of air jumps + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Coyote timeframe** Change the coyote time duration of an object (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration + Coyote time duration in seconds. + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Floor jumps count as air jumps** Check if floor jumps are counted as air jumps for an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Can coyote jump** Check if a coyote jump can currently happen. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -65,14 +110,35 @@ Make platformer characters dash toward the floor. **Simulate dive key** Simulate a press of dive key to make the object dives to the floor if it can dive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Can dive** Check if the object can dive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is diving** Check if the object is diving. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -85,14 +151,35 @@ Make platformer characters dash horizontally. **Abort dash** Abort the current dash and set the object to its usual horizontal speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate dash key** Simulate a press of dash key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is dashing** Check if the object is dashing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -105,21 +192,74 @@ Resolve conflict between platformer character configuration changes. **Configure horizontal acceleration** Configure character acceleration for a given configuration layer and move this layer on top. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Acceleration + - Parameter 3 (string): Configuration identifier + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Configure horizontal deceleration** Configure character deceleration for a given configuration layer and move this layer on top. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Acceleration + - Parameter 3 (string): Configuration identifier + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Configure gravity** Configure character gravity for a given configuration layer and move this layer on top. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Gravity + - Parameter 3 (string): Configuration identifier + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Configure maximum falling speed** Configure character maximum falling speed for a given configuration layer and move this layer on top. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Maximum falling speed + - Parameter 3 (string): Configuration identifier + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Configure maximum horizontal speed** Configure character maximum speed for a given configuration layer and move this layer on top. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Maximum horizontal speed + - Parameter 3 (string): Configuration identifier + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Revert configuration** Revert configuration changes for one identifier and update the character configuration to use the most recent ones. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Configuration identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -135,32 +275,101 @@ Let platformer characters jump and slide against walls. **Jump time frame** Change the wall jump detection time frame of an object (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Jump detection time frame (in seconds) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Side acceleration** Change the side acceleration of wall jumps of an object (in pixels per second per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Side acceleration + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Side speed** Change the side speed of wall jumps of an object (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Side speed + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Gravity** Change the wall sliding gravity of an object (in pixels per second per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Gravity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Maximum falling speed** Change the wall sliding maximum falling speed of an object (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Maximum falling speed + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Impact speed absorption** Change the impact speed absorption of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Impact speed absorption + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Has just wall jumped** Check if the object has just wall jumped. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Against a wall** Check if the object is against a wall. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is wall jumping** Check if the object is wall jumping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -172,6 +381,7 @@ Check if the object is wall jumping. | `Object.WallJump::WallSlidingMaxFallingSpeed()` | The wall sliding maximum falling speed of an object (in pixels per second). || | `Object.WallJump::WallSlidingSpeedAbsorption()` | Change the impact speed absorption of an object. || + --- *This page is an auto-generated reference page about the **Advanced platformer movements** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/advanced-jump3d/index.md b/docs/gdevelop5/extensions/advanced-jump3d/index.md new file mode 100644 index 0000000000..3115dafb04 --- /dev/null +++ b/docs/gdevelop5/extensions/advanced-jump3d/index.md @@ -0,0 +1,102 @@ +# Advanced movements for 3D physics characters + + +Let 3D physics characters: air jump, wall jump wall sliding, coyote time and dashing. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [shadow00dev](https://gd.games/shadow00dev), [Entropy](https://gd.games/Entropy), [CorianderGames](https://gd.games/CorianderGames). + +--- + +This extension provides behaviors to: + + +* Jump in mid-air +* Do coyote time, also known as "ledge tolerance". It lets players jumping even after their character is no longer touching the ground for a given amount of time. It aims to give players a feeling of control and reduce frustration. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Coyote time and air jump for 3D + +Let 3D physics characters jump shortly after leaving a platform and also jump in mid-air. + +### Behavior actions + +**Remove a remaining air jump** +Remove one of the remaining air jumps of a character. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Reset air jumps** +Allow back all air jumps of a character. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Air jumps** +Change the number of times the character can jump in mid-air. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Number of air jumps + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Coyote timeframe** +Change the coyote time duration of an object (in seconds). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration + Coyote time duration in seconds. + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Floor jumps count as air jumps** +Check if floor jumps are counted as air jumps for an object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Can coyote jump** +Check if a coyote jump can currently happen. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.AdvancedJump3D::AirJumpsMax()` | Number of jumps in mid-air that are allowed. || +| `Object.AdvancedJump3D::RemainingAirJumps()` | Number of jumps in mid-air that are still allowed. || + + +--- + +*This page is an auto-generated reference page about the **Advanced movements for 3D physics characters** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/advanced-p2pevent-handling/index.md b/docs/gdevelop5/extensions/advanced-p2pevent-handling/index.md index d50b85852f..1fd270b911 100644 --- a/docs/gdevelop5/extensions/advanced-p2pevent-handling/index.md +++ b/docs/gdevelop5/extensions/advanced-p2pevent-handling/index.md @@ -3,7 +3,7 @@ Allows handling all received P2P events at once instead of one per frame. It is more complex but also potentially more performant. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- @@ -20,6 +20,13 @@ Allows handling all events at once instead of one per frame. **Dismiss event** Marks the event as handled, to go on to the next. +??? quote "See parameters" + + - Parameter 1 (string): The event to dismiss + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/advanced-projectile/index.md b/docs/gdevelop5/extensions/advanced-projectile/index.md index 9e86a4d9f9..9d55325987 100644 --- a/docs/gdevelop5/extensions/advanced-projectile/index.md +++ b/docs/gdevelop5/extensions/advanced-projectile/index.md @@ -3,7 +3,7 @@ Control how a projectile moves including speed, acceleration, distance, and lifetime. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -33,65 +33,231 @@ Control how a projectile object moves including lifetime, distance, speed, and a **Restart lifetime timer** Restart lifetime timer of object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Acceleration** Change the acceleration of the object. Use a negative number to slow down. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Change automatic deletion when distance from starting position is exceeded** Change automatic deletion when distance from starting position is exceeded. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): DeleteWhenDistanceExceeded + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Change automatic deletion when lifetime is exceeded** Change automatic deletion of object when lifetime is exceeded. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): DeleteWhenLifetimeExceeded + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Max distance from starting position** Change the max distance from starting position of the object. Object is deleted after property has been exceeded. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Lifetime** Change the lifetime of the object. Object is deleted after property has been exceeded. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Max speed** Change the max speed of the object. Object forces cannot exceed this value. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **MinSpeed** Change the minSpeed of the object. Object forces cannot go below this value. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Change starting position to the current position** Change the starting position of object to it's current position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Starting speed** Change the starting speed of the object. Object will move in the direction it is facing when it is created. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Acceleration** Compare the acceleration of the object. Use a negative number to slow down. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Automatic deletion is enabled when distance from starting position is exceeded** Check if automatic deletion is enabled when distance from starting position is exceeded. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Automatic deletion is enabled when lifetime is exceeded** Check if automatic deletion is enabled when lifetime is exceeded. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Lifetime has been exceeded** Check if lifetime has been exceeded (object will be deleted next frame). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Max distance from starting position has been exceeded** Check if max distance from starting position has been exceeded (object will be deleted next frame). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Max distance from starting position** Compare the max distance from starting position of the object. Object is deleted after property has been exceeded. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Lifetime** Compare the lifetime of the object. Object is deleted after property has been exceeded. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Max speed** Compare the max speed of the object. Object forces cannot exceed this value. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **MinSpeed** Compare the minSpeed of the object. Object forces cannot go below this value. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Starting speed** Compare the starting speed of the object. Object will move in the direction it is facing when it is created. Use "0" to ignore this property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -103,6 +269,7 @@ Compare the starting speed of the object. Object will move in the direction it i | `Object.AdvancedProjectile::MinSpeed()` | Return the minSpeed of the object. Object forces cannot go below this value. Use "0" to ignore this property. || | `Object.AdvancedProjectile::StartingSpeed()` | Return the starting speed of the object. Object will move in the direction it is facing when it is created. Use "0" to ignore this property. || + --- *This page is an auto-generated reference page about the **Advanced projectile** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/align-object/index.md b/docs/gdevelop5/extensions/align-object/index.md index 9c3a158877..2235e58f1b 100644 --- a/docs/gdevelop5/extensions/align-object/index.md +++ b/docs/gdevelop5/extensions/align-object/index.md @@ -3,14 +3,12 @@ Align objects on the scene relatively to the window (or screen size). -**Authors and contributors** to this community extension: [grymmjack](https://gd.games/grymmjack). +**Authors and contributors** to this experimental extension: [grymmjack](https://gd.games/grymmjack). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -45,45 +43,130 @@ Actions provided are: **Align object to bottom of scene** Align object to vertical bottom of scene. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to horizontal center in scene** Align object to horizontal center in scene. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Center object in scene horizontally and vertically** Center object in scene horizontally and vertically. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to horizontal left in scene** Align object to horizontal left in scene. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to vertical middle of scene** Align object to vertical middle of scene. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to horizontal right in scene** Align object to horizontal right in scene. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to vertical top of scene** Align object to vertical top of scene. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to bottom of screen** Align object to vertical bottom of screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to horizontal center in screen** Align object to horizontal center in screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Center object in screen horizontally and vertically** Center object in screen horizontally and vertically. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to horizontal left in screen** Align object to horizontal left in screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to vertical middle of screen** Align object to vertical middle of screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to horizontal right in screen** Align object to horizontal right in screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Align object to vertical top of screen** Align object to vertical top of screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to align + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/animated-back-and-forth-movement/index.md b/docs/gdevelop5/extensions/animated-back-and-forth-movement/index.md index 3154e6ee85..34fecfb0da 100644 --- a/docs/gdevelop5/extensions/animated-back-and-forth-movement/index.md +++ b/docs/gdevelop5/extensions/animated-back-and-forth-movement/index.md @@ -3,7 +3,7 @@ Make the object go on the left, then when some distance is reached, flip and go back to the right. Make sure that your object has two animations called "GoLeft" and "TurnLeft". -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian). --- @@ -21,6 +21,7 @@ Make the object go on the left, then when some distance is reached, flip and go _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Animated Back and Forth Movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/animation-system/index.md b/docs/gdevelop5/extensions/animation-system/index.md index f0baa25020..a0b23a9b9f 100644 --- a/docs/gdevelop5/extensions/animation-system/index.md +++ b/docs/gdevelop5/extensions/animation-system/index.md @@ -3,14 +3,12 @@ Adds easy to use pre-made animations. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -31,9 +29,23 @@ Helpful for making animations for sprites without having to spend time animating **Check if the animation has finished** Check if the selected animation has finished. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Animation + Animation must be set to Trigger once in order to check if it finished (one of: "Pulse", "Breath", "Smooth rotation", "Instant rotation", "3D rotation", "3D rotation X", "3D rotation Y", "Float", "Triangle transition", "Square transition", "Rhombus transition", "Maze transition", "Fade out", "Fade in", "Squash & Stretch", "Rainbow effect", "Shake rotation", "Shake horizontal", "Shake vertical", "Line rotation", "Land", "Low health") + - Parameter 2 (👾 Object): Animated object + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Check if the door is open** From *3D open door* animation. +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Animation Behavior @@ -45,9 +57,41 @@ Animate any sprite with this extension. **Animation system** edit the object ("Origin" point) to control how the animation goes. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Animations list (one of: "Pulse", "Breath", "Smooth rotation", "Instant rotation", "Wobble", "Wobble2", "Wobble3", "3D rotation", "3D rotation X", "3D rotation Y", "3D door loop", "3D open door", "3D close door", "Float", "Triangle transition", "Square transition", "Rhombus transition", "Maze transition", "Fade loop", "Fade out", "Fade in", "Squash & Stretch", "Rainbow effect", "Shake rotation", "Shake horizontal", "Shake vertical", "Line rotation", "Land", "Low health") + - Parameter 3 (🔢 Number): Animation speed + - Parameter 4 (🔢 Number): Object width + - Parameter 5 (🔢 Number): Object height + Animations information: + Pulse/Breath: recommended speed, 0.03 + Smooth rotation: recommended speed, 5 + Wobble/wobble2/wobble3: Do not have trigger once/ recommended speed, 0.1 + 3D rotation: recommended speed, 1 + 3D rotationX: recommended speed, 1.2 + 3D rotationY: Origin point must be at center/ recommended speed, 1.2 + 3D door loop: do not have trigger once/ recommended speed, 1.2 + 3D open/close door: Trigger once must be YES/ recommended speed, 1.2 + Float: recommended speed, 0.02 + Triangle/Square/Rhombus/Maze transition: recommended speed, 3 + Fade loop: do not have trigger once/ recommended speed, 5 + Fade Out/In: Trigger once must be YES/ recommended speed, 5 + Squash&Stretch: recommended speed, 0.06 + Rainbow effect: The higher the speed the slower effect/ recommended speed, 1 + Shake rotation/Horizontal/Vertical: recommended speed, 4 + Line rotation: recommended speed, 3 + Land: Trigger once must be YES/ Best results, set the condition of the player to "is on floor" > start animation land / recommended speed, 5 + Low health: recommended speed, 30 + - Parameter 6 (❓ Yes or No): Trigger animation once ? + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Animation system** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/array-tools/index.md b/docs/gdevelop5/extensions/array-tools/index.md index e0cb08f89f..525bcb8d91 100644 --- a/docs/gdevelop5/extensions/array-tools/index.md +++ b/docs/gdevelop5/extensions/array-tools/index.md @@ -3,12 +3,10 @@ A collection of utilities and tools for working with arrays. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- -> Note: The v2.0.0 is not compatible with v1.0.0. If you update, you wil have to update ALL USAGES of the extension. - This extension adds features like: - Combining arrays (concatenate into new array, append all children to another array) @@ -29,255 +27,615 @@ This extension adds features like: **Append all variable to another array** Appends a copy of all variables of one array to another array. -**Combine 2 arrays** -Combines all elements of 2 scene arrays into one new scene array. +??? quote "See parameters" -**Fill array with number** -Fill an element with a number. + - Parameter 1 (🗄️ Any variable): The array to get the variables from + - Parameter 2 (🗄️ Any variable): The variable to append the variables in -**Flatten array** -Replaces all arrays inside of an array with their children. For example, [[1,2], [3,4]] becomes [1,2,3,4]. - -**Append all variable to another array** -Appends a copy of all variables of one array to another array. + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. **Combine 2 arrays** Combines all elements of 2 scene arrays into one new scene array. -**Fill array with number** -Fill an element with a number. +??? quote "See parameters" -**Flatten array** -Replaces all arrays inside of an array with their children. For example, [[1,2], [3,4]] becomes [1,2,3,4]. + - Parameter 1 (🗄️ Any variable): The first array + - Parameter 2 (🗄️ Any variable): The second array + - Parameter 3 (🗄️ Any variable): The variable to store the new array in -**Insert variable at** -Insert a variable at a specific index of an array. + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. -**Pop array child** -Removes the last array child of an array, and stores it in another variable. +**Fill array with number** +Fill an element with a number. -**Reverse an array** -Reverses children of an array. The first array child becomes the last, and the last array child becomes the first. +??? quote "See parameters" -**Shift array child** -Removes the first array child of an array, and stores it in another variable. + - Parameter 1 (🗄️ Any variable): The array to fill + - Parameter 2 (🔢 Number): The number to fill + - Parameter 3 (🔢 Number): The index to start filling from + - Parameter 4 (🔢 Number): The index to stop filling at + Set to 0 to fill until the end of the array. -**Shuffle array** -Shuffles all children of an array. + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. -**Slice an array** -Copies a portion of a scene array variable into a new scene array variable. +**Flatten array** +Replaces all arrays inside of an array with their children. For example, [[1,2], [3,4]] becomes [1,2,3,4]. -**Sort an array** -Sort an array of number from smallest to biggest. +??? quote "See parameters" -**Splice an array** -Cuts a portion of an array off. + - Parameter 1 (🗄️ Any variable): The array to flatten + - Parameter 2 (❓ Yes or No): Deeply flatten + If yes, will continue flattening until there is no arrays in the array anymore. -**Split string into array** -Split a string into an array of strings via a separator. + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. **Insert variable at** Insert a variable at a specific index of an array. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to insert a variable in + - Parameter 2 (🔢 Number): The index to insert the variable at + - Parameter 3 (🗄️ Any variable): The name of the variable to insert + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Append all variable to another array** Appends a copy of all variables of one array to another array. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to get the variables from + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): The variable to append the variables in + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Combine 2 arrays** Combines all elements of 2 scene arrays into one new scene array. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The first array + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): The second array + - Parameter 5 (👾 Object): The object the variable is from + - Parameter 6 (🗄️ Object variable): The variable to store the new array in + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Fill array with number** Fill an element with a number. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to fill + - Parameter 3 (🔢 Number): The number to fill + - Parameter 4 (🔢 Number): The index to start filling from + - Parameter 5 (🔢 Number): The index to stop filling at + Set to 0 to fill until the end of the array. + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Flatten array** Replaces all arrays inside of an array with their children. For example, [[1,2], [3,4]] becomes [1,2,3,4]. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to flatten + - Parameter 3 (❓ Yes or No): Deeply flatten + If yes, will continue flattening until there is no arrays in the array anymore. + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Insert variable at** Insert a variable at a specific index of an array. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to insert a variable in + - Parameter 3 (🔢 Number): The index to insert the variable at + - Parameter 4 (👾 Object): The object the variable is from + - Parameter 5 (🗄️ Object variable): The name of the variable to insert + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Pop array child** Removes the last array child of an array, and stores it in another variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to pop a child from + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): The variable to store the popped value into + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Reverse an array** Reverses children of an array. The first array child becomes the last, and the last array child becomes the first. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to reverse + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Shift array child** Removes the first array child of an array, and stores it in another variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to shift a child from + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): The variable to store the shifted value into + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Shuffle array** Shuffles all children of an array. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to shuffle + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Slice an array** Copies a portion of a scene array variable into a new scene array variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to take a slice from + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): The array to store the slice into + - Parameter 5 (🔢 Number): The index to start the slice from + - Parameter 6 (🔢 Number): The index to end the slice at + Set to 0 to copy all of the array. If you use a negative value, the index will be selected beginning from the end. + For example, slicing an array with 5 elements from 0 to -1 would take only elements from indices 0 to 3. + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Sort an array** Sort an array of number from smallest to biggest. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to sort + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Splice an array** Cuts a portion of an array off. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): The array to remove items from + - Parameter 3 (🔢 Number): The index to start removing from + If you use a negative value, the index will be selected beginning from the end. + - Parameter 4 (🔢 Number): The amount of elements to remove + Set to 0 to remove until the end of the array. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Split string into array** Split a string into an array of strings via a separator. +??? quote "See parameters" + + - Parameter 1 (string): The string to split + - Parameter 2 (string): The separator to use to split the string + For example, if you have a string "Hello World", and the separator is a space (" "), the resulting array would be ["Hello", "World"]. If the separator is an empty string (""), it will make an element per character (["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"]). + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array where to store the results + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Pop array child** Removes the last array child of an array, and stores it in another variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to pop a child from + - Parameter 2 (🗄️ Any variable): The variable to store the popped value into + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Reverse an array** Reverses children of an array. The first array child becomes the last, and the last array child becomes the first. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to reverse + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Shift array child** Removes the first array child of an array, and stores it in another variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to shift a child from + - Parameter 2 (🗄️ Any variable): The variable to store the shifted value into + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Shuffle array** Shuffles all children of an array. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to shuffle + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Slice an array** Copies a portion of a scene array variable into a new scene array variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to take a slice from + - Parameter 2 (🗄️ Any variable): The array to store the slice into + - Parameter 3 (🔢 Number): The index to start the slice from + - Parameter 4 (🔢 Number): The index to end the slice at + Set to 0 to copy all of the array. If you use a negative value, the index will be selected beginning from the end. + For example, slicing an array with 5 elements from 0 to -1 would take only elements from indices 0 to 3. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Sort an array** Sort an array of number from smallest to biggest. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to sort + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Splice an array** Cuts a portion of an array off. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): The array to remove items from + - Parameter 2 (🔢 Number): The index to start removing from + If you use a negative value, the index will be selected beginning from the end. + - Parameter 3 (🔢 Number): The amount of elements to remove + Set to 0 to remove until the end of the array. + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Split string into array** Split a string into an array of strings via a separator. +??? quote "See parameters" + + - Parameter 1 (string): The string to split + - Parameter 2 (string): The separator to use to split the string + For example, if you have a string "Hello World", and the separator is a space (" "), the resulting array would be ["Hello", "World"]. If the separator is an empty string (""), it will make an element per character (["H", "e", "l", "l", "o", " ", "W", "o", "r", "l", "d"]). + - Parameter 3 (🗄️ Any variable): Array where to store the results + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Conditions **Array has number** Checks if an array contains a specific number. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Array to search the value in + - Parameter 2 (🔢 Number): The number to search + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Array has string** Checks if an array contains a specific string. +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Array to search the value in + - Parameter 2 (string): The text to search + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Index of number** Compare The index of the first variable that equals to a specific number in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Any variable): Array to search the value in + - Parameter 4 (🔢 Number): Number to search in the array + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Index of text** Compare The index of the first variable that equals to a specific text in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Any variable): Array to search the value in + - Parameter 4 (string): String to search in the array + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Last index of number** Compare The index of the last variable that equals to a specific number in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Any variable): Array to search the value in + - Parameter 4 (🔢 Number): Number to search in the array + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Last index of text** Compare The index of the last variable that equals to a specific text in an array. -**Get and remove last variable from array (as number)** -Compare Removes the last array child of an array, and return it as a number. +??? quote "See parameters" -**Random number in array** -Compare Returns a random number of an array of numbers. + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Any variable): Array to search the value in + - Parameter 4 (string): String to search in the array -**Random string in array** -Compare a random string of an array of strings. + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. **Array has number** Checks if an array contains a specific number. -**Array has string** -Checks if an array contains a specific string. +??? quote "See parameters" -**Index of number** -Compare The index of the first variable that equals to a specific number in an array. + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): Array to search the value in + - Parameter 3 (🔢 Number): The number to search -**Index of text** -Compare The index of the first variable that equals to a specific text in an array. + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. -**Last index of number** -Compare The index of the last variable that equals to a specific number in an array. +**Array has string** +Checks if an array contains a specific string. -**Last index of text** -Compare The index of the last variable that equals to a specific text in an array. +??? quote "See parameters" -**Array has number** -Checks if an array contains a specific number. + - Parameter 1 (👾 Object): The object the variable is from + - Parameter 2 (🗄️ Object variable): Array to search the value in + - Parameter 3 (string): The text to search -**Array has string** -Checks if an array contains a specific string. + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. **Index of number** Compare The index of the first variable that equals to a specific number in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to search the value in + - Parameter 5 (🔢 Number): Number to search in the array + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Index of text** Compare The index of the first variable that equals to a specific text in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to search the value in + - Parameter 5 (string): String to search in the array + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Last index of number** Compare The index of the last variable that equals to a specific number in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to search the value in + - Parameter 5 (🔢 Number): Number to search in the array + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Last index of text** Compare The index of the last variable that equals to a specific text in an array. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to search the value in + - Parameter 5 (string): String to search in the array + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Get and remove last variable from array (as number)** Compare Removes the last array child of an array, and return it as a number. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to pop a child from + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Random number in array** Compare Returns a random number of an array of numbers. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to get a number from + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Random string in array** Compare a random string of an array of strings. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (👾 Object): The object the variable is from + - Parameter 4 (🗄️ Object variable): Array to get a string from + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Get and remove last variable from array (as number)** Compare Removes the last array child of an array, and return it as a number. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Any variable): Array to pop a child from + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Random number in array** Compare Returns a random number of an array of numbers. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🗄️ Any variable): Array to get a number from + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Random string in array** Compare a random string of an array of strings. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🗄️ Any variable): Array to get a string from + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `ArrayTools::GlobalIndexOf()` | Return The index of the first variable that equals to a specific number in an array. || -| `ArrayTools::GlobalIndexOfStr()` | Return The index of the first variable that equals to a specific text in an array. || -| `ArrayTools::GlobalJoin()` | Returns a string made from all strings in an array. || -| `ArrayTools::GlobalLastIndexOf()` | Return The index of the last variable that equals to a specific number in an array. || -| `ArrayTools::GlobalLastIndexOfStr()` | Return The index of the last variable that equals to a specific text in an array. || -| `ArrayTools::GlobalMax()` | Gets the biggest number in an array. || -| `ArrayTools::GlobalMean()` | Gets the average number in an array. || -| `ArrayTools::GlobalMedian()` | Gets the median number in an array. || -| `ArrayTools::GlobalMin()` | Gets the smallest number in an array. || -| `ArrayTools::GlobalPopNumber()` | Return Removes the last array child of an array, and return it as a number. || -| `ArrayTools::GlobalPopString()` | Removes the last array child of an array, and return it as a string. || -| `ArrayTools::GlobalRandomNumberInArray()` | Return Returns a random number of an array of numbers. || -| `ArrayTools::GlobalRandomStringInArray()` | Return a random string of an array of strings. || -| `ArrayTools::GlobalShiftNumber()` | Removes the first array child of an array, and return it as a number. || -| `ArrayTools::GlobalShiftString()` | Removes the first array child of an array, and return it as a string. || -| `ArrayTools::GlobalSum()` | Get the sum of all numbers in an array. || -| `ArrayTools::IndexOf()` | Return The index of the first variable that equals to a specific number in an array. || -| `ArrayTools::IndexOfStr()` | Return The index of the first variable that equals to a specific text in an array. || -| `ArrayTools::Join()` | Returns a string made from all strings in an array. || -| `ArrayTools::LastIndexOf()` | Return The index of the last variable that equals to a specific number in an array. || -| `ArrayTools::LastIndexOfStr()` | Return The index of the last variable that equals to a specific text in an array. || -| `ArrayTools::Max()` | Gets the biggest number in an array. || -| `ArrayTools::Mean()` | Gets the average number in an array. || -| `ArrayTools::Median()` | Gets the median number in an array. || -| `ArrayTools::Min()` | Gets the smallest number in an array. || -| `ArrayTools::ObjectIndexOf()` | Return The index of the first variable that equals to a specific number in an array. || -| `ArrayTools::ObjectIndexOfStr()` | Return The index of the first variable that equals to a specific text in an array. || -| `ArrayTools::ObjectJoin()` | Returns a string made from all strings in an array. || -| `ArrayTools::ObjectLastIndexOf()` | Return The index of the last variable that equals to a specific number in an array. || -| `ArrayTools::ObjectLastIndexOfStr()` | Return The index of the last variable that equals to a specific text in an array. || -| `ArrayTools::ObjectMax()` | Gets the biggest number in an array. || -| `ArrayTools::ObjectMean()` | Gets the average number in an array. || -| `ArrayTools::ObjectMedian()` | Gets the median number in an array. || -| `ArrayTools::ObjectMin()` | Gets the smallest number in an array. || -| `ArrayTools::ObjectPopNumber()` | Return Removes the last array child of an array, and return it as a number. || -| `ArrayTools::ObjectPopString()` | Removes the last array child of an array, and return it as a string. || -| `ArrayTools::ObjectRandomNumberInArray()` | Return Returns a random number of an array of numbers. || -| `ArrayTools::ObjectRandomStringInArray()` | Return a random string of an array of strings. || -| `ArrayTools::ObjectShiftNumber()` | Removes the first array child of an array, and return it as a number. || -| `ArrayTools::ObjectShiftString()` | Removes the first array child of an array, and return it as a string. || -| `ArrayTools::ObjectSum()` | Get the sum of all numbers in an array. || -| `ArrayTools::PopNumber()` | Return Removes the last array child of an array, and return it as a number. || -| `ArrayTools::PopString()` | Removes the last array child of an array, and return it as a string. || -| `ArrayTools::RandomNumberInArray()` | Return Returns a random number of an array of numbers. || -| `ArrayTools::RandomStringInArray()` | Return a random string of an array of strings. || -| `ArrayTools::ShiftNumber()` | Removes the first array child of an array, and return it as a number. || -| `ArrayTools::ShiftString()` | Removes the first array child of an array, and return it as a string. || -| `ArrayTools::Sum()` | Get the sum of all numbers in an array. || +| `ArrayTools::IndexOf(variable, number)` | Return The index of the first variable that equals to a specific number in an array. || +| | _🗄️ Any variable_ | Array to search the value in | +| | _🔢 Number_ | Number to search in the array | +| `ArrayTools::IndexOfStr(variable, string)` | Return The index of the first variable that equals to a specific text in an array. || +| | _🗄️ Any variable_ | Array to search the value in | +| | _string_ | String to search in the array | +| `ArrayTools::Join(variable, string)` | Returns a string made from all strings in an array. || +| | _🗄️ Any variable_ | The name of the array to join into a string | +| | _string_ | Optional separator text between each element | +| `ArrayTools::LastIndexOf(variable, number)` | Return The index of the last variable that equals to a specific number in an array. || +| | _🗄️ Any variable_ | Array to search the value in | +| | _🔢 Number_ | Number to search in the array | +| `ArrayTools::LastIndexOfStr(variable, string)` | Return The index of the last variable that equals to a specific text in an array. || +| | _🗄️ Any variable_ | Array to search the value in | +| | _string_ | String to search in the array | +| `ArrayTools::Max(variable)` | Gets the biggest number in an array. || +| | _🗄️ Any variable_ | The array | +| `ArrayTools::Mean(variable)` | Gets the average number in an array. || +| | _🗄️ Any variable_ | The array | +| `ArrayTools::Median(variable)` | Gets the median number in an array. || +| | _🗄️ Any variable_ | The array | +| `ArrayTools::Min(variable)` | Gets the smallest number in an array. || +| | _🗄️ Any variable_ | The array | +| `ArrayTools::ObjectIndexOf(object, object variable, number)` | Return The index of the first variable that equals to a specific number in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to search the value in | +| | _🔢 Number_ | Number to search in the array | +| `ArrayTools::ObjectIndexOfStr(object, object variable, string)` | Return The index of the first variable that equals to a specific text in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to search the value in | +| | _string_ | String to search in the array | +| `ArrayTools::ObjectJoin(object, object variable, string)` | Returns a string made from all strings in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | The name of the array to join into a string | +| | _string_ | Optional separator text between each element | +| `ArrayTools::ObjectLastIndexOf(object, object variable, number)` | Return The index of the last variable that equals to a specific number in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to search the value in | +| | _🔢 Number_ | Number to search in the array | +| `ArrayTools::ObjectLastIndexOfStr(object, object variable, string)` | Return The index of the last variable that equals to a specific text in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to search the value in | +| | _string_ | String to search in the array | +| `ArrayTools::ObjectMax(object, object variable)` | Gets the biggest number in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | The array | +| `ArrayTools::ObjectMean(object, object variable)` | Gets the average number in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | The array | +| `ArrayTools::ObjectMedian(object, object variable)` | Gets the median number in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | The array | +| `ArrayTools::ObjectMin(object, object variable)` | Gets the smallest number in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | The array | +| `ArrayTools::ObjectPopNumber(object, object variable)` | Return Removes the last array child of an array, and return it as a number. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to pop a child from | +| `ArrayTools::ObjectPopString(object, object variable)` | Removes the last array child of an array, and return it as a string. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to pop a child from | +| `ArrayTools::ObjectRandomNumberInArray(object, object variable)` | Return Returns a random number of an array of numbers. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to get a number from | +| `ArrayTools::ObjectRandomStringInArray(object, object variable)` | Return a random string of an array of strings. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to get a string from | +| `ArrayTools::ObjectShiftNumber(object, object variable)` | Removes the first array child of an array, and return it as a number. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to shift a child from | +| `ArrayTools::ObjectShiftString(object, object variable)` | Removes the first array child of an array, and return it as a string. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | Array to shift a child from | +| `ArrayTools::ObjectSum(object, object variable)` | Get the sum of all numbers in an array. || +| | _👾 Object_ | The object the variable is from | +| | _🗄️ Object variable_ | The array | +| `ArrayTools::PopNumber(variable)` | Return Removes the last array child of an array, and return it as a number. || +| | _🗄️ Any variable_ | Array to pop a child from | +| `ArrayTools::PopString(variable)` | Removes the last array child of an array, and return it as a string. || +| | _🗄️ Any variable_ | Array to pop a child from | +| `ArrayTools::RandomNumberInArray(variable)` | Return Returns a random number of an array of numbers. || +| | _🗄️ Any variable_ | Array to get a number from | +| `ArrayTools::RandomStringInArray(variable)` | Return a random string of an array of strings. || +| | _🗄️ Any variable_ | Array to get a string from | +| `ArrayTools::ShiftNumber(variable)` | Removes the first array child of an array, and return it as a number. || +| | _🗄️ Any variable_ | Array to shift a child from | +| `ArrayTools::ShiftString(variable)` | Removes the first array child of an array, and return it as a string. || +| | _🗄️ Any variable_ | Array to shift a child from | +| `ArrayTools::Sum(variable)` | Get the sum of all numbers in an array. || +| | _🗄️ Any variable_ | The array | + --- diff --git a/docs/gdevelop5/extensions/audio-by-name/index.md b/docs/gdevelop5/extensions/audio-by-name/index.md index 897f410345..6ba71fc045 100644 --- a/docs/gdevelop5/extensions/audio-by-name/index.md +++ b/docs/gdevelop5/extensions/audio-by-name/index.md @@ -3,14 +3,12 @@ Play audio with an expression as filename. -**Authors and contributors** to this community extension: [krunkster](https://gd.games/krunkster), [Silver-Streak](https://gd.games/Silver-Streak). +**Authors and contributors** to this experimental extension: [krunkster](https://gd.games/krunkster), [Silver-Streak](https://gd.games/Silver-Streak). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -29,18 +27,59 @@ This can be useful to reduce the number of events needed to dynamically play dif Note: Music files should be preloaded before using these actions, such at the start of the first scene, current scene, or in the resources panel for the entire game. This is to avoid any potential audio pause since the normal resource loading at the start of the game or scene won't load these files by default. For web games, music files must be preloaded to start at all. +??? quote "See parameters" + + - Parameter 1 (string): Audio file resource name + The final string must match the full resource name as displayed in the resource list. + - Parameter 2 (🔢 Number): Channel identifier + - Parameter 3 (❓ Yes or No): Repeat the sound + - Parameter 4 (🔢 Number): Volume + From 0-100, with 100 being full volume. + - Parameter 5 (🔢 Number): Pitch (speed) + 1 for normal speed + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Play sound on a channel by name** Play a sound file on a specific channel by name or string expression. This can be useful to reduce the number of events needed to dynamically play different sound files. e.g. Playing a voice over line based off the current dialogue node name. Note: Sound files should be preloaded before using these actions, such at the start of the first scene, current scene, or in the resources panel for the entire game. This is to avoid any potential audio pause since the normal resource loading at the start of the game or scene won't load these files by default. +??? quote "See parameters" + + - Parameter 1 (string): Audio file resource name + The final string must match the full resource name as displayed in the resource list. + - Parameter 2 (🔢 Number): Channel identifier + - Parameter 3 (❓ Yes or No): Repeat the sound + - Parameter 4 (🔢 Number): Volume + From 0-100, with 100 being full volume. + - Parameter 5 (🔢 Number): Pitch (speed) + 1 for normal speed + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Preload a music file by name** Preload a music file by name or string expression. +??? quote "See parameters" + + - Parameter 1 (string): Audio file resource name + The final string must match the full resource name as displayed in the resource list. + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Preload a sound file by name** Preload a sound file by name or string expression. +??? quote "See parameters" + + - Parameter 1 (string): Audio file resource name + The final string must match the full resource name as displayed in the resource list. + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/audio-context/index.md b/docs/gdevelop5/extensions/audio-context/index.md index a77276ff5e..48bf4e8843 100644 --- a/docs/gdevelop5/extensions/audio-context/index.md +++ b/docs/gdevelop5/extensions/audio-context/index.md @@ -3,14 +3,12 @@ Create procedural audio. -**Authors and contributors** to this community extension: [aliustaoglu](https://gd.games/aliustaoglu). +**Authors and contributors** to this experimental extension: [aliustaoglu](https://gd.games/aliustaoglu). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,39 +28,113 @@ This extension can easily create chiptunes. **Add detune to a synth** Add detune on top of the main frequency to get cool synth effects. +??? quote "See parameters" + + - Parameter 1 (string): Synth name + - Parameter 2 (🔢 Number): Detune value in chips + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Add multiple detunes to a synth** Add comma separated detune values to a synth. +??? quote "See parameters" + + - Parameter 1 (string): Synth name + - Parameter 2 (string): Comma separated detune values + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Add/update filter** Add or update biquad filter. +??? quote "See parameters" + + - Parameter 1 (string): Synth name + - Parameter 2 (🔤 String): Filter type (one of: "lowpass", "highpass", "bandpass", "lowshelf", "highshelf", "peaking", "notch", "allpass") + - Parameter 3 (🔢 Number): Frequency [0-20,000] + - Parameter 4 (🔢 Number): Quality factor [0-100] + - Parameter 5 (🔢 Number): Gain value + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Create chord** Create a new chord. +??? quote "See parameters" + + - Parameter 1 (string): Chord name (imaginary or real) + - Parameter 2 (string): Comma separated notes including octave eg. "C#4, Eb4, G4" + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Create an Audio Context** Create a new audio context (In most cases you only need one context and reuse it with the name). +??? quote "See parameters" + + - Parameter 1 (string): Context name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Create/update synth** Create or update synth with attack, decay, sustain, release gain and apply filters. +??? quote "See parameters" + + - Parameter 1 (string): Name of the synth + - Parameter 2 (string): Context name + - Parameter 3 (🔤 String): Wave type (one of: "sine", "square", "triangle", "sawtooth") + - Parameter 4 (🔢 Number): Attack value + - Parameter 5 (🔢 Number): Decay value + - Parameter 6 (🔢 Number): Sustain value + - Parameter 7 (🔢 Number): Release value + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Play chord** Play an existing chord on a synth. +??? quote "See parameters" + + - Parameter 1 (string): Chord name + - Parameter 2 (string): Synth name to play the chord on + - Parameter 3 (🔢 Number): Duration + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Play note** Play a note a synth you've created before. +??? quote "See parameters" + + - Parameter 1 (string): Synth name + - Parameter 2 (🔤 String): Note name (one of: "C", "C#", "Db", "D", "D#", "Eb", "E", "F", "F#", "Gb", "G", "G#", "Ab", "A", "A#", "Bb", "B") + - Parameter 3 (🔢 Number): Octave (0-8) + - Parameter 4 (🔢 Number): Note duration (-1 to play until stopped manually) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Conditions **Context exists** Check if the context already created. +??? quote "See parameters" + + - Parameter 1 (string): Context name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `AudioContext::ChordNameByIndex()` | Get chord name by index. || +| `AudioContext::ChordNameByIndex(number)` | Get chord name by index. || +| | _🔢 Number_ | Chord index | | `AudioContext::NumberOfChords()` | Number of chords (For looping). || + --- *This page is an auto-generated reference page about the **Audio Context** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/authorized-platforms-validation/index.md b/docs/gdevelop5/extensions/authorized-platforms-validation/index.md index 83691b05e6..bb2aee7521 100644 --- a/docs/gdevelop5/extensions/authorized-platforms-validation/index.md +++ b/docs/gdevelop5/extensions/authorized-platforms-validation/index.md @@ -3,7 +3,7 @@ Checks if the game is currently executed on an allowed platform (for web). -**Authors and contributors** to this community extension: [Oxey405](https://gd.games/Oxey405). +**Authors and contributors** to this experimental extension: [Oxey405](https://gd.games/Oxey405). --- @@ -33,17 +33,30 @@ An authorized platform is a domain name of a website where the game is supposed **Add a valid platform** Adds a new valid platform (domain name where the game is expected to be played, for example, gd.games). +??? quote "See parameters" + + - Parameter 1 (string): Domain name (e.g : gd.games) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Is the game running on an authorized platform** Checks if the game is executed on an authorized platform (preferably, run this only once at beginning of the game). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `AuthorizedPlatformsValidation::CurrentRefferer()` | Get the referrer's location (the domain of the website that hosts your game). || + --- *This page is an auto-generated reference page about the **Platforms Validation** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/auto-typing/index.md b/docs/gdevelop5/extensions/auto-typing/index.md index c64fa6e4cf..43fc8802ad 100644 --- a/docs/gdevelop5/extensions/auto-typing/index.md +++ b/docs/gdevelop5/extensions/auto-typing/index.md @@ -3,20 +3,16 @@ Reveal a text one letter after the other. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). --- Reveal a text one letter after the other (a "typewriter" effect). -It can be used for dialogue scenes or visual novels. +It can be used for dialogue scenes or visual novels on Text and Bitmap Text objects. The top-down RPG example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://top-down-rpg)). -Breaking changes from 2.0.0: - -- The 3 behaviors has been merged into a unique one. - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -31,32 +27,87 @@ Reveal a text one letter after the other. **Show Nth first characters** Jump to a specific position in the text. Positions start at "0" and increase by one for every character. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Character position + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Restart typing from the beginning** Restart typing from the beginning of text. The autotyping also start automatically when a new text is set for the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Time between characters** Change the time between characters beign typed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Show the full text** Show the full text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Has just typed** Check if a character has just been typed. Useful for triggering sound effects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Time between characters** Compare the time between characters beign typed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Finished typing** Check if the full text has been typed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.AutoTyping::Interval()` | Return the time between characters beign typed. || + --- *This page is an auto-generated reference page about the **Auto typing animation for text ("typewriter" effect)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/back-button/index.md b/docs/gdevelop5/extensions/back-button/index.md index 6c1d3fe8d3..09d10521f6 100644 --- a/docs/gdevelop5/extensions/back-button/index.md +++ b/docs/gdevelop5/extensions/back-button/index.md @@ -1,13 +1,13 @@ -# Back button +# Android back button -Adds interactions with the back button. +Allow to customize the behavior of the Android back button. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- -Prevents the back button from quitting the game and provides a condition to check when it's pressed (to allow customising its behavior). +Prevents the Android phone/tablet back button from quitting the game and provides a condition to check when it's pressed (to allow customising its behavior). Works only for games published on Android. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -18,13 +18,26 @@ Prevents the back button from quitting the game and provides a condition to chec This simulates the normal action of the back button. This action will quit the app when in a mobile app, and go back to the previous page when in a web browser. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **Back button is pressed** Triggers whenever the player presses the back button. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Back button** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Android back button** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/base-conversion/index.md b/docs/gdevelop5/extensions/base-conversion/index.md index 7f035f630a..31184d212e 100644 --- a/docs/gdevelop5/extensions/base-conversion/index.md +++ b/docs/gdevelop5/extensions/base-conversion/index.md @@ -3,7 +3,7 @@ Provides conversion expressions for numbers in different bases. -**Authors and contributors** to this community extension: [Ahnaf30e](https://gd.games/Ahnaf30e). +**Authors and contributors** to this experimental extension: [Ahnaf30e](https://gd.games/Ahnaf30e). --- @@ -16,8 +16,13 @@ Adds expressions to convert numbers to a different base and back. Can be used to | Expression | Description | | |-----|-----|-----| -| `BaseConversion::ToBase()` | Converts a number to a trsing representing it in another base. || -| `BaseConversion::ToDecimal()` | Converts a string representing a number in a different base to a decimal number. || +| `BaseConversion::ToBase(number, number)` | Converts a number to a trsing representing it in another base. || +| | _🔢 Number_ | Number to convert | +| | _🔢 Number_ | The base to convert the number to | +| `BaseConversion::ToDecimal(string, number)` | Converts a string representing a number in a different base to a decimal number. || +| | _string_ | String representing a number | +| | _🔢 Number_ | The base the number in the string is in | + --- diff --git a/docs/gdevelop5/extensions/behavior-remapper/index.md b/docs/gdevelop5/extensions/behavior-remapper/index.md index 6c14a80175..ee95cbf140 100644 --- a/docs/gdevelop5/extensions/behavior-remapper/index.md +++ b/docs/gdevelop5/extensions/behavior-remapper/index.md @@ -1,9 +1,9 @@ -# Behavior Remapper +# Platformer and top-down remapper -Quickly remap Behavior controls to different keys. +Quickly remap keyboard controls. -**Authors and contributors** to this community extension: [Add00](https://gd.games/Add00). +**Authors and contributors** to this experimental extension: [Add00](https://gd.games/Add00). --- @@ -51,36 +51,76 @@ Actions have two versions. `custom` allow the movement keys to be changed to wha -## Remap Platformer controls +## Platformer keyboard mapper -Allows for the controls of a platformer behavior to be re-mapped via a single action. +Remap keyboard controls of the platformer character movement. ### Behavior actions **Remap Platformer controls to a custom scheme** Remaps Platformer behavior controls to a custom control scheme. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (keyboardKey): Up key + - Parameter 3 (keyboardKey): Left key + - Parameter 4 (keyboardKey): Down key + - Parameter 5 (keyboardKey): Right key + - Parameter 6 (keyboardKey): Jump key + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Remap Platformer controls to a preset** Remaps Platformer behavior controls to a preset control scheme. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Preset name (one of: "WASD", "ZQSD", "Numpad", "IJKL") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ -## Remap Top-down +## Top-down keyboard remapper -Allows for the controls of a Top-Down behavior to be re-mapped via a single action. +Remap keyboard controls of the top-down movement. ### Behavior actions **Remap Top-Down controls to a custom scheme** Remaps Top-Down behavior controls to a custom control scheme. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (keyboardKey): Up key + - Parameter 3 (keyboardKey): Left key + - Parameter 4 (keyboardKey): Down key + - Parameter 5 (keyboardKey): Right key + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Remap Top-Down controls to a preset** Remaps Top-Down behavior controls to a preset control scheme. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Preset name (one of: "WASD", "ZQSD", "Numpad", "IJKL") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- -*This page is an auto-generated reference page about the **Behavior Remapper** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Platformer and top-down remapper** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/best-practices.md b/docs/gdevelop5/extensions/best-practices.md index 3bfbe83e18..f6246cf4d1 100644 --- a/docs/gdevelop5/extensions/best-practices.md +++ b/docs/gdevelop5/extensions/best-practices.md @@ -68,7 +68,11 @@ Breaking change update: ### Write descriptions -All of the descriptions, names, and sentences should be filled out. They should be all grammatically correct and serious-sounding full English sentences. +All descriptions, names, and sentences should be filled out. They should be: +- Grammatically correct +- Full English sentences +- To the point +- Simple to understand (you should avoid jargon) #### Write extension descriptions @@ -76,7 +80,9 @@ The short description should describe your extension in a short (one or two sent For the extension long description, Markdown syntax can be used. - Backticks should be surrounding expression names so that they appear in a monospaced font. -- The description should include a list of functionality added by your extension. +- The description should include a list of what can be done with your extension. + - Avoid to list your actions, give real life use-cases + - Feel free to submit examples to show how to do these use-cases - If your extension needs a special setup to work, it should be described. - You can also add screenshots, by uploading an image to a site and using the markdown image syntax to include the image, for example: @@ -90,7 +96,7 @@ An extension should have tags describing what it does. For example, an extension . ### Link a documentation -The Help URL should always point to a piece of documentation, preferably on the GDevelop wiki. It should not point to the author's website or the extension's website. It is not necessary to have a help URL for submitting an extension, but it is strongly recommended. +Extensions are usually documented thanks to their actions, conditions and expressions descriptions. Sometimes, users need to understand more general concepts to be able to use the extension. In this case, you can add a comment with the content of the documentation to your extension submission. The [marching squares](/gdevelop5/extensions/marching-squares/details) extension is a good example of an extension that would be hard to understand without a documentation. ## Describe extension definitions @@ -153,7 +159,11 @@ Be sure to return **the proper value** (return a text for a string expression) - #### Understand when to use a custom behavior -When an operation with an object needs to be done over more than one frame., you should use a behavior over a function, as they are cleaner and easier to use for users. For example, if you are making a teleport extension that just sets the X and Y once and that's it, you can make it a function. If it is first starting a timer and after a specific time frame changes the position, then the action is not instant anymore but needs to call events over the next frames. If you are using a behavior, this is made invisible thanks to a lifetime behavior function, if you were not using it you would have to force the user to call your function each frame, which is confusing and inconvenient for the user as an action is supposed to serve it's purpose immediately the moment you tell it to. +You should consider making a custom behavior when you need to keep track of a state for each object instance. + +!!! tip + + Learn more about [making custom behaviors](/gdevelop5/behaviors/events-based-behaviors/). ## Write events in the extension @@ -163,16 +173,18 @@ When an operation with an object needs to be done over more than one frame., you * Use a descriptive name * Bad example: `x`, `ComCan2`, `MyVar` * Good example: `CommunicationChannel2`, `TemporaryObjectName` - * Store variables in a structure variable. This simply means that you name all of your variables using the `__ExtensionName.VariableName` format. - * For example, a "Camera zoom" extension would use the prefix `__CameraZoom`. If you want to use a variable named "ZoomValue", it should be named like this: -> -> `__CameraZoom.ZoomValue` +Extension users should only be using an extension through conditions, actions, and expressions provided by the extension developer. They should not be expected to access extension variables directly. + +### Name object variables +- store variables in a structure variable. This simply means that you name all of your variables using the `__ExtensionName.VariableName` format. +- For example, a "Camera zoom" extension would use the prefix `__CameraZoom`. If you want to use a variable named "ZoomValue", it should be named like this: -This naming convention has several benefits. First, it will make it easier to use the debugger because all extension variables will be collapsed under their extension name. Secondly, it will reduce the chance of name collisions with variables created by the game developer. +> +> `__CameraZoom.ZoomValue` -On a related topic, extension users should only be using an extension through conditions, actions, and expressions provided by the extension developer. They should not be expected to access extension variables directly. +This naming convention has several benefits. First, it will make it easier to use the debugger because all extension variables will be collapsed under their extension name. Secondly, it will reduce the chance of name collisions with variables created by the game developer. Hidden properties should be used in behavior events in place of variables. Variables can still be used when child variables must be used. @@ -199,21 +211,11 @@ If it is really not possible to make the extension work on some platforms, then ### JavaScript Usage -JavaScript can be used using [JavaScript Code events](/gdevelop5/events/js-code), but we try to avoid it when making extensions. Extensions are meant to be editable by any GDevelop user, and an extension made in events would stay compatible **if** we were to make a new native non-JavaScript engine. Object picking with normal events is also generally more optimized than most handwritten JavaScript code. For those purposes, we try as much as possible to keep extensions in classic events, with *no JavaScript*. - -If you have to store javascript variables/functions, store these on the global `gdjs` object, inside a `namespace` of the same name as your extension. For example, for an extension offering features related to controllers: - -```javascript -gdjs._controllerExtension = {}; -``` - -```javascript -gdjs._controllerExtension.myMethod = function (arguments) { - // ... -} -``` +JavaScript can be used with [JavaScript Code events](/gdevelop5/events/js-code), but we try to avoid them for the following reasons: +- Extensions are meant to be editable by any GDevelop user +- Extensions made in events will stay compatible **if** we were to make a new native non-JavaScript engine. -That is because `gdjs` is the only guaranteed global object, but you don't want to accidentally override other functions/internals present on that namespace as well. +If you have to store javascript variables/functions, store them on the global `gdjs` object, inside a `namespace` of the same name as your extension. You can read more about it in the [Use JavaScript in extensions](/gdevelop5/events/js-code/javascript-in-extensions) page. When you declare a new namespace in gdjs, you must declare it in the file: ```javascript diff --git a/docs/gdevelop5/extensions/billboard/index.md b/docs/gdevelop5/extensions/billboard/index.md index 31a12fed30..30ca91f944 100644 --- a/docs/gdevelop5/extensions/billboard/index.md +++ b/docs/gdevelop5/extensions/billboard/index.md @@ -3,7 +3,7 @@ Rotate 3D objects to appear like 2D sprites. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -25,29 +25,82 @@ Rotate to always face the camera (only the front face of the cube should be enab **Rotate to face the camera** Rotate the object to the camera. This is also done automatically at the end of the scene events. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Should rotate on X axis** Change if the object should rotate on X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): ShouldRotateX + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Should rotate on Y axis** Change if the object should rotate on Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): ShouldRotateY + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Should rotate on Z axis** Change if the object should rotate on Z axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): ShouldRotateZ + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Should rotate on X axis** Check if the object should rotate on X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Should rotate on Y axis** Check if the object should rotate on Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Should rotate on Z axis** Check if the object should rotate on Z axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **3D Billboard** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/boids-movement/index.md b/docs/gdevelop5/extensions/boids-movement/index.md index 3ca04e6192..4f6f067b16 100644 --- a/docs/gdevelop5/extensions/boids-movement/index.md +++ b/docs/gdevelop5/extensions/boids-movement/index.md @@ -3,7 +3,7 @@ Simulates flocks movement. -**Authors and contributors** to this community extension: [planktonfun](https://gd.games/planktonfun), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [planktonfun](https://gd.games/planktonfun), [D8H](https://gd.games/D8H). --- @@ -27,47 +27,168 @@ Move as part of a flock. **Avoid an object** Intend to avoid an area from an object center and a given radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Avoided object + - Parameter 3 (🔢 Number): Radius + - Parameter 4 (🔢 Number): Decision weight + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Avoid a position** Intend to avoid an area with a given center and radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Center X + - Parameter 3 (🔢 Number): Center Y + - Parameter 4 (🔢 Number): Radius + - Parameter 5 (🔢 Number): Decision weight + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Move in a direction** Intend to move in a given direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Direction X + - Parameter 3 (🔢 Number): Direction Y + - Parameter 4 (🔢 Number): Decision weight + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Move toward an object** Intend to move toward an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Targeted object + - Parameter 3 (🔢 Number): Decision weight + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Move toward a position** Intend to move toward a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Target X + - Parameter 3 (🔢 Number): Target Y + - Parameter 4 (🔢 Number): Decision weight + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Alignment sight radius** Return the alignment sight radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Alignment weight** Change the weight the alignment takes in the chosen direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Cohesion sight radius** Change the cohesion sight radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Cohesion weight** Change the weight the cohesion takes in the chosen direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Maximum acceleration** Change the maximum acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Steering Force + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Maximum speed** Change the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Max Speed + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Separation sight radius** Return the separation sight radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Separation weight** Change the weight the separation takes in the chosen direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Object Rotated** Check if the object is rotated while moving on its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -84,6 +205,7 @@ Check if the object is rotated while moving on its path. | `Object.BoidsMovement::VelocityX()` | Return the current horizontal speed. || | `Object.BoidsMovement::VelocityY()` | Return the current vertical speed. || + --- *This page is an auto-generated reference page about the **Boids movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/boomerang/index.md b/docs/gdevelop5/extensions/boomerang/index.md index 51e1c54647..5b9e4074d8 100644 --- a/docs/gdevelop5/extensions/boomerang/index.md +++ b/docs/gdevelop5/extensions/boomerang/index.md @@ -3,7 +3,7 @@ Throw an object that returns to the thrower like a boomerang. -**Authors and contributors** to this community extension: [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames). --- @@ -33,26 +33,80 @@ Throw an object that returns to the thrower like a boomerang. **Send boomerang back to thrower** Send boomerang back to thrower. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Set amount of time before boomerang changes directions** Set amount of time before boomerang changes directions (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Time before boomerange changes direction (seconds) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Throw boomerang toward an angle** Throw boomerang toward an angle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle (degrees) + - Parameter 3 (🔢 Number): Throw speed (pixels per second) + - Parameter 4 (🔢 Number): Time before changing directions (seconds) + - Parameter 5 (🔢 Number): Rotation (degrees per second) + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Throw boomerang toward a position** Throw boomerang toward a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Target X position + - Parameter 3 (🔢 Number): Target Y position + - Parameter 4 (🔢 Number): Throw speed (pixels per second) + - Parameter 5 (🔢 Number): Time before changing directions (seconds) + - Parameter 6 (🔢 Number): Rotation (degrees per second) + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Track position of boomerang thrower** Track position of boomerang thrower. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Thrower + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Boomerang is returning to thrower** Boomerang is returning to thrower. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Boomerang** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/bounce/index.md b/docs/gdevelop5/extensions/bounce/index.md index 73bba7f64a..81dd37c613 100644 --- a/docs/gdevelop5/extensions/bounce/index.md +++ b/docs/gdevelop5/extensions/bounce/index.md @@ -3,7 +3,7 @@ Bounce the object off another object it just touched. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian). --- @@ -30,35 +30,79 @@ Provides an action to make the object bounce from another object it just touched Bounce the object off another object it is currently colliding with, according to the angle and the speed of forces applied on the object. Make sure to test for a collision between the two objects before launching this action. All the forces will be removed from the object, and a new permanent force will be added to make the object bounce. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): The objects to bounce on + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Bounce horizontally** Bounce the object off another object it is currently colliding with, according to the angle and the speed of forces applied on the object. The bounce will always be horizontal, like if the object is *colliding a perfectly vertical obstacle* (like paddles in a pong game). For example, if the object is arriving with an angle of exactly 0 degrees, it will bounce in the opposite direction: 180 degrees. Make sure to test for a collision between the two objects before launching this action. All the forces will be removed from the object, and a new permanent force will be added to make the object bounce. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): The objects to bounce on + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Bounce off another object toward a specified angle** Bounce the object off another object it is currently colliding with, according to the angle and the speed of forces applied on the object. The bounce will always be calculated *to go toward the specified angle (the "normal angle")*. For example, if the object is arriving at this exact angle, it will bounce in the opposite direction. Make sure to test for a collision between the two objects before launching this action. All the forces will be removed from the object, and a new permanent force will be added to make the object bounce. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): The objects to bounce on + - Parameter 3 (🔢 Number): The "normal" angle, in degrees, to bounce against + This can be understood at the direction that the bounce must go toward. + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Bounce vertically** Bounce the object off another object it is currently colliding with, according to the angle and the speed of forces applied on the object. The bounce will always be vertical, like if the object is *colliding a perfectly horizontal obstacle* (like the top/bottom of the screen in a pong game). For example, if the object is arriving with an angle of exactly 90 degrees, it will bounce in the opposite direction: -90 degrees. Make sure to test for a collision between the two objects before launching this action. All the forces will be removed from the object, and a new permanent force will be added to make the object bounce. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): The objects to bounce on + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Bounce count** Compare the number of times this object has bounced off another object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.Bounce::BounceCount()` | Return the number of times this object has bounced off another object. || + --- *This page is an auto-generated reference page about the **Bounce (using forces)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/button-states/index.md b/docs/gdevelop5/extensions/button-states/index.md index bf0c705ff0..ba9e2d53e0 100644 --- a/docs/gdevelop5/extensions/button-states/index.md +++ b/docs/gdevelop5/extensions/button-states/index.md @@ -3,7 +3,7 @@ Use any object as a button and change appearance according to user interactions. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). --- @@ -39,23 +39,77 @@ Change the animation of buttons according to their state. **Focused state animation name** Change the focused state animation name of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state animation name** Change the idle state animation name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state animation name** Change the pressed state animation name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Focused state animation name** Compare the focused state animation name of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state animation name** Compare the idle state animation name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state animation name** Compare the pressed state animation name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -73,47 +127,173 @@ Smoothly change the color tint of buttons according to their state. **Fade-in duration** Change the fade-in duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in easing** Change the fade-in easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out duration** Change the fade-out duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out easing** Change the fade-out easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Focused state color tint** Change the focused state color tint of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state color tint** Change the idle state color tint of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state color tint** Change the pressed state color tint of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Fade-in duration** Compare the fade-in duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in easing** Compare the fade-in easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out duration** Compare the fade-out duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out easing** Compare the fade-out easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Focused state color tint** Compare the focused state color tint of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state color tint** Compare the idle state color tint of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state color tint** Compare the pressed state color tint of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -135,24 +315,75 @@ Use objects as buttons. **Is clicked** Check if the button was just clicked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is focused** Check if the button is either hovered or pressed but not hovered. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is hovered** Check if the cursor is hovered over the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is idle** Check if the button is not used. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is pressed** Check if the button is currently being pressed with mouse or touch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is held outside** Check if the button is currently being pressed outside with mouse or touch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Touch id** Compare the touch id that is using the button or 0 if none. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -168,56 +399,209 @@ Smoothly change an effect on buttons according to their state. **Effect parameter** Change the effect parameter of the object. The effect parameter names can be found in the effects tab with the "Show parameter names" action of the drop down menu. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Effect name + - Parameter 3 (string): Parameter name + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in duration** Change the fade-in duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in easing** Change the fade-in easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out duration** Change the fade-out duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out easing** Change the fade-out easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Focused effect parameter value** Change the focused effect parameter value of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle effect parameter value** Change the idle effect parameter value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed effect parameter value** Change the pressed effect parameter value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Effect name** Compare the effect name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Effect parameter** Compare the effect parameter of the object. The effect parameter names can be found in the effects tab with the "Show parameter names" action of the drop down menu. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in duration** Compare the fade-in duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in easing** Compare the fade-in easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out duration** Compare the fade-out duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out easing** Compare the fade-out easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Focused effect parameter value** Compare the focused effect parameter value of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle effect parameter value** Compare the idle effect parameter value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed effect parameter value** Compare the pressed effect parameter value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -241,23 +625,77 @@ Enable effects on buttons based on their state. **Focused state effect** Change the focused state effect of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state effect** Change the idle state effect of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state effect** Change the pressed state effect of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Focused state effect** Compare the focused state effect of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state effect** Compare the idle state effect of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state effect** Compare the pressed state effect of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -275,47 +713,173 @@ Smoothly resize buttons according to their state. **Fade-in duration** Change the fade-in duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in easing** Change the fade-in easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out duration** Change the fade-out duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out easing** Change the fade-out easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Focused state size scale** Change the focused state size scale of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state size scale** Change the idle state size scale of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state size scale** Change the pressed state size scale of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Fade-in duration** Compare the fade-in duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-in easing** Compare the fade-in easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out duration** Compare the fade-out duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Fade-out easing** Compare the fade-out easing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Focused state size scale** Compare the focused state size scale of the object. The state is Focused when the button is hovered or held outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Idle state size scale** Compare the idle state size scale of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Pressed state size scale** Compare the pressed state size scale of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -328,6 +892,7 @@ Compare the pressed state size scale of the object. | `Object.ButtonScaleTween::IdleScale()` | Return the idle state size scale of the object. || | `Object.ButtonScaleTween::PressedScale()` | Return the pressed state size scale of the object. || + --- *This page is an auto-generated reference page about the **Button states and effects** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/camera-impulse/index.md b/docs/gdevelop5/extensions/camera-impulse/index.md index e5eb864e62..a4cf6a9c57 100644 --- a/docs/gdevelop5/extensions/camera-impulse/index.md +++ b/docs/gdevelop5/extensions/camera-impulse/index.md @@ -3,7 +3,7 @@ Move the camera following an impulse trajectory. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -19,14 +19,49 @@ It can be used to simulate earthquakes or impacts. **Add a camera impulse** Add an impulse to the camera position. +??? quote "See parameters" + + - Parameter 1 (string): Identifier + - Parameter 2 (string): Layer + - Parameter 3 (🔢 Number): Displacement X + - Parameter 4 (🔢 Number): Displacement Y + - Parameter 5 (🔢 Number): Get away duration (in seconds) + - Parameter 6 (🔤 String): Get away easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 7 (🔢 Number): Stay duration (in seconds) + - Parameter 8 (🔢 Number): Get back duration (in seconds) + - Parameter 9 (🔤 String): Get back easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameters 0, 10 are internal parameters handled by GDevelop. + **Add a camera impulse (angle)** Add an impulse to the camera position. +??? quote "See parameters" + + - Parameter 1 (string): Identifier + - Parameter 2 (string): Layer + - Parameter 3 (🔢 Number): Amplitude + - Parameter 4 (🔢 Number): Angle (in degree) + - Parameter 5 (🔢 Number): Get away duration (in seconds) + - Parameter 6 (🔤 String): Get away easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 7 (🔢 Number): Stay duration (in seconds) + - Parameter 8 (🔢 Number): Get back duration (in seconds) + - Parameter 9 (🔤 String): Get back easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameters 0, 10 are internal parameters handled by GDevelop. + ## Conditions **Camera impulse is playing** Check if a camera impulse is playing. +??? quote "See parameters" + + - Parameter 1 (string): Identifier + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/camera-shake/index.md b/docs/gdevelop5/extensions/camera-shake/index.md index c87c91a612..e327c00349 100644 --- a/docs/gdevelop5/extensions/camera-shake/index.md +++ b/docs/gdevelop5/extensions/camera-shake/index.md @@ -3,7 +3,7 @@ Shake layer cameras. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H), [fuzzy](https://gd.games/fuzzy). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H), [fuzzy](https://gd.games/fuzzy). --- @@ -30,44 +30,132 @@ Release notes: **Default rotation amplitude** Change the default rotation amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Angle (in degree) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Default shaking frequency** Change the default number of back and forth per seconds. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Frequency + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Default translation amplitude** Change the default translation amplitude of the shaking (in pixels). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Amplitude of shaking on the X axis (in pixels) + - Parameter 2 (🔢 Number): Amplitude of shaking on the Y axis (in pixels) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Default zoom amplitude** Change the default zoom factor amplitude of the shaking. The shaking will zoom and unzoom by this factor (for instance 1.0625 is a valid value). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Zoom factor + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Layer rotation amplitude** Change the rotation amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Angle (in degree) + - Parameter 2 (🔤 Layer name (String)): NewLayerName + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Shakable layer** Mark a layer as shakable. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Shakable + - Parameter 2: 🔤 Layer name (String) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Layer shaking frequency** Change the number of back and forth per seconds. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Frequency + - Parameter 2 (🔤 Layer name (String)): NewLayerName + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Layer translation amplitude** Change the translation amplitude of the shaking (in pixels). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Amplitude of shaking on the X axis (in pixels) + - Parameter 2 (🔢 Number): Amplitude of shaking on the Y axis (in pixels) + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Layer zoom amplitude** Change the zoom factor amplitude of the shaking. The shaking will zoom and unzoom by this factor (for instance 1.0625 is a valid value). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Zoom factor + - Parameter 2 (🔤 Layer name (String)): NewLayerName + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Shake camera** Shake the camera on layers chosen with configuration actions. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Duration (in seconds) + - Parameter 2 (🔢 Number): Ease duration to start (in seconds) + - Parameter 3 (🔢 Number): Ease duration to stop (in seconds) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Start camera shaking** Start shaking the camera indefinitely. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Ease duration (in seconds) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Stop camera shaking** Stop shaking the camera. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Ease duration (in seconds) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Camera is shaking** Check if the camera is shaking. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/camera-shake3d/index.md b/docs/gdevelop5/extensions/camera-shake3d/index.md index 3f96b8b572..c431c97fd2 100644 --- a/docs/gdevelop5/extensions/camera-shake3d/index.md +++ b/docs/gdevelop5/extensions/camera-shake3d/index.md @@ -3,14 +3,12 @@ Shake 3D layer cameras. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,48 +28,140 @@ Shake layer cameras on 3 rotations. **Horizontal rotation amplitude** Change the horizontal rotation amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Shakable layer** Mark a layer as shakable. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Shakable + - Parameter 2: 🔤 Layer name (String) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Layer shaking frequency** Change the number of back and forth per seconds. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Frequency + - Parameter 2: 🔤 Layer name (String) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Spinning shake amplitude** Change the spinning amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Vertical rotation amplitude** Change the vertical rotation amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Shake camera** Shake the camera on layers chosen with configuration actions. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Duration (in seconds) + - Parameter 2 (🔢 Number): Ease duration to start (in seconds) + - Parameter 3 (🔢 Number): Ease duration to stop (in seconds) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Start camera shaking** Start shaking the camera indefinitely. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Ease duration (in seconds) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Stop camera shaking** Stop shaking the camera. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Ease duration (in seconds) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Horizontal rotation amplitude** Compare the horizontal rotation amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Camera is shaking** Check if the camera is shaking. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Spinning shake amplitude** Compare the spinning amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Vertical rotation amplitude** Compare the vertical rotation amplitude of the shaking (in degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `CameraShake3D::HorizontalAmplitudeAngle()` | Return the horizontal rotation amplitude of the shaking (in degrees). || -| `CameraShake3D::SpineAmplitudeAngle()` | Return the spinning amplitude of the shaking (in degrees). || -| `CameraShake3D::VerticalAmplitudeAngle()` | Return the vertical rotation amplitude of the shaking (in degrees). || +| `CameraShake3D::HorizontalAmplitudeAngle(layer name)` | Return the horizontal rotation amplitude of the shaking (in degrees). || +| | _🔤 Layer name (String)_ | Layer | +| `CameraShake3D::SpineAmplitudeAngle(layer name)` | Return the spinning amplitude of the shaking (in degrees). || +| | _🔤 Layer name (String)_ | Layer | +| `CameraShake3D::VerticalAmplitudeAngle(layer name)` | Return the vertical rotation amplitude of the shaking (in degrees). || +| | _🔤 Layer name (String)_ | Layer | + --- diff --git a/docs/gdevelop5/extensions/camera-zoom/index.md b/docs/gdevelop5/extensions/camera-zoom/index.md index c97412a776..ea07e4526f 100644 --- a/docs/gdevelop5/extensions/camera-zoom/index.md +++ b/docs/gdevelop5/extensions/camera-zoom/index.md @@ -3,21 +3,12 @@ Allows to zoom camera on a layer with a speed (factor per second). -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [Elairyx](https://gd.games/Elairyx). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [Elairyx](https://gd.games/Elairyx). --- -## Description - This extension allows to zoom a camera on a layer at a given speed. The zoom speed is configurable and allows a constant as well as a variable zoom speed. An anchor point can be defined, for instance, to keep what is under the cursor at the same place on screen. -### Actions - - -- Zoom at a given speed -- Change the zoom with an anchor point -- Zoom at a given speed and with an anchor point - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -26,12 +17,44 @@ This extension allows to zoom a camera on a layer at a given speed. The zoom spe **Zoom with anchor** Change the camera zoom and keep an anchor point fixed on screen (instead of the center). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Zoom + 1: Initial zoom, 2: zoom in x2, 0.5: zoom out x2... + - Parameter 2: 🔤 Layer name (String) + - Parameter 3 (🔢 Number): Camera number + - Parameter 4 (🔢 Number): Anchor X + - Parameter 5 (🔢 Number): Anchor Y + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Zoom camera with speed** Change the camera zoom at a given speed (in factor per second). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Zoom speed + Zoom by a factor per second. 1: no effect, 2: zoom in x2 every second, 0.5: zoom out x2 every second. + - Parameter 2: 🔤 Layer name (String) + - Parameter 3 (🔢 Number): Camera number + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Zoom camera with speed and anchor** Change the camera zoom at a given speed (in factor per second) and keep an anchor point fixed on screen (instead of the center). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Zoom speed + Zoom by a factor per second. 1: no effect, 2: zoom in x2 every second, 0.5: zoom out x2 every second. + - Parameter 2: 🔤 Layer name (String) + - Parameter 3 (🔢 Number): Camera number + - Parameter 4 (🔢 Number): Anchor X + - Parameter 5 (🔢 Number): Anchor Y + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/cancellable-draggable/index.md b/docs/gdevelop5/extensions/cancellable-draggable/index.md index a20b2f7122..77d05efc46 100644 --- a/docs/gdevelop5/extensions/cancellable-draggable/index.md +++ b/docs/gdevelop5/extensions/cancellable-draggable/index.md @@ -3,7 +3,7 @@ Allow to cancel the drag of an object (having the Draggable behavior) and return it smoothly to its previous position. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -24,14 +24,31 @@ Allow to cancel the drag of an object and make it smoothly return to its origina **Cancel drag** Cancel last drag. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration in seconds + - Parameter 3 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Dragging is cancelled** Dragging is cancelled, the object is returning to its original position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Cancellable draggable object** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/character-game-feel/index.md b/docs/gdevelop5/extensions/character-game-feel/index.md index 0e1252d3c4..4f1f23d0a2 100644 --- a/docs/gdevelop5/extensions/character-game-feel/index.md +++ b/docs/gdevelop5/extensions/character-game-feel/index.md @@ -3,14 +3,12 @@ Add game feel to your platformer character object. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -61,17 +59,43 @@ For platformer character. **Disable animation** Disable game feel animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Animation (one of: "Idle", "Jump", "Fall", "Land") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable animation** Enable game feel animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Animation (one of: "Idle", "Jump", "Fall", "Land") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Animation is playing** Check if the object game feel animation is playing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): Tween behavior + - Parameter 3 (🔤 String): Animation (one of: "Idle", "Jump", "Fall", "Land") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Character game feel** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/chat-bubble/index.md b/docs/gdevelop5/extensions/chat-bubble/index.md index 59dff75fc0..a6f408983a 100644 --- a/docs/gdevelop5/extensions/chat-bubble/index.md +++ b/docs/gdevelop5/extensions/chat-bubble/index.md @@ -3,14 +3,12 @@ Create chat bubbles dynamically. -**Authors and contributors** to this community extension: [planktonfun](https://gd.games/planktonfun). +**Authors and contributors** to this experimental extension: [planktonfun](https://gd.games/planktonfun). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -44,12 +42,36 @@ Draws a chat bubble into a text object. **Draw a chat bubble** Draw a chat bubble. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (👾 Object): Chat bubble text object + - Parameter 5: 🔤 Layer name (String) + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Draw a chat bubble with name tag** Draw a chat bubble with name tag. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (👾 Object): Chat bubble text object + - Parameter 5: 🔤 Layer name (String) + - Parameter 6 (👾 Object): Name tag text object (optional) + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **ChatBubble** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/cheat-code/index.md b/docs/gdevelop5/extensions/cheat-code/index.md deleted file mode 100644 index e245ebf3d5..0000000000 --- a/docs/gdevelop5/extensions/cheat-code/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# CheatCode - - -Add cheat codes to your game. - -**Authors and contributors** to this community extension: [AshBadas](https://gd.games/AshBadas). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -- Use "Cheat Code Entered" (A Condition to check if a cheat code was entered). - -Note: Only lowercase alphabets and no special characters can be used as a cheat code. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Conditions - -**Cheat code entered** -Check if a cheat code was entered. - - - ---- - -*This page is an auto-generated reference page about the **CheatCode** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/checkbox/index.md b/docs/gdevelop5/extensions/checkbox/index.md index 5ab4a6cfc0..0c853f36a6 100644 --- a/docs/gdevelop5/extensions/checkbox/index.md +++ b/docs/gdevelop5/extensions/checkbox/index.md @@ -3,7 +3,7 @@ Checkbox that can be toggled by a left-click or touch. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). --- @@ -34,50 +34,166 @@ Checkbox that can be toggled by a left-click or touch. **Border thickness of checkbox** Change the border thickness of checkbox. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Track thickness + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Check (or uncheck) the checkbox** Check (or uncheck) the checkbox. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Check the checkbox? + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable interactions with checkbox** Enable or disable interactions with the checkbox. Users cannot interact while it is disabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Enable + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo opacity when hovered** Change the halo opacity when hovered. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo opacity when pressed** Change the halo opacity when pressed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo radius when hovered** Change the halo radius when hovered. This size is also used to detect interaction with the checkbox. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo radius + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo radius when pressed** Change the halo radius when pressed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo radius + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Line width of checkmark** Change the line width of checkmark. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Line width (px) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Primary color of checkbox** Change the primary color of checkbox. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Primary color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Secondary color of checkbox** Change the secondary color of checkbox. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Secondary color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Side length of checkbox** Change the side length of checkbox. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Track width (px) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Toggle checkmark** If checked, change to unchecked. If unchecked, change to checked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Checkbox is being pressed** Check if the checkbox is being pressed by mouse or touch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is checked** Check if the checkbox is checked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Interactions enabled** Check if the checkbox interations are enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -92,6 +208,7 @@ Check if the checkbox interations are enabled. | `Object.Checkbox::SecondaryColor()` | Return the color used to fill the checkbox (when unchecked) and to draw the checkmark (when checked). || | `Object.Checkbox::SideLength()` | Return the side length of checkbox (pixels). || + --- *This page is an auto-generated reference page about the **Checkbox (for Shape Painter)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/checkpoints/index.md b/docs/gdevelop5/extensions/checkpoints/index.md index ba4ae11747..e77983e7ae 100644 --- a/docs/gdevelop5/extensions/checkpoints/index.md +++ b/docs/gdevelop5/extensions/checkpoints/index.md @@ -3,7 +3,7 @@ Respawn objects at checkpoints. -**Authors and contributors** to this community extension: [Elairyx](https://gd.games/Elairyx), [Bouh](https://gd.games/Bouh). +**Authors and contributors** to this experimental extension: [Elairyx](https://gd.games/Elairyx), [Bouh](https://gd.games/Bouh). --- @@ -19,14 +19,41 @@ The platformer example uses this extension ([open the project online](https://ed **Load checkpoint** Change the position of the object to the saved checkpoint. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Load checkpoint from object + - Parameter 2 (👾 Object): Change position of object + - Parameter 3 (🔤 Name (String)): Checkpoint name + - Parameter 4 (❓ Yes or No): Ignore (possibly) empty checkpoints + Loading not yet saved checkpoints will (by default) set the position to the coordinate 0;0. Select "yes" to completely ignore non-existant checkpoints. To define an alternative checkpoint for it, create a new event and use the "Checkpoint exists" condition, save the wanted checkpoint as the action. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Save checkpoint** Update a checkpoint of an object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Save checkpoint of object + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (🔤 Name (String)): Checkpoint name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Conditions **Checkpoint exists** Check if a checkpoint has a position saved / does exist. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Check checkpoint from object + - Parameter 2 (🔤 Name (String)): Checkpoint name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/choose/index.md b/docs/gdevelop5/extensions/choose/index.md deleted file mode 100644 index 904a871888..0000000000 --- a/docs/gdevelop5/extensions/choose/index.md +++ /dev/null @@ -1,33 +0,0 @@ -# Choose a random value (deprecated) - - -Choose a random value in a list of strings or numbers. - -**Authors and contributors** to this community extension: [UlisesFreitas](https://gd.games/UlisesFreitas). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -In an expression, use `Choose::RandomString` or `Choose::RandomNumber` and set the values you want to randomize separated by commas. - -This extension is deprecated. Use the [Array Tools extension](https://wiki.gdevelop.io/gdevelop5/extensions/array-tools) to get a random value from an array variable instead. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Expressions - -| Expression | Description | | -|-----|-----|-----| -| `Choose::RandomNumber()` | Choose a number randomly between comma-separated numbers. || -| `Choose::RandomString()` | Choose randomly between comma-separated strings. || - ---- - -*This page is an auto-generated reference page about the **Choose a random value (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/clipboard/index.md b/docs/gdevelop5/extensions/clipboard/index.md index 0b73e7ddaf..370e09a932 100644 --- a/docs/gdevelop5/extensions/clipboard/index.md +++ b/docs/gdevelop5/extensions/clipboard/index.md @@ -3,7 +3,7 @@ Read and write the clipboard. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh), [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh), [arthuro555](https://gd.games/arthuro555). --- @@ -19,9 +19,22 @@ Read the text from the clipboard asynchronously. Note also that on web browsers, the user might be asked for permissions to read from the clipboard. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): Callback variable where to store the clipboard contents + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Write text to the clipboard** Write the text in the clipboard. +??? quote "See parameters" + + - Parameter 1 (string): Text to write to clipboard + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/clock/index.md b/docs/gdevelop5/extensions/clock/index.md index 7277daa9d3..ef0ecc37f7 100644 --- a/docs/gdevelop5/extensions/clock/index.md +++ b/docs/gdevelop5/extensions/clock/index.md @@ -3,14 +3,12 @@ Add clocks into your game. -**Authors and contributors** to this community extension: [DaddyPL](https://gd.games/DaddyPL). +**Authors and contributors** to this experimental extension: [DaddyPL](https://gd.games/DaddyPL). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -53,6 +51,7 @@ Modify a text object to display the year. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Clock** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/collision3d/index.md b/docs/gdevelop5/extensions/collision3d/index.md index 29fa8c26cf..dadbbb29b5 100644 --- a/docs/gdevelop5/extensions/collision3d/index.md +++ b/docs/gdevelop5/extensions/collision3d/index.md @@ -3,14 +3,12 @@ Check collision and distance between 3D objects. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [TulenvakiProductions](https://gd.games/TulenvakiProductions). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [TulenvakiProductions](https://gd.games/TulenvakiProductions). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -25,25 +23,75 @@ Check collision and distance between 3D objects and separate them from each othe Move an object away from another using their collision masks. Object rotation around X and Y axes are ignored. Be sure to call this action on a reasonable number of objects to avoid slowing down the game. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (👾 Object): Objects (won't move) + - Parameter 4 (🧩 Behavior): 3D capability + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Conditions **Collision in 3D** Check the collision between two objects using their collision masks. Object rotation around X and Y axes are ignored. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (👾 Object): Other object + - Parameter 4 (🧩 Behavior): 3D capability + - Parameter 5 (❓ Yes or No): Ignore objects that are touching each other on their edges, but are not overlapping (default: no) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Distance between two objects in 3D** Compare the distance between two objects in 3D. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (👾 Object): Other object + - Parameter 3 (🔢 Number): Distance + - Parameter 4 (❓ Yes or No): Use custom center + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Pick nearest object in 3D** Pick the object of this type that is nearest to the specified position in 3D. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (🔢 Number): Z position + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Collision3D::Distance()` | Distance between two objects in 3D. || -| `Collision3D::DistanceToPosition()` | Distance between an object and a position in 3D. || -| `Collision3D::SqDistance()` | Square distance between two objects in 3D. || -| `Collision3D::SqDistanceToPosition()` | Square distance between an object and a position in 3D. || +| `Collision3D::Distance(object, object)` | Distance between two objects in 3D. || +| | _👾 Object_ | Object | +| | _👾 Object_ | Other object | +| `Collision3D::DistanceToPosition(object, number, number, number)` | Distance between an object and a position in 3D. || +| | _👾 Object_ | Object | +| | _🔢 Number_ | X position | +| | _🔢 Number_ | Y position | +| | _🔢 Number_ | Z position | +| `Collision3D::SqDistance(object, object)` | Square distance between two objects in 3D. || +| | _👾 Object_ | Object | +| | _👾 Object_ | Other object | +| `Collision3D::SqDistanceToPosition(object, number, number, number)` | Square distance between an object and a position in 3D. || +| | _👾 Object_ | Object | +| | _🔢 Number_ | X position | +| | _🔢 Number_ | Y position | +| | _🔢 Number_ | Z position | + --- diff --git a/docs/gdevelop5/extensions/color-conversion/index.md b/docs/gdevelop5/extensions/color-conversion/index.md index 899b25b836..4240e21df7 100644 --- a/docs/gdevelop5/extensions/color-conversion/index.md +++ b/docs/gdevelop5/extensions/color-conversion/index.md @@ -3,7 +3,7 @@ Expressions to convert color values between various formats (RGB, HSV, HSL, named colors), calculate luminance according to WCAG 2.0 standards, and to blend two colors. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [Add00](https://gd.games/Add00), [D8H](https://gd.games/D8H), [Ahnaf30e](https://gd.games/Ahnaf30e). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [Add00](https://gd.games/Add00), [D8H](https://gd.games/D8H), [Ahnaf30e](https://gd.games/Ahnaf30e). --- @@ -16,17 +16,35 @@ Expressions to convert color values between various formats (RGB, HSV, HSL, name | Expression | Description | | |-----|-----|-----| -| `ColorConversion::HexToLuminance()` | Calculate luminance of a hexadecimal color. Example input: "0459AF". || -| `ColorConversion::HexToRgb()` | Converts a hexadecimal string into a RGB string. Example input: "0459AF". || -| `ColorConversion::HslToRgb()` | Converts HSL color values into a RGB string. Valid input ranges: H(0 to 360), S(0 to 100), L(0 to 100). || -| `ColorConversion::HsvToRgb()` | Converts HSV color values into a RGB string. Valid input ranges: H(0 to 360), S(0 to 100), V(0 to 100). || -| `ColorConversion::HueToRgb()` | Converts a color hue (range: 0 to 360) into an RGB color string with 100% saturation and 50% lightness. || -| `ColorConversion::NameToRgb()` | Converts a color name into a RGB string. (Examples: black, gray, white, red, purple, green, yellow, blue) Full list of colors: https://www.w3schools.com/colors/colors_names.asp. || -| `ColorConversion::RgbMean()` | Blend two RGB colors by applying a weighted mean. || -| `ColorConversion::RgbToHex()` | Converts a RGB string into a hexadecimal string. Example input: "0;128;255". || -| `ColorConversion::RgbToHsl()` | Converts a RGB string into a HSL string. Example input: "0;128;255"". || -| `ColorConversion::RgbToHsv()` | Converts a RGB string into a HSV string. Example input: "0;128;255". || -| `ColorConversion::RgbToLuminance()` | Calculate luminance of a RGB color. Example input: "0;128;255". || +| `ColorConversion::HexToLuminance(string)` | Calculate luminance of a hexadecimal color. Example input: "0459AF". || +| | _string_ | Hex value | +| `ColorConversion::HexToRgb(color)` | Converts a hexadecimal string into a RGB string. Example input: "0459AF". || +| | _color_ | Hex value | +| `ColorConversion::HslToRgb(number, number, number)` | Converts HSL color values into a RGB string. Valid input ranges: H(0 to 360), S(0 to 100), L(0 to 100). || +| | _🔢 Number_ | Hue 0-360 | +| | _🔢 Number_ | Saturation 0-100 | +| | _🔢 Number_ | Lightness 0-100 | +| `ColorConversion::HsvToRgb(number, number, number)` | Converts HSV color values into a RGB string. Valid input ranges: H(0 to 360), S(0 to 100), V(0 to 100). || +| | _🔢 Number_ | Hue 0-360 | +| | _🔢 Number_ | Saturation 0-100 | +| | _🔢 Number_ | Value 0-100 | +| `ColorConversion::HueToRgb(number)` | Converts a color hue (range: 0 to 360) into an RGB color string with 100% saturation and 50% lightness. || +| | _🔢 Number_ | Hue 0-360 | +| `ColorConversion::NameToRgb(color)` | Converts a color name into a RGB string. (Examples: black, gray, white, red, purple, green, yellow, blue) Full list of colors: https://www.w3schools.com/colors/colors_names.asp. || +| | _color_ | Name of a color | +| `ColorConversion::RgbMean(color, color, number)` | Blend two RGB colors by applying a weighted mean. || +| | _color_ | First RGB color | +| | _color_ | Second RGB color | +| | _🔢 Number_ | Ratio Range: 0 to 1, where 0 gives the first color and 1 gives the second color | +| `ColorConversion::RgbToHex(color)` | Converts a RGB string into a hexadecimal string. Example input: "0;128;255". || +| | _color_ | RGB value | +| `ColorConversion::RgbToHsl(color)` | Converts a RGB string into a HSL string. Example input: "0;128;255"". || +| | _color_ | RGB value | +| `ColorConversion::RgbToHsv(color)` | Converts a RGB string into a HSV string. Example input: "0;128;255". || +| | _color_ | RGB value | +| `ColorConversion::RgbToLuminance(color)` | Calculate luminance of a RGB color. Example input: "0;128;255". || +| | _color_ | RGB color | + --- diff --git a/docs/gdevelop5/extensions/compressor/index.md b/docs/gdevelop5/extensions/compressor/index.md index 44cfa6457a..2b216b8470 100644 --- a/docs/gdevelop5/extensions/compressor/index.md +++ b/docs/gdevelop5/extensions/compressor/index.md @@ -3,7 +3,7 @@ Compress and decompress strings. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- @@ -17,8 +17,11 @@ Using the well know zip compression algorithm, you can minimify strings and rest | Expression | Description | | |-----|-----|-----| -| `Compressor::Compress()` | Compress a string. || -| `Compressor::Decompress()` | Decompress a string. || +| `Compressor::Compress(string)` | Compress a string. || +| | _string_ | String to compress | +| `Compressor::Decompress(string)` | Decompress a string. || +| | _string_ | String to decompress | + --- diff --git a/docs/gdevelop5/extensions/copy-camera-settings/index.md b/docs/gdevelop5/extensions/copy-camera-settings/index.md index 19a20bac62..d71dddf859 100644 --- a/docs/gdevelop5/extensions/copy-camera-settings/index.md +++ b/docs/gdevelop5/extensions/copy-camera-settings/index.md @@ -3,7 +3,7 @@ Copy the camera settings of a layer and apply them to another layer. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -25,6 +25,20 @@ Tips: **Copy camera settings** Copy camera settings of a layer and apply them to another layer. +??? quote "See parameters" + + - Parameter 1 (🔤 Layer name (String)): Source layer + - Parameter 2 (🔢 Number): Source camera + - Parameter 3 (🔤 Layer name (String)): Destination layer + - Parameter 4 (🔢 Number): Destination camera + - Parameter 5 (❓ Yes or No): Clone X position + - Parameter 6 (❓ Yes or No): Clone Y position + - Parameter 7 (❓ Yes or No): Clone zoom + - Parameter 8 (❓ Yes or No): Clone angle + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/countdown-timer/index.md b/docs/gdevelop5/extensions/countdown-timer/index.md index 5e0753910d..2091576483 100644 --- a/docs/gdevelop5/extensions/countdown-timer/index.md +++ b/docs/gdevelop5/extensions/countdown-timer/index.md @@ -1,21 +1,21 @@ -# Countdown Timer +# Countdown timer (deprecated) A timer against the clock to create timer challenges in your projects. Countdown functionality. -**Authors and contributors** to this community extension: [CuriosVoult](https://gd.games/CuriosVoult). +**Authors and contributors** to this experimental extension: [CuriosVoult](https://gd.games/CuriosVoult). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- This extension provides a timer against the clock to create timed challenges in your projects. You can set an initial time in seconds and then start the timer to count down. The extension includes actions to start or reset the timer, stop it at zero or allow negative numbers, and get the time remaining on the timer via an expression. With this extension, you will be able to easily add countdown functionality. +This extension is deprecated. Prefer using a timer and a substraction like in the countdown timer example ([open the project online](https://editor.gdevelop.io/?project=example://count-down-timer)). + !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -24,27 +24,63 @@ This extension provides a timer against the clock to create timed challenges in **Restart the countdown timer** Reset the countdown to its initial value. +??? quote "See parameters" + + - Parameter 1 (string): Clock name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Set the countdown of the clock** Set the countdown timer in seconds. +??? quote "See parameters" + + - Parameter 1 (string): Clock name + - Parameter 2 (🔢 Number): Time remaining in seconds + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Start countdown timer** Starts the countdown from the value set previously. +??? quote "See parameters" + + - Parameter 1 (string): Clock name + - Parameter 2 (❓ Yes or No): Allow negative numbers + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Countdown timer is in x sec** Check if the countdown timer has reached a specific time in seconds. +??? quote "See parameters" + + - Parameter 1 (string): Clock name + - Parameter 2 (🔢 Number): Time in seconds + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **The countdown timer has ended** Check if the countdown timer has reached zero. +??? quote "See parameters" + + - Parameter 1 (string): Clock name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `CountdownTimer::InitialConfigurationValue()` | Get the initial setting time value of the clock. || -| `CountdownTimer::RemainingTime()` | Get the remaining time of the countdown timer. || +| `CountdownTimer::InitialConfigurationValue(string)` | Get the initial setting time value of the clock. || +| | _string_ | Clock name | +| `CountdownTimer::RemainingTime(string)` | Get the remaining time of the countdown timer. || +| | _string_ | Clock name | + --- -*This page is an auto-generated reference page about the **Countdown Timer** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Countdown timer (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/crazy-games-ad-api/details.md b/docs/gdevelop5/extensions/crazy-games-ad-api/details.md index 7573fa57f7..ac1f1288a4 100644 --- a/docs/gdevelop5/extensions/crazy-games-ad-api/details.md +++ b/docs/gdevelop5/extensions/crazy-games-ad-api/details.md @@ -5,14 +5,14 @@ title: Details This extension allows games to be hosted on the CrazyGames website and display modules in games such as ads, banners, and various functionalities offered by CrazyGames. -## Advanced Configurations +!!! note -Please refer to the [CrazyGames SDK documentation](https://docs.crazygames.com/sdk/html5/intro/) to learn how to set up compatible environments for games and to get tips about unwanted scrolling on the game page. + Please refer to the [CrazyGames SDK documentation](https://docs.crazygames.com/sdk/intro/) to learn how to set up compatible environments for games and to get tips about development and testing with their *QA Tool*. ## Try the CrazyGames SDK demo -A demo project showcases the features from the CrazyGames SDK in GDevelop. -The project can be exported as an HTML5 game, then imported in the QA Tool on CrazyGames website when submitting a new game on their platform. +A **demo project** highlights how to use the CrazyGames SDK in GDevelop. +It can be exported as an HTML5 game and uploaded as a new submission for QA on the [CrazyGames Developer Portal](https://developer.crazygames.com/games). ![CrazyGames SDK demo](CrazyGames_SDK_demo.png) @@ -24,12 +24,7 @@ A video ad filling the entire game screen can be displayed using the **Display v - **Midgame**: Show an advertisement when a user dies, a level has been completed, etc. -- **Rewarded**: An advertisements that can be requested by the user in exchange for a reward (an additional life, a retry when the user dies, a bonus starting item, extra starting health, etc.). Rewarded ads should be shown when users explicitly consent to watch an advertisement. - -!!! warning - - When testing your game in CrazyGames' QA Tool, midgame ads won’t work, only the reward ads. You must really submit your game in their Developer environment. After this, test again in the QA Tool. The ads should now work. This is the only way to test midgame ads ads in your game. - +- **Rewarded**: An advertisement that can be requested by the user in exchange for a reward (an additional life, a retry when the user dies, a bonus starting item, extra starting health, etc.). Rewarded ads should be shown when users explicitly consent to watch an advertisement. ![](crazy-games-video-ad-action.png) @@ -37,33 +32,39 @@ You can use the **Video ad just finished playing** condition to resume the game ![](crazy-games-video-ad-events.png) +### Adblock detection + +CrazyGames games must be playable even if an ad blocker exists. To avoid blocking in your game, you can use the **Ad blocker is detected** condition, or use it to restrict certain parts of your game while warning your players that by deactivating their blocker they will be able to access the rest of the content. + ## Banners ### Request a Banner -Ads banners can be placed with X and Y position and use a part of the game screen according to some static dimensions such as: `728x90, 300x250, 320x50, 468x60, 320x100`. +An ad banner can be placed with X and Y position and use a part of the game screen according to some static dimensions such as: `970x90`, `320x50`, `160x600`, `336x280`, `728x90`, `300x600`, `468x60`, `970x250`, `300x250`, `250x250`, `120x600`. ![](ad_example.png) !!! warning - A banner can be called only once per 60 seconds. If a banner is called before the delay, an error is returned in the debugger. + A banner can be called only once per 60 seconds. If a banner is called before the delay, an error is returned in the debugger and is also readable with the **Get last error** expression, which return a string. ### Clearing the Banners There are two possible actions for clearing banners: -- Delete a banner by its name. - Delete all the banners in game. +- Delete a banner by its name. ## Game -### Happy Time +### Game Settings -Celebrate a special moment in the game with some sparkling confetti. Celebrate the defeat of a boss, reaching a new high score, or something big. +The game can have setting(s) for: -![](HappyTime.png) +| Setting | Expression | | +|-----|-----|-----| +| Is the chat disabled | See the expression in [the references](/gdevelop5/extensions/crazy-games-ad-api/#expressions). || -### Tracking Users +### Gameplay start/stop Some actions or events are triggered automatically and can be used to track when and how users are playing your games. You can get the stats directly on the CrazyGames game dashboard. @@ -71,6 +72,25 @@ Some actions or events are triggered automatically and can be used to track when - The **Gameplay Stop** action has to be called on every game break (entering a menu, switching levels, pausing the game, etc.). Don't forget to call the Gameplay Start when the gameplay resumes. +### Happy Time + +Celebrate special moments in the game with sparkling confetti. Celebrate the defeat of a boss, reaching a new high score, or something big. + +![](HappyTime.png) + + +### Multiplayer Features + +Games can be joined directly in multiplayer mode. + +Use the expression **Is instantly joining a lobby** to determine if the player should be forwarded directly to a game lobby or multiplayer mode. + +If the expression returns true, your game should immediately switch to multiplayer mode. + +### Invite Link + +Returns a URL to invite friends to join your game session. This URL can be added to the clipboard or displayed in the game to let the user select it. + ### Invite Button Display on CrazyGames website a popup containing the invite link with a copy button. This is very useful in a multiplayer game to give a friend the possibility to join a session quickly. @@ -79,9 +99,80 @@ Display on CrazyGames website a popup containing the invite link with a copy but ![](invite-popup.png) -### Invite Link -Return a URL to invite friends to join your game session. This URL can be added to the clipboard or displayed in the game to let the user select it. +## User +The user conditions and actions are only usable on CrazyGames' website. Be sure to check the availability of their information once the user is logged. + +### Auth prompt + +Use the action **Show CrazyGames login window** to ask the player to log in to the game before getting their information for the multiplayer. + +### Check availability + +The **Is user account available** is an expression that returns True when the player is playing on CrazyGames. + +### Retrieve user data + +Use this action to fetch the user information/data from CrazyGames gaming platform. + +!!! note + + When the SDK is loaded an automatic silent authentification is called, and when the action **Retrieve user data** is triggered there is also an automatic check for the authentification to ensure the player is logged, if not logged The Auth Prompt is called. + +Once availability is confirmed and the user is logged in, the game can access the player's information: + +- The Username +- The URL of the profile picture +- The system information (Country code, OS, browser, device) +- The user token (An encoded string of the user information, [read more](https://docs.crazygames.com/sdk/user/#get-user-token)) + + See [the references](/gdevelop5/extensions/crazy-games-ad-api/#expressions) to see how to use the expressions to get these informations. + +### Account link prompt + +**Show account link prompt** action is made for supporting advanced account use cases, you'll need to handle account linking between the CrazyGames account and the other providers. Check [User linking page](https://docs.crazygames.com/sdk/user-linking/user-linking-html5-v3/) to find out more about user account linking. + +## Data + +The data allows saving and retrieving user progress. The data will also be synced on all the devices where the user plays the game. + +To save data, use the **Save session data** action. +A parameter name will be requested to store your data and retrieve it via the **Get user session data** expression. + +!!! warning + + There is a 1MB data limit. And the save is made 1 second after the action to save is called. That can go up to 30 seconds if CrazyGames system detects abuse. Be careful not to perform this action on all frames. + + +## In-game Purchase + +CrazyGames has partnered with [Xsolla](https://xsolla.com/) to offer you the possibility to integrate in-game purchases only for users that are signed in with them. To do this, you must [get in touch with CrazyGames](mailto:developer-relations@crazygames.com). + +Once you are invited, you can then get access to the Xsolla project dashboard and get a token from Xsolla to manage transactions in your game thank to the **Generate Xsolla token** that will get a fresh token for authentification that is valid 1 hour. We recommend that you retrieve the token each time before using it for a transaction. + +To perform transactions you must [use the Xsolla SDK as explained here](https://docs.crazygames.com/sdk/in-game-purchases/#registering-orders). + + +## Debug and Testing + +### Ad error + +To check if an ad has encountered an error, you can directly use the condition **Video ad had an error** to bypass a moment in your game. + +### Catch any errors + +To help debug your game and view errors or other responses from the SDK, you can use the expression **Get last error** wich returns a String. + +If you want to check for a specific error, the condition with the same name can be used to filter parts of your events. + + +!!! tip + + Use this expression alongside the console log action to capture errors in the debugger or display them in a text object. + +### Testing in the QA tool + +To test ads and banners, your game needs to be uploaded to the QA Tool from the [CrazyGames Developer Portal](https://developer.crazygames.com/games). Doing so will help you verify each action and expression to ensure your game functions correctly and meets the validation requirements for their gaming platform. # References !!! tip diff --git a/docs/gdevelop5/extensions/crazy-games-ad-api/index.md b/docs/gdevelop5/extensions/crazy-games-ad-api/index.md index 474b3b8e1f..4a445792d8 100644 --- a/docs/gdevelop5/extensions/crazy-games-ad-api/index.md +++ b/docs/gdevelop5/extensions/crazy-games-ad-api/index.md @@ -1,15 +1,13 @@ -# CrazyGames SDK v2 +# CrazyGames SDK v3 -Allow games to be hosted on CrazyGames website and display ads. +Allow games to be hosted on CrazyGames website, display ads and interact with CrazyGames user accounts. -**Authors and contributors** to this community extension: [planktonfun](https://gd.games/planktonfun), [Bouh](https://gd.games/Bouh), [ZachjuKamashi](https://gd.games/ZachjuKamashi), [lhphr](https://gd.games/lhphr). +**Authors and contributors** to this experimental extension: [planktonfun](https://gd.games/planktonfun), [Bouh](https://gd.games/Bouh), [ZachjuKamashi](https://gd.games/ZachjuKamashi), [lhphr](https://gd.games/lhphr), [Jurfix](https://gd.games/Jurfix). --- -Please refer to [CrazyGames' guide](https://docs.crazygames.com/sdk/html5-v2/intro/) to know when to call the different actions. - -The SDK is automatically loaded on CrazyGames domains, but can be forced with the action of the same name if it fail. +Refer to the [CrazyGames guide](https://docs.crazygames.com/sdk/intro/) for a full overview of the CrazyGames SDK, and to [this guide](https://wiki.gdevelop.io/gdevelop5/extensions/crazy-games-ad-api/details/) for using this SDK inside your GDevelop game. [Read more...](/gdevelop5/extensions/crazy-games-ad-api/details) @@ -18,68 +16,319 @@ The SDK is automatically loaded on CrazyGames domains, but can be forced with th ## Actions +**Retrieve user data** +Retrieve user data. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Display a banner** Display a banner that can be called once per 60 seconds. +??? quote "See parameters" + + - Parameter 1 (string): Banner name + - Parameter 2 (🔤 String): Ad size (one of: "970x90", "320x50", "160x600", "336x280", "728x90", "300x600", "468x60", "970x250", "300x250", "250x250", "120x600") + - Parameter 3 (🔢 Number): Position X + - Parameter 4 (🔢 Number): Position Y + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Display video ad** Display a video ad. The game is automatically muted while the video is playing. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Ad Type (one of: "midgame", "rewarded") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Display happy time** Display an happy time by emitting sparkling confetti. The celebration should remain a special moment. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Generate an invite link** Generate an invite link to invite friends to join your game sessions. This URL can be added to the clipboard or displayed in the game to let the user select it. +??? quote "See parameters" + + - Parameter 1 (string): Room id + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Generate Xsolla token** +Generate Xsolla token. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Hide all banners** Hide all banners. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Hide a banner** Hide a banner. +??? quote "See parameters" + + - Parameter 1 (string): Banner name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Hide invite button** Hide the invite button. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Display invite button** Display an invite button. +??? quote "See parameters" + + - Parameter 1 (string): Room id + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Show account link prompt** +Show account link prompt. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Load SDK** Load CrazyGames SDK. -**Scan for adblockers** -Scan for adblockers. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Save session data** +Save the session data. + +??? quote "See parameters" + + - Parameter 1 (string): Id + - Parameter 2 (string): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Scan for ad blockers** +Scan for ad blockers. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. **Gameplay started** Let CrazyGames know gameplay started. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Gameplay stopped** Let CrazyGames know gameplay stopped. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Loading started** Let CrazyGames know loading started. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Loading stopped** Let CrazyGames know loading stopped. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Show CrazyGames login window** +Show CrazyGames login window. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Check and load if an user is signed in CrazyGames** +Check if an user is signed into CrazyGames. If signed in, retrieves username and profile picture. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **Video ad just finished playing** Checks if a video ad just finished playing successfully. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Video ad had an error** +Check if a video ad had an error. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**CrazyGames User ID** +Compare the CrazyGames User ID. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Ad blocker is detected** -Check if user is using an ad blocker. This condition is always false before the "Scan for adblockers" is called. +Check if user is using an ad blocker. This condition is always false before the "Scan for ad blockers" is called. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. **CrazyGames SDK is ready** Check if the CrazyGames SDK is ready to be used. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is user account available** +Compare the availability of the user's account. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Video ad is playing** Checks if a video ad is playing. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Get last error** +Compare the last error from the CrazyGames API. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**User changed** +Check if the user changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Username** +Compare the username. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**User is signed in** +Check if the user is signed in. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `CrazyGamesAdApi::InviteLink()` | Return an invite link. || +| `CrazyGamesAdApi::CrazyGamesUserID()` | Return the CrazyGames User ID. || +| `CrazyGamesAdApi::Environment()` | Get the environment. || +| `CrazyGamesAdApi::InviteLink(string)` | Return an invite link. || +| | _string_ | Room id | +| `CrazyGamesAdApi::InviteParam(string)` | Get invite parameters if user is invited to this game. || +| | _string_ | Param | +| `CrazyGamesAdApi::IsDisableChat()` | Return true if the user prefers the chat disabled. || +| `CrazyGamesAdApi::IsInstantMultiplayer()` | Return true when the user prefers to instantly join a lobby. || +| `CrazyGamesAdApi::IsUserAccountAvailable()` | Return the availability of the user's account. || +| `CrazyGamesAdApi::LastError()` | Return the last error from the CrazyGames API. || +| `CrazyGamesAdApi::LinkAccountResponse()` | Get link account response. || +| `CrazyGamesAdApi::ProfilePic()` | Gets the signed-in user's profile picture URL. || +| `CrazyGamesAdApi::SessionData(string)` | Get user session data, if there is no saved data, "null" will be returned. || +| | _string_ | Id | +| `CrazyGamesAdApi::SystemInfo()` | Retrieves user system info, browser, version and device. || +| `CrazyGamesAdApi::UserName()` | Return the username. || +| `CrazyGamesAdApi::UserToken()` | Retrieve the user's session token for authentication. || +| `CrazyGamesAdApi::XsollaToken()` | Retrieve the authentication token from Xsolla. || + --- -*This page is an auto-generated reference page about the **CrazyGames SDK v2** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **CrazyGames SDK v3** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/create-multiple-copies-of-object/index.md b/docs/gdevelop5/extensions/create-multiple-copies-of-object/index.md deleted file mode 100644 index 036995c550..0000000000 --- a/docs/gdevelop5/extensions/create-multiple-copies-of-object/index.md +++ /dev/null @@ -1,41 +0,0 @@ -# Create multiple copies of an object - - -Select the object, choose the number of rows and columns, the spacing between rows and columns, the top left starting point, the layer to create the objects on, and the z-order of the objects. - -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). - ---- - -This extension can be used to create multiple copies of an object in a wide variety of arrangements, including: - -- horizontal row(s) -- vertical column(s) -- a solid rectangle or square -- an evenly spaced grid -- a grid with different spacing between rows and columns - -After the objects are created, you can reference their object variables to manage the objects: - - -* `RowID`: what horizontal row does this object reside in, -* `ColumnID`: what vertical column does this object reside in, -* `CreationID`: starting top-left, and proceeding from left to right, what is the number of the created object, -* `BatchID`: optional identifier assigned to all objects created - -Watch this [tutorial video](https://youtu.be/rlGSlNSRR9w) to see examples of how to use this extension. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Actions - -**Create multiple copies of an object** -Create multiple copies of an object. -Select the object, choose the number of rows and columns, the spacing between rows and columns, the top left starting point, the layer to create the objects on, and the z-order of the objects. - - - ---- - -*This page is an auto-generated reference page about the **Create multiple copies of an object** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/create.md b/docs/gdevelop5/extensions/create.md index c644b0c7ce..5b5d095082 100644 --- a/docs/gdevelop5/extensions/create.md +++ b/docs/gdevelop5/extensions/create.md @@ -9,6 +9,7 @@ Games can be enriched by extensions that can be created directly in a project. T Some best practices are in vigor to keep the extensions as clean as possible, [these practices](/gdevelop5/extensions/best-practices) are requirements to submit an extension to the community list in the engine. +Developers can also [contribute to extensions built directly inside GDevelop](https://github.com/4ian/GDevelop/blob/master/newIDE/README-extensions.md). ## Create a new extension @@ -47,4 +48,4 @@ Read more about [creating custom objects here](/gdevelop5/objects/custom-objects ## Share your extensions -If you've created an extension providing a useful, reusable behaviors or set of functions, you can [share them with the community](/gdevelop5/extensions/share-extension). \ No newline at end of file +If you've created an extension providing a useful, reusable behaviors or set of functions, you can [share them with the community](/gdevelop5/extensions/share-extension). diff --git a/docs/gdevelop5/extensions/crypto-api/index.md b/docs/gdevelop5/extensions/crypto-api/index.md index b5c08191c9..9060448539 100644 --- a/docs/gdevelop5/extensions/crypto-api/index.md +++ b/docs/gdevelop5/extensions/crypto-api/index.md @@ -3,14 +3,12 @@ Random number generator for integers and floats using the Crypto API. -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -31,8 +29,13 @@ That randomness does come at a cost of performance so be aware of your usage of | Expression | Description | | |-----|-----|-----| -| `CryptoApi::RandomFloatInRange()` | Uses the Crypto API to create a longer random number in an float range. || -| `CryptoApi::RandomInRange()` | Uses the Crypto API to create a longer random number in an integer range. || +| `CryptoApi::RandomFloatInRange(number, number)` | Uses the Crypto API to create a longer random number in an float range. || +| | _🔢 Number_ | Minimum Value | +| | _🔢 Number_ | Maximum Value | +| `CryptoApi::RandomInRange(number, number)` | Uses the Crypto API to create a longer random number in an integer range. || +| | _🔢 Number_ | Minimum Value | +| | _🔢 Number_ | Maximum Value | + --- diff --git a/docs/gdevelop5/extensions/current-game-version/index.md b/docs/gdevelop5/extensions/current-game-version/index.md deleted file mode 100644 index e5c901405f..0000000000 --- a/docs/gdevelop5/extensions/current-game-version/index.md +++ /dev/null @@ -1,23 +0,0 @@ -# Current game version - - -Get the current game version from GDevelop game properties. - -**Authors and contributors** to this community extension: [UlisesFreitas](https://gd.games/UlisesFreitas). - ---- - -Add an string expression that returns the current game version from game properties tab. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Expressions - -| Expression | Description | | -|-----|-----|-----| -| `CurrentGameVersion::ReturnCurrentGameVersion()` | Return the current game version. || - ---- - -*This page is an auto-generated reference page about the **Current game version** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/cursor-movement/index.md b/docs/gdevelop5/extensions/cursor-movement/index.md index f7c9c1834c..f39938a778 100644 --- a/docs/gdevelop5/extensions/cursor-movement/index.md +++ b/docs/gdevelop5/extensions/cursor-movement/index.md @@ -3,7 +3,7 @@ Conditions to check the cursor movement (still or moving). -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -20,9 +20,22 @@ Provides two conditions: **Cursor is moving** Check if the cursor is moving on the default layer. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Cursor stays still** Check if the cursor has stayed still for the specified time on the default layer. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Duration (in seconds) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/cursor-type/index.md b/docs/gdevelop5/extensions/cursor-type/index.md index e9b475d05a..659413e0a5 100644 --- a/docs/gdevelop5/extensions/cursor-type/index.md +++ b/docs/gdevelop5/extensions/cursor-type/index.md @@ -3,7 +3,7 @@ Provides an action to change the type of the cursor, and a behavior to change the cursor when an object is hovered. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555), [Bouh](https://gd.games/Bouh). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555), [Bouh](https://gd.games/Bouh). --- @@ -19,6 +19,13 @@ Find the list of cursors here: https://developer.mozilla.org/en-US/docs/Web/CSS/ **Cursor type** Change the type of the cursor. +??? quote "See parameters" + + - Parameter 1 (🔤 String): The new cursor type + List of available cursors on https://developer.mozilla.org/en-US/docs/Web/CSS/cursor (one of: "auto", "default", "none", "context-menu", "help", "pointer", "progress", "wait", "cell", "crosshair", "text", "vertical-text", "alias", "copy", "move", "no-drop", "not-allowed", "grab", "grabbing", "all-scroll", "col-resize", "row-resize", "n-resize", "e-resize", "s-resize", "w-resize", "ne-resize", "nw-resize", "se-resize", "sw-resize", "ew-resize", "ns-resize", "nwse-resize", "zoom-in", "zoom-out") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Custom cursor when hovered @@ -28,6 +35,7 @@ Change the cursor appearence when the object is hovered (on Windows, macOS or Li _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Cursor type** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/curved-movement/index.md b/docs/gdevelop5/extensions/curved-movement/index.md index 3558f92a03..4fb801a934 100644 --- a/docs/gdevelop5/extensions/curved-movement/index.md +++ b/docs/gdevelop5/extensions/curved-movement/index.md @@ -3,7 +3,7 @@ Move objects on curved paths. -**Authors and contributors** to this community extension: [pampogokiraly](https://gd.games/pampogokiraly), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [pampogokiraly](https://gd.games/pampogokiraly), [D8H](https://gd.games/D8H). --- @@ -36,71 +36,213 @@ A collection of [small examples](https://editor.gdevelop.io/?project=example://c **Append a curve** Append a cubic Bezier curve at the end of the path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (🔢 Number): First control point X + - Parameter 3 (🔢 Number): First control point Y + - Parameter 4 (🔢 Number): Second Control point X + - Parameter 5 (🔢 Number): Second Control point Y + - Parameter 6 (🔢 Number): Destination point X + - Parameter 7 (🔢 Number): Destination point Y + - Parameter 8 (❓ Yes or No): Relative + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + **Append a line** Append a line at the end of the path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (🔢 Number): Destination point X + - Parameter 3 (🔢 Number): Destination point Y + - Parameter 4 (❓ Yes or No): Relative + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Append a smooth curve** Append a cubic Bezier curve to the end of an object's path. The first control point is symmetrical to the last control point of the path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (🔢 Number): Second Control point X + - Parameter 3 (🔢 Number): Second Control point Y + - Parameter 4 (🔢 Number): Destination point X + - Parameter 5 (🔢 Number): Destination point Y + - Parameter 6 (❓ Yes or No): Relative + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Append a path** Append a path to another path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Name of the path to modify + - Parameter 2 (🔤 Name (String)): Name of the path to add to the first one + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Append a rotated path** Append a path to another path. The appended path is rotated to have a smooth junction. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Name of the path to modify + - Parameter 2 (🔤 Name (String)): Name of the path to add to the first one + - Parameter 3 (❓ Yes or No): Flip the appended path + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Close a path** Append a line to close the path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Create a path from SVG** Create a path from SVG commands, for instance "M 0,0 C 55,0 100,45 100,100". Commands are: M = Move, C = Curve, S = Smooth, L = Line. Lower case is for relative positions. The preferred way to build the commands is to use an external SVG editor like Inkscape. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (string): SVG commands + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Delete a path** Delete a path from the memory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Duplicate a path** Duplicate a path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Name of the path to create + - Parameter 2 (🔤 Name (String)): Name of the source path + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Invert a path** Invert a path, the end becomes the beginning. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Rotate a path** Rotate a path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (🔢 Number): Rotation angle + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Scale a path** Scale a path. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (🔢 Number): Scale on X axis + - Parameter 3 (🔢 Number): Scale on Y axis + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Speed scale Y** Change the speed scale on Y axis. This allows to change the view point of a path (top-dwon or isometry). +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + - Parameter 2 (🔢 Number): Speed scale on Y axis (0.5 for pixel isometry) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Is closed** Check if a path is closed. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Path exists** Path exists. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Path name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `CurvedMovement::ElementCount()` | Return the number of lines or curves that make the path. || -| `CurvedMovement::FirstControlX()` | Return the first control point position on X axis of a curve. || -| `CurvedMovement::FirstControlY()` | Return the first control point position on Y axis of a curve. || -| `CurvedMovement::OriginX()` | Return the origin position on X axis of a curve. || -| `CurvedMovement::OriginY()` | Return the origin position on Y axis of a curve. || -| `CurvedMovement::PathAngle()` | Return the direction angle of the path for a given length (in degree). || -| `CurvedMovement::PathEndX()` | Return the displacement on X axis of the path end. || -| `CurvedMovement::PathEndY()` | Return the displacement on Y axis of the path end. || -| `CurvedMovement::PathLength()` | Return the length of the path. || -| `CurvedMovement::PathX()` | Return the position on X axis of the path for a given length. || -| `CurvedMovement::PathY()` | Return the position on Y axis of the path for a given length. || -| `CurvedMovement::SecondControlX()` | Return the second control point position on X axis of a curve. || -| `CurvedMovement::SecondControlY()` | Return the second control point position on Y axis of a curve. || -| `CurvedMovement::SpeedScaleY()` | Return the speed scale on Y axis. This is used to change the view point of a path (top-dwon or isometry). || -| `CurvedMovement::TargetX()` | Return the target position on X axis of a curve. || -| `CurvedMovement::TargetY()` | Return the target position on Y axis of a curve. || -| `CurvedMovement::ToSvg()` | Return the SVG commands of a path. || +| `CurvedMovement::ElementCount(string)` | Return the number of lines or curves that make the path. || +| | _🔤 Name (String)_ | Path name | +| `CurvedMovement::FirstControlX(string, number)` | Return the first control point position on X axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::FirstControlY(string, number)` | Return the first control point position on Y axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::OriginX(string, number)` | Return the origin position on X axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::OriginY(string, number)` | Return the origin position on Y axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::PathAngle(string, number)` | Return the direction angle of the path for a given length (in degree). || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Length on the path | +| `CurvedMovement::PathEndX(string)` | Return the displacement on X axis of the path end. || +| | _🔤 Name (String)_ | Path name | +| `CurvedMovement::PathEndY(string)` | Return the displacement on Y axis of the path end. || +| | _🔤 Name (String)_ | Path name | +| `CurvedMovement::PathLength(string)` | Return the length of the path. || +| | _🔤 Name (String)_ | Path name | +| `CurvedMovement::PathX(string, number)` | Return the position on X axis of the path for a given length. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Length on the path | +| `CurvedMovement::PathY(string, number)` | Return the position on Y axis of the path for a given length. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Length on the path | +| `CurvedMovement::SecondControlX(string, number)` | Return the second control point position on X axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::SecondControlY(string, number)` | Return the second control point position on Y axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::SpeedScaleY(string)` | Return the speed scale on Y axis. This is used to change the view point of a path (top-dwon or isometry). || +| | _🔤 Name (String)_ | Path name | +| `CurvedMovement::TargetX(string, number)` | Return the target position on X axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::TargetY(string, number)` | Return the target position on Y axis of a curve. || +| | _🔤 Name (String)_ | Path name | +| | _🔢 Number_ | Curve index | +| `CurvedMovement::ToSvg(string)` | Return the SVG commands of a path. || +| | _🔤 Name (String)_ | Path name | ## Movement on a curve (speed-based) @@ -111,50 +253,182 @@ Move objects on curved paths at a given speed. **Accelerate** Make an object accelerate until it reaches a given speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Targeted speed (in pixels per second) + - Parameter 3 (🔢 Number): Acceleration (in pixels per second per second) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Accelerate during** Make an object accelerate to reaches a speed in a given amount of time. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Targeted speed (in pixels per second) + - Parameter 3 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Draw the trajectory** Draw the object trajectory. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Shape painter + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow a path** Change the path followed by an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Path name + The path can be define with the "Append curve" action. + - Parameter 3 (🔢 Number): Number of repetitions + - Parameter 4 (❓ Yes or No): Loop + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Follow a path to a position** Change the path followed by an object to reach a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Path name + The path can be define with the "Append curve" action. + - Parameter 3 (🔢 Number): Number of repetitions + - Parameter 4 (❓ Yes or No): Loop + - Parameter 5 (🔢 Number): Destination X + - Parameter 6 (🔢 Number): Destination Y + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Position on the path** Change the length between the trajectory origin and the current position counting the loops. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Speed** Change the speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Can move further** Check if the object can still move in the current direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reach an end** Check if the object has reached one of the 2 ends of the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reached path origin** Check if the object has reached the origin position of the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reached path target** Check if the object has reached the target position of the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Current loop** Compare the number time the object loop the trajectory. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Position on the loop** Compare the length between the trajectory origin and the current position without counting the loops. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Position on the path** Compare the length between the trajectory origin and the current position counting the loops. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Speed** Compare the speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -176,32 +450,111 @@ Move objects on curved paths in a given duration and tween easing function. **Draw the trajectory** Draw the object trajectory. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Shape painter + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Move on path** Move the object by following a path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Path name + The path can be define with the "Append curve" action. + - Parameter 3 (🔢 Number): Number of repetitions + - Parameter 4 (🔢 Number): Duration in seconds + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Move back and forth** Move the object by following a path and go back. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Path name + The path can be define with the "Append curve" action. + - Parameter 3 (🔢 Number): Number of repetitions + - Parameter 4 (🔢 Number): Duration in seconds + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Duration to wait before going back + - Parameter 7 (❓ Yes or No): Loop + + > Technical note: parameter 8 are internal parameters handled by GDevelop. + **Move on path to a position** Move the object to a position by following a path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Path name + The path can be define with the "Append curve" action. + - Parameter 3 (🔢 Number): Number of repetitions + - Parameter 4 (🔢 Number): Duration in seconds + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Destination X + - Parameter 7 (🔢 Number): Destination Y + + > Technical note: parameter 8 are internal parameters handled by GDevelop. + **Move back and forth to a position** Move the object to a position by following a path and go back. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Path name + The path can be define with the "Append curve" action. + - Parameter 3 (🔢 Number): Number of repetitions + - Parameter 4 (🔢 Number): Duration in seconds + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + - Parameter 6 (🔢 Number): Destination X + - Parameter 7 (🔢 Number): Destination Y + - Parameter 8 (🔢 Number): Duration to wait before going back + - Parameter 9 (❓ Yes or No): Loop + + > Technical note: parameter 10 are internal parameters handled by GDevelop. + ### Behavior conditions **Finished to move** Check if the object has finished to move on the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reached an end** Check if the object has reached one of the 2 ends of the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.TweenPathMovement::MovementAngle()` | Return the angle of movement on its path. || + --- *This page is an auto-generated reference page about the **Curved movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/depth-effect/index.md b/docs/gdevelop5/extensions/depth-effect/index.md index 15c28dc4e9..6d3bac8974 100644 --- a/docs/gdevelop5/extensions/depth-effect/index.md +++ b/docs/gdevelop5/extensions/depth-effect/index.md @@ -3,7 +3,7 @@ Change scale based on Y position to simulate depth of field. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -20,7 +20,6 @@ Tips: - If you want speed to look constant, be sure to reduce the object's speed based on scale or Y value. If you don't do this, the object will appear to be moving faster when it is near the top of the screen. This matches how objects appear in the real world. - This extension works well with the Y-sort extension, which changes Z order based on Y position. -[Read more...](https://victrisgames.itch.io/extension-sinemovement-and-deptheffect) !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -36,12 +35,36 @@ The scale of the object decreases the closer it is to the horizon, giving the il **Set exponential rate of change** Set Y exponential rate of change (Default: 2). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Y Exponent + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set Y position of horizon** Set Y position of the horizon, where objects are infinitely small (Default: 0). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Horizon Y + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set max scale** Set max scale when the object is at the bottom of the screen (Default: 2). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Y Exponent + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -51,29 +74,6 @@ Set max scale when the object is at the bottom of the screen (Default: 2). | `Object.DepthEffect_Sprite::MaxScale()` | Max scale when the object is at the bottom of the screen. || | `Object.DepthEffect_Sprite::PercentAwayFromHorizon()` | Percent away from the horizon. This is "0" at the horizon, and "1" at the bottom of the screen. || -## Depth effect - -The scale of the object decreases the closer it is to the horizon, giving the illusion that the object is travelling away from the viewer. - -### Behavior actions - -**Set exponential rate of change** -Set Y exponential rate of change (Default: 2). - -**Set Y position of horizon** -Set Y position of horizon, where objects are infinitely small (Default: 0). - -**Set max scale** -Set max scale when the object is at the bottom of the screen (Default: 2). - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.DepthEffect_Text::ExponentY()` | Exponential rate of change in scale based on the Y position. || -| `Object.DepthEffect_Text::HorizonY()` | Y value of horizon. || -| `Object.DepthEffect_Text::MaxScale()` | Max scale when the object is at the bottom of the screen. || -| `Object.DepthEffect_Text::PercentAwayFromHorizon()` | Percent away from horizon. This is 0 at the horizon, and 1 at the bottom of the screen. || --- diff --git a/docs/gdevelop5/extensions/dialog-box/index.md b/docs/gdevelop5/extensions/dialog-box/index.md index 8fe8858b98..e57e705201 100644 --- a/docs/gdevelop5/extensions/dialog-box/index.md +++ b/docs/gdevelop5/extensions/dialog-box/index.md @@ -1,19 +1,19 @@ # Dialog Box -This extension adds Dialog Box functionality that can be used for RPGs, visual novels, and more. +Dialog Boxes that can be used for RPGs, visual novels, and more. -**Authors and contributors** to this community extension: [PANDAKO](https://gd.games/PANDAKO). +**Authors and contributors** to this experimental extension: [PANDAKO](https://gd.games/PANDAKO). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- +This extension is deprecated. [Custom objects](https://wiki.gdevelop.io/gdevelop5/objects/custom-objects-prefab-template) are now the prefered way to make dialog boxes. + ## Summary This extension adds Dialog Box functionality that can be used for RPGs, visual novels, and more. @@ -51,8 +51,6 @@ This feature is useful for keeping track of the progress of a conversation. In typing, style tags in BBText OBjects are also counted as characters. -[Read more...](https://github.com/PANDAKO-GitHub/DialogBoxExtension) - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -68,46 +66,146 @@ Add this to the sprite object that will be the background of the dialog box. **Change Dialog Box contents** Change the Name, Image, and Text in the Dialog Box. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Name + - Parameter 3: 🔤 Object Animation Name (String) + - Parameter 4 (string): Text + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Change Dialog Box Text** Change the Dialog Box Text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Text + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Change Dialog Box typing interval** Changes the typing interval of the Dialog Box (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Typing interval (in seconds) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Change Dialog Box typing sound** Changes the typing sound effect of the Dialog Box (File name) (The audio file must be registered as a resource!). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Audio file name (The audio file must be registered as a resource!) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Close Dialog Box** Close the Dialog Box. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Open Dialog Box** Open the Dialog Box. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Name + - Parameter 3: 🔤 Object Animation Name (String) + - Parameter 4 (string): Text + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Setup Dialog Box** Setup the Dialog Box. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Name (BB Text) + - Parameter 3 (👾 Object): Image (Sprite) + - Parameter 4 (👾 Object): Text (BB Text) + - Parameter 5 (👾 Object): Arrow (Sprite) + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Skip Dialog Box typing** Skip typing in the Dialog Box. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Number of times the Text in Dialog Box has changed** Compare the number of times the Text in the Dialog Box has changed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Number (0-based) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Dialog Box is close** Dialog Box is close. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Dialog Box is open** Dialog Box is open. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Dialog Box is typing** Text in the Dialog Box is typing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| -| `Object.DialogBoxBackGround::ChangeCounter()` | Return the number of times the Text in the Dialog Box has changed. || +| `Object.DialogBoxBackGround::ChangeCounter(number)` | Return the number of times the Text in the Dialog Box has changed. || +| | _🔢 Number_ | Number (0-based) | + --- diff --git a/docs/gdevelop5/extensions/discord-rich-presence/index.md b/docs/gdevelop5/extensions/discord-rich-presence/index.md index 4f8763ae1e..6372483a20 100644 --- a/docs/gdevelop5/extensions/discord-rich-presence/index.md +++ b/docs/gdevelop5/extensions/discord-rich-presence/index.md @@ -3,7 +3,7 @@ Adds discord rich presence to your games. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- @@ -19,9 +19,31 @@ You can get more infos on each field via [the discord documentation](https://dis **Initialize rich presence** Attempts to connect to discord if it is installed, and initialize rich presence. +??? quote "See parameters" + + - Parameter 1 (string): The discord client ID + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Update rich presence** Update the data in the rich presence. See the discord documentation for more info on each field. Each field except state is optional. +??? quote "See parameters" + + - Parameter 1 (string): The current state + - Parameter 2 (string): The details of the current state + - Parameter 3 (🔢 Number): The timstamp of the start of the match + If this is filled, discord will show the time elapsed since the start. + - Parameter 4 (🔢 Number): The timestamp of the end of the match + If this is filled, discord will display the remaining time. + - Parameter 5 (string): The name of the big image + - Parameter 6 (string): The text of the large image + - Parameter 7 (string): The name of the small image + - Parameter 8 (string): The text of the small image + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/double-click/index.md b/docs/gdevelop5/extensions/double-click/index.md index aaad3a7ece..995ba50cee 100644 --- a/docs/gdevelop5/extensions/double-click/index.md +++ b/docs/gdevelop5/extensions/double-click/index.md @@ -1,31 +1,44 @@ -# Double-click +# Double-click and tap -Check for a double-click with a mouse, or a double-tap on a touchscreen. +Check for a double-click or a tap. -**Authors and contributors** to this community extension: [Silver-Streak](https://gd.games/Silver-Streak). +**Authors and contributors** to this experimental extension: [Silver-Streak](https://gd.games/Silver-Streak), [D8H](https://gd.games/D8H). --- -Allow you to check for double-clicks with the left, middle, or right button of a mouse. It will also allow you to detect double-taps on touchscreens. +Check for a double-click with a mouse, or a tap and double-click on a touchscreen. Please note: Touch devices do not have alternatives for middle/right clicks. Taps on a touch device will get counted for _any_ use of these conditions, so you should either design your controls accordingly, or build out separate events if the device has a touch screen. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. -## Actions - -**Set the double click delay** -Set the maximum delay between two clicks (or two taps) to be considered as a double click. - ## Conditions **Double-clicked (or double-tapped)** Check if the specified mouse button is clicked twice in a short amount of time. +??? quote "See parameters" + + - Parameter 1 (mouseButton): Mouse button to track + As touch devices do not have middle/right tap equivalents, you will need to account for this within your events if you're not using the left mouse button and building for touch devices. + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Clicked (or tapped)** +Check if the specified mouse button is clicked. + +??? quote "See parameters" + + - Parameter 1 (mouseButton): Mouse button to track + As touch devices do not have middle/right tap equivalents, you will need to account for this within your events if you're not using the left mouse button and building for touch devices. + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Double-click** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Double-click and tap** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/double-key-press/index.md b/docs/gdevelop5/extensions/double-key-press/index.md index 4c544a7a60..0cbb76013d 100644 --- a/docs/gdevelop5/extensions/double-key-press/index.md +++ b/docs/gdevelop5/extensions/double-key-press/index.md @@ -3,14 +3,12 @@ Adds conditions to check for double key presses, similar to double clicks. -**Authors and contributors** to this community extension: [NiQsterVX](https://gd.games/NiQsterVX). +**Authors and contributors** to this experimental extension: [NiQsterVX](https://gd.games/NiQsterVX). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,12 +28,33 @@ Any key double pressed **Key double pressed** Check if a specific key was double pressed. +??? quote "See parameters" + + - Parameter 1 (key): Which key should it work on? + - Parameter 2 (🔢 Number): Time window for the double tap (in seconds) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Key double pressed (any key)** Check if any key was double pressed. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Time window for the double tap (in seconds) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Key double pressed (text expression)** Check if a specific key was double pressed using a text expression. +??? quote "See parameters" + + - Parameter 1 (string): Which key should it work on? + - Parameter 2 (🔢 Number): Time window for the double tap (in seconds) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/drag-camera-with-pointer/index.md b/docs/gdevelop5/extensions/drag-camera-with-pointer/index.md index 61a8d341d1..ae72f914d1 100644 --- a/docs/gdevelop5/extensions/drag-camera-with-pointer/index.md +++ b/docs/gdevelop5/extensions/drag-camera-with-pointer/index.md @@ -3,7 +3,7 @@ Move a camera by dragging the mouse (or touchscreen). -**Authors and contributors** to this community extension: [ddabrahim](https://gd.games/ddabrahim), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [ddabrahim](https://gd.games/ddabrahim), [VictrisGames](https://gd.games/VictrisGames). --- @@ -28,6 +28,16 @@ Tips: **Drag camera with the mouse** Move a camera by dragging the mouse (or touchscreen). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Camera number + - Parameter 2 (🔤 Layer name (String)): Camera layer (default: "") + - Parameter 3 (🔤 String): Directions that the camera can move (horizontal, vertical, both) (one of: "vertical", "horizontal", "both") + - Parameter 4 (mouse): Mouse button (use "Left" for touchscreen) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/draggable-physics/index.md b/docs/gdevelop5/extensions/draggable-physics/index.md index d305431ff9..9e225c9927 100644 --- a/docs/gdevelop5/extensions/draggable-physics/index.md +++ b/docs/gdevelop5/extensions/draggable-physics/index.md @@ -3,7 +3,7 @@ Drag a physics object with the mouse (or touch). -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -31,44 +31,152 @@ Drag a physics object with the mouse (or touch). **Release dragged object** Release dragged object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Damping ratio** Change the joint damping ratio (range: 0 to 1) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Enable (or disable) automatic dragging** Enable (or disable) automatic dragging with the mouse or touch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): EnableAutomaticDragging + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Frequency** Change the joint frequency (per second) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum force** Change the maximum joint force (in Newtons) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Mouse button** Change the mouse button used to move the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "Left", "Right", "Middle") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start dragging object** Start dragging object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Damping ratio** Compare the joint damping ratio (range: 0 to 1) of the object. . +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Frequency** Compare the joint frequency (per second) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Automatic dragging** Check if automatic dragging is enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is being dragged** Check if object is being dragged. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Maximum force** Compare the maximum joint force (in Newtons) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Mouse button** Compare the mouse button used to move the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "Left", "Right", "Middle") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -78,6 +186,7 @@ Compare the mouse button used to move the object. | `Object.DraggablePhysics::MaxForce()` | Return the maximum joint force (in Newtons) of the object. || | `Object.DraggablePhysics::MouseButton()` | Return the mouse button used to move the object. || + --- *This page is an auto-generated reference page about the **Draggable (for physics objects)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/draggable-slider-control/index.md b/docs/gdevelop5/extensions/draggable-slider-control/index.md index 0e48f4c64c..df0a7fa04e 100644 --- a/docs/gdevelop5/extensions/draggable-slider-control/index.md +++ b/docs/gdevelop5/extensions/draggable-slider-control/index.md @@ -3,7 +3,7 @@ A draggable slider that users can move to select a numerical value. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). --- @@ -23,11 +23,6 @@ Tips: Further details can be found in [this tutorial video](https://youtu.be/iiTUwdAT_hs). -Breaking changes (1.0.0) - -- Track thickness and length properties replaced track width and height. These 2 properties must be set again if they were different from the default size. -- Hidden sliders can be dragged. The "enable" action must be used to disable them. - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -43,83 +38,259 @@ Let users select a numerical value by dragging a slider. **Active track color ** Change the color of the track that is LEFT of the thumb. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Active track color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Active track opacity** Change opacity of active track. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Active track opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable interactions** Enable or disable the slider. Users cannot interact while it is disabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Enable + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo opacity (hover)** Change the halo opacity when the thumb is hovered. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo opacity (hover) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo opacity (pressed)** Change opacity of halo when pressed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo opacity (pressed) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo radius** Change radius of the halo around the thumb. This size is also used to detect interaction with the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo radius + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Inactive track color** Change the color of the track that is RIGHT of the thumb. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Inactive track color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Inactive track opacity** Change opacity of inactive track. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Inactive track opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Rounded track ends** Make track use rounded ends. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Rounded track + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb color** Change the thumb color to a specific value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Thumb color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb height** Change height of thumb. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Thumb height + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb opacity** Change opacity of thumb. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Thumb opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb shape** Change shape of thumb (circle or rectangle). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): New thumb shape (one of: "circle", "rectangle") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb width** Change width of thumb. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Thumb width + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Tick spacing** Change the tick spacing of a slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Tick spacing + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Track length** Change length of track. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Track width + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Track thickness** Change thickness of track. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Track thickness + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Slider value** Change the value of a slider (this will move the thumb to the correct position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Slider value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Slider maximum value** Change the maximum value of a slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Maximum value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Slider minimum value** Change the minimum value of a slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Minimum value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Being dragged** Check if the slider is being dragged. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Interactions enabled** Check if the slider interations are enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.DraggableSliderControl::ThumbHeight()` | Height of thumb. || -| `Object.DraggableSliderControl::TickSpacing()` | The tick spacing of a slider. || +| `Object.DraggableSliderControl::TickSpacing(number)` | The tick spacing of a slider. || +| | _🔢 Number_ | Tick spacing | | `Object.DraggableSliderControl::TrackLength()` | Length of track. || | `Object.DraggableSliderControl::TrackThickness()` | Thickness of track. || | `Object.DraggableSliderControl::Value()` | The value of the slider (based on position of the thumb). || | `Object.DraggableSliderControl::ValueMax()` | The maximum value of a slider. || | `Object.DraggableSliderControl::ValueMin()` | The minimum value of a slider. || + --- *This page is an auto-generated reference page about the **Draggable slider (for Shape Painter)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/draw-pathfinding/index.md b/docs/gdevelop5/extensions/draw-pathfinding/index.md index 789377ca08..02fff0d130 100644 --- a/docs/gdevelop5/extensions/draw-pathfinding/index.md +++ b/docs/gdevelop5/extensions/draw-pathfinding/index.md @@ -3,7 +3,7 @@ Draw the pathfinding of an object using a shape painter. -**Authors and contributors** to this community extension: [Entropy](https://gd.games/Entropy). +**Authors and contributors** to this experimental extension: [Entropy](https://gd.games/Entropy). --- @@ -23,9 +23,19 @@ Draw the path followed by the object using a shape painter. **Draw pathfinding** Draw the path followed by the object using a shape painter. It automatically creates an instance of the shape painter object if there is none. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): Pathfinding behavior + - Parameter 3 (👾 Object): Shape painter used to draw the path + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Pathfinding painter** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/draw-shock-wave-effect/index.md b/docs/gdevelop5/extensions/draw-shock-wave-effect/index.md deleted file mode 100644 index 2585939d79..0000000000 --- a/docs/gdevelop5/extensions/draw-shock-wave-effect/index.md +++ /dev/null @@ -1,148 +0,0 @@ -# Draw shock wave effect - - -Will allow you to draw shock wave effects. - -**Authors and contributors** to this community extension: [Alios](https://gd.games/Alios). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -This behavior must be assigned to a shape painter object. -The user will have state parameters (Start and End) like the particle emitter object, which are : - - -- Type(Fill or Line) -- The color transition (Start / End). -- The opacity transition (Start / End). -- The transition of angle (Start / End). -- The transition of the radius of the explosion (Start / End). -- The transition of the contour size (Start / End). -- The duration of the propagation. - -The user can modify the values according to his needs. - -You can modify the value of the object just after the creation of the object in the event sheet (all modifications are applied on the shape painter object created above the modification). - -PS: the shape-painter will be automatically deleted once the animation is finished. - - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Draw shock waves in ellipse - -Will allow you to draw Ellipse shock wave effects. - -### Behavior actions - -**Name of tween** -Change name of tween. - -**Change type** -Change type of filling. - -**Set the end angle** -Change the initial value of end angle. - -**Set the end color** -Change the initial value of end color. - -**Set the end height** -Change the initial value of end height. - -**Set the end opacity** -Change the initial value of end opacity. - -**Set the end outline** -Change the initial value of end outline. - -**Set the end width** -Change the initial value of end width. - -**Set the start angle** -Change the initial value of start angle. - -**Set the start color** -Change the initial value of start color. - -**Set the start height** -Change the initial value of start height. - -**Set the start opacity** -Change the initial value of start opacity. - -**Set the start outline** -Change the initial value of start outline. - -**Set the start width** -Change the initial value of start width. - -_No expressions for this behavior._ - - -## Draw shock waves in star - -Will allow you to draw Star shock wave effects. - -### Behavior actions - -**Set of Tween** -Change name of tween. - -**Change type** -Change type of filling. - -**Set the end angle** -Change the initial value of end angle. - -**Set the end color** -Change the initial value of end color. - -**Set the end inner radius** -Change the initial value of end inner radius. - -**Set the end opacity** -Change the initial value of end opacity. - -**Set the end outline** -Change the initial value of end outline. - -**Set the end radius** -Change the initial value of end radius. - -**Set the number of branches of the star** -Change the number of branches of the star. - -**Set the start angle** -Change the initial value of start angle. - -**Set the start color** -Set the initial value of start color. - -**Set the start inner radius** -Set the initial value of start inner radius. - -**Set the start opacity** -Set the initial value of start opacity. - -**Set the start outline** -Set the initial value of start outline. - -**Set the start radius** -Set the initial value of start radius. - -_No expressions for this behavior._ - - ---- - -*This page is an auto-generated reference page about the **Draw shock wave effect** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/dungeon-generator/index.md b/docs/gdevelop5/extensions/dungeon-generator/index.md index 51f7fb5b32..f78856bf35 100644 --- a/docs/gdevelop5/extensions/dungeon-generator/index.md +++ b/docs/gdevelop5/extensions/dungeon-generator/index.md @@ -3,7 +3,12 @@ Create a procedurally generated dungeon. Includes two layouts: "rooms and hallways" and "dungeon cave". -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [oscuridad666](https://gd.games/oscuridad666). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [oscuridad666](https://gd.games/oscuridad666). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -33,23 +38,98 @@ An example shows how to procedurally generate dungeons or caves ([open the proje **Calculate the number of grid neighbors around an object** Calculate the number of grid neighbors around an object. Use "NeighborCount(Object)" expression to retrieve this value. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Primary object (or object group) + - Parameter 2 (👾 Object): Neighbor object (or object group) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Generate a dungeon cave** Generate a dungeon cave using a random walk algorithm. When the walker touches an edge of the map, it is moved back to the center of map. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Tile size (pixels) + All objects are based on this size + - Parameter 2 (🔢 Number): Map width (tiles) + - Parameter 3 (🔢 Number): Map height (tiles) + - Parameter 4 (👾 Object): Terrain object + Terrain object is used to fill the map that is not covered by floors, hallways, or walls. + - Parameter 5 (👾 Object): Floor object + Floor objects are created on every tile that a walker has travelled to. + - Parameter 6: 🔤 Layer name (String) + - Parameter 7 (👾 Object): Walker object + Use a random walk algorithm to turn terrain objects into floor objects + - Parameter 8 (🔢 Number): Floor percentage (Range: 0-1) + Percentage of map that will be convered by floor objects + - Parameter 9 (🔢 Number): Size of walker sides (tiles) + The number of tiles for each side of the square walker object. For example, 2=2x2, 3=3x3, 4=4x4. + - Parameter 10 (🔢 Number): Minimum border + Can be used to provide a border of terrain around the map + - Parameter 11 (❓ True or False): Delete unused terrain objects + - Parameter 12 (👾 Object): Wall object + Wall objects are placed between floor and terrain objects. + - Parameter 13 (❓ Yes or No): Calculate neighbors + May take a few seconds to calculate neighbors on a large map, so disable this if you are not using it. + + > Technical note: parameters 0, 14 are internal parameters handled by GDevelop. + **Generate a dungeon with room and hallways** Generate a dungeon by placing rooms in random locations and moving them if they collide with each other. Rooms are connected with hallways. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Tile size (pixels) + All objects are based on this size + - Parameter 2 (🔢 Number): Map width (number of colums) + - Parameter 3 (🔢 Number): Map height (number of rows) + - Parameter 4 (👾 Object): Terrain object + Used to fill the map that is not covered by floors, hallways, or walls. + - Parameter 5 (👾 Object): Room object + Rooms are placed in random locations and will try to not overlap with other rooms. + - Parameter 6 (👾 Object): Hallway object + Used to connect room objects. They follow the path made by the pathfinder object. + - Parameter 7 (🔢 Number): Number of rooms + Rooms should take less than ~25% of map to ensure non-overlapping rooms. If there are too many rooms, they may end up overlapping each other. + - Parameter 8: 🔤 Layer name (String) + - Parameter 9 (🔢 Number): Min room width (tiles) + - Parameter 10 (🔢 Number): Max room width (tiles) + - Parameter 11 (🔢 Number): Min room height (tiles) + - Parameter 12 (🔢 Number): Max room height (tiles) + - Parameter 13 (👾 Object): Pathfinder object + Used to identify where hallways are placed between rooms + - Parameter 14 (🧩 Behavior): Pathfinding behavior (required) + - Parameter 15 (🔢 Number): Max separation attempts + Number of attempts to separate overalapping rooms. When this number is reached, rooms are left in current position. (Default: 10,000) + - Parameter 16 (❓ Yes or No): Connect rooms in a loop + - Parameter 17 (🔢 Number): Hallway width (tiles) + - Parameter 18 (🔢 Number): Additional paths between connect rooms + - Parameter 19 (❓ True or False): Delete unused terrain + - Parameter 20 (👾 Object): Wall object + + > Technical note: parameters 0, 21 are internal parameters handled by GDevelop. + ## Conditions **Hallway is a room entrance** Check if hallway is a room entrance. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Hallway object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `DungeonGenerator::NeighborCount()` | Number of grid neighbors of an object. Requires running the "CalculateGridNeighbors" action before using this expression. || -| `DungeonGenerator::RoomID()` | The numerical order this room was created. (Range: 1 to total number of rooms). || +| `DungeonGenerator::NeighborCount(object)` | Number of grid neighbors of an object. Requires running the "CalculateGridNeighbors" action before using this expression. || +| | _👾 Object_ | Object | +| `DungeonGenerator::RoomID(object)` | The numerical order this room was created. (Range: 1 to total number of rooms). || +| | _👾 Object_ | Room object | + --- diff --git a/docs/gdevelop5/extensions/dynamic-water/index.md b/docs/gdevelop5/extensions/dynamic-water/index.md index 99f35b0877..06a5d14678 100644 --- a/docs/gdevelop5/extensions/dynamic-water/index.md +++ b/docs/gdevelop5/extensions/dynamic-water/index.md @@ -3,14 +3,12 @@ Easily create a realistic liquid surface simulation. -**Authors and contributors** to this community extension: [Alios](https://gd.games/Alios). +**Authors and contributors** to this experimental extension: [Alios](https://gd.games/Alios). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -38,48 +36,163 @@ Easily create a realistic liquid surface simulation. **Force application** Apply a force when an object collides with its surface. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Apply force + - Parameter 3 (👾 Object): Surface collision of the fluid + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Auto Wave** Enable automatic waves. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Show Columns** Show the different Column . +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Springs Number** The number of springs controls the distance between the joints and the number of springs. (between 0 and the object width). PS: Change the quality of the waves, the more columns the more they use the performance. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Damping(d)** The spring dampenig value. (between 0 and 0.1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Change Period** Change Period. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Spread** The Spread value will dictate how much a wave oscillation will pass pnto their neighboors.(Between 0 and 0.1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Surface Size** Change the size of the surface edge. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Tension(k)** Greater values will pull the water with greater force. (between 0 and 0.1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Wave horizontal direction** Change the direction of the waves. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): The water spring constant (one of: "Right", "Left") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Wave Length** Change the length of the waves. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Wave magnitude** Change the wave magnitude. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): The water spring constant + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Components** Component additions (Visual and Surface Collision). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Body display + - Parameter 3 (👾 Object): Object that will be used to detect the collision on the surface + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Surface collision** Test the collision between the object and the fluid surface. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Define the (physical) object that can interact with the fluid + - Parameter 3 (👾 Object): Surface collision of the fluid + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -90,6 +203,7 @@ Test the collision between the object and the fluid surface. | `Object.DynamicWaterBody::SurfaceSize()` | Size of the edge of the surface. || | `Object.DynamicWaterBody::Tension()` | Tension. || + --- *This page is an auto-generated reference page about the **Dynamic Water** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/edge-scroll-camera/index.md b/docs/gdevelop5/extensions/edge-scroll-camera/index.md index cf3de1e06f..2944b47f96 100644 --- a/docs/gdevelop5/extensions/edge-scroll-camera/index.md +++ b/docs/gdevelop5/extensions/edge-scroll-camera/index.md @@ -3,11 +3,11 @@ Scroll camera when cursor is near edge of screen. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). --- -Edge scroll camera allows the player to move around the scene simply by moving the cursor near the edge they want the camera to move towards. This is common in RTS games, but it can be useful for many things. +Edge scroll camera allows the player to move around the scene simply by moving the cursor near the edge they want the camera to move towards. This is common in RTS games. How to use: @@ -21,11 +21,6 @@ Tips: - Use the action "Enforce camera boundaries" to restrict what the player can see - Use the extension "Copy camera settings" if you want multiple layers to move -Expressions: - -- EdgeScrollSpeedX() - Current scroll speed (horizontal) -- EdgeScrollSpeedY() - Current scroll speed (vertical) - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -35,29 +30,81 @@ Expressions: **Configure camera edge scrolling** Configure camera edge scrolling that moves when mouse is near an edge of the screen. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Screen margin (pixels) + - Parameter 2 (🔢 Number): Scroll speed (in pixels per second) + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Camera + - Parameter 5 (🔤 String): Scroll style (one of: "Progressive speed", "Constant speed") + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Draw edge scrolling screen margin** Draw a rectangle that shows where edge scrolling will be triggered. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Shape painter + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Enable (or disable) camera edge scrolling** Enable (or disable) camera edge scrolling . Use "Configure camera edge scrolling" to adjust settings. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Enable camera edge scrolling + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Camera is scrolling** Check if the camera is scrolling. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Camera is scrolling down** Check if the camera is scrolling down. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Camera is scrolling left** Check if the camera is scrolling left. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Camera is scrolling right** Check if the camera is scrolling right. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Camera is scrolling up** Check if the camera is scrolling up. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -65,6 +112,7 @@ Check if the camera is scrolling up. | `EdgeScrollCamera::SpeedX()` | Return the speed the camera is currently scrolling in horizontal direction (in pixels per second). || | `EdgeScrollCamera::SpeedY()` | Return the speed the camera is currently scrolling in vertical direction (in pixels per second). || + --- *This page is an auto-generated reference page about the **Edge scroll camera** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/ellipse-movement/index.md b/docs/gdevelop5/extensions/ellipse-movement/index.md index 741231c798..3b60c461f8 100644 --- a/docs/gdevelop5/extensions/ellipse-movement/index.md +++ b/docs/gdevelop5/extensions/ellipse-movement/index.md @@ -3,7 +3,7 @@ Move objects on ellipses or smoothly back and forth in one direction. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). --- @@ -13,6 +13,9 @@ It allows objects to move: - smoothly vertically or horizontally (by setting one radius to 0) - on a sine wave (by adding a force) +Instances will start their movement from their initial position on the scene. +The center position will be decided according to the "initial direction" angle and the radius. + It can be used for: - Making objects float, such as powerups or coins @@ -34,26 +37,80 @@ Move objects on ellipses or smoothly back and forth in one direction. **Loop duration** Change the loop duration. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Speed (in degrees per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Teleport at an angle** Change the movement angle. The object is teleported according to the angle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Movement angle + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Radius X** Change the radius on X axis of the movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Radius X + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Radius Y** Change the radius on Y axis of the movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Radius Y + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Turn left or right** Change the in which side the object is turning (left or right). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Turn left + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Turn the other way** Change the turning direction (left or right). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is turning left** Check if the object is turning left. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -65,6 +122,7 @@ Check if the object is turning left. | `Object.EllipseMovement::RadiusX()` | Return the ellipse radius on X axis. || | `Object.EllipseMovement::RadiusY()` | Return the ellipse radius on X axis. || + --- *This page is an auto-generated reference page about the **Ellipse movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/emojis/index.md b/docs/gdevelop5/extensions/emojis/index.md index 92a7a770ee..c0d90cd18e 100644 --- a/docs/gdevelop5/extensions/emojis/index.md +++ b/docs/gdevelop5/extensions/emojis/index.md @@ -3,7 +3,7 @@ Display emoji characters in text objects and store them in strings. -**Authors and contributors** to this community extension: [Add00](https://gd.games/Add00). +**Authors and contributors** to this experimental extension: [Add00](https://gd.games/Add00). --- @@ -23,8 +23,11 @@ See the description of these expressions for get the list available emoji. | Expression | Description | | |-----|-----|-----| -| `Emojis::Hex()` | Returns the specified emoji, from a hexadecimal value. || -| `Emojis::Name()` | Returns the specified emoji, from the provided name. || +| `Emojis::Hex(string)` | Returns the specified emoji, from a hexadecimal value. || +| | _string_ | Hexadecimal code Full list of hexadecimal code: [https://www.w3schools.com/charsets/ref_emoji.asp](https://www.w3schools.com/charsets/ref_emoji.asp) | +| `Emojis::Name(string)` | Returns the specified emoji, from the provided name. || +| | _string_ | Name of emoji Full list of emojis: [https://gist.github.com/rxaviers/7360908](https://gist.github.com/rxaviers/7360908) | + --- diff --git a/docs/gdevelop5/extensions/explosion-force/index.md b/docs/gdevelop5/extensions/explosion-force/index.md index 02ade5fc5c..6ca313c15e 100644 --- a/docs/gdevelop5/extensions/explosion-force/index.md +++ b/docs/gdevelop5/extensions/explosion-force/index.md @@ -3,7 +3,7 @@ Simulate an explosion with physics forces on target objects. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -37,6 +37,20 @@ Variables given to Target Objects: **Simulate explosion with physics forces** Simulate an explosion with physics forces on target objects. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Target Object + - Parameter 2 (🧩 Behavior): Physics Behavior (required) + - Parameter 3 (🔢 Number): Explosion center (X) + - Parameter 4 (🔢 Number): Explosion center (Y) + - Parameter 5 (🔢 Number): Max force (of explosion) + Force decreases the farther an object is from the explosion center. + - Parameter 6 (🔢 Number): Max distance (from center of explosion) (pixels) + Objects less than this distance will be affected by the explosion. + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/extended-math/index.md b/docs/gdevelop5/extensions/extended-math/index.md index 7676372585..2457bcb27f 100644 --- a/docs/gdevelop5/extensions/extended-math/index.md +++ b/docs/gdevelop5/extensions/extended-math/index.md @@ -3,7 +3,7 @@ Additional math functions and constants as expressions and conditions. -**Authors and contributors** to this community extension: [Add00](https://gd.games/Add00), [Jurfix](https://gd.games/Jurfix). +**Authors and contributors** to this experimental extension: [Add00](https://gd.games/Add00), [Jurfix](https://gd.games/Jurfix). --- @@ -14,18 +14,10 @@ Expressions: - Factorial - Coordinates conversion for polar and isometric systems - ToFixedString: Formats a number into a string with the specified number of decimal places - - ToFixed: (Deprecated) Formats a number to use the specified number of decimal places Conditions: -- IsEven: Check if the number is even (divisible by 2) - -Release Notes: - -Version 1.0.7 - -- Added ToFixedString() -- Deprecated ToFixed() because it does not show any trailing zeros for whole numbers. Prefer using ToFixedString() to set values in text objects. +- IsEven: Check if the number is even (divisible by 2). !!! tip @@ -36,33 +28,67 @@ Version 1.0.7 **Is even?** Check if the number is even (divisible by 2). To check for odd numbers, invert this condition. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Value + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `ExtendedMath::E()` | Returns the natural logarithm of e. (Euler's number). || -| `ExtendedMath::Factorial()` | Returns the input multiplied by all the previous whole numbers. || -| `ExtendedMath::Fibonacci()` | Returns a term from the Fibonacci sequence. || -| `ExtendedMath::Gcf()` | Returns the greatest common factor of two numbers. || +| `ExtendedMath::Factorial(number)` | Returns the input multiplied by all the previous whole numbers. || +| | _🔢 Number_ | Any positive integer | +| `ExtendedMath::Fibonacci(number)` | Returns a term from the Fibonacci sequence. || +| | _🔢 Number_ | The desired term in the sequence | +| `ExtendedMath::Gcf(number, number)` | Returns the greatest common factor of two numbers. || +| | _🔢 Number_ | Any integer | +| | _🔢 Number_ | Any integer | | `ExtendedMath::GoldenRatio()` | Returns the golden ratio. || | `ExtendedMath::HalfPi()` | Returns half Pi. || -| `ExtendedMath::Hypot()` | Returns the value of the length of the hypotenuse. || -| `ExtendedMath::IisoToCartesianY()` | Converts a isometric coordinate into the Cartesian y value. || -| `ExtendedMath::IsoToCartesianX()` | Converts a isometric coordinate into the Cartesian x value. || -| `ExtendedMath::Lcm()` | Returns the lowest common multiple of two numbers. || +| `ExtendedMath::Hypot(number, number)` | Returns the value of the length of the hypotenuse. || +| | _🔢 Number_ | First side of the triangle | +| | _🔢 Number_ | Second side of the triangle | +| `ExtendedMath::IisoToCartesianY(number, number)` | Converts a isometric coordinate into the Cartesian y value. || +| | _🔢 Number_ | Position on the x axis | +| | _🔢 Number_ | Position on the y axis | +| `ExtendedMath::IsoToCartesianX(number, number)` | Converts a isometric coordinate into the Cartesian x value. || +| | _🔢 Number_ | Position on the x axis | +| | _🔢 Number_ | Position on the y axis | +| `ExtendedMath::Lcm(number, number)` | Returns the lowest common multiple of two numbers. || +| | _🔢 Number_ | Any integer | +| | _🔢 Number_ | Any integer | | `ExtendedMath::Ln10()` | Returns the natural logarithm of 10. || | `ExtendedMath::Ln2()` | Returns the natural logarithm of 2. || | `ExtendedMath::Log10e()` | Returns the base 10 logarithm of e. (Euler's number). || | `ExtendedMath::Log2e()` | Returns the base 2 logarithm of e. (Euler's number). || -| `ExtendedMath::Map()` | Converts a number of one range e.g. 0-1 to another 0-255. || +| `ExtendedMath::Map(number, number, number, number, number)` | Converts a number of one range e.g. 0-1 to another 0-255. || +| | _🔢 Number_ | The value to convert | +| | _🔢 Number_ | The lowest value of the first range | +| | _🔢 Number_ | The highest value of the first range | +| | _🔢 Number_ | The lowest value of the second range | +| | _🔢 Number_ | The highest value of the second range | | `ExtendedMath::Pi()` | Returns Pi (π). || -| `ExtendedMath::PolarToCartesianX()` | Converts a polar coordinate into the Cartesian x value. || -| `ExtendedMath::PolarToCartesianY()` | Converts a polar coordinate into the Cartesian y value. || +| `ExtendedMath::PolarToCartesianX(number, number)` | Converts a polar coordinate into the Cartesian x value. || +| | _🔢 Number_ | Radius | +| | _🔢 Number_ | Angle or theta in radians | +| `ExtendedMath::PolarToCartesianY(number, number)` | Converts a polar coordinate into the Cartesian y value. || +| | _🔢 Number_ | Radius | +| | _🔢 Number_ | Angle or theta in radians | | `ExtendedMath::QuarterPi()` | Returns quarter Pi. || -| `ExtendedMath::Slope()` | Calculates the steepness of a line between two points. || +| `ExtendedMath::Slope(number, number, number, number)` | Calculates the steepness of a line between two points. || +| | _🔢 Number_ | X value of the first point | +| | _🔢 Number_ | Y value of the first point | +| | _🔢 Number_ | X value of the second point | +| | _🔢 Number_ | Y value of the second point | | `ExtendedMath::Sqrt1_2()` | Returns square root of 1/2. || | `ExtendedMath::Sqrt2()` | Returns square root of 2. || -| `ExtendedMath::ToFixedString()` | Formats a number to a string with the specified number of decimal places. || +| `ExtendedMath::ToFixedString(number, number)` | Formats a number to a string with the specified number of decimal places. || +| | _🔢 Number_ | The value to be rounded | +| | _🔢 Number_ | Number of decimal places | + --- diff --git a/docs/gdevelop5/extensions/extended-variables/index.md b/docs/gdevelop5/extensions/extended-variables/index.md index 820767da86..964ee7af6b 100644 --- a/docs/gdevelop5/extensions/extended-variables/index.md +++ b/docs/gdevelop5/extensions/extended-variables/index.md @@ -3,7 +3,7 @@ Add conditions, actions and expressions to check for the existence of a variable, copy variables, delete existing ones from memory, and create dynamic variables. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh), [D8H](https://gd.games/D8H). --- @@ -25,55 +25,161 @@ Text expressions allows to enter the name of the variable with an expression lik **Copy all object variables** Copy all object variables from one object to another. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Source object + - Parameter 2 (👾 Object): Destination object + - Parameter 3 (❓ Yes or No): Clear the destination variable before copying + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Copy a global variable to scene** Copy the global variable to scene. This copy everything from the types to the values. +??? quote "See parameters" + + - Parameter 1 (string): Global variable to copy + - Parameter 2 (string): Scene variable destination + - Parameter 3 (❓ Yes or No): Clear the destination variable before copying + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Copy an object variable** Copy the object variable from one object to another. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Source object + - Parameter 2 (string): Variable to copy + - Parameter 3 (👾 Object): Destination object + To copy the variable between 2 instances of the same object, the variable has to be copied to another object first. + - Parameter 4 (string): Destination variable + - Parameter 5 (❓ Yes or No): Clear the destination variable before copying + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Copy a scene variable to global ** Copy the scene variable to global. This copy everything from the types to the values. +??? quote "See parameters" + + - Parameter 1 (string): Scene variable to copy + - Parameter 2 (string): Global variable destination + - Parameter 3 (❓ Yes or No): Clear the destination variable before copying + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Delete global variable** Delete the global variable, removing it from memory. +??? quote "See parameters" + + - Parameter 1 (string): Name of the global variable to delete + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Delete object variable** Delete an object variable, removing it from memory. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (string): Name of object variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Delete scene variable** Delete the scene variable, the variable will be deleted from the memory. +??? quote "See parameters" + + - Parameter 1 (string): Name of the scene variable to delete + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Value of a global variable** Modify the value of a global variable. +??? quote "See parameters" + + - Parameter 1 (string): Name of the global variable + - Parameter 2 (🔢 Number): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **String of a global variable** Modify the text of a global variable. +??? quote "See parameters" + + - Parameter 1 (string): Name of the global variable + - Parameter 2 (string): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Value of a scene variable** Modify the value of a scene variable. +??? quote "See parameters" + + - Parameter 1 (string): Name of the scene variable + - Parameter 2 (🔢 Number): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **String of a scene variable** Modify the text of a scene variable. +??? quote "See parameters" + + - Parameter 1 (string): Name of the scene variable + - Parameter 2 (string): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Global variable exists** Check if the global variable exists. +??? quote "See parameters" + + - Parameter 1 (string): Name of the global variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Object variable exists** Check if an object variable exists. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (string): Name of object variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Scene variable exists** Check if the scene variable exists. +??? quote "See parameters" + + - Parameter 1 (string): Name of the scene variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `ExtendedVariables::GlobalVariable()` | Return the value of a global variable. || -| `ExtendedVariables::GlobalVariableString()` | Return the text of a global variable. || -| `ExtendedVariables::Variable()` | Return the value of a scene variable. || -| `ExtendedVariables::VariableString()` | Return the text of a scene variable. || +| `ExtendedVariables::GlobalVariable(string)` | Return the value of a global variable. || +| | _string_ | Name of the global variable | +| `ExtendedVariables::GlobalVariableString(string)` | Return the text of a global variable. || +| | _string_ | Name of the global variable | +| `ExtendedVariables::Variable(string)` | Return the value of a scene variable. || +| | _string_ | Name of the scene variable | +| `ExtendedVariables::VariableString(string)` | Return the text of a scene variable. || +| | _string_ | Name of the scene variable | + --- diff --git a/docs/gdevelop5/extensions/extra-inventory/index.md b/docs/gdevelop5/extensions/extra-inventory/index.md index 7176e75c52..88e7effdeb 100644 --- a/docs/gdevelop5/extensions/extra-inventory/index.md +++ b/docs/gdevelop5/extensions/extra-inventory/index.md @@ -1,16 +1,14 @@ -# Extra inventory functions +# Extra inventory functions (deprecated) Adds functions that let you add/remove multiple items from an inventory, as well as a function to set the count of an item. -**Authors and contributors** to this community extension: [heyitsdwubbs](https://gd.games/heyitsdwubbs). +**Authors and contributors** to this experimental extension: [heyitsdwubbs](https://gd.games/heyitsdwubbs). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -18,6 +16,8 @@ Adds functions that let you add or remove multiple items from an inventory, as w This function makes use of GDevelop's built-in inventory system. +This extension is deprecated. The [simple inventory extension](https://wiki.gdevelop.io/gdevelop5/extensions/inventories) should be used instead. + !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -26,14 +26,39 @@ This function makes use of GDevelop's built-in inventory system. **Add multiple items** Adds multiple items to an inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3 (🔢 Number): How many objects to add? + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Remove multiple items** Removes multiple items from an inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3 (🔢 Number): How many objects to remove? + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Set the number of items** Sets the number of items in an inventory. +??? quote "See parameters" + + - Parameter 1 (string): Inventory name + - Parameter 2 (string): Item name + - Parameter 3 (🔢 Number): New amount of items + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Extra inventory functions** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Extra inventory functions (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/face-forward/index.md b/docs/gdevelop5/extensions/face-forward/index.md index 5713e9f6bc..5d69ea9de1 100644 --- a/docs/gdevelop5/extensions/face-forward/index.md +++ b/docs/gdevelop5/extensions/face-forward/index.md @@ -3,7 +3,7 @@ Face object towards the direction of movement. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [TheGemDev](https://gd.games/TheGemDev). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [TheGemDev](https://gd.games/TheGemDev). --- @@ -27,9 +27,25 @@ Face object towards the direction of movement. **Set offset angle** Set offset angle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Offset angle + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set rotation speed** Set rotation speed (degrees per second). Use "0" for immediate turning. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Rotation Speed + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -38,6 +54,7 @@ Set rotation speed (degrees per second). Use "0" for immediate turning. | `Object.FaceForward::OffsetAngle()` | Offset angle. || | `Object.FaceForward::RotationSpeed()` | Rotation speed (in degrees per second). || + --- *This page is an auto-generated reference page about the **Face Forward** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/fire-bullet/index.md b/docs/gdevelop5/extensions/fire-bullet/index.md index c471233a20..03072f0a8d 100644 --- a/docs/gdevelop5/extensions/fire-bullet/index.md +++ b/docs/gdevelop5/extensions/fire-bullet/index.md @@ -3,19 +3,22 @@ Fire bullets, manage ammo, reloading and overheating. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [Muzan7](https://gd.games/Muzan7), [Bouh](https://gd.games/Bouh), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [Muzan7](https://gd.games/Muzan7), [Bouh](https://gd.games/Bouh), [VictrisGames](https://gd.games/VictrisGames). --- -This extension allows objects to fire bullets. +This extension allows objects to fire bullets. To use it, add the behavior to the object that will shoot, then use the provided action to launch another object as the bullet. -It handles: +The properties of the behavior can be used to customize: - Cooldown between shots - Firing multiple bullets at a time ([open the project online](https://editor.gdevelop.io/?project=example://fire-bullet)) - Ammo management - Overheat +The speed can be specified when using the actions to fire the bullets. +The bullets are automatically given a permanent force to make them move (no need to use a linear movement or move them with another behavior). + It can be used for: - Twin-stick shooters ([open the project online](https://editor.gdevelop.io/?project=example://conviction-of-gun-dude-desktop)) @@ -32,171 +35,625 @@ A simple example shows how to make firing patterns ([open the project online](ht ## Fire bullets -Fire bullets, manage ammo, reloading, and overheating. +Fire bullets, manage ammo, reloading, and overheating. Once added to your object that must shoot, use the behavior action in your events to fire another object as a bullet. This action will also make the bullet move (using a permanent force) at the speed specified in the action. ### Behavior actions **Fire bullets toward an angle** -Fire bullets in the direction of a given angle. +Fire bullets in the direction of a given angle at a specified speed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position, where to create the bullet + - Parameter 3 (🔢 Number): Y position, where to create the bullet + - Parameter 4 (👾 Object): The bullet object + - Parameter 5 (🔢 Number): Angle of the bullet, in degrees + - Parameter 6 (🔢 Number): Speed of the bullet, in pixels per second + + > Technical note: parameter 7 are internal parameters handled by GDevelop. **Fire bullets toward an object** -Fire bullets toward an object. +Fire bullets toward an object at a specified speed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position, where to create the bullet + - Parameter 3 (🔢 Number): Y position, where to create the bullet + - Parameter 4 (👾 Object): The bullet object + - Parameter 5 (👾 Object): Target object + - Parameter 6 (🔢 Number): Speed of the bullet, in pixels per second + + > Technical note: parameter 7 are internal parameters handled by GDevelop. **Fire bullets toward a position** -Fire bullets toward a position. +Fire bullets toward a position at a specified speed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position, where to create the bullet + - Parameter 3 (🔢 Number): Y position, where to create the bullet + - Parameter 4 (👾 Object): The bullet object + - Parameter 5 (🔢 Number): Target X position + - Parameter 6 (🔢 Number): Target Y position + - Parameter 7 (🔢 Number): Speed of the bullet, in pixels per second + + > Technical note: parameter 8 are internal parameters handled by GDevelop. **Increase ammo** Increase ammo quantity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Ammo gained + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Reload ammo** Reload ammo. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reset total bullets created** Reset total bullets created. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reset total reloads completed** Reset total reloads completed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Reset total shots fired** Reset total shots fired. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Ammo quantity** Change the ammo quantity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Angle variance** Change the angle variance (in degrees) applied to each bullet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Enable (or disable) automatic reloading** Enable (or disable) automatic reloading. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Enable automatic reloading + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set bullet layer** Change the layer that bullets are created on. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🔤 Layer name (String) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Bullets per shot** Change the number of bullets shot every time the "fire bullet" action is used. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Bullet speed variance** Change the bullet speed variance (pixels per second) applied to each bullet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Firing cooldown** Change the firing cooldown (in seconds) also known as rate of fire. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Exponential cooling rate** Change the exponential cooling rate, per second. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Firing arc** Change the firing arc (in degrees) where bullets are shot. Bullets are evenly spaced out inside the firing arc. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Heat increase per shot** Change the heat increase per shot. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Linear cooling rate** Change the linear cooling rate (per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Max ammo** Change the max ammo. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Overheat duration** Change the overheat duration (in seconds). When an object is overheated, it can't fire for this duration. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Reload duration** Change the reload duration (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Enable (or disable) bullet rotation** Enable bullet rotation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Rotate bullet to match trajetory + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shots per reload** Change the number of shots per reload. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Enable (or disable) unlimited ammo** Enable unlimited ammo. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Unlimited ammo + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Ammo quantity** Compare the ammo quantity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Angle variance** Compare the angle variance (in degrees) applied to each bullet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Bullets per shot** Compare the number of bullets shot every time the "fire bullet" action is used. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is bullet rotation enabled** Check if bullet rotates to match trajectory. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Bullet speed variance** Compare the bullet speed variance (pixels per second) applied to each bullet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Firing cooldown** Compare the firing cooldown (in seconds) also known as rate of fire. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Duration before cooldown end** Compare the remaining duration before the cooldown will permit a bullet to be fired, in seconds. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Exponential cooling rate** Compare the exponential cooling rate, per second. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Firing arc** Compare the firing arc (in degrees) where bullets are shot. Bullets are evenly spaced out inside the firing arc. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Has just fired** Check if the object has just fired something. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Heat increase per shot** Compare the heat increase per shot. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Heat level** Compare the heat level (range: 0 to 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is automatic reloading enabled** Check if automatic reloading is enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is firing cooldown active** Check if firing cooldown is active. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is out of ammo** Check if object has no ammo available. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is overheated** Check if object is overheated. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is ready to shoot** Check if object is ready to shoot. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is ammo reloading in progress** Check if object is currently performing an ammo reload. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is a reload needed** Check if object needs to reload ammo. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is ammo unlimited** Check if ammo is unlimited. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Linear cooling rate** Compare the linear cooling rate (per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Max ammo** Compare the max ammo. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Overheat duration** Compare the overheat duration (in seconds). When an object is overheated, it can't fire for this duration. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Duration before overheat end** Compare the remaining duration before the overheat penalty ends, in seconds. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Reload duration** Compare the reload duration (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Duration before the reload finishes** Compare the remaining duration before the reload finishes, in seconds. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shots before next reload** Compare the remaining shots before the next reload is required. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shots per reload** Compare the number of shots per reload. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -224,6 +681,7 @@ Compare the number of shots per reload. | `Object.FireBullet::TotalReloadsCompleted()` | Reloads completed. || | `Object.FireBullet::TotalShotsFired()` | Total shots fired (multi-bullet shots are considered one shot). || + --- *This page is an auto-generated reference page about the **Fire bullets** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/first-person-camera/index.md b/docs/gdevelop5/extensions/first-person-camera/index.md index d1ddbb744c..8ec9eae247 100644 --- a/docs/gdevelop5/extensions/first-person-camera/index.md +++ b/docs/gdevelop5/extensions/first-person-camera/index.md @@ -3,7 +3,7 @@ Move the camera to look though objects eyes. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [Eldarduil](https://gd.games/Eldarduil). --- @@ -11,13 +11,24 @@ Move the camera to look though objects eyes. This extension can be used with the "Mouse pointer lock" or "Gamepad" extension to build a first person camera. +The first person example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-first-person)). + !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. ## Actions **Look through object eyes** -Move the camera to look though _PARAM1_ eyes. The object must look to the right when all its angles are 0 and the top of its head be toward Z+. +Move the camera to look though the object eyes. The object must look to the right when all its angles are 0 and the top of its head be toward Z+. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): 3D Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3: 🔤 Layer name (String) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + diff --git a/docs/gdevelop5/extensions/flash-layer/index.md b/docs/gdevelop5/extensions/flash-layer/index.md index 8eca2512f1..e8ae700409 100644 --- a/docs/gdevelop5/extensions/flash-layer/index.md +++ b/docs/gdevelop5/extensions/flash-layer/index.md @@ -3,7 +3,7 @@ Make a layer visible for a specified duration, and then hide the layer. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -19,6 +19,14 @@ It is recommended to select a layer on the top, and one that is hidden by defaul **Flash layer** Make a layer visible for a specified duration, and then hide the layer. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + - Parameter 2 (🔢 Number): Duration (in seconds) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/flash-transition-painter/index.md b/docs/gdevelop5/extensions/flash-transition-painter/index.md index 9b06232648..12df36968c 100644 --- a/docs/gdevelop5/extensions/flash-transition-painter/index.md +++ b/docs/gdevelop5/extensions/flash-transition-painter/index.md @@ -1,20 +1,20 @@ # Flash and transition painter -Behavior for shape painter allows you to paint a color all over the screen for period of time with an effect (useful for simulate flash and transition effect). +Paint transition effects with a plain color. -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). --- -* __Paint effect:__ Action to paint a color all over the screen for a period of time with specific effect. -effect type: - * __Flash:__ is a monochrome color appear with fade then disappear with fade out. - * __Vertical:__ is a monochrome color comes from right side then comes back. - * __Horizontal:__ is a monochrome color come from top side then comes back. - * __Circular:__ is a circle which increases from the center and narrows. +Paint transition effects -* __Paint effect ended:__ event when the paint effect ends. +- Fade in, fade out +- Right to left +- Top to bottom +- Circular + +A blur effect can be added to the painter layer to smooth the transition. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -30,14 +30,34 @@ Paint all over the screen a color for a period of time. **Paint Effect** Paint Effect. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: color + - Parameter 3 (🔢 Number): Duration + - Parameter 4 (🔤 String): Type of effect (one of: "Flash", "Horizontal", "Vertical", "Circular") + - Parameter 5 (🔤 String): Direction transition (one of: "Both", "Forward", "Backward") + - Parameter 6 (🔢 Number): End opacity + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + ### Behavior conditions **Paint effect ended ** Paint effect ended. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Flash and transition painter** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/flash/index.md b/docs/gdevelop5/extensions/flash/index.md index 72a1c66802..acd2ef5004 100644 --- a/docs/gdevelop5/extensions/flash/index.md +++ b/docs/gdevelop5/extensions/flash/index.md @@ -3,11 +3,11 @@ Make an object flash visibility (blink), color tint, object effect, or opacity (fade). -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames). --- -Make an object flash for a period of time so that it alternates between two different states. +Make a 2D object flash for a period of time so that it alternates between two different states. Includes the ability to flash visibility (blink), color tint, object effect, or opacity (fade). After adding a behavior to an object, you **trigger the effect** by using the **Flash action**. @@ -21,25 +21,7 @@ This can be used to: !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. -## Actions -**Toggle an object effect** -Toggle an object effect. - -**Toggle object visibility** -Toggle object visibility. - -## Conditions - -**Color tint applied to an object** -Compare Color tint applied to an object. - -## Expressions - -| Expression | Description | | -|-----|-----|-----| -| `Flash::ColorTint()` | Return Color tint applied to an object. || -| `Flash::IsTinted()` | Check if a color tint is applied to an object. || ## Flash visibility (blink) @@ -50,20 +32,61 @@ Make the object flash (blink) for a period of time so it alternates between visi **Flash visibility (blink)** Make an object flash (blink) visibility for a period of time. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration of the flashing, in seconds + Use "0" to keep flashing until stopped. + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Half period** Change the half period of the object (time the object is invisible). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop flashing visibility (blink)** Stop flashing visibility (blink) of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Half period** Compare the half period of the object (time the object is invisible). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is object flashing visibility** Check if an object is flashing visibility. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -79,20 +102,62 @@ Make an object flash a color tint for a period of time. **Flash a color tint** Make an object flash a color tint for a period of time. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration of the flashing, in seconds + Use "0" to keep flashing until stopped. + - Parameter 3 (color): Color tint + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Half period** Change the half period (time between flashes) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop flashing color tint** Stop flashing a color tint on an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Half period** Compare the half period (time between flashes) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is object flashing a color tint** Check if an object is flashing a color tint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -108,20 +173,62 @@ Make the object flash an effect for a period of time. **Flash an effect** Make an object flash an effect for a period of time. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration of the flashing, in seconds + Use "0" to keep flashing until stopped. + - Parameter 3: 🔤 Object Effect Name (String) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Half period** Change the half period (time between flashes) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop flashing an effect** Stop flashing an effect of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Half period** Compare the half period (time between flashes) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is object flashing an effect** Check if an object is flashing an effect. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -137,26 +244,70 @@ Flash opacity smoothly (fade) in a repeating loop. **Flash the opacity (fade)** Make an object flash opacity smoothly (fade) in a repeating loop. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🧩 Behavior): Tween behavior (required) + - Parameter 3 (🔢 Number): Duration of the flashing, in seconds + Use "0" to keep flashing until stopped. + - Parameter 4 (🔢 Number): Target opacity + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Half period** Change the half period (time between flashes) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop flashing opacity** Stop flashing opacity of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Half period** Compare the half period (time between flashes) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is object flashing opacity** Check if an object is flashing opacity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.FlashOpacity::HalfPeriodTime()` | Return the half period (time between flashes) of the object. || + --- *This page is an auto-generated reference page about the **Flash object** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/flex-box/index.md b/docs/gdevelop5/extensions/flex-box/index.md index 1a989166a8..013101276c 100644 --- a/docs/gdevelop5/extensions/flex-box/index.md +++ b/docs/gdevelop5/extensions/flex-box/index.md @@ -3,14 +3,12 @@ Allows using flexbox for positioning objects. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -35,18 +33,58 @@ A container for flex items. **Set flex direction** Sets the flexbox direction property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Flex direction (one of: "right", "left", "down", "right") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set flex wrap** Sets the flexbox wrap property. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Flex wrap (one of: "nowrap", "wrap", "wrap-reverse") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set alignement of the lines** Sets the alignement method for the lines/rows of objects in the box. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Alignement method (one of: "stretch", "flex-start", "flex-end", "center") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set alignement on the X axis** Sets the alignement method for items on the X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Alignement method (one of: "flex-start", "flex-end", "center", "space-between", "space-around", "space-evenly") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set alignement on the Y axis** Sets the alignement method for items on the Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Alignement method (one of: "stretch", "flex-start", "flex-end", "center") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -59,18 +97,51 @@ An item in a flex container. **Set alignement of the object** Sets the alignement method for this object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Alignement method (one of: "auto", "flex-start", "flex-end", "center", "stretch") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set growth of the object** Sets the growth for this object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Growth + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set order of the object** Sets the order for this object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Order + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set shrink of the object** Sets the shrink for this object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Shrink + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Flexbox** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/flip-gravity/index.md b/docs/gdevelop5/extensions/flip-gravity/index.md index ee40ace8f2..27dd275843 100644 --- a/docs/gdevelop5/extensions/flip-gravity/index.md +++ b/docs/gdevelop5/extensions/flip-gravity/index.md @@ -3,14 +3,12 @@ Flip platformer character gravity up side down. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -43,15 +41,74 @@ Recommended: Set the platformer character sprite Origin and Center points to spr Flip the gravity for platformer character (you have 1 object), Example: • Floor object at the bottom, Floor object at the top. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Platformer character object + - Parameter 2 (🧩 Behavior): Platformer character behavior + - Parameter 3 (key): Flip gravity key + Any key will work except the Jump key. + - Parameter 4 (👾 Object): Floor object + - Parameter 5 (🔢 Number): Flip gravity force power + The higher number the stronger the force. + 0 for object falling speed. + - Parameter 6 (key): Moving right key + - Parameter 7 (key): Moving left key + - Parameter 8 (🔢 Number): Idle animation number + - Parameter 9 (🔢 Number): Move animation number + - Parameter 10 (🔢 Number): Fall animation number + - Parameter 11 (❓ Yes or No): Can flip gravity while in air after performing a jump + - Parameter 12 (❓ Yes or No): Trigger gravity flip once every single press until flip key is released + - Parameter 13 (❓ Yes or No): Ability to jump while the gravity is flipped + - Parameter 14 (key): Jump key + Leave it empty if you select No for Jump ability. + - Parameter 15 (🔢 Number): Jump strength + Leave it empty if you select No for Jump ability. + + > Technical note: parameters 0, 16 are internal parameters handled by GDevelop. + **Flip gravity 2 objects (1 for floor, 1 for roof)** Flip the gravity for platformer character (you have 2 objects), Examples: • Floor object at the bottom, Roof object at the top. • Floor object at the bottom, Floor object at the top. • Roof object at the bottom, Roof object at the top. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Platformer character object + - Parameter 2 (🧩 Behavior): Platformer character behavior + - Parameter 3 (key): Flip gravity key + Any key will work except the Jump key. + - Parameter 4 (👾 Object): Floor object + - Parameter 5 (👾 Object): Roof object + - Parameter 6 (🔢 Number): Flip gravity force power + The higher number the stronger the force. + 0 for object falling speed. + - Parameter 7 (key): Moving right key + - Parameter 8 (key): Moving left key + - Parameter 9 (🔢 Number): Idle animation number + - Parameter 10 (🔢 Number): Move animation number + - Parameter 11 (🔢 Number): Fall animation number + - Parameter 12 (❓ Yes or No): Can flip gravity while in air after performing a jump + - Parameter 13 (❓ Yes or No): Trigger gravity flip once every single press until flip key is released + - Parameter 14 (❓ Yes or No): Ability to jump while the gravity is flipped + - Parameter 15 (key): Jump key + Leave it empty if you select No for Jump ability. + - Parameter 16 (🔢 Number): Jump strength + Leave it empty if you select No for Jump ability. + + > Technical note: parameters 0, 17 are internal parameters handled by GDevelop. + **Reset gravity back to normal** Reset the gravity back to normal for the selected object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Platformer character object + - Parameter 2 (🧩 Behavior): Platformer character behavior + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/follow-objects-with-camera/index.md b/docs/gdevelop5/extensions/follow-objects-with-camera/index.md index b218b09917..91ed31d6a5 100644 --- a/docs/gdevelop5/extensions/follow-objects-with-camera/index.md +++ b/docs/gdevelop5/extensions/follow-objects-with-camera/index.md @@ -1,23 +1,19 @@ -# Follow multiple objects with camera +# Follow multiple 2D objects with the camera Change the zoom and position of the camera to keep all instances of an object (or object group) on the screen. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [MrMen](https://gd.games/MrMen). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [MrMen](https://gd.games/MrMen). --- -Use the "Follow multiple objects with camera" action on every frame that you want the camera to move. +Use the "Follow multiple 2D objects with the camera" action on every frame that you want the camera to move. If you want to select which object instances are tracked by the camera, add conditions to that event. - Use an object group to track multiple objects. - Only run on one layer at a time. If multiple layers need to move the same way, create events that copy CameraX, CameraY, and CameraZoom values (or use the "Copy camera settings" extension) -- This action can also be used on a single object instance to move the camera smoothly. - -Release Notes: - -- Version 1.0.0 removed the "MinZoom", "Layer", and "Camera" parameters. Layer is now selected automatically from one of the objects being followed. Events that were created with previous versions of this extension will continue working without modification. +- This action can also be used on a single object instance to move the camera smoothly - though other extensions might be more adapted. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -27,8 +23,23 @@ Release Notes: **Follow multiple objects with camera** Change the zoom and position of the camera to keep all instances of an object (or object group) on the screen. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object (or Object group) + - Parameter 2 (🔢 Number): Extra space on sides of screen + Each side will include this buffer + - Parameter 3 (🔢 Number): Extra space on top and bottom of screen + Each side will include this buffer + - Parameter 4 (🔢 Number): Maximum zoom level (Default: 1) + Limit how far the camera will zoom in + - Parameter 5 (🔢 Number): Camera move speed (Range: 0 to 1) (Default: 0.05) + Percent of distance to destination that will be travelled each frame (used by lerp function) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Follow multiple objects with camera** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Follow multiple 2D objects with the camera** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/fps/index.md b/docs/gdevelop5/extensions/fps/index.md index d4d499fb7e..b31b009607 100644 --- a/docs/gdevelop5/extensions/fps/index.md +++ b/docs/gdevelop5/extensions/fps/index.md @@ -3,7 +3,7 @@ Calculate and display the frames per second (FPS) of the game. -**Authors and contributors** to this community extension: [Ahnaf30e](https://gd.games/Ahnaf30e), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [Ahnaf30e](https://gd.games/Ahnaf30e), [VictrisGames](https://gd.games/VictrisGames). --- @@ -30,6 +30,7 @@ Makes a text object display the current FPS. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Frames per second (FPS)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/game-pix-sdk/index.md b/docs/gdevelop5/extensions/game-pix-sdk/index.md index 4f6c88580a..0f0b982f9a 100644 --- a/docs/gdevelop5/extensions/game-pix-sdk/index.md +++ b/docs/gdevelop5/extensions/game-pix-sdk/index.md @@ -4,14 +4,12 @@ The GamePix game SDK provides a series of utility methods needed for running your game in the GamePix ecosystem. They enhance the user experience of your game and complete the integration with our ads network and revenues system. -**Authors and contributors** to this community extension: [caiiiycuk](https://gd.games/caiiiycuk). +**Authors and contributors** to this experimental extension: [caiiiycuk](https://gd.games/caiiiycuk). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -69,29 +67,66 @@ GamePix SDK provides following javascript API: **Show the interstitial ad** Show the interstitial ad (full screen). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Show the reward ad** Show the reward ad (full screen). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **GamePix SDK is initialised** Check if GamePix SDK is ready to use. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Check if interstitial has ended** Check if interstitial has ended. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Check that the reward ad has ended** Check that the reward ad has ended. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Check if player should be rewarded** Check if player should be rewarded. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `GamePixSDK::Language()` | Player's preferred language. || + --- *This page is an auto-generated reference page about the **GamePix SDK** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/gamejolt-api/index.md b/docs/gdevelop5/extensions/gamejolt-api/index.md index d603243ff1..3a2ea741b2 100644 --- a/docs/gdevelop5/extensions/gamejolt-api/index.md +++ b/docs/gdevelop5/extensions/gamejolt-api/index.md @@ -3,14 +3,12 @@ Support the complete Gamejolt API. -**Authors and contributors** to this community extension: [infokubarcade](https://gd.games/infokubarcade). +**Authors and contributors** to this experimental extension: [infokubarcade](https://gd.games/infokubarcade). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -39,124 +37,489 @@ The request result is stored in a Scene variable of your choice that you can use **Add score to the leaderboard** Add score to the Gamejolt leaderboard. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Force guest record + - Parameter 2 (string): Guest username (fallback if the player is not connected) + - Parameter 3 (🔢 Number): Score to send + Example: 120 for 120km. + - Parameter 4 (string): Score unit (km, points, seconds...) + Example: "km" for 120km. + - Parameter 5 (string): (optional) Extra data you want to save with the score record + - Parameter 6 (string): Leaderboard identifier (keep empty for default) + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Add score with label to the leaderboard** Add a labelled score in the leaderboard. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Force guest record + - Parameter 2 (string): Guest username (fallback if the player is not connected) + - Parameter 3 (🔢 Number): Score to send + Example: 80 for 80s. + - Parameter 4 (string): Label of the score + Example: "01:20" for 80s. + - Parameter 5 (string): (optional) Extra data you want to save with the score record + - Parameter 6 (string): Leaderboard identifier (keep empty for default) + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Achieve a trophy** Set that a trophy has been obtained by the player. +??? quote "See parameters" + + - Parameter 1 (string): Trophy identifier + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Gamejolt authentication** Authenticate Gamejolt user before using the account functionalities. +??? quote "See parameters" + + - Parameter 1 (string): Gamejolt Username + - Parameter 2 (string): Gamejolt user secret game token + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Check a game session** Check on the server the session status. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Close a game session** Close a game session for the connected user. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Change number** Update a numerical value in the cloud storage. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Use global storage (instead of user storage) + - Parameter 2 (string): Storage key + - Parameter 3 (🔤 String): Operation to do on the data (one of: "add", "subtract", "multiply", "divide") + - Parameter 4 (🔢 Number): Operation value + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Change text** Update a text value in the cloud storage. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Use global storage (instead of user storage) + - Parameter 2 (string): Storage key + - Parameter 3 (🔤 String): Operation to do on the data (one of: "append", "prepend") + - Parameter 4 (🔢 Number): Operation value + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Fetch stored data** Fetch cloud game data from Gamejolt. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Structure of elements: + * **``data``** (string): the content of the storage for the specified key + - Parameter 2 (❓ Yes or No): Use global storage (instead of user storage) + - Parameter 3 (string): Storage key + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Fetch data keys** Fetch all the data keys. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``keys``** of elements having the following structure: + * **``key``** (string): the key of the data + - Parameter 2 (❓ Yes or No): Use global storage (instead of user storage) + - Parameter 3 (string): (optional) Pattern to filter keys + How to use patterns : + - write the part of the key you know, for example "room" + - then put a * where the key can change + + Example "room*" will retrieve "room_123" "room_456" "roomABC" etc. + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Fetch the best scores** Fetch the best scores on the leaderboard. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``scores``** of elements having the following structure: + * **``score``** (number): the score string + * **``sort``** (number): the score's numerical sort value + * **``extra_data``** (string): any extra data associated with the score + * **``user``** (string): if this is a user score, this is the display name for the user + * **``user_id``** (number): if this is a user score, this is the user's identifier + * **``guest``** (string): if this is a guest score, this is the guest's submitted name + * **``stored``** (string): when the score was logged by the user - Example: "1 week ago" + * **``stored_timestamp``** (number): returns the timestamp (in seconds) of when the score was logged by the user + - Parameter 2 (🔢 Number): Result limit (between 1 and 100, default : 10) + - Parameter 3 (string): Leaderboard identifier (keep empty for default) + - Parameter 4 (🔤 String): Score filter (optional, default : none) (one of: "none", "better_than", "worse_than") + - Parameter 5 (🔢 Number): (optional) If a filter is selected, set the score basis to use + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Fetch scores of a user** Fetch user's scores on the leaderboard. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``scores``** of elements having the following structure: + * **``score``** (number): the score string + * **``sort``** (number): the score's numerical sort value + * **``extra_data``** (string): any extra data associated with the score + * **``user``** (string): if this is a user score, this is the display name for the user + * **``user_id``** (number): if this is a user score, this is the user's identifier + * **``guest``** (string): if this is a guest score, this is the guest's submitted name + * **``stored``** (string): when the score was logged by the user - Example: "1 week ago" + * **``stored_timestamp``** (number): returns the timestamp (in seconds) of when the score was logged by the user + - Parameter 2 (❓ Yes or No): Search in guest records + - Parameter 3 (string): Guest username (fallback if the player is not connected) + - Parameter 4 (🔢 Number): Result limit (between 1 and 100, default : 10) + - Parameter 5 (string): Leaderboard identifier (keep empty for default) + - Parameter 6 (🔤 String): Score filter (optional, default : none) (one of: "none", "better_than", "worse_than") + - Parameter 7 (🔢 Number): (optional) If a filter is selected, set the score basis to use + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Fetch leaderboard rank** Fetch the score rank in the leaderboard. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Structure of elements: + * **``rank``** (number): the rank of the score on the score table + - Parameter 2 (🔢 Number): Score to evaluate + - Parameter 3 (string): Leaderboard identifier (keep empty for default) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Fetch all leaderboard's informations** Fetch all the leaderboard informations (without scores). +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``tables``** of elements having the following structure: + * **``id``** (number): the identifier of the table + * **``name``** (string): the name of the score table + * **``description``** (string): the description of the score table + * **``primary``** (number): 1 if the table is the primary/default one, 0 instead + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Get the server time** Retrieve the server time. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Structure of elements: + * **``timestamp``** (number): the UNIX time stamp (in seconds) representing the server's time + * **``timezone``** (string): the timezone of the server - Example: ``America/New_York`` + * **``year``** (number): the current year + * **``month``** (number): the current month + * **``day``** (number): the day of the month + * **``hour``** (number): the hour of the day + * **``minute``** (number): the minute of the hour + * **``second``** (number): the seconds of the minute + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Fetch the user trophies** Fetch trophies informations of the connected user. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``trophies``** of elements having the following structure: + * **``id``** (number): the identifier of the table + * **``title``** (number): the title of the trophy on Gamejolt + * **``description``** (string): the trophy description text + * **``difficulty``** (string): ``Bronze``, ``Silver``, ``Gold``, or ``Platinum`` + * **``image_url``** (string): the URL of the trophy thumbnail image + * **``achieved``** (string): the date when the trophy was achieved, "false" instead - Example: "5 days ago" + - Parameter 2 (🔤 String): Filter the trophies (default: none) (one of: "none", "achieved", "not_achieved") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Fetch the user trophies (by identifier)** Fetch trophies (by identifier) informations of the connected user. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``trophies``** of elements having the following structure: + * **``id``** (number): the identifier of the table + * **``title``** (number): the title of the trophy on Gamejolt + * **``description``** (string): the trophy description text + * **``difficulty``** (string): ``Bronze``, ``Silver``, ``Gold``, or ``Platinum`` + * **``image_url``** (string): the URL of the trophy thumbnail image + * **``achieved``** (string): the date when the trophy was achieved, "false" instead - Example: "5 days ago" + - Parameter 2 (string): Trophy identifier + You can use a comma-separated list to fetch multiple trophies. + Example: 123123,505050,98700 + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Fetch user data** Fetch complete user data from Gamejolt. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``users``** of elements having the following structure: + * **``id``** (number): the identifier of the user + * **``type``** (string): the type of user. Can be ``User``, ``Developer``, ``Moderator``, or ``Administrator`` + * **``username``** (string): the user's username + * **``avatar_url``** (string): the URL of the user's avatar + * **``signed_up``** (string): how long ago the user signed up + * **``signed_up_timestamp``** (number): the timestamp (in seconds) of when the user signed up + * **``last_logged_in``** (string): how long ago the user was last logged in + * **``last_logged_in_timestamp``** (number): the timestamp (in seconds) of when the user was last logged in + * **``status``** (string): ``Active`` if the user is still a member of the site. ``Banned`` if they've been banned + * **``developer_name``** (string): the user's display name + * **``developer_website``** (string): the user's website (or empty string if not specified) + * **``developer_description``** (string): the user's profile markdown description + - Parameter 2 (string): Username or identifier + You can use comma-separated list to find multiple users + Example 1: gdevelop,player123,snailmaster + Example 2: 321123,505050,778899 + - Parameter 3 (❓ Yes or No): Use identifier instead of username + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Fetch user friends** Fetch the connected user friend list. +??? quote "See parameters" + + - Parameter 1 (string): Request name (default: empty) + **Result format** - + Array named **``friends``** of elements having the following structure: + * **``friend_id``** (number): the friend's user identifier + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Open a game session** Open a game session for the connected user. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Register Gamejolt game** Setup a game before using the Gamejolt API. +??? quote "See parameters" + + - Parameter 1 (string): Gamejolt game identifier + - Parameter 2 (string): Gamejolt game secret key + You can find all these informations in the Gamejolt API Settings of your game. + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Remove stored data** Remove cloud game data from Gamejolt. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Use global storage (instead of user storage) + - Parameter 2 (string): Storage key + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Remove a trophy** Remove a trophy from the player achievements. +??? quote "See parameters" + + - Parameter 1 (string): Trophy identifier + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Activate test user** Activate a test user for the Gamejolt API. +??? quote "See parameters" + + - Parameter 1 (string): Test username + - Parameter 2 (string): Test user game token + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Store data** Save game data in the Gamejolt cloud storage. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Use global storage (instead of user storage) + - Parameter 2 (string): Storage key + - Parameter 3 (string): Data to save + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Change the session status** Change the game session status on the server. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Session status + Status role : + - keep : keep the same status as before + - active : set that the player is playing the game + - idle : set that the player is waiting + + Warning : "keep" will only be sent every 30s to the server. The others are always sent. Be careful. (one of: "keep", "active", "idle") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Player is authenticated** Check if the user is authenticated on Gamejolt. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **The request is finished** The named request is finished. You can read its content. +??? quote "See parameters" + + - Parameter 1 (string): Request name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Last error message** Compare Error message from the last request. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Last request is successful** Check if the last request is successful. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Request error message** Compare Error message from a specific request. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (string): Request name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Request is successful** Check if a specific request is successful. +??? quote "See parameters" + + - Parameter 1 (string): Request name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Session is active** Check if the user session is active. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Is in test mode** Check if the API is in test mode. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **User game token** Compare Authenticated user game token used for requests. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Username** Compare Authenticated username used for requests. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `GamejoltAPI::LastErrorMessage()` | Return Error message from the last request. || | `GamejoltAPI::LastResponse()` | JSON response from the last request. || -| `GamejoltAPI::RequestErrorMessage()` | Return Error message from a specific request. || -| `GamejoltAPI::RequestResponse()` | JSON response from a specific request. || +| `GamejoltAPI::RequestErrorMessage(string)` | Return Error message from a specific request. || +| | _string_ | Request name | +| `GamejoltAPI::RequestResponse(string)` | JSON response from a specific request. || +| | _string_ | Request name | | `GamejoltAPI::UserToken()` | Return Authenticated user game token used for requests. || | `GamejoltAPI::Username()` | Return Authenticated username used for requests. || + --- *This page is an auto-generated reference page about the **Gamejolt** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/gamepads/index.md b/docs/gdevelop5/extensions/gamepads/index.md index efb737b7ae..b79c43c09e 100644 --- a/docs/gdevelop5/extensions/gamepads/index.md +++ b/docs/gdevelop5/extensions/gamepads/index.md @@ -3,20 +3,20 @@ Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc... -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh), [lhphr](https://gd.games/lhphr), [ZachjuKamashi](https://gd.games/ZachjuKamashi). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh), [lhphr](https://gd.games/lhphr), [ZachjuKamashi](https://gd.games/ZachjuKamashi), [D8H](https://gd.games/D8H). --- -Add support for gamepads (or other controllers). +Add support for gamepads (or other physical controllers). It gives access to: -- button presses -- axis positions and force -- trigger pressure -- configurable deadzone -- vibration -- automatic mappers for platformer characters and top-down movement +- button presses, +- axis positions and force, +- trigger pressure, +- configurable deadzone, +- vibration, +- automatic "gamepad mapper" behaviors for 2D and 3D movement behaviors (platformer characters, top-down movement, 3D character etc...). Add one of these to the object with the movement behavior (i.e: the player most of the time) and the behavior will then be controlled automatically by the gamepad (it works by reading the gamepad state and simulating controls). No need for additional events to make it work once the behaviors are set up. The Bomberman-like example handles 4 players with gamepads ([open the project online](https://editor.gdevelop.io/?project=example://goose-bomberman)). @@ -30,23 +30,68 @@ The Bomberman-like example handles 4 players with gamepads ([open the project on **Advanced gamepad vibration** Generate an advanced vibration on the specified controller. Incompatible with Firefox. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔢 Number): Time of the vibration, in seconds (optional, default value is 1) + - Parameter 3 (🔢 Number): Strong rumble magnitude (from 0 to 1) + - Parameter 4 (🔢 Number): Weak rumble magnitude (from 0 to 1) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Change gamepad active vibration** Change a vibration on the specified controller. Incompatible with Firefox. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔢 Number): Strong rumble magnitude (from 0 to 1) + - Parameter 3 (🔢 Number): Weak rumble magnitude (from 0 to 1) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Set gamepad deadzone for sticks** Set the deadzone for sticks of the gamepad. The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). Deadzone is between 0 and 1, and is by default 0.2. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔢 Number): Deadzone for sticks, 0.2 by default (0 to 1) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Gamepad vibration** Generate a vibration on the specified controller. Might only work if the game is running in a recent web browser. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔢 Number): Time of the vibration, in seconds (optional, default value is 1) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Any gamepad button pressed** Check if any button is pressed on a gamepad. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Gamepad stick pushed (axis)** Check if a stick of a gamepad is pushed in a given direction. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔤 String): Stick: "Left" or "Right" (one of: "Left", "Right") + - Parameter 3 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right", "Any") + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Gamepad button pressed** Check if a button is pressed on a gamepad. Buttons can be: @@ -54,41 +99,365 @@ Buttons can be: * PS4: "CROSS", "SQUARE", "CIRCLE", "TRIANGLE", "L1", "L2", "R1", "R2", "SHARE", "OPTIONS", "PS_BUTTON", "CLICK_TOUCHPAD", * Other: "UP", "DOWN", "LEFT", "RIGHT", "CLICK_STICK_LEFT", "CLICK_STICK_RIGHT". +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔤 String): Name of the button (one of: "A", "Cross", "B", "Circle", "X", "Square", "Y", "Triangle", "LB", "L1", "RB", "R1", "LT", "L2", "RT", "R2", "Up", "Down", "Left", "Right", "Back", "Share", "Start", "Options", "Click_Stick_Left", "Click_Stick_Right", "PS_Button", "Click_Touchpad") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Gamepad button released** Test if a button is released on a gamepad. Buttons can be: * Xbox: "A", "B", "X", "Y", "LB", "RB", "LT", "RT", "BACK", "START", * PS4: "CROSS", "SQUARE", "CIRCLE", "TRIANGLE", "L1", "L2", "R1", "R2", "SHARE", "OPTIONS", "PS_BUTTON", "CLICK_TOUCHPAD", * Other: "UP", "DOWN", "LEFT", "RIGHT", "CLICK_STICK_LEFT", "CLICK_STICK_RIGHT". +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔤 String): Name of the button (one of: "A", "Cross", "B", "Circle", "X", "Square", "Y", "Triangle", "LB", "L1", "RB", "R1", "LT", "L2", "RT", "R2", "Up", "Down", "Left", "Right", "Back", "Share", "Start", "Options", "Click_Stick_Left", "Click_Stick_Right", "PS_Button", "Click_Touchpad") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Gamepad connected** Check if a gamepad is connected. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Gamepad type** Check if the specified gamepad has the specified information in its description. Useful to know if the gamepad is a Xbox or PS4 controller. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (string): Type: "Xbox", "PS4", "Steam" or "PS3" (among other) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Any gamepad button released** Check if any button is released on a gamepad. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Gamepad button just pressed** +Check if a button was just pressed on a gamepad. Buttons can be: +* Xbox: "A", "B", "X", "Y", "LB", "RB", "LT", "RT", "BACK", "START", +* PS4: "CROSS", "SQUARE", "CIRCLE", "TRIANGLE", "L1", "L2", "R1", "R2", "SHARE", "OPTIONS", "PS_BUTTON", "CLICK_TOUCHPAD", +* Other: "UP", "DOWN", "LEFT", "RIGHT", "CLICK_STICK_LEFT", "CLICK_STICK_RIGHT". + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 2 (🔤 String): Name of the button (one of: "A", "Cross", "B", "Circle", "X", "Square", "Y", "Triangle", "LB", "L1", "RB", "R1", "LT", "L2", "RT", "R2", "Up", "Down", "Left", "Right", "Back", "Share", "Start", "Options", "Click_Stick_Left", "Click_Stick_Right", "PS_Button", "Click_Touchpad") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Stick force** Compare the force of gamepad stick (from 0 to 1). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔢 Number): The gamepad identifier: 1, 2, 3 or 4 + - Parameter 4 (🔤 String): Stick: "Left" or "Right" (one of: "Left", "Right") + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `Gamepads::ConnectedGamepadsCount()` | Return the number of connected gamepads. || -| `Gamepads::Deadzone()` | Return the value of the deadzone applied to a gamepad sticks, between 0 and 1. || +| `Gamepads::Deadzone(number)` | Return the value of the deadzone applied to a gamepad sticks, between 0 and 1. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | | `Gamepads::GamepadCount()` | Return the number of gamepads. || -| `Gamepads::GamepadType()` | Return a string containing informations about the specified gamepad. || -| `Gamepads::LastButtonID()` | Return the index of the last pressed button of a gamepad. || -| `Gamepads::LastButtonString()` | Return the last button pressed. Buttons for Xbox and PS4 can be:* Xbox: "A", "B", "X", "Y", "LB", "RB", "LT", "RT", "BACK", "START",* PS4: "CROSS", "SQUARE", "CIRCLE", "TRIANGLE", "L1", "L2", "R1", "R2", "SHARE", "OPTIONS", "PS_BUTTON", "CLICK_TOUCHPAD",* Both: "UP", "DOWN", "LEFT", "RIGHT", "CLICK_STICK_LEFT", "CLICK_STICK_RIGHT". || -| `Gamepads::StickAngle()` | Return the angle of a gamepad stick.If the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.An zero deadzone value give a total freedom on the angle value. || -| `Gamepads::StickForce()` | Return the force of gamepad stick (from 0 to 1). || -| `Gamepads::StickForceX()` | Return the gamepad stick force on X axis (from -1 at the left to 1 at the right). || -| `Gamepads::StickForceY()` | Return the gamepad stick force on Y axis (from -1 at the top to 1 at the bottom). || -| `Gamepads::StrongVibrationMagnitude()` | Return the strength of the strong vibration motor on the gamepad of a player. || -| `Gamepads::TriggerPressure()` | Get the value of the pressure on a gamepad trigger. || -| `Gamepads::WeakVibrationMagnitude()` | Return the strength of the weak vibration motor on the gamepad of a player. || +| `Gamepads::GamepadType(number)` | Return a string containing informations about the specified gamepad. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| `Gamepads::LastButtonID(number)` | Return the index of the last pressed button of a gamepad. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| `Gamepads::LastButtonString(number, string)` | Return the last button pressed. Buttons for Xbox and PS4 can be:* Xbox: "A", "B", "X", "Y", "LB", "RB", "LT", "RT", "BACK", "START",* PS4: "CROSS", "SQUARE", "CIRCLE", "TRIANGLE", "L1", "L2", "R1", "R2", "SHARE", "OPTIONS", "PS_BUTTON", "CLICK_TOUCHPAD",* Both: "UP", "DOWN", "LEFT", "RIGHT", "CLICK_STICK_LEFT", "CLICK_STICK_RIGHT". || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| | _🔤 String_ | Controller type | +| `Gamepads::StickAngle(number, string)` | Return the angle of a gamepad stick.If the deadzone value is high, the angle value is rounded to main axes, left, left, up, down.An zero deadzone value give a total freedom on the angle value. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| | _🔤 String_ | Stick: "Left" or "Right" | +| `Gamepads::StickForce(number, string)` | Return the force of gamepad stick (from 0 to 1). || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| | _🔤 String_ | Stick: "Left" or "Right" | +| `Gamepads::StickForceX(number, string)` | Return the gamepad stick force on X axis (from -1 at the left to 1 at the right). || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| | _🔤 String_ | Stick: "Left" or "Right" | +| `Gamepads::StickForceY(number, string)` | Return the gamepad stick force on Y axis (from -1 at the top to 1 at the bottom). || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| | _🔤 String_ | Stick: "Left" or "Right" | +| `Gamepads::StrongVibrationMagnitude(number)` | Return the strength of the strong vibration motor on the gamepad of a player. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| `Gamepads::TriggerPressure(number, string)` | Get the value of the pressure on a gamepad trigger. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | +| | _🔤 String_ | Trigger button | +| `Gamepads::WeakVibrationMagnitude(number)` | Return the strength of the weak vibration motor on the gamepad of a player. || +| | _🔢 Number_ | The gamepad identifier: 1, 2, 3 or 4 | + +## First person camera gamepad mapper + +Control camera rotations with a gamepad. + +### Behavior actions + +**Horizontal rotation acceleration** +Change the horizontal rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Horizontal rotation deceleration** +Change the horizontal rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum horizontal rotation speed** +Change the maximum horizontal rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Z position offset** +Change the z position offset of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical camera angle** +Change the maximum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Minimum vertical camera angle** +Change the minimum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation acceleration** +Change the vertical rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation deceleration** +Change the vertical rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical rotation speed** +Change the maximum vertical rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Horizontal rotation acceleration** +Compare the horizontal rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Horizontal rotation deceleration** +Compare the horizontal rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum horizontal rotation speed** +Compare the maximum horizontal rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Z position offset** +Compare the z position offset of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical camera angle** +Compare the maximum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Minimum vertical camera angle** +Compare the minimum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation acceleration** +Compare the vertical rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation deceleration** +Compare the vertical rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical rotation speed** +Compare the maximum vertical rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.FirstPersonGamepadMapper::HorizontalRotationAcceleration()` | Return the horizontal rotation acceleration of the object. || +| `Object.FirstPersonGamepadMapper::HorizontalRotationDeceleration()` | Return the horizontal rotation deceleration of the object. || +| `Object.FirstPersonGamepadMapper::HorizontalRotationSpeedMax()` | Return the maximum horizontal rotation speed of the object. || +| `Object.FirstPersonGamepadMapper::OffsetZ()` | Return the z position offset of the object. || +| `Object.FirstPersonGamepadMapper::VerticalAngleMax()` | Return the maximum vertical camera angle of the object. || +| `Object.FirstPersonGamepadMapper::VerticalAngleMin()` | Return the minimum vertical camera angle of the object. || +| `Object.FirstPersonGamepadMapper::VerticalRotationAcceleration()` | Return the vertical rotation acceleration of the object. || +| `Object.FirstPersonGamepadMapper::VerticalRotationDeceleration()` | Return the vertical rotation deceleration of the object. || +| `Object.FirstPersonGamepadMapper::VerticalRotationSpeedMax()` | Return the maximum vertical rotation speed of the object. || + +## 3D car gamepad mapper + +Control a 3D physics car with a gamepad. + +_No expressions for this behavior._ + + +## 3D platformer gamepad mapper + +Control a 3D physics character with a gamepad. + +_No expressions for this behavior._ + ## Platformer gamepad mapper @@ -97,6 +466,13 @@ Control a platformer character with a gamepad. _No expressions for this behavior._ +## 3D shooter gamepad mapper + +Control a 3D physics character with a gamepad. + +_No expressions for this behavior._ + + ## Top-down gamepad mapper Control a top-down character with a gamepad. @@ -104,6 +480,7 @@ Control a top-down character with a gamepad. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Gamepads (controllers)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/geolocation/index.md b/docs/gdevelop5/extensions/geolocation/index.md index 5592d0128a..4d5f289e4a 100644 --- a/docs/gdevelop5/extensions/geolocation/index.md +++ b/docs/gdevelop5/extensions/geolocation/index.md @@ -3,14 +3,12 @@ Adds a way to locate the player. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -25,15 +23,28 @@ You can also track whether or not you've gotten the permission to use the GPS se **Locate the player** Locates the player. If the permission status is pending, it will ask for user permission. Once the location is fetched, stores it in the callback variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): Callback variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Watch the player** Detects when the player's device is moved and get its new location. If the permission status is pending, it will ask for user permission. Every time the location is updated, stores it in the callback variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): Callback variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `Geolocation::PermissionStatus()` | Returns the status of the geolocation permission. || + --- *This page is an auto-generated reference page about the **GPS** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/get-properties-data/index.md b/docs/gdevelop5/extensions/get-properties-data/index.md index c892e4dbae..746c50dd58 100644 --- a/docs/gdevelop5/extensions/get-properties-data/index.md +++ b/docs/gdevelop5/extensions/get-properties-data/index.md @@ -3,14 +3,12 @@ Get Version, Title, Publisher name, PackageName from properties tab. -**Authors and contributors** to this community extension: [UlisesFreitas](https://gd.games/UlisesFreitas). +**Authors and contributors** to this experimental extension: [UlisesFreitas](https://gd.games/UlisesFreitas). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -51,6 +49,7 @@ Get Version, Title, Publisher name, PackageName from properties tab. | `GetPropertiesData::ReturnWindowHeight()` | Return the window height from properties. || | `GetPropertiesData::ReturnWindowWidth()` | Return the window width from properties. || + --- *This page is an auto-generated reference page about the **Game properties data** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/grid-jump3d/index.md b/docs/gdevelop5/extensions/grid-jump3d/index.md index 4ccc3f9391..c2be55c5cb 100644 --- a/docs/gdevelop5/extensions/grid-jump3d/index.md +++ b/docs/gdevelop5/extensions/grid-jump3d/index.md @@ -3,14 +3,12 @@ Move objects by jumping on a grid like a frog. -**Authors and contributors** to this community extension: [Jurfix](https://gd.games/Jurfix). +**Authors and contributors** to this experimental extension: [Jurfix](https://gd.games/Jurfix). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,12 +28,29 @@ Move objects by jumping on a grid like a frog. **Simulate jump key press at angle** Simulate a press of the jump key in a direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Rotate toward** Rotate the object in a direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **3D grid jump** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/has-landed/index.md b/docs/gdevelop5/extensions/has-landed/index.md index 66370eccd6..1ac8b6ba50 100644 --- a/docs/gdevelop5/extensions/has-landed/index.md +++ b/docs/gdevelop5/extensions/has-landed/index.md @@ -3,14 +3,12 @@ Checks if the object has landed on a given floor. -**Authors and contributors** to this community extension: [shadow00dev](https://gd.games/shadow00dev). +**Authors and contributors** to this experimental extension: [shadow00dev](https://gd.games/shadow00dev). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -24,9 +22,35 @@ Checks if the object has landed on a floor with the given settings. **HasLanded** Checks if the object has landed on floor. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2: 🧩 Behavior + - Parameter 3 (🔤 String): Type (one of: "Must have jump", "Cant have jump", "Any") + - Parameter 4 (🔢 Number): Fall distance + Based of orgin point Y axie and The number will mean the lowest ammount until true so anything thats the number or higher will be true + - Parameter 5 (🔢 Number): Fall speed + The number will mean the lowest ammount until true so anything thats the number or higher will be true + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **HasLandedOnGivenFloor** Checks if the object has landed on a given floor. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2: 🧩 Behavior + - Parameter 3 (🔤 String): Type (one of: "Must have jump", "Cant have jump", "Any") + - Parameter 4 (🔢 Number): Fall distance + Based of orgin point Y axie and The number will mean the lowest ammount until true so anything thats the number or higher will be true + - Parameter 5 (🔢 Number): Fall speed + The number will mean the lowest ammount until true so anything thats the number or higher will be true + - Parameter 6 (👾 Object): Given Floor + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/hash/index.md b/docs/gdevelop5/extensions/hash/index.md index 2cf072cd57..5e95b25cd1 100644 --- a/docs/gdevelop5/extensions/hash/index.md +++ b/docs/gdevelop5/extensions/hash/index.md @@ -3,7 +3,7 @@ Hash with MD5 or SHA256. -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). --- @@ -16,8 +16,11 @@ Adds expressions to allow hashing strings via MD5 or SHA256. | Expression | Description | | |-----|-----|-----| -| `Hash::GenerateHashMD5()` | Returns a Hash a MD5 based on a string. || -| `Hash::GenerateHashSHA256()` | Returns a Hash a SHA256 based on a string. || +| `Hash::GenerateHashMD5(string)` | Returns a Hash a MD5 based on a string. || +| | _string_ | String to be hashed | +| `Hash::GenerateHashSHA256(string)` | Returns a Hash a SHA256 based on a string. || +| | _string_ | String to be hashed | + --- diff --git a/docs/gdevelop5/extensions/health/index.md b/docs/gdevelop5/extensions/health/index.md index 00072f624b..bd3e9cd928 100644 --- a/docs/gdevelop5/extensions/health/index.md +++ b/docs/gdevelop5/extensions/health/index.md @@ -3,11 +3,11 @@ Manage health (life) points, shield and armor. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [Muzan7](https://gd.games/Muzan7), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [Muzan7](https://gd.games/Muzan7), [VictrisGames](https://gd.games/VictrisGames). --- -Manage health (life) points, shield and armor. +Manage health (life) points, shield and armor of instances of an object. It handles: @@ -38,143 +38,536 @@ Manage health (life) points, shield and armor. **Activate shield** Activate the shield by setting the shield points and renewing the shield duration (optional). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Shield points + - Parameter 3 (❓ Yes or No): Renew shield duration + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Allow over-healing** Allow heals to increase health above max health. Regeneration will not exceed max health. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Allow over-healing + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Heal object** Heal the object by increasing its health points. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Points to heal (will be added to object health) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Apply damage to an object** Apply damage to the object. Shield and armor can reduce this damage if enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Points of damage + - Parameter 3 (❓ Yes or No): Shield can reduce damage taken + - Parameter 4 (❓ Yes or No): Armor can reduce damage taken + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Renew shield duration** Renew shield duration to it's full value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Dodge chance** Change the chance to dodge incoming damage (range: 0 to 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Damage cooldown** Change the duration of damage cooldown (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Armor flat damage reduction** Change the flat damage reduction from the armor. Incoming damage is reduced by this value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Change health points** Change the health points of the object. Will not trigger damage cooldown. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): New health value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Health regeneration delay** Change the delay before health regeneration starts after last being hit (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rate of health regeneration** Change the rate of health regeneration (points per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum health points** Change the maximum health points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum shield points** Change the maximum shield points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Armor percent damage reduction** Change the percent damage reduction from armor (range: 0 to 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Block excess damage when shield breaks** Enable (or disable) blocking excess damage when shield breaks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Block excess damage + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Duration of shield** Change the duration of the shield (seconds). A value of "0" means the shield is permanent. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shield points** Change the current shield points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shield regeneration delay** Change the delay before shield regeneration starts after being hit (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rate of shield regeneration** Change the rate of shield regeneration (points per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Trigger damage cooldown** Trigger damage cooldown. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Dodge chance** Compare the chance to dodge incoming damage (range: 0 to 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Damage cooldown** Compare the duration of damage cooldown (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Time remaining in damage cooldown** Compare the time before damage cooldown ends (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Armor flat damage reduction** Compare the flat damage reduction from the armor. Incoming damage is reduced by this value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Health points** Compare current health points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Health regeneration delay** Compare the delay before health regeneration starts after last being hit (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rate of health regeneration** Compare the rate of health regeneration (points per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is damage cooldown active** Check if damage cooldown is active. Object and shield cannot be damaged while this is active. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is dead** Check if the object is considered dead (no health points). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is health just damaged** Check if health was just damaged previously in the events. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Damage was just dodged** Check if incoming damage was just dodged. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is just healed** Check if the object was just healed previously in the events. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is shield active** Check if the shield is active (based on shield points and duration). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is shield just damaged** Check if the shield was just damaged previously in the events. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Maximum health points** Compare the maximum health points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum shield points** Compare the maximum shield points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Armor percent damage reduction** Compare the percent damage reduction from armor (range: 0 to 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Health damage taken from most recent hit** Compare the health damage taken from most recent hit. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shield damage taken from most recent hit** Compare the shield damage taken from most recent hit. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Health points gained from previous heal** Compare the health points gained from previous heal. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Duration of shield** Compare the duration of the shield (seconds). A value of "0" means the shield is permanent. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shield points** Compare the current shield points of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shield regeneration delay** Compare the delay before shield regeneration starts after being hit (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rate of shield regeneration** Compare the rate of shield regeneration (points per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Time before shield duration ends** Compare the time before the shield duration ends (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Time since last hit** Compare the time since last taken hit (seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -199,6 +592,7 @@ Compare the time since last taken hit (seconds). | `Object.Health::ShieldTimeRemaining()` | Return the time before the shield duration ends (seconds). || | `Object.Health::TimeSinceLastHit()` | Return the time since last taken hit (seconds). || + --- *This page is an auto-generated reference page about the **Health points and damage** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/hedgehog-platformer/index.md b/docs/gdevelop5/extensions/hedgehog-platformer/index.md new file mode 100644 index 0000000000..b4f105fcdf --- /dev/null +++ b/docs/gdevelop5/extensions/hedgehog-platformer/index.md @@ -0,0 +1,841 @@ +# Hedgehog platformer + + +Jump and run on platforms at 360°. + +**Authors and contributors** to this experimental extension: [Kennoir](https://gd.games/Kennoir), [UnknownUney](https://gd.games/UnknownUney), [D8H](https://gd.games/D8H). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +A platformer engine for Sonic-like games. + +A small demo shows how to use this extension ([open the project online](https://editor.gdevelop.io/?project=example://360°-platformer)). + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Conditions + +**Character is on given platform** +Check if a platformer character is on a given platform. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): Character + - Parameter 2 (🧩 Behavior): Hedgehog platformer character + - Parameter 3 (👾 Object): Platform + - Parameter 4 (🧩 Behavior): Hedgehog platform + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**Character is pushing platform** +Check if a platformer character is pushing against a platform. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): Character + - Parameter 2 (🧩 Behavior): Hedgehog platformer character + - Parameter 3 (👾 Object): Platform + - Parameter 4 (🧩 Behavior): Hedgehog platform + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + + + +## Hedgehog platformer character + +Jump and run on platforms at 360°. + +### Behavior actions + +**Follow current platform** +Follow the current platform. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Movement angle** +Check if the movement angle is around a given direction. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3 (🔢 Number): Tolerance (in degrees) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Air drag** +Change the air drag of the object. The air drag reduce the speed on X axis. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Air drag min speed Y** +Change the air drag min speed Y of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Airborne acceleration** +Change the acceleration when the object is in the air. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Allow jumping again** +When this action is executed, the object is able to jump again, even if it is in the air: this can be useful to allow a double jump for example. This is not a permanent effect: you must call again this action every time you want to allow the object to jump (apart if it's on the floor). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Forbid jumping again in the air** +This revokes the effect of "Allow jumping again". The object is made unable to jump while in mid air. This has no effect if the object is not in the air. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Collision layer** +Change the collision layer of the object, only interacts with hedgehog platforms of the same layer. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Deceleration** +Change the deceleration of the object when changing of direction on the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Downwards slope factor** +Change the acceleration when running down a slope. The actual deceleration applied to the character depends on how steep the slope is. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Friction** +Change the friction of the object. The friction is a deceleration when there is no input. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Gravity** +Change the gravity of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Grounded acceleration** +Change the acceleration when the object is on the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Jump height reducer** +Change the Jump height reducer factor of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Jump speed** +Change the jump speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Max speed** +Change the max speed of the object while grounded. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Running lock remaining duration** +Change the duration during which the character can't run left or right. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Rotate the object** +Enable or disable rotation of the character when moving on the ground of falling from the ceilling. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): ShouldRotate + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Speed** +Change the current speed of the object. The speed can be negative when the object is on the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Horizontal speed** +Change the current horizontal speed of the object. The object is automatically set in airborne state. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical speed** +Change the current vertical speed of the object. The object is automatically set in airborne state. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Stand max angle** +Change the stand max angle of the object. Allow characters to fully stop on not too steep floors. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Upwards slope factor** +Change the deceleration factor when running up a slope. The actual deceleration applied to the character depends on how steep the slope is. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Simulate jump key press** +Simulate a press of the jump key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Simulate left key press** +Simulate a press of the left key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Simulate right key press** +Simulate a press of the right key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Air drag** +Compare the air drag of the object. The air drag reduce the speed on X axis. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Air drag min speed Y** +Compare the air drag min speed Y of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Airborne acceleration** +Compare the acceleration when the object is in the air. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Can jump** +Check if the object can jump. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Collision layer** +Compare the collision layer of the object, only interacts with hedgehog platforms of the same layer. . + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Deceleration** +Compare the deceleration of the object when changing of direction on the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Downwards slope factor** +Compare the acceleration when running down a slope. The actual deceleration applied to the character depends on how steep the slope is. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Friction** +Compare the friction of the object. The friction is a deceleration when there is no input. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Gravity** +Compare the gravity of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Grounded acceleration** +Compare the acceleration when the object is on the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Is facing forward** +Check if the character is facing forward. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is jumping** +Check if the object is in the air because of a jump. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is moving** +Checks if the object is moving. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is on floor** +Check if the object is on a platform. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is on left ledge** +Check if the object is on the left ledge of a platform. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is on right ledge** +Check if the object is on the right ledge of a platform. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is pushing** +Check if the object is pushing againgst a wall. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is slipping** +Check if the object is slipping. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Control pressed or simulated** +A control was applied from a default control or simulated by an action. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Key to check (one of: "Left", "Right", "Jump") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Jump height reducer** +Compare the Jump height reducer factor of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Jump speed** +Compare the jump speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Max speed** +Compare the max speed of the object while grounded. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Running lock remaining duration** +Compare the duration during which the character can't run left or right. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Rotate the object** +Check if the character is rotated while moving on the ground of falling from the ceilling. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Speed** +Compare the current speed of the object. The speed can be negative when the object is on the ground. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Horizontal speed** +Compare the current horizontal speed of the object. The object is automatically set in airborne state. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical speed** +Compare the current vertical speed of the object. The object is automatically set in airborne state. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Stand max angle** +Compare the stand max angle of the object. Allow characters to fully stop on not too steep floors. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Upwards slope factor** +Compare the deceleration factor when running up a slope. The actual deceleration applied to the character depends on how steep the slope is. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.HedgehogCharacter::AirDrag()` | Return the air drag of the object. The air drag reduce the speed on X axis. || +| `Object.HedgehogCharacter::AirDragMinSpeedY()` | Return the air drag min speed Y of the object. || +| `Object.HedgehogCharacter::AirborneAcceleration()` | Return the acceleration when the object is in the air. || +| `Object.HedgehogCharacter::CollisionLayer()` | Return the collision layer of the object, only interacts with hedgehog platforms of the same layer. . || +| `Object.HedgehogCharacter::Deceleration()` | Return the deceleration of the object when changing of direction on the ground. || +| `Object.HedgehogCharacter::DownSlopeFactor()` | Return the acceleration when running down a slope. The actual deceleration applied to the character depends on how steep the slope is. || +| `Object.HedgehogCharacter::Friction()` | Return the friction of the object. The friction is a deceleration when there is no input. || +| `Object.HedgehogCharacter::Gravity()` | Return the gravity of the object. || +| `Object.HedgehogCharacter::GroundedAcceleration()` | Return the acceleration when the object is on the ground. || +| `Object.HedgehogCharacter::JumpReducer()` | Return the Jump height reducer factor of the object. || +| `Object.HedgehogCharacter::JumpSpeed()` | Return the jump speed of the object. || +| `Object.HedgehogCharacter::MaxSpeed()` | Return the max speed of the object while grounded. || +| `Object.HedgehogCharacter::MovementAngle()` | Return the angle (in degrees) in which the object is moving at. || +| `Object.HedgehogCharacter::RunningLockRemainingDuration()` | Return the duration during which the character can't run left or right. || +| `Object.HedgehogCharacter::Speed()` | Return the current speed of the object. The speed can be negative when the object is on the ground. || +| `Object.HedgehogCharacter::SpeedX()` | Return the current horizontal speed of the object. The object is automatically set in airborne state. || +| `Object.HedgehogCharacter::SpeedY()` | Return the current vertical speed of the object. The object is automatically set in airborne state. || +| `Object.HedgehogCharacter::StandMaxAngle()` | Return the stand max angle of the object. Allow characters to fully stop on not too steep floors. || +| `Object.HedgehogCharacter::UpSlopeFactor()` | Return the deceleration factor when running up a slope. The actual deceleration applied to the character depends on how steep the slope is. || + +## Hedgehog character animator + +Change animations and horizontal flipping of hedgehog characters automatically. + +_No expressions for this behavior._ + + +## Hedgehog character rolling + +Toggle rolling mode. + +### Behavior actions + +**Simulate roll key press** +Simulate a press of the Roll key. When characters stand still, they chouch instead of rolling. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Simulate spindash key press** +Simulate a press of the spindash key. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Simulate spindash or jump key press** +Simulate a press of the Spindash key when the character is crouching or the jump key otherwise. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Started a spindash** +Check if the character has just started a spindash. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is charging a spindash** +Check if the character is charging a spindash. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is crouching** +Check if the character is crouching. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Is rolling** +Check if the character is rolling. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +_No expressions for this behavior._ + + +## Hedgehog platform + +Flag objects as being platforms which characters can run on. + +_No expressions for this behavior._ + + +## Hedgehog spring + +Push hedgehog characters. + +### Behavior actions + +**Push character** +Make the spring push the character. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Character + - Parameter 3 (🧩 Behavior): Hedgehog platformer character + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Can push** +Check if the spring can push the character. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Character + - Parameter 3 (🧩 Behavior): Hedgehog platformer character + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +_No expressions for this behavior._ + + + +--- + +*This page is an auto-generated reference page about the **Hedgehog platformer** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/height-map3d/details.md b/docs/gdevelop5/extensions/height-map3d/details.md new file mode 100644 index 0000000000..54f4a1af58 --- /dev/null +++ b/docs/gdevelop5/extensions/height-map3d/details.md @@ -0,0 +1,50 @@ +--- +title: Details +--- +# Height map extension + +This extension allows to build a terrain with hills where objects with the 3D physics behavior can stand. + + +## Create a height map from a 3d model + +3D modelers like [Blender](https://www.blender.org/) can be used to render a model height into a grayscale image. The model should only contain the terrain. Decorations like trees or buildings must be removed for this process. + + +## Generate a realistic terrain + +[WGEN](https://github.com/jice-nospam/wgen) is a free and open-source height map generator. It can produce grayscale images that can be used with this extension. + + +## Generate an endless terrain + +Basic terrains can also be generated directly inside GDevelop using the [noise extension](/gdevelop5/extensions/noise). + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-endless-terrain){ .md-button .md-button--primary } + +[![](endless-terrain.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-endless-terrain) + + +## Avoid stairs-like height maps + +The extension can only read images as 8 bits per channel. This can lead to terrain moving up like stairs. To avoid this issue, a 16 bits grayscale image can be converted into a 8 bits RGB image that uses red and green channels. + +```Python +import numpy as np, cv2 + +src = cv2.imread("greyscale-height-map.png",cv2.IMREAD_UNCHANGED) +h,w = src.shape +dst = np.zeros((h,w,3), np.uint8) + +dst[:,:,1] = (src & 0xff00) >> 8 +dst[:,:,2] = src & 0x00ff + +cv2.imwrite("red-and-green-height-map.png",dst) +``` + +This is a slightly modified version of the [original script](https://gist.github.com/companje/85e94ea96629ddaf1219f137b225fd69) written in [Python](https://www.python.org/). + + +## Reference + +All actions, conditions and expressions are listed in the [Height map reference page](..). diff --git a/docs/gdevelop5/extensions/height-map3d/endless-terrain.png b/docs/gdevelop5/extensions/height-map3d/endless-terrain.png new file mode 100644 index 0000000000..ccc0bc5cab Binary files /dev/null and b/docs/gdevelop5/extensions/height-map3d/endless-terrain.png differ diff --git a/docs/gdevelop5/extensions/height-map3d/index.md b/docs/gdevelop5/extensions/height-map3d/index.md new file mode 100644 index 0000000000..7fb38ff95f --- /dev/null +++ b/docs/gdevelop5/extensions/height-map3d/index.md @@ -0,0 +1,143 @@ +# 3D height map + + +A terrain with hills where 3D physics objects can stand. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +A terrain with hills where objects with the 3D physics behavior can stand. + +A terrain can be built from: + +- an image file +- noise function ([open the project online](https://editor.gdevelop.io/?project=example://3d-endless-terrain)) + + +[Read more...](/gdevelop5/extensions/height-map3d/details) + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## 3D height map + +A terrain with hills in 3D. + +### Object actions + +**Update height map** +Update the height map. This is done automatically at the end of every frame, but it can be used manually to avoid a 1-frame delay. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Load height map** +Load a height map from an image file. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (imageResource): Image + - Parameter 2 (🔢 Number): Image cropping offset on X + - Parameter 3 (🔢 Number): Image cropping offset on Y + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Grid value** +Change the field value at a grid index. The value is bewteen 0 and 1. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔢 Number): X grid index + - Parameter 4 (🔢 Number): Y grid index + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + +### Object conditions + +**Field point Z** +Compare the field Z for a given position in the scene. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔢 Number): X position in the scene + - Parameter 4 (🔢 Number): Y position in the scene + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + +**Grid dimension X** +Compare the number of points in the grid on X axis. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Grid dimension Y** +Compare the number of points in the grid on Y axis. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Grid value** +Compare the field value at a grid index. The value is bewteen 0 and 1. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔢 Number): X grid index + - Parameter 4 (🔢 Number): Y grid index + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.FieldZ(number, number)` | Return the field Z for a given position in the scene. || +| | _🔢 Number_ | X position in the scene | +| | _🔢 Number_ | Y position in the scene | +| `Object.GridDimensionX()` | Return the number of points in the grid on X axis. || +| `Object.GridDimensionY()` | Return the number of points in the grid on Y axis. || +| `Object.GridValue(number, number)` | Return the field value at a grid index. The value is bewteen 0 and 1. || +| | _🔢 Number_ | X grid index | +| | _🔢 Number_ | Y grid index | + +## 3D physics height map + +A terrain with hills where 3D physics objects can stand. + +_No expressions for this behavior._ + + + +--- + +*This page is an auto-generated reference page about the **3D height map** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/hexagonal-grid/index.md b/docs/gdevelop5/extensions/hexagonal-grid/index.md index a91a54e1a7..f03b36a363 100644 --- a/docs/gdevelop5/extensions/hexagonal-grid/index.md +++ b/docs/gdevelop5/extensions/hexagonal-grid/index.md @@ -1,13 +1,13 @@ -# Hexagonal grid +# Hexagonal 2D grid Snap objects to an hexagonal grid. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -It allows to snap objects on an hexagonal grid. +It allows to snap objects on a 2D hexagonal grid. It's useful for: @@ -24,14 +24,51 @@ A [simple example](https://editor.gdevelop.io/?project=example://snap-object-to- **Snap objects to a virtual bubble grid** Snap object to a virtual bubble grid (this is not the grid used in the editor). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to snap to the virtual grid + - Parameter 2 (🔢 Number): Width of a cell of the virtual grid (in pixels) + - Parameter 3 (🔢 Number): Height of a cell of the virtual grid (in pixels) + The actual row height will be 7/8 of this. + - Parameter 4 (🔢 Number): Offset on the X axis of the virtual grid (in pixels) + - Parameter 5 (🔢 Number): Offset on the Y axis of the virtual grid (in pixels) + Odd rows are shifted from half a cell, use a "CellHeight * 7/8" offset to make it the other way + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Snap objects to a virtual flat topped hexagonal grid** Snap object to a virtual flat topped hexagonal grid (this is not the grid used in the editor). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to snap to the virtual grid + - Parameter 2 (🔢 Number): Width of a cell of the virtual grid (in pixels) + The actual column width will be 3/4 of this. + - Parameter 3 (🔢 Number): Height of a cell of the virtual grid (in pixels) + - Parameter 4 (🔢 Number): Offset on the X axis of the virtual grid (in pixels) + Odd columns are shifted from half a cell, use a "CellHeight * 3/4" offset to make it the other way. + - Parameter 5 (🔢 Number): Offset on the Y axis of the virtual grid (in pixels) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Snap objects to a virtual pointy topped hexagonal grid** Snap object to a virtual pointy topped hexagonal grid (this is not the grid used in the editor). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to snap to the virtual grid + - Parameter 2 (🔢 Number): Width of a cell of the virtual grid (in pixels) + - Parameter 3 (🔢 Number): Height of a cell of the virtual grid (in pixels) + The actual row height will be 3/4 of this. + - Parameter 4 (🔢 Number): Offset on the X axis of the virtual grid (in pixels) + - Parameter 5 (🔢 Number): Offset on the Y axis of the virtual grid (in pixels) + Odd rows are shifted from half a cell, use a "CellHeight * 3/4" offset to make it the other way. + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Hexagonal grid** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Hexagonal 2D grid** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/homing-projectile/index.md b/docs/gdevelop5/extensions/homing-projectile/index.md index b2cc9c7d71..e896008eb0 100644 --- a/docs/gdevelop5/extensions/homing-projectile/index.md +++ b/docs/gdevelop5/extensions/homing-projectile/index.md @@ -3,7 +3,7 @@ Make a projectile object move towards a target object. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -35,12 +35,48 @@ Tips: **Lock projectile to target** Lock projectile object to target object. (This is required for "Move projectile towards target"). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Projectile object + - Parameter 2 (👾 Object): Target object + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Move projectile towards target** Move projectile towards the object that it has been locked to. This action must be run every frame. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Projectile object + - Parameter 2 (👾 Object): Target object + - Parameter 3 (🔢 Number): Rotation speed (degrees per second) + - Parameter 4 (🔢 Number): Initial speed (pixels per second) + - Parameter 5 (🔢 Number): Acceleration (speed increase per second) + - Parameter 6 (🔢 Number): Max speed + - Parameter 7 (🔢 Number): Max lifetime (seconds) + Projectile will be deleted after this value is reached. + - Parameter 8 (❓ Yes or No): Delete Projectile if it collides with Target: + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + **Move physics projectile towards target** Move physics projectile towards the object that it has been locked to. This action must be run every frame. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Projectile object + - Parameter 2 (🧩 Behavior): Physics Behavior + - Parameter 3 (👾 Object): Target object + - Parameter 4 (🔢 Number): Rotation speed (degrees per second) + - Parameter 5 (🔢 Number): Initial speed (pixels per second) + - Parameter 6 (🔢 Number): Acceleration (speed increase per second) + - Parameter 7 (🔢 Number): Max lifetime (seconds) + Projectile will be deleted after this value is reached. + - Parameter 8 (❓ Yes or No): Delete Projectile if it collides with Target: + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/idle-tracker/index.md b/docs/gdevelop5/extensions/idle-tracker/index.md index d4d7df4b9f..ac7d7094d5 100644 --- a/docs/gdevelop5/extensions/idle-tracker/index.md +++ b/docs/gdevelop5/extensions/idle-tracker/index.md @@ -3,7 +3,7 @@ Check if an object has not moved (with some, customizable, tolerance) for a certain duration (1 second by default). -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian). --- @@ -29,12 +29,27 @@ Check if an object has not moved (with some tolerance, 20 pixels by default) for **Has just moved from last position** Check if the object has just moved from its last position (using the tolerance configured in the behavior). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is idle (since enough time)** Check if the object is idle: it has not moved from its last position (or within the tolerance) for the time configured in the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Idle object tracker** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/iframe/index.md b/docs/gdevelop5/extensions/iframe/index.md index a56b861ea0..0c5e0fc743 100644 --- a/docs/gdevelop5/extensions/iframe/index.md +++ b/docs/gdevelop5/extensions/iframe/index.md @@ -3,7 +3,7 @@ Create or delete an iframe to embed websites. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh), [DHsw](https://gd.games/DHsw). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh), [DHsw](https://gd.games/DHsw). --- @@ -25,9 +25,31 @@ Read more: [Same-origin policy](https://developer.mozilla.org/en-US/docs/Web/Sec **Create an Iframe** Create a new Iframe to embed a website inside the game. +??? quote "See parameters" + + - Parameter 1 (string): Name (DOM id) + - Parameter 2 (string): URL + - Parameter 3 (🔢 Number): Width + - Parameter 4 (🔢 Number): Height + - Parameter 5 (🔢 Number): Position X + - Parameter 6 (🔢 Number): Position Y + - Parameter 7 (❓ Yes or No): Show scrollbar + - Parameter 8 (❓ Yes or No): Show border + - Parameter 9 (string): Extra CSS styles (optional) + e.g: `"border: 10px #f00 solid;"` + + > Technical note: parameters 0, 10 are internal parameters handled by GDevelop. + **Delete an Iframe** Delete the specified Iframe. +??? quote "See parameters" + + - Parameter 1 (string): Name (DOM id) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/in-app-purchase/index.md b/docs/gdevelop5/extensions/in-app-purchase/index.md index 7931bd01f2..c24b5a776c 100644 --- a/docs/gdevelop5/extensions/in-app-purchase/index.md +++ b/docs/gdevelop5/extensions/in-app-purchase/index.md @@ -3,7 +3,7 @@ Add products to buy directly in your game ("In-App Purchase"), for games published on Android or iOS. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555), [4ian](https://gd.games/4ian), [Clem](https://gd.games/Clem). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555), [4ian](https://gd.games/4ian), [Clem](https://gd.games/Clem). --- @@ -37,23 +37,58 @@ The general worflow is the following: **Finalize a purchase** Mark a purchase as delivered, after you delivered the rewards the user has paid for and saved it somewhere. If you don't do so, the user will get the money refunded as the purchase will be considered as incomplete, with the rewards not given. +??? quote "See parameters" + + - Parameter 1 (string): The id or alias of the product to finalize + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Finalize registration** Finalize store registration. Do this after registering every product and before ordering or getting information about a product. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Load product data in a variable** Get all the data about a product from the IAP provider and store it into a structure variable. Check [this page](https://github.com/j3k0/cordova-plugin-purchase/blob/master/api/classes/CdvPurchase.Product.md) for the exhaustive list of what can be retrieved from the product. +??? quote "See parameters" + + - Parameter 1 (string): The id or alias of the product to get info about + - Parameter 2 (string): The name of the scene variable to store the product data in + The variable will be a structure, see [this page](https://github.com/j3k0/cordova-plugin-purchase/blob/master/api/classes/CdvPurchase.Product.md) to know what child variables are accessible. + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Order a product** Opens the purchase menu to let the user buy a product. Ensure you use the condition to check if the store is ready and that the product ID has been registered and finalized before calling this action. +??? quote "See parameters" + + - Parameter 1 (string): The id of the product to buy + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Register a Product** Register a Product of your store. This is required to do for all products you want to display or order from the app. Make sure you register them all and finalize registration before ordering a product. +??? quote "See parameters" + + - Parameter 1 (string): The internal ID of the product + Use the ID of the product you entered on the IAP provider (Google play, Apple store...) + - Parameter 2 (🔤 String): The type of product (one of: "paid subscription", "non renewing subscription", "consumable", "non consumable") + - Parameter 3 (🔤 String): Which platform you're registering the product to (one of: "android-playstore", "ios-appstore", "braintree", "windows-store-transaction") + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Update a variable when a product event is triggered** When an event is triggered for a product (approved or finished), this sets a scene variable to true. You can then compare the value of the variable in a condition, and have actions launched to react to the changes. @@ -62,11 +97,26 @@ Use with Trigger Once to avoid registering multiple watchers unnecessarily. Approved is triggered after the purchase is complete. Finished is triggered after you have marked the purchased as delivered (less useful). +??? quote "See parameters" + + - Parameter 1 (string): The id of the product to watch + - Parameter 2 (string): The name of the scene variable to set to "true" when the event happens + - Parameter 3 (🔤 String): The event to listen to (one of: "finished", "approved") + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Conditions **Store is ready** Triggers after finalizing the registration. Products can then be retrieved and purchased (you can get data of a product like the price, you can use the action to order a product...). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/index.md b/docs/gdevelop5/extensions/index.md index 2038a479fe..cddbea573c 100644 --- a/docs/gdevelop5/extensions/index.md +++ b/docs/gdevelop5/extensions/index.md @@ -1,8 +1,13 @@ +--- +icon: material/star-plus +--- # Extensions -GDevelop is built in a flexible way. In addition to [core features](/gdevelop5/all-features), new capabilities are provided by extensions. Extensions can contain objects, behaviors, actions, conditions, expressions or events. +In addition to [core features](/gdevelop5/all-features), new capabilities are provided by extensions. Extensions can contain objects, behaviors, actions, conditions, expressions, effects or events. + +Official as well as experimental extensions are accessible [directly from GDevelop](/gdevelop5/extensions/search). +A list of [community-made extensions is available on GitHub](https://github.com/GDevelopApp/GDevelop-community-list). -Community created extensions are accessible [directly from GDevelop](/gdevelop5/extensions/search). New extensions can also be [created](/gdevelop5/extensions/create) from scratch using events or JavaScript. Read more about this: @@ -11,21 +16,14 @@ Read more about this: * [Share extensions with the community](/gdevelop5/extensions/share-extension) * [Use JavaScript in events](/gdevelop5/events/js-code) -## Extensions list - -Here are listed all the extensions available in GDevelop. The list is divided in [two tiers](/gdevelop5/extensions/tiers/): - -- [Reviewed extensions](#reviewed-extensions) -- [Community extensions](#community-extensions) - ## Reviewed extensions ### Ads ||Name|Description|| |---|---|---|---| -||**CrazyGames SDK v2**|Allow games to be hosted on CrazyGames website and display ads.|[Read more...](/gdevelop5/extensions/crazy-games-ad-api/details) ([reference](/gdevelop5/extensions/crazy-games-ad-api))| ||**Mobile In-App Purchase (experimental)**|Add products to buy directly in your game ("In-App Purchase"), for games published on Android or iOS.|[Read more...](/gdevelop5/extensions/in-app-purchase/setup) ([reference](/gdevelop5/extensions/in-app-purchase))| +||**Playgama Bridge**|One SDK for cross-platform publishing HTML5 games.|[Read more...](/gdevelop5/extensions/playgama-bridge/details) ([reference](/gdevelop5/extensions/playgama-bridge))| ||**Poki Games SDK**|Allow games to be hosted on Poki website and display ads.|[Read more...](/gdevelop5/extensions/poki-games-sdkhtml/details) ([reference](/gdevelop5/extensions/poki-games-sdkhtml))| ### Advanced @@ -41,7 +39,7 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||**Hash**|Hash with MD5 or SHA256.|[Read more...](/gdevelop5/extensions/hash)| ||**Object picking tools**|Adds various object picking related tools.|[Read more...](/gdevelop5/extensions/object-picking-tools)| ||**Read pixels**|Read the values of pixels on the screen.|[Read more...](/gdevelop5/extensions/read-pixels)| -||**Record**|Adds events to record the game and players download the clips. Works on desktop, and in the browser.|[Read more...](/gdevelop5/extensions/record)| +||**Record**|Actions to record the game and players download the clips. Works on desktop, and in the browser.|[Read more...](/gdevelop5/extensions/record)| ||**Regular Expressions**|Functions for using regular expressions to manipulate strings.|[Read more...](/gdevelop5/extensions/reg-ex)| ||**Sprite Snapshot**|Renders an object, layer, scene or an area of a scene and puts the resulting image into a sprite.|[Read more...](/gdevelop5/extensions/render-to-sprite)| ||**Sprite Sheet Animations**|Animate a tiled sprite from a sprite sheet.|[Read more...](/gdevelop5/extensions/sprite-sheet)| @@ -65,7 +63,7 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||**Drag camera with the mouse (or touchscreen)**|Move a camera by dragging the mouse (or touchscreen).|[Read more...](/gdevelop5/extensions/drag-camera-with-pointer)| ||**Edge scroll camera**|Scroll camera when cursor is near edge of screen.|[Read more...](/gdevelop5/extensions/edge-scroll-camera)| ||**First person 3D camera**|Move the camera to look though objects eyes.|[Read more...](/gdevelop5/extensions/first-person-camera)| -||**Follow multiple objects with camera**|Change the zoom and position of the camera to keep all instances of an object (or object group) on the screen.|[Read more...](/gdevelop5/extensions/follow-objects-with-camera)| +||**Follow multiple 2D objects with the camera**|Change the zoom and position of the camera to keep all instances of an object (or object group) on the screen.|[Read more...](/gdevelop5/extensions/follow-objects-with-camera)| ||**Parallax for Tiled Sprite**|Behaviors to animate Tiled Sprite objects in the background, following the camera with a parallax effect.|[Read more...](/gdevelop5/extensions/parallax)| ||**Room-based camera movement**|Move and zoom camera to the room object that contains the trigger object (usually the player).|[Read more...](https://victrisgames.itch.io/room-based-camera-movement) ([reference](/gdevelop5/extensions/room-based-camera-movement))| ||**Smooth Camera**|Smoothly scroll to follow an object.|[Read more...](/gdevelop5/tutorials/follow-player-with-camera/) ([reference](/gdevelop5/extensions/smooth-camera))| @@ -76,22 +74,20 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||Name|Description|| |---|---|---|---| ||**Checkpoints**|Respawn objects at checkpoints.|[Read more...](/gdevelop5/extensions/checkpoints)| -||**Create multiple copies of an object**|Select the object, choose the number of rows and columns, the spacing between rows and columns, the top left starting point, the layer to create the objects on, and the z-order of the objects.|[Read more...](/gdevelop5/extensions/create-multiple-copies-of-object)| -||**Dungeon generator**|Create a procedurally generated dungeon. Includes two layouts: "rooms and hallways" and "dungeon cave".|[Read more...](https://victrisgames.itch.io/extension-dungeon-generator) ([reference](/gdevelop5/extensions/dungeon-generator))| ||**Fire bullets**|Fire bullets, manage ammo, reloading and overheating.|[Read more...](/gdevelop5/extensions/fire-bullet/details) ([reference](/gdevelop5/extensions/fire-bullet))| ||**Health points and damage**|Manage health (life) points, shield and armor.|[Read more...](/gdevelop5/extensions/health)| -||**Hexagonal grid**|Snap objects to an hexagonal grid.|[Read more...](/gdevelop5/extensions/hexagonal-grid)| +||**Hexagonal 2D grid**|Snap objects to an hexagonal grid.|[Read more...](/gdevelop5/extensions/hexagonal-grid)| ||**Idle object tracker**|Check if an object has not moved (with some, customizable, tolerance) for a certain duration (1 second by default).|[Read more...](/gdevelop5/extensions/idle-tracker)| ||**Simple inventories**|Manage inventory items.|[Read more...](/gdevelop5/all-features/inventory) ([reference](/gdevelop5/extensions/inventories))| ||**Object "Is On Screen" Detection**|This adds a condition to detect if an object is on screen based off its current layer.|[Read more...](/gdevelop5/extensions/is-on-screen)| ||**Linked Objects Tools**|Conditions to use Linked Objects as a graph and a path finding movement behavior.|[Read more...](/gdevelop5/all-features/extensions/linked-objects-tools) ([reference](/gdevelop5/extensions/link-tools))| ||**Noise generator**|Generate noise values for procedural generation.|[Read more...](/gdevelop5/tutorials/procedural-generation) ([reference](/gdevelop5/extensions/noise))| -||**Object spawner area**|Spawn (create) objects periodically.|[Read more...](/gdevelop5/extensions/object-spawner)| +||**Object spawner 2D area**|Spawn (create) objects periodically.|[Read more...](/gdevelop5/extensions/object-spawner)| ||**Object Stack**|An ordered list of objects and a shuffle action.|[Read more...](/gdevelop5/extensions/object-stack)| ||**RTS-like unit selection**|Allow player to select units by clicking on them or dragging a selection box.|[Read more...](https://victrisgames.itch.io/rts-like-unit-selection) ([reference](/gdevelop5/extensions/rtsunit-selection))| -||**Rectangular flood fill**|Create fill objects that cover the rectangular area of target objects.|[Read more...](https://victrisgames.itch.io/rectangular-flood-fill) ([reference](/gdevelop5/extensions/rectangular-flood-fill))| -||**Rectangular grid**|Snap objects on a virtual grid.|[Read more...](/gdevelop5/extensions/snap-to-grid)| -||**Values of multiple objects**|Values of picked object instances (including position, size, force and angle).|[Read more...](https://victrisgames.itch.io/values-of-multiple-objects) ([reference](/gdevelop5/extensions/values-of-multiple-objects))| +||**Rectangular flood fill**|Create objects as a grid to cover a rectangular area or an other object.|[Read more...](/gdevelop5/extensions/rectangular-flood-fill)| +||**Rectangular 2D grid**|Snap objects on a virtual grid.|[Read more...](/gdevelop5/extensions/snap-to-grid)| +||**Values of multiple objects**|Values of picked object instances (including position, size, force and angle).|[Read more...](/gdevelop5/extensions/values-of-multiple-objects)| ### General @@ -105,23 +101,27 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||Name|Description|| |---|---|---|---| -||**Back button**|Adds interactions with the back button.|[Read more...](/gdevelop5/extensions/back-button)| -||**Behavior Remapper**|Quickly remap Behavior controls to different keys. |[Read more...](/gdevelop5/extensions/behavior-remapper)| +||**Android back button**|Allow to customize the behavior of the Android back button.|[Read more...](/gdevelop5/extensions/back-button)| +||**Platformer and top-down remapper**|Quickly remap keyboard controls.|[Read more...](/gdevelop5/extensions/behavior-remapper)| ||**Cursor movement conditions**|Conditions to check the cursor movement (still or moving).|[Read more...](/gdevelop5/extensions/cursor-movement)| -||**Double-click**|Check for a double-click with a mouse, or a double-tap on a touchscreen.|[Read more...](/gdevelop5/extensions/double-click)| +||**Double-click and tap**|Check for a double-click or a tap.|[Read more...](/gdevelop5/extensions/double-click)| ||**Gamepads (controllers)**|Add support for gamepads (or other controllers) to your game, giving access to information such as button presses, axis positions, trigger pressure, etc...|[Read more...](/gdevelop5/all-features/gamepad) ([reference](/gdevelop5/extensions/gamepads))| ||**Konami Code**|Allows to input the classic Konami Code ("Up, Up, Down, Down, Left, Right, Left, Right, B, A") into a scene for cheats and easter eggs.|[Read more...](/gdevelop5/extensions/konami-code)| ||**Cursor object**|Turn any object into a cursor.|[Read more...](/gdevelop5/extensions/mouse-helper)| ||**Mouse Pointer Lock**|This behavior removes the limit on the distance the mouse can move and hides the cursor.|[Read more...](/gdevelop5/extensions/mouse-pointer-lock)| +||**3D car keyboard mapper**|3D car keyboard controls.|[Read more...](/gdevelop5/extensions/physics-car3dkey-mapper)| +||**3D character keyboard mapper**|3D platformer and 3D shooter keyboard controls.|[Read more...](/gdevelop5/extensions/physics-character3dkey-mapper)| ||**Pinching gesture**|Move the camera or objects with pinching gestures.|[Read more...](/gdevelop5/extensions/pinch-gesture)| ||**Multitouch joystick and buttons (sprite)**|Joysticks or buttons for touchscreens.|[Read more...](/gdevelop5/objects/multitouch-joystick) ([reference](/gdevelop5/extensions/sprite-multitouch-joystick))| ||**Swipe Gesture**|Detect swipe gestures based on their distance and duration.|[Read more...](/gdevelop5/extensions/swipe-gesture)| +||**Two choices dialog boxes**|A dialog box with buttons to let users make a choice.|[Read more...](/gdevelop5/extensions/two-choices-dialog-boxes)| ### Movement ||Name|Description|| |---|---|---|---| ||**Advanced platformer movements**|Let platformer characters: air jump, wall jump wall sliding, coyote time and dashing.|[Read more...](/gdevelop5/extensions/advanced-jump)| +||**Advanced movements for 3D physics characters**|Let 3D physics characters: air jump, wall jump wall sliding, coyote time and dashing.|[Read more...](/gdevelop5/extensions/advanced-jump3d)| ||**Advanced projectile**|Control how a projectile moves including speed, acceleration, distance, and lifetime.|[Read more...](/gdevelop5/extensions/advanced-projectile/details) ([reference](/gdevelop5/extensions/advanced-projectile))| ||**Animated Back and Forth Movement**|Make the object go on the left, then when some distance is reached, flip and go back to the right. Make sure that your object has two animations called "GoLeft" and "TurnLeft".|[Read more...](/gdevelop5/extensions/animated-back-and-forth-movement)| ||**Boids movement**|Simulates flocks movement.|[Read more...](/gdevelop5/extensions/boids-movement/details/) ([reference](/gdevelop5/extensions/boids-movement))| @@ -135,18 +135,21 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||**Homing projectile**|Make a projectile object move towards a target object.|[Read more...](https://victrisgames.itch.io/extension-homing-projectile) ([reference](/gdevelop5/extensions/homing-projectile))| ||**Linear Movement**|Move objects on a straight line.|[Read more...](/gdevelop5/extensions/linear-movement)| ||**Make objects orbit around a center object**|Make objects orbit around a center object in a circular or elliptical shape.|[Read more...](/gdevelop5/extensions/orbiting-objects)| -||**Physics car**|Simulate car motion with drifting.|[Read more...](/gdevelop5/extensions/physics-car)| +||**2D Top-Down Physics Car**|Simulate top-down car motion with drifting.|[Read more...](/gdevelop5/extensions/physics-car)| +||**3D physics character animator**|Change animations of a 3D physics character automatically.|[Read more...](/gdevelop5/extensions/physics-character3danimator)| +||**3D ellipse movement**|Move objects on ellipses or smoothly back and forth in one direction.|[Read more...](/gdevelop5/extensions/physics-ellipse-movement3d)| ||**Pixel perfect movement**|Grid-based or pixel perfect platformer and top-down movements.|[Read more...](/gdevelop5/extensions/pixel-perfect-movement)| ||**Platformer character animator**|Change animations and horizontal flipping of a platformer character automatically.|[Read more...](/gdevelop5/extensions/platformer-character-animator)| ||**Platformer trajectory**|Platformer character jump easy configuration and platformer AI tools.|[Read more...](/gdevelop5/extensions/platformer-trajectory)| ||**Rectangular movement**|Move objects in a rectangular pattern.|[Read more...](/gdevelop5/extensions/rectangle-movement)| ||**Screen wrap**|Teleport object when it moves off the screen and immediately appear on the opposite side while maintaining speed and trajectory.|[Read more...](/gdevelop5/extensions/screen-wrap)| -||**Speed restrictions**|Limit the maximum movement and rotation speed of an object from forces or the physics behavior.|[Read more...](/gdevelop5/extensions/speed-restrictions)| -||**Stay On Screen**|Move the object to keep it visible on the screen.|[Read more...](/gdevelop5/extensions/stay-on-screen)| +||**Speed restrictions**|Limit the maximum movement and rotation speed of an object from forces or the 2D Physics behavior.|[Read more...](/gdevelop5/extensions/speed-restrictions)| +||**Stay On Screen (2D)**|Move the object to keep it visible on the screen.|[Read more...](/gdevelop5/extensions/stay-on-screen)| ||**Stick objects to others**|Make objects follow the position and rotation of the object they are stuck to.|[Read more...](/gdevelop5/extensions/sticker)| ||**Timed Back and Forth Movement**|This behavior moves objects back and forth for a chosen time or distance, vertically or horizontally.|[Read more...](/gdevelop5/extensions/timed-back-and-forth-movement)| +||**Top-down movement animator**|Change the animation according to the movement direction.|[Read more...](/gdevelop5/extensions/top-down-movement-animator)| ||**Make object travel to random positions**|Make object travel to random positions (with the pathfinding behavior).|[Read more...](/gdevelop5/extensions/travel-to-random-positions)| -||**Turret movement**|A turret movement with customizable speed, acceleration and stop angles.|[Read more...](/gdevelop5/extensions/turret)| +||**Turret 2D movement**|A turret movement with customizable speed, acceleration and stop angles.|[Read more...](/gdevelop5/extensions/turret)| ### Network @@ -157,13 +160,15 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||**Platforms Validation**|Checks if the game is currently executed on an allowed platform (for web).|[Read more...](https://oxey405.com/projects/execution-context/index.html) ([reference](/gdevelop5/extensions/authorized-platforms-validation))| ||**Internet Connectivity **|Checks if the device running the game is connected to the internet.|[Read more...](/gdevelop5/extensions/internet-connectivity)| ||**MQTT Client (advanced)**|An MQTT client for GDevelop: allow connections to a MQTT server and send/receive messages.|[Read more...](/gdevelop5/extensions/mqtt)| -||**Webpage URL tools (Web browser)**|Allows to read URL on Web browser exports of the game and manipulate URLs generally.|[Read more...](/gdevelop5/extensions/urltools)| +||**Multiplayer custom lobbies**|Custom lobbies for built-in multiplayer.|[Read more...](/gdevelop5/extensions/multiplayer-custom-lobbies)| +||**Webpage URL tools (Web browser)**|Allows to read URL where a web-game is hosted and manipulate URL strings.|[Read more...](/gdevelop5/extensions/urltools)| ||**WebSocket client**|A WebSocket client for fast client-server networking.|[Read more...](/gdevelop5/extensions/web-socket-client)| ### Third-party ||Name|Description|| |---|---|---|---| +||**CrazyGames SDK v3**|Allow games to be hosted on CrazyGames website, display ads and interact with CrazyGames user accounts.|[Read more...](/gdevelop5/extensions/crazy-games-ad-api/details) ([reference](/gdevelop5/extensions/crazy-games-ad-api))| ||**Discord rich presence (Windows, Mac, Linux)**|Adds discord rich presence to your games.|[Read more...](/gdevelop5/extensions/discord-rich-presence)| ### User interface @@ -181,14 +186,16 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||**Iframe**|Create or delete an iframe to embed websites.|[Read more...](/gdevelop5/extensions/iframe)| ||**Input Validation**|Conditions and expressions to check, sanitize and manipulate strings.|[Read more...](/gdevelop5/extensions/input-validation)| ||**Language**|Get the preferred language of the user, set on their browser or device.|[Read more...](/gdevelop5/extensions/language)| +||**Leaderboard dialog**|Display the player score and allow to submit it to a leaderboard.|[Read more...](/gdevelop5/extensions/leaderboard-dialog)| ||**Panel sprite button**|A button that can be customized.|[Read more...](/gdevelop5/objects/button) ([reference](/gdevelop5/extensions/panel-sprite-button))| ||**Resource bar (continuous)**|A bar that represents a resource in the game (health, mana, ammo, etc).|[Read more...](/gdevelop5/objects/resource-bar) ([reference](/gdevelop5/extensions/panel-sprite-continuous-bar))| ||**Slider**|A draggable slider that users can move to select a numerical value.|[Read more...](/gdevelop5/objects/slider) ([reference](/gdevelop5/extensions/panel-sprite-slider))| +||**Player avatar**|Display player avatars according to their GDevelop account.|[Read more...](/gdevelop5/extensions/player-avatar)| ||**Pop-up**|Display pop-ups to alert, ask confirmation, and let user type a response in text box.|[Read more...](/gdevelop5/extensions/pop-up)| +||**Animated Score Counter**|An animated score counter with an icon and a customisable font.|[Read more...](/gdevelop5/extensions/score-counter)| ||**Share dialog and sharing options**|Allows to share content via the system share dialog. Works only on mobile (browser or mobile app).|[Read more...](/gdevelop5/extensions/share)| ||**Toggle switch**|Toggle switch that users can click or touch.|[Read more...](/gdevelop5/objects/toggle-switch) ([reference](/gdevelop5/extensions/sprite-toggle-switch))| -||**Console (commands handler for Text Entry objects)**|A console behavior that allows parsing simple commands inputed via a Text Entry object.|[Read more...](/gdevelop5/extensions/text-entry-console)| -||**Mobile virtual keyboard for Text Entry**|Allow to open and close the virtual keyboard on mobile (iOS, Android). To be used with Text Entry objects.|[Read more...](/gdevelop5/extensions/text-entry-virtual-keyboard)| +||**Star Rating Bar**|An animated bar to rate out of 5.|[Read more...](/gdevelop5/extensions/star-rating-bar)| ||**Resource bar (separated units)**|A bar that represents a resource in the game (health, mana, ammo, etc).|[Read more...](/gdevelop5/objects/resource-bar) ([reference](/gdevelop5/extensions/tiled-units-bar))| ||**Time formatting**|Converts seconds into standard time formats, such as HH:MM:SS. |[Read more...](/gdevelop5/extensions/time-formatter)| ||**Toggle switch (for Shape Painter)**|Toggle switch that users can click or touch.|[Read more...](/gdevelop5/extensions/toggle-switch)| @@ -198,30 +205,28 @@ Here are listed all the extensions available in GDevelop. The list is divided in ||Name|Description|| |---|---|---|---| ||**3D Billboard**|Rotate 3D objects to appear like 2D sprites.|[Read more...](/gdevelop5/extensions/billboard)| -||**Depth effect**|Change scale based on Y position to simulate depth of field.|[Read more...](https://victrisgames.itch.io/extension-sinemovement-and-deptheffect) ([reference](/gdevelop5/extensions/depth-effect))| +||**Depth effect**|Change scale based on Y position to simulate depth of field.|[Read more...](/gdevelop5/extensions/depth-effect)| ||**Flash object**|Make an object flash visibility (blink), color tint, object effect, or opacity (fade).|[Read more...](/gdevelop5/extensions/flash)| ||**Flash layer**|Make a layer visible for a specified duration, and then hide the layer.|[Read more...](/gdevelop5/extensions/flash-layer)| -||**Flash and transition painter**|Behavior for shape painter allows you to paint a color all over the screen for period of time with an effect (useful for simulate flash and transition effect).|[Read more...](/gdevelop5/extensions/flash-transition-painter)| +||**Flash and transition painter**|Paint transition effects with a plain color.|[Read more...](/gdevelop5/extensions/flash-transition-painter)| ||**Marching Squares (experimental)**|Allow to build a "scalar field" and draw contour lines of it: useful for fog of wars, liquid effects, paint the ground, etc...|[Read more...](/gdevelop5/extensions/marching-squares/details) ([reference](/gdevelop5/extensions/marching-squares))| -||**Slice an object into pieces**|Slice an object into smaller pieces that match the color of original object.|[Read more...](/gdevelop5/extensions/object-slicer)| -||**3D particle emitter**|Display a large number of particles to create visual effects.|[Read more...](/gdevelop5/extensions/particle-emitter3d)| -||**Object recolorizer (experimental)**|Independently change the colors of a sprite, a tiled sprite or a panel sprite.|[Read more...](/gdevelop5/extensions/recolorizer)| +||**Slice a 2D object into pieces**|Slice an object into smaller pieces that match the color of original object.|[Read more...](/gdevelop5/extensions/object-slicer)| +||**3D particle emitter**|Display a large number of particles in 3D to create visual effects in a 3D game.|[Read more...](/gdevelop5/extensions/particle-emitter3d)| +||**Rolling counter**|Smoothly change a counter value in a text object.|[Read more...](/gdevelop5/extensions/rolling-counter)| ||**Animate Shadow Clones**|Create and animate shadow clones that follow the path of a primary object.|[Read more...](https://www.youtube.com/watch?v=2t4ANYgrrak) ([reference](/gdevelop5/extensions/shadow-clones))| -||**Shake object**|Shake an object.|[Read more...](https://victrisgames.itch.io/gdevelop-camera-shake-example) ([reference](/gdevelop5/extensions/shake-object))| +||**Shake object**|Shake an object.|[Read more...](/gdevelop5/extensions/shake-object)| ||**3D object shake**|Shake 3D objects.|[Read more...](/gdevelop5/extensions/shake-object3d)| ||** Shock wave effect**|Draw shock wave.|[Read more...](/gdevelop5/extensions/shock-wave-effect)| ||**Object Masking**|Use a sprite or a shape painter to mask another object.|[Read more...](/gdevelop5/extensions/sprite-masking)| ||**Sway**|Sway objects like grass in the wind.|[Read more...](/gdevelop5/extensions/sway)| -||**3D Flip**|Flip sprites with a 3D rotation effect.|[Read more...](/gdevelop5/extensions/three-dflip)| +||**3D-like Flip for 2D Sprites**|Flip sprites with a 3D-like rotation effect.|[Read more...](/gdevelop5/extensions/three-dflip)| ||**YSort**|Create an illusion of depth by setting the Z-order based on the Y position of the object. Useful for isometric games, 2D games with a "Top-Down" view, RPG...|[Read more...](/gdevelop5/extensions/ysort)| -## Community extensions +## Experimental extensions -The following extensions are made by community members — but not reviewed -by the GDevelop extension team. As such, we can't guarantee it -meets all the quality standards of official extensions. In case of -doubt, contact the author to know more about what the extension -does or inspect its content before using it. +The following extensions are made by a community members and they only got +though a light review by the GDevelop extension team. As such, we can't +guarantee they meet all the quality standards of fully reviewed extensions. ### Advanced @@ -257,35 +262,33 @@ does or inspect its content before using it. ||Name|Description|| |---|---|---|---| -||**Extra inventory functions**|Adds functions that let you add/remove multiple items from an inventory, as well as a function to set the count of an item.|[Read more...](/gdevelop5/extensions/extra-inventory)| +||**Dungeon generator**|Create a procedurally generated dungeon. Includes two layouts: "rooms and hallways" and "dungeon cave".|[Read more...](https://victrisgames.itch.io/extension-dungeon-generator) ([reference](/gdevelop5/extensions/dungeon-generator))| +||**Extra inventory functions (deprecated)**|Adds functions that let you add/remove multiple items from an inventory, as well as a function to set the count of an item.|[Read more...](/gdevelop5/extensions/extra-inventory)| +||**3D height map**|A terrain with hills where 3D physics objects can stand.|[Read more...](/gdevelop5/extensions/height-map3d/details) ([reference](/gdevelop5/extensions/height-map3d))| ||**Ink Dialog Tree**|Support for Ink writing system.|[Read more...](https://github.com/inkle/ink/blob/master/Documentation/WritingWithInk.md) ([reference](/gdevelop5/extensions/ink-js))| -||**Secret Code**|Allows to input a secret code for cheats and easter eggs.|[Read more...](/gdevelop5/extensions/secret-code)| ||**Slot system**|Manage any kind of slots for your inventories, board games and tiled environments.|[Read more...](/gdevelop5/extensions/slot-system)| ### General ||Name|Description|| |---|---|---|---| -||**With Three JS**|Create a simple 3D scene.|[Read more...](https://pandako.itch.io/with-threejs-extension-for-gdevelop) ([reference](/gdevelop5/extensions/with-three-js))| -||**Choose a random value (deprecated)**|Choose a random value in a list of strings or numbers.|[Read more...](/gdevelop5/extensions/choose)| +||**Advanced 3D Features**|This extension adds features to the built-in 3D.|[Read more...](https://pandako.itch.io/a3f) ([reference](/gdevelop5/extensions/a3f))| ||**3D collision**|Check collision and distance between 3D objects.|[Read more...](/gdevelop5/extensions/collision3d)| -||**Countdown Timer**|A timer against the clock to create timer challenges in your projects. Countdown functionality.|[Read more...](/gdevelop5/extensions/countdown-timer)| +||**Countdown timer (deprecated)**|A timer against the clock to create timer challenges in your projects. Countdown functionality.|[Read more...](/gdevelop5/extensions/countdown-timer)| ||**JSON Resource Loading**|Loads a JSON resource into a variable.|[Read more...](/gdevelop5/extensions/jsonresource-loader)| ||**Load images from a URL**|Adds multiple actions to load images from a URL into the game.|[Read more...](/gdevelop5/extensions/load-image-from-url)| ||**Maze Generator**|Create a maze made of a grid of rectangular cells. Walls are created randomly so that every cell is reachable through a random path through the maze. |[Read more...](https://luxon5.itch.io/gdevelop-maze-extension-demo) ([reference](/gdevelop5/extensions/maze-generator))| -||**3D model 9-patch**|3D plaforms and walls.|[Read more...](/gdevelop5/extensions/model9patch3d)| +||**3D model 9-patch**|3D platforms and walls.|[Read more...](/gdevelop5/extensions/model9patch3d)| ||**3D raycast**|Find 3D objects that cross a line.|[Read more...](/gdevelop5/extensions/raycaster3d)| ||**Variables/References**|Adds references and pointers for variables.|[Read more...](/gdevelop5/extensions/references)| ||**3D sprite**|An animated sprite in 3D.|[Read more...](/gdevelop5/objects/sprite/) ([reference](/gdevelop5/extensions/sprite3d))| -||**TimeDetector**|Detects the current time of the day, week and month.|[Read more...](/gdevelop5/extensions/time-detector)| ### Input ||Name|Description|| |---|---|---|---| -||**CheatCode**|Add cheat codes to your game.|[Read more...](/gdevelop5/extensions/cheat-code)| ||**Double key press**|Adds conditions to check for double key presses, similar to double clicks.|[Read more...](/gdevelop5/extensions/double-key-press)| -||**Multitouch joystick and buttons (deprecated)**|Activate a joystick or buttons that can be controlled by interacting with a touchscreen.|[Read more...](/gdevelop5/extensions/multitouch-joystick/setup) ([reference](/gdevelop5/extensions/multitouch-joystick))| +||**Screen Orientation Checker**|Display a customizable screen asking the user to rotate their phone/tablet if not in the right orientation.|[Read more...](/gdevelop5/extensions/screen-orientation-checker)| ||**Selection tools**|Select object instances by drawing rectangular, polygonal or lasso selection.|[Read more...](/gdevelop5/extensions/selection-tools)| ### Movement @@ -295,22 +298,18 @@ does or inspect its content before using it. ||**Flip Gravity**|Flip platformer character gravity up side down.|[Read more...](/gdevelop5/extensions/flip-gravity)| ||**3D grid jump**|Move objects by jumping on a grid like a frog.|[Read more...](/gdevelop5/extensions/grid-jump3d)| ||**HasLanded**|Checks if the object has landed on a given floor.|[Read more...](/gdevelop5/extensions/has-landed)| -||**Joint Connector**|Create and manage physics joints between two objects.|[Read more...](/gdevelop5/extensions/joint-connector)| -||**3D jump**|Jump and fall along Z axis.|[Read more...](/gdevelop5/extensions/jump3d)| +||**Hedgehog platformer**|Jump and run on platforms at 360°.|[Read more...](/gdevelop5/extensions/hedgehog-platformer)| +||**Joint connector**|Create and manage physics joints between two objects.|[Read more...](/gdevelop5/extensions/joint-connector)| +||**3D jump (deprecated)**|Jump and fall along Z axis.|[Read more...](/gdevelop5/extensions/jump3d)| ||**Magnetic Effect**|Attract an object to another object, with customisable speed and distance.|[Read more...](/gdevelop5/extensions/magnetic-effect)| ||**Navigation mesh pathfinding (experimental)**|Pathfinding allows to compute an efficient path for objects, avoiding obstacles on the way.|[Read more...](/gdevelop5/extensions/nav-mesh-pathfinding)| ||**Platform ledge grabber**|Grab platforms ledges within reach automatically.|[Read more...](/gdevelop5/extensions/platform-ledge-grabber)| ||**Point and Orbit**|Point and orbit an object toward a position or angle.|[Read more...](/gdevelop5/extensions/point-and-orbit)| ||**Pushable/Pullable Box**|Convert object to a pushable or/and pullable box.|[Read more...](/gdevelop5/extensions/pushable-and-pullable-box)| -||**Pushable Box (Deprecated)**|Makes an object a pushable box.|[Read more...](/gdevelop5/extensions/pushable-box)| ||**Record Movements**|Allow the user to record object movements and recall them to make reverse time mechanic.|[Read more...](/gdevelop5/extensions/record-movements)| -||**Rectangular Movement (deprecated)**|Allow an object to move in a rectangular pattern.|[Read more...](https://victrisgames.itch.io/extension-rectangular-movement) ([reference](/gdevelop5/extensions/rectangular-movement))| -||**Sine (or ellipsis) Movement (deprecated)**|Allow an object to move smoothly on the X and/or Y axis following a sine wave, or an ellipsis.|[Read more...](https://victrisgames.itch.io/extension-sinemovement-and-deptheffect) ([reference](/gdevelop5/extensions/sine-movement))| ||**Top-down corner sliding**|Slide on corners of rectangular obstacles.|[Read more...](/gdevelop5/extensions/top-down-corner-sliding)| -||**Top-down movement animator**|Change the animation according to the movement direction.|[Read more...](/gdevelop5/extensions/top-down-movement-animator)| ||**Trampoline Platform**|Convert object to trampoline platform.|[Read more...](/gdevelop5/extensions/trampoline-platform)| -||**Tween Z-Order**|Smoothly animate Z order of objects.|[Read more...](https://github.com/PANDAKO-GitHub/TweenZOrderExtension) ([reference](/gdevelop5/extensions/tween-zorder))| -||**3D walk**|Turn and move objects forward and sideways.|[Read more...](/gdevelop5/extensions/walk3d)| +||**Top-down walk**|Turn and move objects forward and sideways.|[Read more...](/gdevelop5/extensions/walk3d)| ### Network @@ -333,6 +332,8 @@ does or inspect its content before using it. They enhance the user experience of your game and complete the integration with our ads network and revenues system.|[Read more...](/gdevelop5/extensions/game-pix-sdk)| ||**Gamejolt**|Support the complete Gamejolt API.|[Read more...](https://gamejolt.com/game-api/doc) ([reference](/gdevelop5/extensions/gamejolt-api))| ||**Newgrounds API**|Allows developers to use newgrounds API.|[Read more...](https://bitbucket.org/newgrounds/newgrounds.io-for-javascript-html5/src/master/) ([reference](/gdevelop5/extensions/newgrounds-api))| +||**OllamaAI**|This extension adds the functionality to your project to easily send requests to the "Ollama" AI, and get responses from it.|[Read more...](/gdevelop5/extensions/ollama-ai)| +||**Wortal SDK**|Wortal SDK for GDevelop 5.|[Read more...](https://docs.games-api.ai) ([reference](/gdevelop5/extensions/wortal-sdk))| ||**Yandex Games SDK for GDevelop**|Yandex Games SDK allows to interact with Yandex APIs for games distributed on this platform.|[Read more...](/gdevelop5/extensions/ygame-sdk)| ### User interface @@ -342,9 +343,10 @@ They enhance the user experience of your game and complete the integration with ||**Align object on the screen**|Align objects on the scene relatively to the window (or screen size).|[Read more...](/gdevelop5/extensions/align-object)| ||**ChatBubble**|Create chat bubbles dynamically. |[Read more...](/gdevelop5/extensions/chat-bubble)| ||**Clock**|Add clocks into your game.|[Read more...](/gdevelop5/extensions/clock)| -||**Dialog Box**|This extension adds Dialog Box functionality that can be used for RPGs, visual novels, and more.|[Read more...](https://github.com/PANDAKO-GitHub/DialogBoxExtension) ([reference](/gdevelop5/extensions/dialog-box))| +||**Dialog Box**|Dialog Boxes that can be used for RPGs, visual novels, and more.|[Read more...](/gdevelop5/extensions/dialog-box)| ||**Flexbox**|Allows using flexbox for positioning objects.|[Read more...](/gdevelop5/extensions/flex-box)| ||**Pause when losing focus**|Pauses when focus is lost, restarts when focus is regained.|[Read more...](/gdevelop5/extensions/pause-focus-lost)| +||**Scrollbar**|A scrollbar to help making a scroll view.|[Read more...](/gdevelop5/extensions/scrollbar)| ||**Star Rating**|A rating system indicated by stars using the shape painter.|[Read more...](/gdevelop5/extensions/star-rating)| ### Visual effect @@ -355,7 +357,8 @@ They enhance the user experience of your game and complete the integration with ||**Character game feel**|Add game feel to your platformer character object.|[Read more...](/gdevelop5/extensions/character-game-feel)| ||**Dynamic Water**|Easily create a realistic liquid surface simulation.|[Read more...](/gdevelop5/extensions/dynamic-water)| ||**Make it rain**|Make an object rain from a selected direction or a selected object.|[Read more...](/gdevelop5/extensions/make-it-rain)| +||**Object recolorizer (experimental)**|Independently change the colors of a sprite, a tiled sprite or a panel sprite.|[Read more...](/gdevelop5/extensions/recolorizer)| ||**Reflection**|Add a reflection to a selected object.|[Read more...](/gdevelop5/extensions/reflection)| -||**Sprite Based Lighting**|Make light using sprites.|[Read more...](/gdevelop5/extensions/sprite-based-lighting)| +||**3D Sky and sun**|Fully animated 3D sky with sun.|[Read more...](/gdevelop5/extensions/sky3d)| ||**Advanced 3D tween**|Smoothly squash, strentch, tint and wobble 3D models.|[Read more...](/gdevelop5/extensions/tween3d)| diff --git a/docs/gdevelop5/extensions/ink-js/index.md b/docs/gdevelop5/extensions/ink-js/index.md index 9e2fb6e5f6..1956b717a3 100644 --- a/docs/gdevelop5/extensions/ink-js/index.md +++ b/docs/gdevelop5/extensions/ink-js/index.md @@ -3,14 +3,12 @@ Support for Ink writing system. -**Authors and contributors** to this community extension: [infokubarcade](https://gd.games/infokubarcade). +**Authors and contributors** to this experimental extension: [infokubarcade](https://gd.games/infokubarcade). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -42,197 +40,716 @@ This extension does not support: **Activate story history** Set a scene variable for saving the story choice history. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🗄️ Scene variable): History array + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Add parameter for Ink function** Call an internal Ink function set inside the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Internal Ink method name + - Parameter 3 (string): Parameter value + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Link story event** Link an external Ink function to the game. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Ink event name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Call Ink function** Call an internal Ink function set inside the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Internal Ink method name + - Parameter 3 (🗄️ Scene variable): Save result in + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Call Ink function with story output** Call an internal Ink function set inside the story and collect value and text output. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Internal Ink method name + - Parameter 3 (🗄️ Scene variable): Save result in + - Parameter 4 (🗄️ Scene variable): Save text output in + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Change story chapter** Change the current story chapter. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Chapter name + In Ink, a chapter (or knot) is a large part of the story. + + You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich". + + For example: + - castle + - castle.hall + + are valid chapter names. + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Change story variable boolean** Change the story variable boolean. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Variable name + - Parameter 3 (❓ True or False): Value + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Story variable value** Change the story variable value. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Story variable text** Change the story variable text. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Chapter tags to array** Export the chapter tag list to an array variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Chapter name + In Ink, a chapter (or knot) is a large part of the story. + + You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich". + + For example: + - castle + - castle.hall + + are valid chapter names. + - Parameter 3 (🗄️ Scene variable): Scene array variable + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Choice tags to array** Export the choice tag list to an array variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔢 Number): Choice index + - Parameter 3 (🗄️ Scene variable): Scene array variable + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Continue the story** Load the next story line. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Create story snapshot** Create a temporary snapshot of the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Current line tags to array** Export the current line tag list to an array variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🗄️ Scene variable): Scene array variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Discard story snapshot** Discard the last snapshot of the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Global tags to array** Export the global tag list to an array variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🗄️ Scene variable): Scene array variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Load story state from JSON** Load a previous state of an existing story from a JSON string. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (string): JSON text + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Load story history** Load an already prepared scene variable for saving the story choice history. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🗄️ Scene variable): History array + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Load JSON Story** Create a story from an Ink JSON resource. +??? quote "See parameters" + + - Parameter 1: jsonResource + - Parameter 2 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Observe a story variable** Activate the observation of any change to the story variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Reset story state** Reset the story back to its initial state. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Restore story snapshot** Restore the last snapshot of the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Rewind last choice** Come back to the previous state of the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Validate a choice** Validate a choice using its Ink index before continuing the story. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔢 Number): Choice index + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Can continue** The story flow can progress. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Chapter tag value** Compare chapter tag. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Chapter name + In Ink, a chapter (or knot) is a large part of the story. + + You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich". + + For example: + - castle + - castle.hall + + are valid chapter names. + - Parameter 5 (🔢 Number): Tag list index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Chapter tag count** Compare chapter tag count. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Chapter name + In Ink, a chapter (or knot) is a large part of the story. + + You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich". + + For example: + - castle + - castle.hall + + are valid chapter names. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Current choices count** Compare current choice count. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Choice tag value** Compare choice tag. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔢 Number): Choice index + - Parameter 5 (🔢 Number): Tag list index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Choice tag count** Compare choice tag count. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔢 Number): Choice index + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Current story chapter** Compare current story chapter. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Current Story Line** Compare the current story line. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Current line tag value** Compare current line tag. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔢 Number): Tag list index + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Current line tag count** Compare current line tag count. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Ink function story output** Compare the internal Ink function story output. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Internal Ink method name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Ink function text result** Compare the internal Ink function text value. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Internal Ink method name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Ink function result value** Compare the internal Ink function value. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Internal Ink method name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Event parameter count** Compare the event parameter count. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Ink event name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Event parameter value** Compare the event parameter value. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Ink event name + - Parameter 5 (🔢 Number): Parameter index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Event parameter text** Compare the event parameter text. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Ink event name + - Parameter 5 (🔢 Number): Parameter index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Global tag value** Compare global tag. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔢 Number): Tag list index + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Global tag count** Compare global tag count. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Has ended** The story reached its end. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Chapter has tags** Check if the current story chapter contains tags. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Chapter name + In Ink, a chapter (or knot) is a large part of the story. + You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich". + For example: + + - castle + - castle.hall + + are valid chapter names. + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Choice has tags** Check if the choice contains tags. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔢 Number): Choice index + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Current line has tags** Check if the current story line contains tags. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Has global tags** Check if the current story contains global tags. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Event is called** Check if the story event is called by Ink. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Ink event name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Is loaded** Check if the story is already loaded. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Story variable boolean** The story variable boolean is true. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Story variable changed** A story variable observed has changed. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Story variable exists** Check if the story variable exists. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Story name + - Parameter 2 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Story variable value** Compare the story variable value. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Story variable text** Compare the story variable text. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Variable name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Story chapter visit count** Compare the chapter visit count of the story. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Story name + - Parameter 4 (🔤 Name (String)): Chapter name + In Ink, a chapter (or knot) is a large part of the story. + You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich". + For example: + - castle + - castle.hall + are valid chapter names. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `InkJS::ChapterTag()` | Return chapter tag. || -| `InkJS::ChapterTagCount()` | Return chapter tag count. || -| `InkJS::ChoiceCount()` | Return current choice count. || -| `InkJS::ChoiceInternalIndex()` | Get the choice internal index. || -| `InkJS::ChoiceLabel()` | Get the choice label. || -| `InkJS::ChoiceTag()` | Return choice tag. || -| `InkJS::ChoiceTagCount()` | Return choice tag count. || -| `InkJS::CurrentChapter()` | Return current story chapter. || -| `InkJS::CurrentLine()` | Return the current story line. || -| `InkJS::CurrentLineTag()` | Return current line tag. || -| `InkJS::CurrentLineTagCount()` | Return current line tag count. || -| `InkJS::EvaluateInternalMethodOuput()` | Return the internal Ink function story output. || -| `InkJS::EvaluateInternalMethodText()` | Return the internal Ink function text value. || -| `InkJS::EvaluateInternalMethodValue()` | Return the internal Ink function value. || -| `InkJS::ExternalFunctionParameterCount()` | Return the event parameter count. || -| `InkJS::ExternalFunctionParameterNumber()` | Return the event parameter value. || -| `InkJS::ExternalFunctionParameterText()` | Return the event parameter text. || -| `InkJS::GlobalTag()` | Return global tag. || -| `InkJS::GlobalTagCount()` | Return global tag count. || -| `InkJS::ToJSON()` | Export the current state of the story to a JSON string. || -| `InkJS::VariableNumber()` | Return the story variable value. || -| `InkJS::VariableText()` | Return the story variable text. || -| `InkJS::VisitCount()` | Return the chapter visit count of the story. || +| `InkJS::ChapterTag(string, string, number)` | Return chapter tag. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Chapter name In Ink, a chapter (or knot) is a large part of the story.You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich".For example:- castle- castle.hallare valid chapter names. | +| | _🔢 Number_ | Tag list index | +| `InkJS::ChapterTagCount(string, string)` | Return chapter tag count. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Chapter name In Ink, a chapter (or knot) is a large part of the story.You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich".For example:- castle- castle.hallare valid chapter names. | +| `InkJS::ChoiceCount(string)` | Return current choice count. || +| | _🔤 Name (String)_ | Story name | +| `InkJS::ChoiceInternalIndex(string, number)` | Get the choice internal index. || +| | _🔤 Name (String)_ | Story name | +| | _🔢 Number_ | Choice index | +| `InkJS::ChoiceLabel(string, number)` | Get the choice label. || +| | _🔤 Name (String)_ | Story name | +| | _🔢 Number_ | Choice index | +| `InkJS::ChoiceTag(string, number, number)` | Return choice tag. || +| | _🔤 Name (String)_ | Story name | +| | _🔢 Number_ | Choice index | +| | _🔢 Number_ | Tag list index | +| `InkJS::ChoiceTagCount(string, number)` | Return choice tag count. || +| | _🔤 Name (String)_ | Story name | +| | _🔢 Number_ | Choice index | +| `InkJS::CurrentChapter(string)` | Return current story chapter. || +| | _🔤 Name (String)_ | Story name | +| `InkJS::CurrentLine(string)` | Return the current story line. || +| | _🔤 Name (String)_ | Story name | +| `InkJS::CurrentLineTag(string, number)` | Return current line tag. || +| | _🔤 Name (String)_ | Story name | +| | _🔢 Number_ | Tag list index | +| `InkJS::CurrentLineTagCount(string)` | Return current line tag count. || +| | _🔤 Name (String)_ | Story name | +| `InkJS::EvaluateInternalMethodOuput(string, string)` | Return the internal Ink function story output. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Internal Ink method name | +| `InkJS::EvaluateInternalMethodText(string, string)` | Return the internal Ink function text value. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Internal Ink method name | +| `InkJS::EvaluateInternalMethodValue(string, string)` | Return the internal Ink function value. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Internal Ink method name | +| `InkJS::ExternalFunctionParameterCount(string, string)` | Return the event parameter count. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Ink event name | +| `InkJS::ExternalFunctionParameterNumber(string, string, number)` | Return the event parameter value. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Ink event name | +| | _🔢 Number_ | Parameter index | +| `InkJS::ExternalFunctionParameterText(string, string, number)` | Return the event parameter text. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Ink event name | +| | _🔢 Number_ | Parameter index | +| `InkJS::GlobalTag(string, number)` | Return global tag. || +| | _🔤 Name (String)_ | Story name | +| | _🔢 Number_ | Tag list index | +| `InkJS::GlobalTagCount(string)` | Return global tag count. || +| | _🔤 Name (String)_ | Story name | +| `InkJS::ToJSON(string)` | Export the current state of the story to a JSON string. || +| | _🔤 Name (String)_ | Story name | +| `InkJS::VariableNumber(string, string)` | Return the story variable value. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Variable name | +| `InkJS::VariableText(string, string)` | Return the story variable text. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Variable name | +| `InkJS::VisitCount(string, string)` | Return the chapter visit count of the story. || +| | _🔤 Name (String)_ | Story name | +| | _🔤 Name (String)_ | Chapter name In Ink, a chapter (or knot) is a large part of the story.You can combine it with a subchapter (a stich) for reaching a specific part of the chapter. The format is "knot.stich".For example:- castle- castle.hallare valid chapter names. | + --- diff --git a/docs/gdevelop5/extensions/input-validation/index.md b/docs/gdevelop5/extensions/input-validation/index.md index baed8ba42b..17d0500977 100644 --- a/docs/gdevelop5/extensions/input-validation/index.md +++ b/docs/gdevelop5/extensions/input-validation/index.md @@ -3,7 +3,7 @@ Conditions and expressions to check, sanitize and manipulate strings. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555), [Add00](https://gd.games/Add00). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555), [Add00](https://gd.games/Add00). --- @@ -17,26 +17,61 @@ Provides conditions to check if a string is a valid phone number, url, email, nu **Check if a string has only latin alphabet letters** Check if the string has only latin alphabet letters. +??? quote "See parameters" + + - Parameter 1 (string): Letters + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Check if a string is a valid email** Check if the string is a valid email. +??? quote "See parameters" + + - Parameter 1 (string): Email + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Check if a string represents a number** Check if the string represents a number (potentially with a minus sign and potentially with a decimal point). +??? quote "See parameters" + + - Parameter 1 (string): Number + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Check if a string is a valid phone number** Check if the string is a valid phone number. +??? quote "See parameters" + + - Parameter 1 (string): Phone number + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Check if a string is a valid URL** Check if the string is a valid URL. +??? quote "See parameters" + + - Parameter 1 (string): URL + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `InputValidation::CountNewLines()` | Count the number of lines in a string. || -| `InputValidation::RemoveFirstLine()` | Returns the string without the first line. || -| `InputValidation::RemoveNewLines()` | Replaces every new line character with a space. || -| `InputValidation::ToAlphanumerical()` | Remove any non-numerical and non A-Z characters. || +| `InputValidation::CountNewLines(string)` | Count the number of lines in a string. || +| | _string_ | The text to count lines from | +| `InputValidation::RemoveFirstLine(string)` | Returns the string without the first line. || +| | _string_ | String to remove the first line from | +| `InputValidation::RemoveNewLines(string)` | Replaces every new line character with a space. || +| | _string_ | The text to remove new lines from | +| `InputValidation::ToAlphanumerical(string)` | Remove any non-numerical and non A-Z characters. || +| | _string_ | The text to sanitize | + --- diff --git a/docs/gdevelop5/extensions/internet-connectivity/index.md b/docs/gdevelop5/extensions/internet-connectivity/index.md index 751cae64fc..5225f11294 100644 --- a/docs/gdevelop5/extensions/internet-connectivity/index.md +++ b/docs/gdevelop5/extensions/internet-connectivity/index.md @@ -3,7 +3,7 @@ Checks if the device running the game is connected to the internet. -**Authors and contributors** to this community extension: [TheGemDev](https://gd.games/TheGemDev). +**Authors and contributors** to this experimental extension: [TheGemDev](https://gd.games/TheGemDev). --- @@ -17,6 +17,13 @@ Checks if the device running the game is connected to the internet. **Is the device online?** Checks if the device is connected to the internet. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/inventories/index.md b/docs/gdevelop5/extensions/inventories/index.md index 8d3e6f4a44..4ac86b0be9 100644 --- a/docs/gdevelop5/extensions/inventories/index.md +++ b/docs/gdevelop5/extensions/inventories/index.md @@ -3,7 +3,7 @@ Manage inventory items. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [infokubarcade](https://gd.games/infokubarcade), [heyitsdwubbs](https://gd.games/heyitsdwubbs), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [infokubarcade](https://gd.games/infokubarcade), [heyitsdwubbs](https://gd.games/heyitsdwubbs), [D8H](https://gd.games/D8H). --- @@ -19,53 +19,166 @@ Manage inventory items with limited or unlimited item capacity. **Add an item** Add an item in an inventory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Save an inventory in a scene variable** Save all the items of the inventory in a scene variable, so that it can be restored later. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🗄️ Scene variable): Scene variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Load an inventory from a scene variable** Load the content of the inventory from a scene variable. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🗄️ Scene variable): Scene variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Remove an item** Remove an item from an inventory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Equip an item** Mark an item as being equipped. If the item count is 0, it won't be marked as equipped. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + - Parameter 3 (❓ Yes or No): Equip + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Limit item capacity** Allow a limited amount of an object to be in an inventory. Item capacity is unlimited by default. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + - Parameter 3 (❓ Yes or No): Limit the item capacity + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Item capacity** Change the maximum number of the specified item that can be added in the inventory. By default, the number allowed for each item is unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Inventory name + - Parameter 4 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Item count** Change the number of an item in an inventory. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Inventory name + - Parameter 4 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Conditions **Has an item** Check if at least one of the specified items is in the inventory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Item full** Check if an item has reached its maximum number allowed in the inventory. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Item equipped** Check if an item is equipped. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Limited item capacity** Check if a limited amount of an object is allowed by the inventory. Item capacity is unlimited by default. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Inventory name + - Parameter 2 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Item capacity** Compare the maximum number of the specified item that can be added in the inventory. By default, the number allowed for each item is unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Inventory name + - Parameter 4 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Item count** Compare the number of an item in an inventory. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Inventory name + - Parameter 4 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Inventories::ItemCapacity()` | Return the maximum number of the specified item that can be added in the inventory. By default, the number allowed for each item is unlimited. || -| `Inventories::ItemCount()` | Return the number of an item in an inventory. || +| `Inventories::ItemCapacity(string, string)` | Return the maximum number of the specified item that can be added in the inventory. By default, the number allowed for each item is unlimited. || +| | _🔤 Name (String)_ | Inventory name | +| | _🔤 Name (String)_ | Item name | +| `Inventories::ItemCount(string, string)` | Return the number of an item in an inventory. || +| | _🔤 Name (String)_ | Inventory name | +| | _🔤 Name (String)_ | Item name | + --- diff --git a/docs/gdevelop5/extensions/is-on-screen/index.md b/docs/gdevelop5/extensions/is-on-screen/index.md index 7e5fa00408..ad7a57329c 100644 --- a/docs/gdevelop5/extensions/is-on-screen/index.md +++ b/docs/gdevelop5/extensions/is-on-screen/index.md @@ -3,7 +3,7 @@ This adds a condition to detect if an object is on screen based off its current layer. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh), [Silver-Streak](https://gd.games/Silver-Streak), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh), [Silver-Streak](https://gd.games/Silver-Streak), [VictrisGames](https://gd.games/VictrisGames). --- @@ -26,9 +26,19 @@ Note that object visibility, such as being hidden or 0 opacity, is not considere **Is on screen** Checks if an object position is within the viewport of its layer. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Padding (in pixels) + Number of pixels to pad the screen border. Zero by default. A negative value goes inside the screen, a positive value go outside. + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Object "Is On Screen" Detection** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/joint-connector/index.md b/docs/gdevelop5/extensions/joint-connector/index.md index f5cfa57a16..af1a37044f 100644 --- a/docs/gdevelop5/extensions/joint-connector/index.md +++ b/docs/gdevelop5/extensions/joint-connector/index.md @@ -1,16 +1,14 @@ -# Joint Connector +# Joint connector Create and manage physics joints between two objects. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames), [planktonfun](https://gd.games/planktonfun). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames), [planktonfun](https://gd.games/planktonfun). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -44,15 +42,51 @@ Rope joint **Connect objects with a distance joint** Connect physics objects with a distance joint if the joint connector covers the center point of both objects. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to connect + - Parameter 2 (🧩 Behavior): Physics Behavior + - Parameter 3 (👾 Object): Joint connector (center of this object is used to create the joint) + - Parameter 4 (🧩 Behavior): Distance joint connector + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Connect overlapping objects with a revolute joint** Connect overlapping physics objects with a revolute joint. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to connect + - Parameter 2 (🧩 Behavior): Physics Behavior + - Parameter 3 (👾 Object): Joint connector (center of this object is used to create the joint) + - Parameter 4 (🧩 Behavior): Revolute joint connector + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Connect objects with a rope joint** Connect physics objects with a rope joint if the joint connector covers the center point of both objects. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to connect + - Parameter 2 (🧩 Behavior): Physics Behavior + - Parameter 3 (👾 Object): Joint connector (center of this object is used to create the joint) + - Parameter 4 (🧩 Behavior): Rope joint connector + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Connect overlapping objects with a weld joint** Connect overlapping physics objects with a weld joint. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to connect + - Parameter 2 (🧩 Behavior): Physics Behavior + - Parameter 3 (👾 Object): Joint connector (center of this object is used to create the joint) + - Parameter 4 (🧩 Behavior): Weld joint connector + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Distance joint connector @@ -65,15 +99,48 @@ Acts like a spring because the objects try to stay the same distance apart. **Break distance joint if it exceeds breaking force** Break distance joint if it exceeds breaking force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Object with joint + - Parameter 3 (🧩 Behavior): Physics behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Set the breaking force of a joint** Set the breaking force of a joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Breaking force + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set damping ratio of joint** Set dampting ratio of joint. Range: 0 to 1. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Damping ratio + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set frequency of joint** Set frequency of joint. Range: 0 to 60 (or the maximum FPS of game). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Frequency + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -87,35 +154,115 @@ Also known as a hinge joint because the objects act like they are connected with **Break revolute joint if it exceeds breaking force** Break revolute joint if it exceeds breaking force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Object with joint + - Parameter 3 (🧩 Behavior): Physics behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Set the breaking force of a joint** Set the breaking force of a joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Breaking force + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set clockwise angle limit of joint** Set clockwise angle limit of joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Clockwise angle limit (degrees) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set counter-clockwise angle limit of joint** Set counter-clockwise angle limit of joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Couter-clockwise angle limit (degrees) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable (or disable) angle limits on joint** Enable (or disable) angle limits on joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Enable angle limits + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable (or disable) motor of joint** Enable (or disable) motor of joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Enable motor + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Motor enabled (or disabled) on joint** Change if motor enabled (or disabled) on joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): MotorEnabled + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set motor rotation speed of joint** Set motor rotation speed of joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Motor rotation speed + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set motor strength of joint** Set motor strength (torque) of joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Motor strength + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Motor enabled (or disabled) on joint** Check if motor enabled (or disabled) on joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -130,32 +277,113 @@ Objects can get closer, but they cannot exceed the starting distance from each o **Break rope joint if it exceeds breaking force** Break rope joint if it exceeds breaking force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Object with joint + - Parameter 3 (🧩 Behavior): Physics behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Breaking force** Change the force required to break joint apart. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Damping ratio** Change the damping ratio of the object. Set a number between 0 and 1. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Frequency** Change the frequency of the object. Set a number between 0 and 60. Higher numbers represent a stiffer spring. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Max distance between objects** Change the max distance between objects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Breaking force** Compare the force required to break joint apart. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Damping ratio** Compare the damping ratio of the object. Set a number between 0 and 1. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Frequency** Compare the frequency of the object. Set a number between 0 and 60. Higher numbers represent a stiffer spring. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Max distance between objects** Compare the max distance between objects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -175,15 +403,41 @@ Also known as a static joint because the objects stay glued in the same relative **Break weld joint if it exceeds breaking force** Break weld joint if it exceeds breaking force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Object with joint + - Parameter 3 (🧩 Behavior): Physics behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Set the breaking force of a joint** Set the breaking force of a joint. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Breaking force + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set frequency of joint** Set frequency of joint. Range: 0 to 60 (or the maximum FPS of game). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Frequency + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- -*This page is an auto-generated reference page about the **Joint Connector** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Joint connector** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/jsonresource-loader/index.md b/docs/gdevelop5/extensions/jsonresource-loader/index.md index 1e08fdb220..0d8e14b659 100644 --- a/docs/gdevelop5/extensions/jsonresource-loader/index.md +++ b/docs/gdevelop5/extensions/jsonresource-loader/index.md @@ -3,14 +3,12 @@ Loads a JSON resource into a variable. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -26,12 +24,35 @@ NEVER use this to load your game.json into a variable - this would increase your **Load a JSON resource in a global variable** Loads a JSON resource into a global structure variable. +??? quote "See parameters" + + - Parameter 1 (jsonResource): The resource to load the JSON from + - Parameter 2 (🗄️ Global variable): The global variable to load the JSON to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Load a JSON resource in an object variable** Loads a JSON resource into an object structure variable. +??? quote "See parameters" + + - Parameter 1 (jsonResource): The resource to load the JSON from + - Parameter 2 (👾 Object): The object where to find the variable + - Parameter 3 (🗄️ Object variable): The object variable to load the JSON to + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Load a JSON resource in a scene variable** Loads a JSON resource into a scene structure variable. +??? quote "See parameters" + + - Parameter 1 (jsonResource): The resource to load the JSON from + - Parameter 2 (🗄️ Scene variable): The scene variable to load the JSON to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/jump3d/index.md b/docs/gdevelop5/extensions/jump3d/index.md index d89d5c88a3..7d8ad29386 100644 --- a/docs/gdevelop5/extensions/jump3d/index.md +++ b/docs/gdevelop5/extensions/jump3d/index.md @@ -1,27 +1,27 @@ -# 3D jump +# 3D jump (deprecated) Jump and fall along Z axis. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [gabrielzv1233](https://gd.games/gabrielzv1233), [TulenvakiProductions](https://gd.games/TulenvakiProductions). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [gabrielzv1233](https://gd.games/gabrielzv1233), [TulenvakiProductions](https://gd.games/TulenvakiProductions). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- It handles basic collisions with 3D boxes but rotations around X and Y axes are not supported. +This extension is deprecated. The [3D physics engine](https://wiki.gdevelop.io/gdevelop5/behaviors/physics3d) should be used instead. + !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. -## 3D jump +## 3D jump (deprecated) Jump and fall along Z axis. @@ -30,77 +30,274 @@ Jump and fall along Z axis. **Abort jump** Abort the current jump and stop the object vertically. This action doesn't have any effect when the character is not jumping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Land on the floor** Stop the object from falling and land on the floor. The object will start falling again the next frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Separate from platforms** Separate from walls and land on platforms. 3D boxes rotated around X and Y axes are not supported. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Platform + - Parameter 3 (🧩 Behavior): 3D capability + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Allow jumping again** When this action is executed, the object is able to jump again, even if it is in the air: this can be useful to allow a double jump for example. This is not a permanent effect: you must call again this action everytime you want to allow the object to jump (apart if it's on the floor). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Current falling speed** Change the current falling speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current jump speed** Change the current jump speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Gravity** Change the gravity of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Jump height** Change the jump height of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Jump sustain time** Change the jump sustain time of the object. Maximum time (in seconds) during which the jump strength is sustained if the jump key is held - allowing variable height jumps. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum falling speed** Change the maximum falling speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop falling when Z equals 0** Change if stop falling when Z equals 0. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): StopAtZero + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Simulate jump key press** Simulate a press of the jump key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Can jump** Check if the object can jump. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Current falling speed** Compare the current falling speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current jump speed** Compare the current jump speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current vertical speed** Compare the current speed of the object on Z axis. Its value is negative when the object falls. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Gravity** Compare the gravity of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is falling** Check if the object is falling.\nNote that the object can be flagged as jumping and falling at the same time: at the end of a jump, the fall speed becomes higher than the jump speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is jumping** Check if the object is jumping. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is on floor** Check if the object is on a platform. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Jump height** Compare the jump height of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Jump sustain time** Compare the jump sustain time of the object. Maximum time (in seconds) during which the jump strength is sustained if the jump key is held - allowing variable height jumps. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum falling speed** Compare the maximum falling speed of the object. Its value is always positive. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop falling when Z equals 0** Check if stop falling when Z equals 0. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -113,6 +310,7 @@ Check if stop falling when Z equals 0. | `Object.Jump3D::JumpSustainDurationMax()` | Return the jump sustain time of the object. Maximum time (in seconds) during which the jump strength is sustained if the jump key is held - allowing variable height jumps. || | `Object.Jump3D::MaxFallingSpeed()` | Return the maximum falling speed of the object. Its value is always positive. || + --- -*This page is an auto-generated reference page about the **3D jump** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **3D jump (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/konami-code/index.md b/docs/gdevelop5/extensions/konami-code/index.md index 1e5e556c14..4d0c569485 100644 --- a/docs/gdevelop5/extensions/konami-code/index.md +++ b/docs/gdevelop5/extensions/konami-code/index.md @@ -3,7 +3,7 @@ Allows to input the classic Konami Code ("Up, Up, Down, Down, Left, Right, Left, Right, B, A") into a scene for cheats and easter eggs. -**Authors and contributors** to this community extension: [Giampiero](https://gd.games/Giampiero). +**Authors and contributors** to this experimental extension: [Giampiero](https://gd.games/Giampiero). --- @@ -25,9 +25,17 @@ Allows to input the classic Konami Code ("Up, Up, Down, Down, Left, Right, Left, **Is Inputted** Checks if the Konami Code is correctly inputted. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Konami Code** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/language/index.md b/docs/gdevelop5/extensions/language/index.md index 469bdaecb3..57f8078b45 100644 --- a/docs/gdevelop5/extensions/language/index.md +++ b/docs/gdevelop5/extensions/language/index.md @@ -3,7 +3,7 @@ Get the preferred language of the user, set on their browser or device. -**Authors and contributors** to this community extension: [TheGemDev](https://gd.games/TheGemDev). +**Authors and contributors** to this experimental extension: [TheGemDev](https://gd.games/TheGemDev). --- @@ -18,6 +18,7 @@ Get the preferred language of the user, set on their browser or device. |-----|-----|-----| | `Language::Language()` | Returns a string representing the preferred language of the user.The format represents the language first, and usually the country where it's used. For example: "en" (English), "en-US" (English as used in the United States), "en-GB" (United Kingdom English), "es" (Spanish), "zh-CN" (Chinese as used in China), etc. || + --- *This page is an auto-generated reference page about the **Language** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/leaderboard-dialog/index.md b/docs/gdevelop5/extensions/leaderboard-dialog/index.md new file mode 100644 index 0000000000..0a9562d836 --- /dev/null +++ b/docs/gdevelop5/extensions/leaderboard-dialog/index.md @@ -0,0 +1,184 @@ +# Leaderboard dialog + + +Display the player score and allow to submit it to a leaderboard. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). + +--- + +Display the player score and allow to submit it to a leaderboard. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Leaderboard dialog + +Displays the player score and allows to submit it to a leaderboard. + +### Object actions + +**Best score** +Change the best score of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Default player name** +Change the default player name. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Leaderboard** +Change the leaderboard of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 Leaderboard Identifier (String)): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Score** +Change the score. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Title** +Change the title of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object conditions + +**Best score** +Compare the best score of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Default player name** +Compare the default player name. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Back button clicked** +Check if the back button of the dialog is clicked. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Next button clicked** +Check if the next button of the dialog is clicked. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Restart button clicked** +Check if the restart button of the dialog is clicked. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Score is submitted** +Check if the score has been sucessfully submitted by the dialog. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Leaderboard** +Compare the leaderboard of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 Leaderboard Identifier (String)): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Player name** +Compare the player name. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Score** +Compare the score. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.BestScore()` | Return the best score of the object. || +| `Object.DefaultPlayerName()` | Return the default player name. || +| `Object.LeaderboardId()` | Return the leaderboard of the object. || +| `Object.PlayerName()` | Return the player name. || +| `Object.Score()` | Return the score. || + + +--- + +*This page is an auto-generated reference page about the **Leaderboard dialog** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/linear-movement/index.md b/docs/gdevelop5/extensions/linear-movement/index.md index 964a1c6e14..4f1389cb03 100644 --- a/docs/gdevelop5/extensions/linear-movement/index.md +++ b/docs/gdevelop5/extensions/linear-movement/index.md @@ -3,13 +3,13 @@ Move objects on a straight line. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [Jurfix](https://gd.games/Jurfix). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [Jurfix](https://gd.games/Jurfix). --- Move objects on a straight line or according to their angle. -It can be used for simple enemies or bullets. +It can be used for simple enemies or bullets. It's usually not adapted for players (other behaviors are a better choice) or bullets fired with the actions provided by the "Fire Bullet" behavior (these bullets are already moved using a force). !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -20,14 +20,102 @@ It can be used for simple enemies or bullets. Move objects on a straight line. -_No expressions for this behavior._ +### Behavior actions +**Speed on X axis** +Change the speed on X axis of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Speed on Y axis** +Change the speed on Y axis of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Speed on X axis** +Compare the speed on X axis of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Speed on Y axis** +Compare the speed on Y axis of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.LinearMovement::SpeedX()` | Return the speed on X axis of the object. || +| `Object.LinearMovement::SpeedY()` | Return the speed on Y axis of the object. || ## Linear movement by angle Move objects ahead according to their angle. -_No expressions for this behavior._ +### Behavior actions + +**Speed** +Change the speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Speed** +Compare the speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.LinearMovementByAngle::Speed()` | Return the speed of the object. || --- diff --git a/docs/gdevelop5/all-features/extensions/linked-objects-tools.md b/docs/gdevelop5/extensions/link-tools/details.md similarity index 98% rename from docs/gdevelop5/all-features/extensions/linked-objects-tools.md rename to docs/gdevelop5/extensions/link-tools/details.md index 4a64e13a19..537ee03b0e 100644 --- a/docs/gdevelop5/all-features/extensions/linked-objects-tools.md +++ b/docs/gdevelop5/extensions/link-tools/details.md @@ -1,5 +1,5 @@ --- -title: Linked Objects Tools Extension +title: Details --- # Linked Objects Tools Extension diff --git a/docs/gdevelop5/all-features/extensions/hexagonalgridunitselection.png b/docs/gdevelop5/extensions/link-tools/hexagonalgridunitselection.png similarity index 100% rename from docs/gdevelop5/all-features/extensions/hexagonalgridunitselection.png rename to docs/gdevelop5/extensions/link-tools/hexagonalgridunitselection.png diff --git a/docs/gdevelop5/extensions/link-tools/index.md b/docs/gdevelop5/extensions/link-tools/index.md index 321ffb6086..621440e757 100644 --- a/docs/gdevelop5/extensions/link-tools/index.md +++ b/docs/gdevelop5/extensions/link-tools/index.md @@ -3,7 +3,7 @@ Conditions to use Linked Objects as a graph and a path finding movement behavior. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -29,28 +29,92 @@ For instance, it can be helpful for grid-based games like: **Link to neighbors on a hexagonal grid** Link to neighbors on a hexagonal grid. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (👾 Object): Neighbor + The 2 objects can't be the same. + - Parameter 3 (🔢 Number): Cell width + - Parameter 4 (🔢 Number): Cell height + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Link to neighbors on an isometric grid** Link to neighbors on an isometric grid. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (👾 Object): Neighbor + The 2 objects can't be the same. + - Parameter 3 (🔢 Number): Cell width + - Parameter 4 (🔢 Number): Cell height + - Parameter 5 (❓ Yes or No): Allows diagonals + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Link to neighbors on a rectangular grid** Link to neighbors on a rectangular grid. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (👾 Object): Neighbor + The 2 objects can't be the same. + - Parameter 3 (🔢 Number): Cell width + - Parameter 4 (🔢 Number): Cell height + - Parameter 5 (❓ Yes or No): Allows diagonals + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + ## Conditions **Can reach** Can reach through links. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Pick these objects... + - Parameter 2 (👾 Object): if they can reach this object + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Can reach with links limited by length** Can reach through a given number of links. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Pick these objects... + - Parameter 2 (👾 Object): if they can reach this object + - Parameter 3 (🔢 Number): Maximum link length + - Parameter 4 (string): Cost class + Leave empty to make everything crossable with cost = 1. It looks in the variable children of linktools_Cost. No child means not crossable, the cost can be 0 or 1. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Can reach with links limited by cost** Can reach through a given cost sum. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Pick these objects... + - Parameter 2 (👾 Object): if they can reach this object + - Parameter 3 (string): Initial length variable + Start to 0 if left empty + - Parameter 4 (🔢 Number): Maximum cost + - Parameter 5 (string): Cost class + Leave empty to make everything crossable with cost = 1. It looks in the variable children of linktools_Cost. No child means not crossable, the cost must be positive. + - Parameter 6 (🔢 Number): Maximum depth + - Parameter 7 (❓ Yes or No): Ignore first node cost + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `LinkTools::CostSum()` | Cost sum. || +| `LinkTools::CostSum(object)` | Cost sum. || +| | _👾 Object_ | Object | ## Link path finding @@ -61,36 +125,205 @@ The object will move from one object instance to another according to how they a **Forget the path** Forget the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Move to a position** Move the object to a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Crossable objects + - Parameter 3 (👾 Object): Destination objects + - Parameter 4 (string): Cost class + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + +**Acceleration** +Change the acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Angle offset** +Change the rotation offset applied when moving the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Rotate the object** +Enable or disable rotation of the object on the path. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Rotate + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Rotation speed** +Change the rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum speed** +Change the maximum speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions +**Acceleration** +Compare the acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Angle offset** +Compare the rotation offset applied when moving the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Destination reached** Check if the destination was reached. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is at a node** Check if the object position is the on a path node. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is moving** Check if the object is moving. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Path found** Check if a path has been found. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Object rotated** +Check if the object is rotated when traveling on its path. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Rotation speed** +Compare the rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum speed** +Compare the maximum speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| +| `Object.LinkPathFinding::Acceleration()` | Return the acceleration of the object. || +| `Object.LinkPathFinding::AngleOffset()` | Return the rotation offset applied when moving the object. || | `Object.LinkPathFinding::DestinationX()` | Destination X position. || | `Object.LinkPathFinding::DestinationY()` | Destination Y position. || | `Object.LinkPathFinding::NextNodeIndex()` | Next waypoint index. || | `Object.LinkPathFinding::NextNodeX()` | Next waypoint X position. || | `Object.LinkPathFinding::NextNodeY()` | Next waypoint Y position. || | `Object.LinkPathFinding::NodeCount()` | Get the number of waypoints on the path. || -| `Object.LinkPathFinding::NodeX()` | Waypoint X position. || -| `Object.LinkPathFinding::NodeY()` | Waypoint X position. || +| `Object.LinkPathFinding::NodeX(number)` | Waypoint X position. || +| | _🔢 Number_ | Waypoint index | +| `Object.LinkPathFinding::NodeY(number)` | Waypoint X position. || +| | _🔢 Number_ | Waypoint index | +| `Object.LinkPathFinding::RotationSpeed()` | Return the rotation speed of the object. || | `Object.LinkPathFinding::Speed()` | Speed of the object on the path. || +| `Object.LinkPathFinding::SpeedMax()` | Return the maximum speed of the object. || + --- diff --git a/docs/gdevelop5/all-features/extensions/isometricgrid.png b/docs/gdevelop5/extensions/link-tools/isometricgrid.png similarity index 100% rename from docs/gdevelop5/all-features/extensions/isometricgrid.png rename to docs/gdevelop5/extensions/link-tools/isometricgrid.png diff --git a/docs/gdevelop5/all-features/extensions/isometricgridselection.png b/docs/gdevelop5/extensions/link-tools/isometricgridselection.png similarity index 100% rename from docs/gdevelop5/all-features/extensions/isometricgridselection.png rename to docs/gdevelop5/extensions/link-tools/isometricgridselection.png diff --git a/docs/gdevelop5/extensions/load-image-from-url/index.md b/docs/gdevelop5/extensions/load-image-from-url/index.md index 26599cdcbd..ccb10d86b5 100644 --- a/docs/gdevelop5/extensions/load-image-from-url/index.md +++ b/docs/gdevelop5/extensions/load-image-from-url/index.md @@ -3,14 +3,12 @@ Adds multiple actions to load images from a URL into the game. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -26,9 +24,26 @@ Loading it into a resource will discard the old image that a resource was using **Load URL into an image resource** Replaces the image contained by a resource by a new one, from a URL. This will update all sprites displaying the resource. +??? quote "See parameters" + + - Parameter 1 (string): The URL to load the new image for the resource from + - Parameter 2 (imageResource): The resource to modify + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Load URL into a sprite** Replaces the image contained by a sprite by a new one, from a URL. This will only affect the sprite in question and only until the image in it is changed through its animation or another action, unless you also modify the resource. +??? quote "See parameters" + + - Parameter 1 (string): The URL to load the new image for the sprite from + - Parameter 2 (👾 Object): The object to modify + - Parameter 3 (❓ Yes or No): Modify the resource? + If yes, modifies the image contained in the resource of the sprite's current frame instead of just the sprite's displayed image. This makes the changes affect all other sprites that also display this resource, and allows the change to persist after changing animations or the current frame. + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/magnetic-effect/index.md b/docs/gdevelop5/extensions/magnetic-effect/index.md index 9922e02ba5..6ff7c151c7 100644 --- a/docs/gdevelop5/extensions/magnetic-effect/index.md +++ b/docs/gdevelop5/extensions/magnetic-effect/index.md @@ -3,14 +3,12 @@ Attract an object to another object, with customisable speed and distance. -**Authors and contributors** to this community extension: [Entropy](https://gd.games/Entropy). +**Authors and contributors** to this experimental extension: [Entropy](https://gd.games/Entropy). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,17 +28,43 @@ Attraction to another object, with customisable speed and distance. **Attraction to a target object** Attraction to a target object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Target Object + - Parameter 3 (🔢 Number): Distance (Default: 128) + - Parameter 4 (🔢 Number): Speed (Default: 48) + - Parameter 5 (❓ Yes or No): Permanent + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Stop attraction** Stop the attraction to the target object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is attracted to the target object** Check if the object is attracted to the target object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Magnetic Effect** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/make-it-rain/index.md b/docs/gdevelop5/extensions/make-it-rain/index.md index 64fcca190d..bb02e73995 100644 --- a/docs/gdevelop5/extensions/make-it-rain/index.md +++ b/docs/gdevelop5/extensions/make-it-rain/index.md @@ -3,14 +3,12 @@ Make an object rain from a selected direction or a selected object. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -34,27 +32,126 @@ Make an object rain from a selected direction or a selected object. **Make object rain** Make object rain from a selected direction. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Make this object rain + - Parameter 2 (🔢 Number): Rain object width + - Parameter 3 (🔢 Number): Rain object height + - Parameter 4 (🔢 Number): Raining speed (in pixel) + Example: 10 + - Parameter 5 (🔤 String): Rain direction (one of: "Top to bottom", "Bottom to top", "Left to right", "Right to left") + - Parameter 6 (🔢 Number): Respawning object timer speed (in seconds) + Example: 0.01 + - Parameter 7 (string): Timer name for each object + - Parameter 8 (🔤 Layer name (String)): Rain object at this layer + - Parameter 9 (🔢 Number): Create rain object at zorder + - Parameter 10 (🔢 Number): Rain intensity + - Parameter 11 (🔢 Number): Rain angle (in degree) + 90, for "Top to bottom". + -90, for "Bottom to top". + 0, for "Left to right". + 180, for "Right to left". + You can adjust the angle as you like but keep in mind the rain angle must be related to rain direction. + - Parameter 12 (❓ Yes or No): Delete the rain object when its out of the screen + (Recommended: Yes) + Setting this option to No might reduce your game performance. + + > Technical note: parameters 0, 13 are internal parameters handled by GDevelop. + **Make it rain from object** Make object rain from another object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Make this object rain + - Parameter 2 (🔢 Number): Rain object width + - Parameter 3 (🔢 Number): Rain object height + - Parameter 4 (👾 Object): Rain from this object + - Parameter 5 (🔢 Number): Raining speed (in pixel) + Example: 10 + - Parameter 6 (🔤 String): Rain from object at direction (one of: "Top to bottom", "Bottom to top", "Left to right", "Right to left") + - Parameter 7 (🔢 Number): Respawning object timer speed (in seconds) + Example: 0.01 + - Parameter 8 (string): Timer name for each object + - Parameter 9 (🔤 Layer name (String)): Rain object at this layer + - Parameter 10 (🔢 Number): Create rain object at zorder + - Parameter 11 (🔢 Number): Rain intensity + - Parameter 12 (🔢 Number): Rain angle (in degree) + 90, for "Top to bottom". + -90, for "Bottom to top". + 0, for "Left to right". + 180, for "Right to left". + You can adjust the angle as you like but keep in mind the rain angle must be related to rain direction. + - Parameter 13 (❓ Yes or No): Create rain object from object2 center + - Parameter 14 (❓ Yes or No): Delete the rain objects when its out of the screen + (Recommended: Yes) + Setting this option to No might reduce your game performance. + + > Technical note: parameters 0, 15 are internal parameters handled by GDevelop. + **Pause raining object (rain)** Pause raning object (rain). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Stop raining this object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Pause raining from object (cloud)** Pause raning from object (cloud). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Stop raining from this object (cloud) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Rain collision animation** Change rain animation when it collides with other object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Rain object + - Parameter 2 (👾 Object): Collided object + - Parameter 3 (🔢 Number): Rain animation after the collide + You can set the animation to 0 if you don't want or have rain animation (splash). + - Parameter 4 (❓ Yes or No): Change the rain position to surface when collision happen + - Parameter 5 (❓ Yes or No): Remove the rain object after its animation finished + - Parameter 6 (❓ Yes or No): Remove the rain object if it collides with the edge of the other object + - Parameter 7 (❓ Yes or No): Stop rain movement after the collide with the other object + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Resume raining object (rain)** Resume raining object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Start raining this object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Resume raining from object (cloud)** Resume raining object from object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Start raining this object (rain) + - Parameter 2 (👾 Object): Start raining from this object (cloud) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Stop moving rain** Could be used with collision condition. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Rain object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/marching-squares/index.md b/docs/gdevelop5/extensions/marching-squares/index.md index f075b2c8f8..69e8782f42 100644 --- a/docs/gdevelop5/extensions/marching-squares/index.md +++ b/docs/gdevelop5/extensions/marching-squares/index.md @@ -3,7 +3,7 @@ Allow to build a "scalar field" and draw contour lines of it: useful for fog of wars, liquid effects, paint the ground, etc... -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -32,71 +32,300 @@ Add to a Shape painter object and use the actions to draw a field. Useful for fo **Add a disk** Add a disk to the field. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Center X + - Parameter 3 (🔢 Number): Center Y + - Parameter 4 (🔢 Number): Radius + The spike height is 1 at this radius. + - Parameter 5 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + - Parameter 6 (🔤 String): Operation (one of: "Maximum", "Addition", "Subtraction") + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Add a hill** Add a hill to the field. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Center X + - Parameter 3 (🔢 Number): Center Y + - Parameter 4 (🔢 Number): Height + The hill height at the center, a value of 1 or less means a flat hill. + - Parameter 5 (🔢 Number): Radius + The hill height is 1 at this radius. + - Parameter 6 (🔢 Number): Opacity + Set to 1 to apply the hill instantly or repeat this action with a lower value to make is progressive. + - Parameter 7 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + - Parameter 8 (🔤 String): Operation (one of: "Maximum", "Addition", "Subtraction") + + > Technical note: parameter 9 are internal parameters handled by GDevelop. + **Add a line** Add a line to the field. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position of the start + - Parameter 3 (🔢 Number): Y position of the start + - Parameter 4 (🔢 Number): X position of the end + - Parameter 5 (🔢 Number): Y position of the end + - Parameter 6 (🔢 Number): Thickness + - Parameter 7 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + - Parameter 8 (🔤 String): Operation (one of: "Maximum", "Addition", "Subtraction") + + > Technical note: parameter 9 are internal parameters handled by GDevelop. + **Clamp the field** Cap every value of the field to a range. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Minimum + - Parameter 3 (🔢 Number): Maximum + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Clear the field** Clear the field by setting every values to 0. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Draw the contours** Draw the field contours. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Fill area** Fill an area of the field from a given location until a given height is reached. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Origin X + - Parameter 3 (🔢 Number): Origin Y + - Parameter 4 (🔢 Number): Maximum height + - Parameter 5 (🔢 Number): Contour thickness + - Parameter 6 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Mask a disk** Mask a disk to the field. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Center X + - Parameter 3 (🔢 Number): Center Y + - Parameter 4 (🔢 Number): Radius + The spike height is 1 at this radius. + - Parameter 5 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Mask a line** Mask a line to the field. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position of the start + - Parameter 3 (🔢 Number): Y position of the start + - Parameter 4 (🔢 Number): X position of the end + - Parameter 5 (🔢 Number): Y position of the end + - Parameter 6 (🔢 Number): Thickness + The spike height is 1 at this radius. + - Parameter 7 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + + > Technical note: parameter 8 are internal parameters handled by GDevelop. + **Merge a field** Apply a given operation on every value of the field using the value from the other field at the same position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Field object + - Parameter 3 (🧩 Behavior): Field behavior + - Parameter 4 (🔤 String): Operation (one of: "Maximum", "Addition", "Subtraction", "Minimum", "Multiplication", "Division") + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Area bounds** Change the field area bounds. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Left bound + - Parameter 3 (🔢 Number): Top bound + - Parameter 4 (🔢 Number): Right bound + - Parameter 5 (🔢 Number): Bottom bound + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Height of the cells** Change the height of the field cells. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Width of the cells** Change the width of the field cells. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Fill outside** Fill outside or inside of the contours. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Fill outside? + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Grid value** Change the field value at a grid point. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X grid index + - Parameter 3 (🔢 Number): Y grid index + - Parameter 4 (🔢 Number): Field value + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Contour threshold** Change the contour threshold. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Transform the field** Apply an affine on the field values. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Coefficient + - Parameter 3 (🔢 Number): Offset + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Update hitboxes** Update the field hitboxes. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Unfill area** Unfill an area of the field from a given location until a given height is reached. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Origin X + - Parameter 3 (🔢 Number): Origin Y + - Parameter 4 (🔢 Number): Minimum height + - Parameter 5 (🔢 Number): Contour thickness + - Parameter 6 (🔢 Number): Capping radius ratio + Small values allow quicker process, but can result to tearing. Try values around 8. + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + ### Behavior conditions **Field value** Check if a field is greater than a given value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position of the point + - Parameter 3 (🔢 Number): Y position of the point + - Parameter 4 (🔢 Number): Value + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Fill outside** Check if the contours are filled outside. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Point is inside** Check if a point is inside the contour. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position of the point + - Parameter 3 (🔢 Number): Y position of the point + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -110,11 +339,22 @@ Check if a point is inside the contour. | `Object.MarchingSquaresBehavior::ContourThreshold()` | The contour threshold. || | `Object.MarchingSquaresBehavior::DimensionX()` | The number of cells on the x axis. || | `Object.MarchingSquaresBehavior::DimensionY()` | The number of cells on the y axis. || -| `Object.MarchingSquaresBehavior::FieldValue()` | The field value at a given location. || -| `Object.MarchingSquaresBehavior::GridValue()` | The field value at a grid point. || -| `Object.MarchingSquaresBehavior::NormalX()` | The normal X coordinate at a given location. || -| `Object.MarchingSquaresBehavior::NormalY()` | The normal Y coordinate at a given location. || -| `Object.MarchingSquaresBehavior::NormalZ()` | The normal Z coordinate at a given location. || +| `Object.MarchingSquaresBehavior::FieldValue(number, number)` | The field value at a given location. || +| | _🔢 Number_ | X position of the point | +| | _🔢 Number_ | Y position of the point | +| `Object.MarchingSquaresBehavior::GridValue(number, number)` | The field value at a grid point. || +| | _🔢 Number_ | X grid index | +| | _🔢 Number_ | Y grid index | +| `Object.MarchingSquaresBehavior::NormalX(number, number)` | The normal X coordinate at a given location. || +| | _🔢 Number_ | X position of the point | +| | _🔢 Number_ | Y position of the point | +| `Object.MarchingSquaresBehavior::NormalY(number, number)` | The normal Y coordinate at a given location. || +| | _🔢 Number_ | X position of the point | +| | _🔢 Number_ | Y position of the point | +| `Object.MarchingSquaresBehavior::NormalZ(number, number)` | The normal Z coordinate at a given location. || +| | _🔢 Number_ | X position of the point | +| | _🔢 Number_ | Y position of the point | + --- diff --git a/docs/gdevelop5/extensions/maze-generator/index.md b/docs/gdevelop5/extensions/maze-generator/index.md index b4fe8f6bc1..279e324766 100644 --- a/docs/gdevelop5/extensions/maze-generator/index.md +++ b/docs/gdevelop5/extensions/maze-generator/index.md @@ -3,14 +3,12 @@ Create a maze made of a grid of rectangular cells. Walls are created randomly so that every cell is reachable through a random path through the maze. -**Authors and contributors** to this community extension: [Luxon5](https://gd.games/Luxon5). +**Authors and contributors** to this experimental extension: [Luxon5](https://gd.games/Luxon5). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -42,44 +40,146 @@ Finally, there is a **MazeObject** behavior that can be attached to wall or floo **Add a maze wall** Add a wall in a particular direction for a maze cell. +??? quote "See parameters" + + - Parameter 1 (string): Maze ID + - Parameter 2 (🔢 Number): Row Number + - Parameter 3 (🔢 Number): Column Number + - Parameter 4 (🔤 String): Wall Direction (one of: "LeftWall", "RightWall", "UpWall", "DownWall") + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Create Maze Corner Objects** For a previously created maze, create maze corner objects at the intersection point of maze cells. +??? quote "See parameters" + + - Parameter 1 (string): MazeID chosen during maze creation + - Parameter 2 (👾 Object): Corner Object + - Parameter 3 (string): Layer + - Parameter 4 (🔢 Number): Z Order + - Parameter 5 (🔢 Number): Resize Width of Corner (Optional) + - Parameter 6 (🔢 Number): Resize Height of Corner (Optional) + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Create Maze Floor Objects** For a previously created maze, create maze floor objects that will tile the cells of the maze. +??? quote "See parameters" + + - Parameter 1 (string): MazeID chosen during maze creation + - Parameter 2 (👾 Object): Floor Object + - Parameter 3 (string): Layer + - Parameter 4 (🔢 Number): Z Order + - Parameter 5 (🔢 Number): Resize Width (optional) + - Parameter 6 (🔢 Number): Resize Height (optional) + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Create Maze Wall Objects** For a previously created maze, create maze wall objects along the edges of the cells of the maze. +??? quote "See parameters" + + - Parameter 1 (string): MazeID chosen during maze creation + - Parameter 2 (👾 Object): Horizontal Wall Object + - Parameter 3 (👾 Object): Vertical Wall Object + - Parameter 4 (string): Layer + - Parameter 5 (🔢 Number): Z Order + - Parameter 6 (🔢 Number): Resize Width of Horizontal Wall (Optional) + - Parameter 7 (🔢 Number): Resize Height of Horizontal Wall (Optional) + - Parameter 8 (🔢 Number): Resize Width of Vertical Wall (Optional) + - Parameter 9 (🔢 Number): Resize Height of Vertical Wall (Optional) + + > Technical note: parameters 0, 10 are internal parameters handled by GDevelop. + **Find Maze Path** Finds a path through a maze between two cells, storing the result in a scene variable array. +??? quote "See parameters" + + - Parameter 1 (string): MazeID + - Parameter 2 (🔢 Number): Start Row + - Parameter 3 (🔢 Number): Start Column + - Parameter 4 (🔢 Number): End Row + - Parameter 5 (🔢 Number): End Column + - Parameter 6 (string): Path Name + This will be the name of the child array stored in the __MazeGeneratorPath scene structure variable + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Generate a maze** Specify the overall size of a maze, and the size of the tile "cells" inside the maze. Walls are randomly generated to form the maze. The maze is stored in memory, and can be referenced using a name called MazeID that is chosen here. The maze generator extension comes with other actions that reference this mazeID, which can be used to create actual wall and floor objects to place the maze into the scene. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Top-left point, X coordinate of maze in scene + - Parameter 2 (🔢 Number): Top-left point, Y coordinate of maze in scene + - Parameter 3 (🔢 Number): Width of whole maze (in pixels) + - Parameter 4 (🔢 Number): Height of whole maze (in pixels) + - Parameter 5 (🔢 Number): Cell Width (in pixels) + - Parameter 6 (🔢 Number): Cell Height (in pixels) + - Parameter 7 (string): Custom name for new maze (MazeID) + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Remove a maze wall** Remove a wall in a particular direction for a maze cell. +??? quote "See parameters" + + - Parameter 1 (string): Maze ID + - Parameter 2 (🔢 Number): Row Number + - Parameter 3 (🔢 Number): Column Number + - Parameter 4 (string): Wall Direction + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Conditions **Cell within a maze has a wall** Chosen cell within a maze has a wall in a particular direction. +??? quote "See parameters" + + - Parameter 1 (string): Maze ID + - Parameter 2 (🔢 Number): Row Number + - Parameter 3 (🔢 Number): Column Number + - Parameter 4 (🔤 String): Wall Direction (one of: "LeftWall", "RightWall", "UpWall", "DownWall") + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `MazeGenerator::MazeCellDepth()` | Returns how many cells away from a cell with at least three exits. || -| `MazeGenerator::MazeCellHeight()` | Height of maze cells. || -| `MazeGenerator::MazeCellWidth()` | Width of maze cells. || -| `MazeGenerator::MazeHeight()` | Height of whole maze. || -| `MazeGenerator::MazeNumCells()` | The number of cells (floor tiles) inside of a maze. || -| `MazeGenerator::MazeNumColumns()` | The number of columns in a maze. || -| `MazeGenerator::MazeNumRows()` | The number of rows in a maze. || -| `MazeGenerator::MazeNumWalls()` | The number of directions with walls. || -| `MazeGenerator::MazeWidth()` | Width of whole maze. || -| `MazeGenerator::MazeX()` | X position of maze. || -| `MazeGenerator::MazeY()` | Y position of maze. || +| `MazeGenerator::MazeCellDepth(string, number, number)` | Returns how many cells away from a cell with at least three exits. || +| | _string_ | MazeID | +| | _🔢 Number_ | Row Number | +| | _🔢 Number_ | Column Number | +| `MazeGenerator::MazeCellHeight(string)` | Height of maze cells. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeCellWidth(string)` | Width of maze cells. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeHeight(string)` | Height of whole maze. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeNumCells(string)` | The number of cells (floor tiles) inside of a maze. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeNumColumns(string)` | The number of columns in a maze. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeNumRows(string)` | The number of rows in a maze. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeNumWalls(string, number, number)` | The number of directions with walls. || +| | _string_ | MazeID chosen during maze creation | +| | _🔢 Number_ | Row Number | +| | _🔢 Number_ | Column Number | +| `MazeGenerator::MazeWidth(string)` | Width of whole maze. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeX(string)` | X position of maze. || +| | _string_ | Maze ID | +| `MazeGenerator::MazeY(string)` | Y position of maze. || +| | _string_ | Maze ID | ## Maze Object @@ -90,17 +190,49 @@ This behavior adds some helper functions to be used with Maze Generator extensio **Delete Maze Object** Delete the Maze Object, also updating the corresponding maze scene variables. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Maze object has particular row and column numbers** Maze object is in a certain row and column of a maze. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Row Number + - Parameter 3 (🔢 Number): Column Number + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Check mazeID of object** Check if maze object belongs to a certain maze, by the MazeID. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): MazeID of maze, set during maze creation + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Check Wall Direction of Maze Object** Check if maze object is a wall in a particular direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Wall Direction of Maze Object (one of: "LeftWall", "RightWall", "UpWall", "DownWall") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -110,6 +242,7 @@ Check if maze object is a wall in a particular direction. | `Object.MazeObject::MazeObjectRow()` | Return the row number of the maze object as a number. || | `Object.MazeObject::MazeObjectWallDirection()` | Return the wall direction of the maze object as a string (only exists for wall objects). || + --- *This page is an auto-generated reference page about the **Maze Generator** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/model9patch3d/index.md b/docs/gdevelop5/extensions/model9patch3d/index.md index c55dc1f3ec..c6102557aa 100644 --- a/docs/gdevelop5/extensions/model9patch3d/index.md +++ b/docs/gdevelop5/extensions/model9patch3d/index.md @@ -1,20 +1,18 @@ # 3D model 9-patch -3D plaforms and walls. +3D platforms and walls. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- -3D plaforms and walls that resize as 9-patch. Corners don't stretch and sides can be tiled. +3D platforms and walls that resize as 9-patch. Corners don't stretch and sides can be tiled. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -35,6 +33,7 @@ A 3D model with corners that don't stretch and sides that can be tiled. _No expressions for this object._ + --- *This page is an auto-generated reference page about the **3D model 9-patch** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/mouse-helper/index.md b/docs/gdevelop5/extensions/mouse-helper/index.md index 1ac0c53824..3060e39c53 100644 --- a/docs/gdevelop5/extensions/mouse-helper/index.md +++ b/docs/gdevelop5/extensions/mouse-helper/index.md @@ -3,15 +3,12 @@ Turn any object into a cursor. -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). --- This extension allows to replace the cursor with an object. -Breaking change of the version 2.0.0: - -- The button behavior has been removed. The button object can be used instead. Some ready to use buttons can be downloaded from the [Buttons pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=menu-buttons-menu-buttons) of the asset store. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -25,6 +22,7 @@ Turn any object into a mouse cursor. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Cursor object** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/mouse-pointer-lock/index.md b/docs/gdevelop5/extensions/mouse-pointer-lock/index.md index 8123f6e678..8a60bd9b0e 100644 --- a/docs/gdevelop5/extensions/mouse-pointer-lock/index.md +++ b/docs/gdevelop5/extensions/mouse-pointer-lock/index.md @@ -3,7 +3,7 @@ This behavior removes the limit on the distance the mouse can move and hides the cursor. -**Authors and contributors** to this community extension: [PANDAKO](https://gd.games/PANDAKO). +**Authors and contributors** to this experimental extension: [PANDAKO](https://gd.games/PANDAKO), [D8H](https://gd.games/D8H). --- @@ -26,20 +26,227 @@ Use `MovementX()` and `MovementY()` instead. **Exit pointer lock** Unlocks the mouse pointer and show it. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Request Pointer Lock** Lock the mouse pointer to hide it. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Speed factor for touch movement** +Change the speed factor for touch movement. + +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions +**Locked pointer is moving** +Check if the locked pointer is moving. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Pointer X movement** +Compare the movement of the locked pointer on the X axis. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Pointer Y movement** +Compare the movement of the pointer on the Y axis. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Speed factor for touch movement** +Compare the speed factor for touch movement. + +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Pointer is locked** Check if the mouse pointer is locked. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `MousePointerLock::MovementX()` | Get the movement of the pointer on the X-axis. || -| `MousePointerLock::MovementY()` | Get the movement of the pointer on the Y-axis. || +| `MousePointerLock::MovementX()` | Return the movement of the locked pointer on the X axis. || +| `MousePointerLock::MovementY()` | Return the movement of the pointer on the Y axis. || +| `MousePointerLock::TouchSpeedFactor()` | Return the speed factor for touch movement. || + +## First person camera mouse mapper + +Control camera rotations with a mouse. + +### Behavior actions + +**Horizontal rotation speed factor** +Change the horizontal rotation speed factor of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Z position offset** +Change the z position offset of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical camera angle** +Change the maximum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Minimum vertical camera angle** +Change the minimum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation speed factor** +Change the vertical rotation speed factor of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Horizontal rotation speed factor** +Compare the horizontal rotation speed factor of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Z position offset** +Compare the z position offset of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical camera angle** +Compare the maximum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Minimum vertical camera angle** +Compare the minimum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation speed factor** +Compare the vertical rotation speed factor of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.FirstPersonPointerMapper::HorizontalSpeed()` | Return the horizontal rotation speed factor of the object. || +| `Object.FirstPersonPointerMapper::OffsetZ()` | Return the z position offset of the object. || +| `Object.FirstPersonPointerMapper::VerticalAngleMax()` | Return the maximum vertical camera angle of the object. || +| `Object.FirstPersonPointerMapper::VerticalAngleMin()` | Return the minimum vertical camera angle of the object. || +| `Object.FirstPersonPointerMapper::VerticalSpeed()` | Return the vertical rotation speed factor of the object. || + --- diff --git a/docs/gdevelop5/extensions/mqtt/index.md b/docs/gdevelop5/extensions/mqtt/index.md index a6a5d35c87..dcf4fa2857 100644 --- a/docs/gdevelop5/extensions/mqtt/index.md +++ b/docs/gdevelop5/extensions/mqtt/index.md @@ -3,17 +3,17 @@ An MQTT client for GDevelop: allow connections to a MQTT server and send/receive messages. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- This extension wraps [MQTT.js](https://github.com/mqttjs/MQTT.js) to allow connections to a MQTT server and communication via pub/sub. The only transport method is Websockets. Make sure to use a broker that support those! -# Dataloss +## Dataloss The dataloss let you chose how to handle data. Due to how the GDevelop event loop is made, only one message per topic can be processed per frame. When dataloss is on, when you get 2 messages from one topic in one frame, only the latest one is remembered. When it is off, the first message is processed and the second is queued for the next frame. -# QoS (Quality of service) +## QoS (Quality of service) Here is how QoS works: @@ -24,6 +24,10 @@ Here is how QoS works: About data consumption: QoS 2 will consume more than QoS 1, which will consume more than QoS 0. +## Test Broker + +You can find a free test broker server over at https://test.mosquitto.org/ - keep in mind, anyone can read and write data sent there, and it offers no uptime guarantees! + !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -32,33 +36,92 @@ About data consumption: QoS 2 will consume more than QoS 1, which will consume m **Connect to a broker** Connects to an MQTT broker. +??? quote "See parameters" + + - Parameter 1 (string): Host port + - Parameter 2 (string): Settings as JSON + You can find the list of settings at [the MQTT.js docs](https://github.com/mqttjs/MQTT.js/#client). + An example of valid configuration would be `"{\"clientId\": \"myUserName\"}"`. + - Parameter 3 (❓ Yes or No): Use secure WebSockets? + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Disconnect from broker** Disconnects from the current MQTT broker. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Force end the connection? + By default, MQTT waits for pending messages or messages in the process of being sent to finish being sent before ending the connection. Use this to cancel any request and immediately shutdown the connection. + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Publish message** Publishes a message on a topic. +??? quote "See parameters" + + - Parameter 1 (string): Text to publish + - Parameter 2 (string): Topic to publish to + - Parameter 3 (🔢 Number): The QoS + See [this](https://github.com/mqttjs/MQTT.js#qos) for more details. + - Parameter 4 (❓ Yes or No): Should the message be retained? + When a message is retained, it will be sent to every client that subscribe to the topic. Only one message can be retained per topic, if another retained message is sent it will overwrite the previous one. + Read more [here](https://www.hivemq.com/blog/mqtt-essentials-part-8-retained-messages/#retained-messages). + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Subscribe to a topic** Subcribe to a topic. All messages published on that topic will be received. +??? quote "See parameters" + + - Parameter 1 (string): The topic to subscribe to + - Parameter 2 (🔢 Number): The QoS + See https://github.com/mqttjs/MQTT.js#qos for more details + - Parameter 3 (❓ Yes or No): Is dataloss allowed? + See https://wiki.gdevelop.io/gdevelop5/all-features/p2p#choosing_if_you_want_to_activate_data_loss_mode for more details + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Unsubscribe from a topic** Unsubcribe from a topic. No more messages from this topic will be received. +??? quote "See parameters" + + - Parameter 1 (string): The topic to subscribe to + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Is connected to a broker?** Triggers if the client is connected to an MQTT broker server. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **On message** Triggers whenever a message was received. Note that you first need to subcribe to a topic in order to get messages from it. +??? quote "See parameters" + + - Parameter 1 (string): The topic to listen to + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `MQTT::GetLastMessage()` | Get the last received message of a topic. || +| `MQTT::GetLastMessage(string)` | Get the last received message of a topic. || +| | _string_ | The topic to get the message from | | `MQTT::getCurrentError()` | Gets the last error. Returns an empty string if there was no errors. || + --- *This page is an auto-generated reference page about the **MQTT Client (advanced)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/multiplayer-custom-lobbies/index.md b/docs/gdevelop5/extensions/multiplayer-custom-lobbies/index.md new file mode 100644 index 0000000000..bab49f327a --- /dev/null +++ b/docs/gdevelop5/extensions/multiplayer-custom-lobbies/index.md @@ -0,0 +1,36 @@ +# Multiplayer custom lobbies + + +Custom lobbies for built-in multiplayer. + +**Authors and contributors** to this experimental extension: [Jurfix](https://gd.games/Jurfix). + +--- + +Customize the interface of multiplayer lobbies. + +There are ready-to-use custom lobbies in the asset-store [lobbies pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=multiplayer-custom-lobbies-multiplayer-custom-lobbies). + +Joining will only work if the "join after game starts" setting is enabled, as the game automatically starts after joining a lobby. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Multiplayer custom lobbies + +Customize the interface of multiplayer lobbies. + +Joining will only work if the "join after game starts" setting is enabled, as the game automatically starts after joining a lobby. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.LastError()` | Return last error. || + + +--- + +*This page is an auto-generated reference page about the **Multiplayer custom lobbies** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/multitouch-joystick/add_joystick_to_ui_layer.gif b/docs/gdevelop5/extensions/multitouch-joystick/add_joystick_to_ui_layer.gif deleted file mode 100644 index 1e89d8744f..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/add_joystick_to_ui_layer.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/add_multitouch_button_behavior.gif b/docs/gdevelop5/extensions/multitouch-joystick/add_multitouch_button_behavior.gif deleted file mode 100644 index 035f9d2565..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/add_multitouch_button_behavior.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/add_multitouch_joystick_behavior.gif b/docs/gdevelop5/extensions/multitouch-joystick/add_multitouch_joystick_behavior.gif deleted file mode 100644 index 593510d26e..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/add_multitouch_joystick_behavior.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/index.md b/docs/gdevelop5/extensions/multitouch-joystick/index.md deleted file mode 100644 index 9974651e51..0000000000 --- a/docs/gdevelop5/extensions/multitouch-joystick/index.md +++ /dev/null @@ -1,140 +0,0 @@ -# Multitouch joystick and buttons (deprecated) - - -Activate a joystick or buttons that can be controlled by interacting with a touchscreen. - -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [MelonDev](https://gd.games/MelonDev), [xellix](https://gd.games/xellix). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -Users can interact with the multitouch joystick to specify angle and force values. These values can be used to control other objects in the scene such as movement and rotation, such as for twin-stick shooter games. - -Mulitouch buttons can be used whenever a game allows the user to press multiple locations at once. - -This extension is deprecated. Please install the new extension with the same name and remove this one after replacing the actions, conditions and expressions in your project. - -How to use: - - -- Add the joystick behavior to a sprite that will be the joystick -- Place the joystick object on the scene -- Run the "Activate joystick" action on every frame and specify the thumb object -- The joystick thumb object will automatically be created and moved - -Tips: - - -- Use "Simulate a touch" functions to provide mouse and gamepad controls -- More than one joystick or button can be used at the same time -- Joystick and thumb objects should have all sides the same length -- Thumb object must be smaller than the joystick object - -[Read more...](/gdevelop5/extensions/multitouch-joystick/setup) - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Conditions - -**Joystick pushed in a direction (4-way)** -Check if joystick is pushed in a given direction. - -**Joystick pushed in a direction (8-way)** -Check if joystick is pushed in a given direction. - -**Multitouch controller button pressed** -Check if a button is pressed on a gamepad. - -**Multitouch controller button released** -Check if a button is released on a gamepad. - -**Joystick force** -Compare the percentage the thumb has been pulled away from the joystick center (Range: 0 to 1). - -## Expressions - -| Expression | Description | | -|-----|-----|-----| -| `MultitouchJoystick::JoystickAngle()` | Return the angle the joystick is pointing towards (Range: -180 to 180). || -| `MultitouchJoystick::JoystickForce()` | Return the percentage the thumb has been pulled away from the joystick center (Range: 0 to 1). || - -## Multitouch button (deprecated) - -Detect button presses made from a touchscreen. - -### Behavior conditions - -**Button pressed** -Check if button is pressed. - -**Button released** -Check if button is released. - -_No expressions for this behavior._ - - -## Multitouch Joystick (deprecated) - -Activate a joystick that can be controlled by interacting with a touchscreen. - -### Behavior actions - -**Animate multitouch joystick** -Animate multitouch joystick. - -**Enable (or disable) floating on a joystick** -Enable (or disable) floating on a joystick. - -**Change joystick to pressed** -Change joystick to pressed. - -**Simulate a touch ended** -Simulate a touch ended. - -**Simulate a touch on joystick (based on angle and force)** -Simulate a touch on joystick (based on angle and force). Can be used for gamepad controls. - -**Simulate a touch on joystick (based on position)** -Simulate a touch on joystick (based on position). Can be used for mouse controls. - -### Behavior conditions - -**Joystick force** -Check if joystick force is greater or equal to a value. - -**Joystick pushed in a direction (4-way movement)** -Check if joystick is pushed in a given direction. - -**Joystick pushed in a direction (8-way movement)** -Check if joystick is pushed in a given direction. - -**Check if joystick is floating** -Check if joystick is floating. - -**Joystick pressed** -Check if a joystick is pressed. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.MultitouchJoystick::JoystickAngle()` | Angle the joystick is pointing towards (Range: -180 to 180). || -| `Object.MultitouchJoystick::JoystickForce()` | Percentage the thumb has been pulled away from the joystick center (Range: 0 to 1). || - -## Platformer multitouch controller mapper (deprecated) - -Control a platformer character with a multitouch controller. - -_No expressions for this behavior._ - - ---- - -*This page is an auto-generated reference page about the **Multitouch joystick and buttons (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/multitouch-joystick/install_multitouch_joystick.gif b/docs/gdevelop5/extensions/multitouch-joystick/install_multitouch_joystick.gif deleted file mode 100644 index 653f2756f1..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/install_multitouch_joystick.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_action.gif b/docs/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_action.gif deleted file mode 100644 index 64852ab3a9..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_action.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_network_preview.gif b/docs/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_network_preview.gif deleted file mode 100644 index 5f61d4fc56..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_network_preview.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/multitouchbuttonconditions.gif b/docs/gdevelop5/extensions/multitouch-joystick/multitouchbuttonconditions.gif deleted file mode 100644 index 5f617eb551..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/multitouchbuttonconditions.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/place_multitouch_button.gif b/docs/gdevelop5/extensions/multitouch-joystick/place_multitouch_button.gif deleted file mode 100644 index 91adea2d54..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/place_multitouch_button.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/rotateandmovespaceshipwithjoystick.gif b/docs/gdevelop5/extensions/multitouch-joystick/rotateandmovespaceshipwithjoystick.gif deleted file mode 100644 index 281d8778ba..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/rotateandmovespaceshipwithjoystick.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/select_multitouch_joystick_objects.gif b/docs/gdevelop5/extensions/multitouch-joystick/select_multitouch_joystick_objects.gif deleted file mode 100644 index c25c9a3fa1..0000000000 Binary files a/docs/gdevelop5/extensions/multitouch-joystick/select_multitouch_joystick_objects.gif and /dev/null differ diff --git a/docs/gdevelop5/extensions/multitouch-joystick/setup.md b/docs/gdevelop5/extensions/multitouch-joystick/setup.md deleted file mode 100644 index ebed679daa..0000000000 --- a/docs/gdevelop5/extensions/multitouch-joystick/setup.md +++ /dev/null @@ -1,154 +0,0 @@ ---- -title: Setup ---- -# Multitouch Joystick and Buttons - -The Multitouch Joystick extension allows players to select a direction and magnitude simply by dragging a virtual joystick that is displayed on the screen. - -More than one joystick can be used at the same time. For instance, a twin stick shooter uses one joystick for player movement and the other joystick controls rotation of the player. - -!!! note - - This page is outdated. The easiest way to setup a joystick is to insert one from the [Multitouch Joysticks asset pack](https://gdevelop.io/asset-store/free/multitouch-joysticks-multitouch-joysticks) or create a new **Multitouch Joystick** from scratch. Learn more on [this page](/gdevelop5/objects/multitouch-joystick). - -!!! note - - [Open the Multitouch Joystick game example](https://gdevelop.io/game-example/virtual-joystick) - -## How to add a Multitouch Joystick to a game - -### 1) Install the "Multitouch Joystick" extension - -- Click on "Project Manager" -- Click on "Create or Search for new extensions" -- Search for "joystick" and hit "Enter" -- Click on "Multitouch joystick and buttons" -- Click "Install" -- Click "Close" - -![](/gdevelop5/extensions/multitouch-joystick/install_multitouch_joystick.gif) - -### 2) Choose two objects to be used by this extension - -- **Joystick:** The position and size of this object defines the area where the joystick thumb can move. This often looks like the outline of a circle. - -  - -- **Joystick thumb:** This object moves to follow where the player is touching. This often looks like a solid circle. - -![](/gdevelop5/extensions/multitouch-joystick/select_multitouch_joystick_objects.gif) - -### 3) Place joystick object in the scene - -- Drag the "joystick" object into the scene -- Create new layer called "UI" -- Select "joystick" object and move it to the "UI" layer -- This prevents the joystick from moving even if other layers move - -!!! note - - The Joystick Thumb is automatically created by the Multitouch Joystick extension. It does not need to be added to the scene. - -![](/gdevelop5/extensions/multitouch-joystick/add_joystick_to_ui_layer.gif) - -### 4) Add "Multitouch Joystick" behavior to the Joystick object. - -- Double-click on your "Joystick" object - Click on "Behaviors" tab - Click "Add a behavior" - Search for "joystick" and select "Multitouch Joystick" - Select "Floating" if you want the player to be able to move the joystick position - Click "Apply" - -![](/gdevelop5/extensions/multitouch-joystick/add_multitouch_joystick_behavior.gif) - -### 5) In the event sheet, add the action "Activate multitouch joystick" - -- Click on the tab that ends with "(Events)" -- Click "Add a new event" -- Click "Add action" -- Select "Joystick" object -- Select "Activate multitouch joystick" -- Select "Joystick thumb" object -- Click "OK" - -!!! note - - The "Activate multitouch joystick" action needs to run every on frame - -![](/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_action.gif) - -### 6) Test joystick on a touchscreen device - -- Click on "Advanced Preview Options" button (next to "Preview" button) -- Click "Start network preview (Preview over WiFi/LAN)" -- Use a web-browser on a touchscreen device to test the game using the displayed IP address and port -- The joystick thumb should move towards any touches that start on the joystick - -![](/gdevelop5/extensions/multitouch-joystick/multitouch_joystick_network_preview.gif) - -### 7) Use expression and conditions to take actions based on the state of the joystick - -**Conditions:** - -- Joystick force (range: 0 to 1) -- Joystick pushed in a direction (Left, Right, Up, Down) -- Check if joystick floating is enabled (Yes, No) -- Joystick pressed (Check if the user is touching the joystick) - -**Expressions:** - -- MyJoystick.MultitouchJoystick::JoystickAngle() - -1. Range: -180 to 180 - -- MyJoystick.MultitouchJoystick::JoystickForce() - -1. Range: 0 to 1 - -**Controlling an object with joystick** - -- Add an object to by controlled by the joystick -- Rotate object based on the value of `JoystickAngle()` -- Apply a force to move object based on the values of `JoystickAngle()` and `JoystickForce()` - -![](/gdevelop5/extensions/multitouch-joystick/rotateandmovespaceshipwithjoystick.gif) - -## How to add a Multitouch Button to a game - -Multitouch buttons can allow a player to press a touchscreen in multiple places at the same time. - -### 1) Install the "Multitouch Joystick" extension - -- Click on "Project Manager" -- Click on "Create or Search for new extensions" -- Search for "joystick" and hit "Enter" -- Click on "Multitouch joystick and buttons" -- Click "Install" -- Click "Close" - -![](/gdevelop5/extensions/multitouch-joystick/install_multitouch_joystick.gif) - -### 2) Add the "Multitouch button" behavior to the object - -- Double-click on your "Button" object - Click on "Behaviors" tab - Click "Add a behavior" - Search for "button" and select "Multitouch button" - Click "Apply" - -![](/gdevelop5/extensions/multitouch-joystick/add_multitouch_button_behavior.gif) - -### 3) Place a multitouch button object on the scene - -- Drag the “button” object into the scene -- Create new layer called “UI” -- Select “button” object and move it to the “UI” layer -- This prevents the button from moving even if other layers move - -![](/gdevelop5/extensions/multitouch-joystick/place_multitouch_button.gif) - -### 4) In the event sheet, use conditions to trigger actions based on the state of the button - -**Conditions:** - -- Button is pressed - Button is released - -![](/gdevelop5/extensions/multitouch-joystick/multitouchbuttonconditions.gif) - -## FAQ - -Q: Does the joystick thumb need the "Draggable" behavior? - -A: No, it is not needed (and it could cause problems). diff --git a/docs/gdevelop5/extensions/nav-mesh-pathfinding/index.md b/docs/gdevelop5/extensions/nav-mesh-pathfinding/index.md index a135897a01..2c51d01740 100644 --- a/docs/gdevelop5/extensions/nav-mesh-pathfinding/index.md +++ b/docs/gdevelop5/extensions/nav-mesh-pathfinding/index.md @@ -3,14 +3,12 @@ Pathfinding allows to compute an efficient path for objects, avoiding obstacles on the way. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -35,17 +33,50 @@ Change the animation according to the movement direction. **Animation name** Change the animation name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Scale animation according to speed** Change whether the animation is scaled according to speed or not. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): IsScalingAnimation + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Animation name** Compare the animation name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Scale animation according to speed** Check if the animation is scaled according to speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -59,70 +90,250 @@ Move objects to a target in straight lines while avoiding all objects that are f ### Behavior actions **Draw navigation mesh** -Draw the navigation mesh used for the object. +Draw the navigation mesh used for the object. +This action must be used after "Move to a position". + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Shape painter + + > Technical note: parameter 3 are internal parameters handled by GDevelop. **Acceleration** Change the acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Angle offset** Change the angle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation speed** Change the rotation speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Collision shape** Change the collision shape of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "Bounding disk", "Dot at center") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Move to a position** Move the object to a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Destination X position + - Parameter 3 (🔢 Number): Destination Y position + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Extra border size** Change the extra border size of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum speed** Change the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotate object** Enable or disable the rotation of the object when following its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Rotate object + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Acceleration** Compare the acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Angle offset** Compare the angle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation speed** Compare the rotation speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Collision shape** Compare the collision shape of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "Bounding disk", "Dot at center") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Destination reached** Check if the destination was reached. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Extra border size** Compare the extra border size of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is moving** Check if the object is moving on a path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Maximum speed** Compare the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Angle of movement on its path** Compare the angle of movement of an object on its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle (in degrees) + - Parameter 3 (🔢 Number): Tolerance (in degrees) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Path found** Check if a path has been found. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Rotate object** Check if the object should rotate when following its path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Speed on the path** Compare the number of waypoints on the path. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -140,8 +351,10 @@ Compare the number of waypoints on the path. | `Object.NavMeshPathfindingBehavior::NextNodeX()` | Return the next waypoint X position. || | `Object.NavMeshPathfindingBehavior::NextNodeY()` | Return the next waypoint Y position. || | `Object.NavMeshPathfindingBehavior::NodeCount()` | Get the number of waypoints on the path. || -| `Object.NavMeshPathfindingBehavior::NodeX()` | Return a waypoint X position. || -| `Object.NavMeshPathfindingBehavior::NodeY()` | Return a waypoint Y position. || +| `Object.NavMeshPathfindingBehavior::NodeX(number)` | Return a waypoint X position. || +| | _🔢 Number_ | Node index (start at 0) | +| `Object.NavMeshPathfindingBehavior::NodeY(number)` | Return a waypoint Y position. || +| | _🔢 Number_ | Node index (start at 0) | | `Object.NavMeshPathfindingBehavior::PreviousNodeX()` | Return the previous waypoint X position. || | `Object.NavMeshPathfindingBehavior::PreviousNodeY()` | Return the previous waypoint Y position. || | `Object.NavMeshPathfindingBehavior::Speed()` | Return the number of waypoints on the path. || @@ -150,40 +363,68 @@ Compare the number of waypoints on the path. Flag objects as being an obstacle for pathfinding. -### Behavior actions +### Behavior conditions **Area bottom bound** -Change the area bottom bound. The bottom bound of the area where objects can go in the scene (default to the game resolution). While an object is needed, this will apply to all objects using the behavior. +Compare the area bottom bound. The bottom bound of the area where objects can go in the scene (default to the game resolution). While an object is needed, this will apply to all objects using the behavior. -**Area left bound** -Change the area left bound. The left bound of the area where objects can go in the scene. While an object is needed, this will apply to all objects using the behavior. +??? quote "See parameters" -**Area right bound** -Change the area right bound. The right bound of the area where objects can go in the scene (default to the game resolution). While an object is needed, this will apply to all objects using the behavior. + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare -**Area top bound** -Change the area top bound. The top bound of the area where objects can go in the scene. While an object is needed, this will apply to all objects using the behavior. + > Technical note: parameter 4 are internal parameters handled by GDevelop. -**Cell size** -Change the cell size for obstacle collision mask rasterization. While an object is needed, this will apply to all objects using the behavior. +**Area left bound** +Compare the area left bound. The left bound of the area where objects can go in the scene. While an object is needed, this will apply to all objects using the behavior. -### Behavior conditions +??? quote "See parameters" -**Area bottom bound** -Compare the area bottom bound. The bottom bound of the area where objects can go in the scene (default to the game resolution). While an object is needed, this will apply to all objects using the behavior. + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare -**Area left bound** -Compare the area left bound. The left bound of the area where objects can go in the scene. While an object is needed, this will apply to all objects using the behavior. + > Technical note: parameter 4 are internal parameters handled by GDevelop. **Area right bound** Compare the area right bound. The right bound of the area where objects can go in the scene (default to the game resolution). While an object is needed, this will apply to all objects using the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Area top bound** Compare the area top bound. The top bound of the area where objects can go in the scene. While an object is needed, this will apply to all objects using the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Cell size** Compare the cell size for obstacle collision mask rasterization. While an object is needed, this will apply to all objects using the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -194,6 +435,7 @@ Compare the cell size for obstacle collision mask rasterization. While an object | `Object.NavMeshPathfindingObstacleBehavior::AreaTopBound()` | Return the area top bound. The top bound of the area where objects can go in the scene. While an object is needed, this will apply to all objects using the behavior. || | `Object.NavMeshPathfindingObstacleBehavior::CellSize()` | Return the cell size for obstacle collision mask rasterization. While an object is needed, this will apply to all objects using the behavior. || + --- *This page is an auto-generated reference page about the **Navigation mesh pathfinding (experimental)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/newgrounds-api/index.md b/docs/gdevelop5/extensions/newgrounds-api/index.md index b2dbeb531f..92645d2167 100644 --- a/docs/gdevelop5/extensions/newgrounds-api/index.md +++ b/docs/gdevelop5/extensions/newgrounds-api/index.md @@ -3,14 +3,12 @@ Allows developers to use newgrounds API. -**Authors and contributors** to this community extension: [planktonfun](https://gd.games/planktonfun). +**Authors and contributors** to this experimental extension: [planktonfun](https://gd.games/planktonfun). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -52,23 +50,61 @@ StringExpressions: **Load Newgrounds API** Load Newgrounds API. +??? quote "See parameters" + + - Parameter 1 (string): App ID (You can find this in your newground game edit page) + - Parameter 2 (string): Encrypt Key (You can find this in your newground game edit page) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Login to Newgrounds** Login to Newgrounds (A webpage popup will display). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Logout from Newgrounds** Logout from Newgrounds. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Post Score on Newgrounds** Post Score on Newgrounds (you can create scoreboards from the game edit page on newgrounds). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Scoreboard Id + - Parameter 2 (🔢 Number): Score Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Unlock a game Medal** Unlock a game Medal (you can create medals from the game edit page on newgrounds). +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Medal ID + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **User Is logged In?** User Is logged In?. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -79,6 +115,7 @@ User Is logged In?. | `NewgroundsAPI::RetrievePlayerName()` | Get Newgrounds Player Name. || | `NewgroundsAPI::RetrieveScoreBoardList()` | Get Newgrounds Score Board List. || + --- *This page is an auto-generated reference page about the **Newgrounds API** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/noise/index.md b/docs/gdevelop5/extensions/noise/index.md index 897c8172eb..0263b53c59 100644 --- a/docs/gdevelop5/extensions/noise/index.md +++ b/docs/gdevelop5/extensions/noise/index.md @@ -3,7 +3,7 @@ Generate noise values for procedural generation. -**Authors and contributors** to this community extension: [Add00](https://gd.games/Add00), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [Add00](https://gd.games/Add00), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). --- @@ -32,47 +32,133 @@ Version 2.0.0 compatibility break: **Create a noise generator** Create a noise generator with default settings (frequency = 1, octaves = 1, persistence = 0.5, lacunarity = 2). +??? quote "See parameters" + + - Parameter 1 (string): Generator name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Delete a noise generator** Delete a noise generators and loose its settings. +??? quote "See parameters" + + - Parameter 1 (string): Generator name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Delete all noise generators** Delete all noise generators and loose their settings. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Noise base frequency** Change the base frequency used for noise generation. A lower frequency will zoom in the noise. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Frequency + - Parameter 2 (string): Generator name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Noise lacunarity** Change the lacunarity used for noise generation. At its default value "2", it doubles the frequency at each octave. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Lacunarity + - Parameter 2 (string): Generator name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Noise looping period on X** Change the looping period on X used for noise generation. The noise will wrap-around on X. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Looping period on X + - Parameter 2 (string): Generator name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Noise looping period on Y** Change the looping period on Y used for noise generation. The noise will wrap-around on Y. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Looping period on Y + - Parameter 2 (string): Generator name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Noise octaves** Change the number of octaves used for noise generation. It can be seen as layers of noise with different zoom. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Octaves + - Parameter 2 (string): Generator name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Noise persistence** Change the persistence used for noise generation. At its default value "0.5", it halves the noise amplitude at each octave. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Persistence + - Parameter 2 (string): Generator name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Noise seed** The seed is a number used to generate the random noise. Setting the same seed will result in the same random noise generation. It's for example useful to generate the same world, by saving this seed value and reusing it later to generate again a world. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Seed + 15 digits numbers maximum + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `Noise::Frequency()` | The base frequency used for noise generation. || -| `Noise::Lacunarity()` | The lacunarity used for noise generation. || -| `Noise::Noise1d()` | Generate a number between -1 and 1 from 1 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || -| `Noise::Noise2d()` | Generate a number between -1 and 1 from 2 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || -| `Noise::Noise3d()` | Generate a number between -1 and 1 from 3 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || -| `Noise::Noise4d()` | Generate a number between -1 and 1 from 4 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || -| `Noise::Octaves()` | The number of octaves used for noise generation. || -| `Noise::Persistence()` | The persistence used for noise generation. || +| `Noise::Frequency(string)` | The base frequency used for noise generation. || +| | _string_ | Generator name | +| `Noise::Lacunarity(string)` | The lacunarity used for noise generation. || +| | _string_ | Generator name | +| `Noise::Noise1d(string, number)` | Generate a number between -1 and 1 from 1 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || +| | _string_ | Generator name | +| | _🔢 Number_ | X coordinate | +| `Noise::Noise2d(string, number, number)` | Generate a number between -1 and 1 from 2 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || +| | _string_ | Generator name | +| | _🔢 Number_ | X coordinate | +| | _🔢 Number_ | Y coordinate | +| `Noise::Noise3d(string, number, number, number)` | Generate a number between -1 and 1 from 3 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || +| | _string_ | Generator name | +| | _🔢 Number_ | X coordinate | +| | _🔢 Number_ | Y coordinate | +| | _🔢 Number_ | Z coordinate | +| `Noise::Noise4d(string, number, number, number, number)` | Generate a number between -1 and 1 from 4 dimensional simplex noise. The "Map" expression from Extended Math extension can be used to map values to any chosen bounds. || +| | _string_ | Generator name | +| | _🔢 Number_ | X coordinate | +| | _🔢 Number_ | Y coordinate | +| | _🔢 Number_ | Z coordinate | +| | _🔢 Number_ | W coordinate | +| `Noise::Octaves(string)` | The number of octaves used for noise generation. || +| | _string_ | Generator name | +| `Noise::Persistence(string)` | The persistence used for noise generation. || +| | _string_ | Generator name | | `Noise::Seed()` | The seed used for noise generation. || + --- *This page is an auto-generated reference page about the **Noise generator** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/object-picking-tools/index.md b/docs/gdevelop5/extensions/object-picking-tools/index.md index a52f99617b..a743735d1f 100644 --- a/docs/gdevelop5/extensions/object-picking-tools/index.md +++ b/docs/gdevelop5/extensions/object-picking-tools/index.md @@ -3,13 +3,13 @@ Adds various object picking related tools. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555), [VictrisGames](https://gd.games/VictrisGames). --- -Adds various actions and conditions for advanced object selection. Includes picking objects with the highest or lowest zOrder, an object variable, and the ability to unpick all objects. +Adds various actions and conditions for advanced object selection. Includes picking objects with the highest or lowest Z-order (for 2D objects), an object variable, and the ability to unpick all objects. -Note: Version 2.0.0 changed Z-order picking to pick all instances with the highest/lowest Z-order. Version 1.x.x only picked one instance. +If multiple instances have the highest/lowest Z-order, all of these instances will be picked. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -19,35 +19,100 @@ Note: Version 2.0.0 changed Z-order picking to pick all instances with the highe **Pick objects with highest variable value** Pick object instances that have the highest value of an object variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + - Parameter 2 (string): Object variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Pick objects with highest Z-order** Pick object instances that have the highest Z-order. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Pick objects with lowest variable value** Pick object instances that have the lowest value of an object variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + - Parameter 2 (string): Object variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Pick objects with lowest Z-order** Pick object instances that have the lowest Z-order. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Unpick all instances** Unpicks all instances of an object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object to unpick all instances from + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Pick objects with highest variable value** Pick object instances that have the highest value of an object variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + - Parameter 2 (string): Object variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Pick objects with highest Z-order** Pick object instances that have the highest Z-order. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Pick objects with lowest variable value** Pick object instances that have the lowest value of an object variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + - Parameter 2 (string): Object variable name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Pick objects with lowest Z-order** Pick object instances that have the lowest Z-order. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to select instances from + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Unpick all instances** Unpicks all instances of an object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object to unpick all instances from + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/object-slicer/index.md b/docs/gdevelop5/extensions/object-slicer/index.md index da8f0f146f..dde62b3246 100644 --- a/docs/gdevelop5/extensions/object-slicer/index.md +++ b/docs/gdevelop5/extensions/object-slicer/index.md @@ -1,19 +1,21 @@ -# Slice an object into pieces +# Slice a 2D object into pieces Slice an object into smaller pieces that match the color of original object. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- Useful for creating death animations such as explosions, crumbling, dissolve, or teleportation effects. -Pieces should be a solid white color or the color of the piece will not match the original color. +Object used for pieces should be a solid white color (otherwise the color will not match the original object color). Tips: -- Adjust the collision mask to control where pieces will be created -- Pieces are linked to the original object which can be used in other events (i.e. explode away from the original object) +- Adjust the collision mask to control where pieces will be created, +- Pieces are linked to the original object which can be used in other events (i.e. explode away from the original object) + +This example shows how to slice objects: [open the project online](https://editor.gdevelop.io/?project=example://object-slicer.json). !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -23,8 +25,20 @@ Tips: **Slice object into smaller pieces** Slice an object into smaller pieces that match color of the original object. The new object should be a solid white color. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to be sliced + - Parameter 2 (👾 Object): Object used for sliced pieces + Recommended: Use a sprite that is a single white pixel + - Parameter 3 (🔢 Number): Vertical slices + - Parameter 4 (🔢 Number): Horizontal slices + - Parameter 5 (❓ Yes or No): Delete original object + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Slice an object into pieces** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Slice a 2D object into pieces** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/object-spawner/index.md b/docs/gdevelop5/extensions/object-spawner/index.md index b8bb574210..fd8fb1be23 100644 --- a/docs/gdevelop5/extensions/object-spawner/index.md +++ b/docs/gdevelop5/extensions/object-spawner/index.md @@ -1,16 +1,16 @@ -# Object spawner area +# Object spawner 2D area Spawn (create) objects periodically. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- -Spawn objects periodically based on the location of the spawner. +Spawn objects periodically based on the 2D location of the spawner. If "random position" is enabled, objects will spawn in a random position inside the spawner object. -This allows the size of the spawner object to define an area that objects will spawn. +This allows the size of the spawner object to define an area where objects will spawn. It can be used to create: @@ -18,8 +18,6 @@ It can be used to create: - NPCs - Environmental objects -Note: Offset properties were deprecated in version 1.0.0. - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -34,41 +32,137 @@ Spawn (create) objects periodically. **Restart spawning cooldown** Restart the cooldown of a spawner. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Max objects in the scene (per spawner)** Change the max objects in the scene (per spawner) of the object. Limits the number of objects in the scene that were created by this spawner. Set this to 0 for no limit. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Use random positions** Enable (or disable) random positions. Useful for making large spawner areas. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): RandomPosition + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Spawn period** Change the spawn period (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Spawner capacity** Change the number of objects that can be created by this spawner. This is reduced everytime an objects is spawned. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Unlimited object capacity** Change unlimited capacity of spawner. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): UnlimitedObjectCapacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Spawn objects periodically** Spawn (create) objects periodically. This action must be run every frame to work. When the max quantity is reached and an instance is deleted, the spawner waits the duration of the spawn period before creating another instance. Spawned objects are automatically linked to the spawner. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Object that will be created + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Max objects in the scene (per spawner)** Compare the max objects in the scene (per spawner) of the object. Limits the number of objects in the scene that were created by this spawner. Set this to 0 for no limit. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Object was just spawned** Check if an object has just been created by this spawner. Useful for triggering visual and sound effects. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Use random positions** Check if using random positions. Useful for making large spawner areas. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Spawner capacity** Compare the number of objects that can be created by this spawner. This is reduced everytime an objects is spawned. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Unlimited capacity** Check if spawner has unlimited capacity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -78,6 +172,7 @@ Check if spawner has unlimited capacity. | `Object.ObjectSpawner::SpawnerCapacity()` | Return the number of objects that can be created by this spawner. This is reduced everytime an objects is spawned. || | `Object.ObjectSpawner::TimeBeforeSpawn()` | Return the remaining time before the next spawn (in seconds). Useful for triggering visual and sound effects. || + --- -*This page is an auto-generated reference page about the **Object spawner area** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Object spawner 2D area** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/object-stack/index.md b/docs/gdevelop5/extensions/object-stack/index.md index 6c50ea1a32..a9803aebd9 100644 --- a/docs/gdevelop5/extensions/object-stack/index.md +++ b/docs/gdevelop5/extensions/object-stack/index.md @@ -3,15 +3,15 @@ An ordered list of objects and a shuffle action. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -It provides: +This keep in memory a stack of object instances, with: -* Actions to modify a stack of objects -* Conditions to access the objects of a stack -* A shuffle action +* Actions to modify the stack, +* Conditions to access the objects of a stack, +* A shuffle action. It can be helpful for: @@ -32,15 +32,50 @@ It can be helpful for: **Contain** Check if the stack contains the object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Stack + - Parameter 2 (🧩 Behavior): Stack behavior + - Parameter 3 (👾 Object): Element + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Contain at** Check if the stack contains the object at a height. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Stack + - Parameter 2 (🧩 Behavior): Stack behavior + - Parameter 3 (👾 Object): Element + - Parameter 4 (🔢 Number): Height + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Contain between a range** Check if the stack contains the object between a range. The lower and upper bounds are included. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Stack + - Parameter 2 (🧩 Behavior): Stack behavior + - Parameter 3 (👾 Object): Element + - Parameter 4 (🔢 Number): Lower bound + - Parameter 5 (🔢 Number): Upper bound + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Stack top** Check if an object is on the stack top. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Stack + - Parameter 2 (🧩 Behavior): Stack behavior + - Parameter 3 (👾 Object): Element + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Object Stack @@ -52,41 +87,129 @@ Hold an ordered list of objects. **Add on top** Add the object on the top of the stack. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Clear** Remove any object from the stack. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Insert into the stack** Insert the object into the stack. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + - Parameter 3 (🔢 Number): Height + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Move all into the stack** Move all the object from a stack into another. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Height + - Parameter 3 (👾 Object): Stack + - Parameter 4 (🧩 Behavior): Stack behavior + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Move all on top of the stack** Move all the object from a stack into another one at the top. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Stack + - Parameter 3 (🧩 Behavior): Stack behavior + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Move into the stack** Move the objects from a stack into another. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Height + - Parameter 3 (👾 Object): Stack + - Parameter 4 (🧩 Behavior): Stack behavior + - Parameter 5 (🔢 Number): Lower bound + - Parameter 6 (🔢 Number): Upper bound + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Remove from the stack** Remove the object from the stack. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 👾 Object + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shuffle** Shuffle the stack. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Stack height** Compare the number of objects in the stack. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is empty** Check if the stack is empty. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.ObjectStack::Height()` | Return the number of objects in the stack. || -| `Object.ObjectStack::HeightOf()` | The height of an element in the stack. || +| `Object.ObjectStack::HeightOf(object)` | The height of an element in the stack. || +| | _👾 Object_ | Object | + --- diff --git a/docs/gdevelop5/extensions/ollama-ai/index.md b/docs/gdevelop5/extensions/ollama-ai/index.md new file mode 100644 index 0000000000..42da5f6ef7 --- /dev/null +++ b/docs/gdevelop5/extensions/ollama-ai/index.md @@ -0,0 +1,46 @@ +# OllamaAI + + +This extension adds the functionality to your project to easily send requests to the "Ollama" AI, and get responses from it. + +**Authors and contributors** to this experimental extension: (not specified). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +Create a simple action to send the following data to a Ollama AI server: + + +- URL (The server's URL with port) +- Model (The model you want to generate the response) +- Prompt (The prompt you send to the server to reply to) + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Actions + +**Send prompt to a model** +Sends the prompt string, the model string, and the stream boolean from the given structure. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): The URL where the Ollama model is hosted (e.g. http://localhost:11434/api/generate) + The URL should be in this format: "http://:11434/api/generate". If you are hosting and testing locally, use this URL: "http://localhost:11434/api/generate". Read the extension's GitHub issue on how to host your own server. (one of: "http://localhost:11434/api/generate") + - Parameter 2 (🔤 String): The model to be used when generating a response + The recommended one is "llama3", an older version is "llama2", but you can also customize the models and use those. Read the extension's GitHub issue on how to do this. (one of: "llama3", "llama2", "codegemma") + - Parameter 3 (string): Your prompt to the AI, for example: "Why is the sky blue?" + The response will be stored in JSON in the variable "Ollama_AI_JSON". After that, you can convert the JSON to a structure. You can see how you can do it in the example on the extension's GitHub. + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + + + + +--- + +*This page is an auto-generated reference page about the **OllamaAI** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/orbiting-objects/index.md b/docs/gdevelop5/extensions/orbiting-objects/index.md index 9f3beaa1ac..88626cfc9d 100644 --- a/docs/gdevelop5/extensions/orbiting-objects/index.md +++ b/docs/gdevelop5/extensions/orbiting-objects/index.md @@ -3,7 +3,7 @@ Make objects orbit around a center object in a circular or elliptical shape. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [VegeTato](https://gd.games/VegeTato). --- @@ -40,12 +40,57 @@ An example shows how to use this extension ([open the project online](https://ed **Move objects in elliptical orbit around a center object** Move objects in elliptical orbit around a center object. Z-order is changed to make 3D effect. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Center object + - Parameter 2 (👾 Object): Orbiting object + Cannot be the same object used for the Center object + - Parameter 3 (🔢 Number): Quantity of orbiting objects + - Parameter 4 (🔢 Number): Orbit speed (in degrees per second) + Use negative numbers to orbit counter-clockwise + - Parameter 5 (🔢 Number): Vertical distance from the center object (pixels) + - Parameter 6 (🔢 Number): Angular speed (in degrees per second) + Use negative numbers to rotate counter-clockwise + - Parameter 7 (🔢 Number): Starting angle offset (in degrees) + - Parameter 8 (❓ Yes or No): Reset locations of orbiting objects after quantity is reduced + - Parameter 9 (🔢 Number): Horizontal distance from the center object (pixels) + - Parameter 10 (🔤 String): Foreground Side (one of: "Top", "Bottom", "Left", "Right") + + > Technical note: parameters 0, 11 are internal parameters handled by GDevelop. + **Move objects in orbit around a center object** Move objects in orbit around a center object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Center object + - Parameter 2 (👾 Object): Orbiting object + Cannot be the same object used for the Center object + - Parameter 3 (🔢 Number): Quantity of orbiting objects + - Parameter 4 (🔢 Number): Orbit speed (in degrees per second) + Use negative numbers to orbit counter-clockwise + - Parameter 5 (🔢 Number): Distance from the center object (in pixels) + - Parameter 6 (🔢 Number): Angular speed (in degrees per second) + Use negative numbers to rotate counter-clockwise + - Parameter 7 (🔤 Layer name (String)): Layer that orbiting objects will be created on (base layer if empty) + - Parameter 8 (🔢 Number): Z order of orbiting objects + - Parameter 9 (🔢 Number): Starting angle offset (in degrees) + - Parameter 10 (❓ Yes or No): Reset locations of orbiting objects after quantity is reduced + + > Technical note: parameters 0, 11 are internal parameters handled by GDevelop. + **Delete orbiting objects that are linked to a center object** Delete orbiting objects that are linked to a center object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Center object + - Parameter 2 (👾 Object): Orbiting object + Cannot be the same object that was used for the Center object + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/panel-sprite-button/index.md b/docs/gdevelop5/extensions/panel-sprite-button/index.md index d30f7602fd..757937d947 100644 --- a/docs/gdevelop5/extensions/panel-sprite-button/index.md +++ b/docs/gdevelop5/extensions/panel-sprite-button/index.md @@ -3,11 +3,11 @@ A button that can be customized. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -The button can be customized with a background for each state and a label. It handles user interactions and a simple condition can be used to check if it is clicked. +A button that can be used for menus and most labelled buttons of a game. The button can be customized with a background for each state and a label. It handles user interactions and a simple condition can be used to check if it is clicked. There are ready-to-use buttons in the asset-store [menu buttons pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=menu-buttons-menu-buttons). @@ -27,35 +27,98 @@ A button that can be customized. **De/activate interactions** De/activate interactions with the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Activate + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Label text** -Change the text of the button label. +Change the label text. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. ### Object conditions **Interactions activated** Check if interactions are activated on the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is clicked** Check if the button was just clicked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is focused** Check if the button is either hovered or pressed but not hovered. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is hovered** Check if the cursor is hovered over the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is idle** Check if the button is not used. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is pressed** Check if the button is currently being pressed with mouse or touch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Label text** +Compare the label text. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | |-----|-----|-----| | `Object.LabelText()` | Return the label text. || + --- *This page is an auto-generated reference page about the **Panel sprite button** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/panel-sprite-continuous-bar/index.md b/docs/gdevelop5/extensions/panel-sprite-continuous-bar/index.md index 24cff9a140..e1b0746a70 100644 --- a/docs/gdevelop5/extensions/panel-sprite-continuous-bar/index.md +++ b/docs/gdevelop5/extensions/panel-sprite-continuous-bar/index.md @@ -3,7 +3,7 @@ A bar that represents a resource in the game (health, mana, ammo, etc). -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames), [Entropy](https://gd.games/Entropy). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames), [Entropy](https://gd.games/Entropy). --- @@ -27,35 +27,108 @@ A bar that represents a resource in the game (health, mana, ammo, etc). **Show label** Show (or hide) the label on the bar. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Show the label + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Maximum value** Change the maximum value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Previous value conservation duration** Change the previous value conservation duration (in seconds) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Value** Change the value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object conditions **Empty** Check if the bar is empty. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Full** Check if the bar is full. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Label is shown** Check if the label is shown. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Maximum value** Compare the maximum value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Previous value conservation duration** Compare the previous value conservation duration (in seconds) of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Value** Compare the value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | @@ -64,6 +137,7 @@ Compare the value of the object. | `Object.PreviousValueDuration()` | Return the previous value conservation duration (in seconds) of the object. || | `Object.Value()` | Return the value of the object. || + --- *This page is an auto-generated reference page about the **Resource bar (continuous)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/panel-sprite-slider/index.md b/docs/gdevelop5/extensions/panel-sprite-slider/index.md index e90f4fc9ea..afc941400d 100644 --- a/docs/gdevelop5/extensions/panel-sprite-slider/index.md +++ b/docs/gdevelop5/extensions/panel-sprite-slider/index.md @@ -3,7 +3,7 @@ A draggable slider that users can move to select a numerical value. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). --- @@ -27,44 +27,140 @@ Let users select a numerical value by dragging a slider. **De/activate interactions** De/activate interactions with the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Activate + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Show label** Show (or hide) the label on the bar. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Show the label + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Maximum value** Change the maximum value of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Minimum value** Change the minimum value of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Step size** Change the step size of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Value** Change the value of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object conditions **Interactions activated** Check if the slider allows interactions. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Being dragged** Check if the slider is being dragged. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Label is shown** Check if the label is shown. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Maximum value** Compare the maximum value of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Minimum value** Compare the minimum value of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Step size** Compare the step size of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Value** Compare the value of the slider. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | @@ -74,6 +170,7 @@ Compare the value of the slider. | `Object.StepSize()` | Return the step size of the slider. || | `Object.Value()` | Return the value of the slider. || + --- *This page is an auto-generated reference page about the **Slider** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/parallax/index.md b/docs/gdevelop5/extensions/parallax/index.md index c41e658be3..b44f58e573 100644 --- a/docs/gdevelop5/extensions/parallax/index.md +++ b/docs/gdevelop5/extensions/parallax/index.md @@ -3,16 +3,12 @@ Behaviors to animate Tiled Sprite objects in the background, following the camera with a parallax effect. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [D8H](https://gd.games/D8H). --- Behaviors to animate Tiled Sprite objects in the background, following the camera with a parallax effect. -Breaking changes - -- 2.0.1 - - The parallax now starts with an offset of 0. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -33,6 +29,7 @@ Move the image of a Tiled Sprite to follow the camera vertically with a parallax _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Parallax for Tiled Sprite** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/particle-emitter3d/index.md b/docs/gdevelop5/extensions/particle-emitter3d/index.md index ba8125e7d7..66341496d9 100644 --- a/docs/gdevelop5/extensions/particle-emitter3d/index.md +++ b/docs/gdevelop5/extensions/particle-emitter3d/index.md @@ -1,25 +1,17 @@ # 3D particle emitter -Display a large number of particles to create visual effects. +Display a large number of particles in 3D to create visual effects in a 3D game. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -Particle emitters can be used to display: +3D particle emitters let you create and display many small particles to simulate visual effects in your game — like fire, explosions, smoke, or dust. -- Fire -- Smoke -- Splashes -- Lights +The parameters of the object can be configured in multiple different ways to create a specific desired effect. GDevelop will give a set of a pre-configured 3D particle emitters that you should try first. -Breaking change - -- 2.0.0 - - Object properties for position and rotation have been removed. They must be set with the instance editor or the action. -- 1.0.0 - - Particles were 3 times too small +Use these 3D particle emitters in 3D games. For 2D games or particles that appear on a game's 2D user interface, use the 2D particle emitter object instead. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -35,122 +27,424 @@ Display a large number of particles to create visual effects. **Restart** Restart particule emission from the beginning. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Particles move with the emitter** Change if particles move with the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): AreParticlesRelative + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Emission duration** Change the emission duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **End color** Change the end color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (color): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **End opacity** Change the end opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **End scale** Change the end scale of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Flow of particles** Change the flow of particles of the object (particles per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Gravity** Change the gravity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Gravity top** Change the gravity top of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 String): Value (one of: "Y-", "Z+") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Max lifespan** Change the max lifespan of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Min lifespan** Change the min lifespan of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Delete when emission ends** Change if delete when emission ends. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): ShouldAutodestruct + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Spay cone angle** Change the spay cone angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start color** Change the start color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (color): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start opacity** Change the start opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start max size** Change the start max size of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start min size** Change the start min size of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Max start speed** Change the max start speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Min start speed** Change the min start speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object conditions **Particles move with the emitter** Check if particles move with the emitter. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Blending** Compare the blending of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Value to compare (one of: "Normal", "Additive", "Substractive", "Multiply", "None") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Emission duration** Compare the emission duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **End color** Compare the end color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (color): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **End opacity** Compare the end opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **End scale** Compare the end scale of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Flow of particles** Compare the flow of particles of the object (particles per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Gravity** Compare the gravity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Gravity top** Compare the gravity top of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Value to compare (one of: "Y-", "Z+") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Emission has ended** Check that emission has ended and no particle is alive anymore. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Max lifespan** Compare the max lifespan of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Min lifespan** Compare the min lifespan of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Delete when emission ends** Check if delete when emission ends. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Spay cone angle** Compare the spay cone angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start color** Compare the start color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (color): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start opacity** Compare the start opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start max size** Compare the start max size of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start min size** Compare the start min size of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Max start speed** Compare the max start speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Min start speed** Compare the min start speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | @@ -173,6 +467,7 @@ Compare the min start speed of the object. | `Object.StartSpeedMax()` | Return the max start speed of the object. || | `Object.StartSpeedMin()` | Return the min start speed of the object. || + --- *This page is an auto-generated reference page about the **3D particle emitter** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/pause-focus-lost/index.md b/docs/gdevelop5/extensions/pause-focus-lost/index.md index d899359ee9..a6b1ad9bb2 100644 --- a/docs/gdevelop5/extensions/pause-focus-lost/index.md +++ b/docs/gdevelop5/extensions/pause-focus-lost/index.md @@ -3,14 +3,12 @@ Pauses when focus is lost, restarts when focus is regained. -**Authors and contributors** to this community extension: [Telstarboy](https://gd.games/Telstarboy). +**Authors and contributors** to this experimental extension: [Telstarboy](https://gd.games/Telstarboy). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -26,6 +24,13 @@ When focus is regained, the game continues. **Active pause on blur** Pause when game lost focus. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/physics-car/index.md b/docs/gdevelop5/extensions/physics-car/index.md index 974d687b92..20b5b4045e 100644 --- a/docs/gdevelop5/extensions/physics-car/index.md +++ b/docs/gdevelop5/extensions/physics-car/index.md @@ -1,15 +1,13 @@ -# Physics car +# 2D Top-Down Physics Car -Simulate car motion with drifting. +Simulate top-down car motion with drifting. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -Simulate car motion with the Physics 2 behavior. - -The 3D car coin hunt game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-car-coin-hunt)). +Simulate car motion, from a top-down view, with the 2D Physics Engine behavior. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -18,75 +16,253 @@ The 3D car coin hunt game example uses this extension ([open the project online] ## Physics car -Simulate car motion. +Simulate 2D car motion, from a top-down view. ### Behavior actions **Draw forces for debug** Draw forces applying on the car for debug purpose. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Shape painter + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Acceleration** Change the acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum speed** Change the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Steering angle** Change the steering angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum steering angle** Change the maximum steering angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Sterring back speed** Change the sterring speed when turning back of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Steering speed** Change the steering speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Wheel grip ratio** Change the wheel grip ratio of the object (from 0 to 1). A ratio of 0 is like driving on ice. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Simulate acceleration stick** Simulate an acceleration stick for a given axis force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick force + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Simulate down key press** Simulate a press of the down key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate left key press** Simulate a press of the left key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate right key press** Simulate a press of the right key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate steering stick** Simulate a steering stick for a given axis force. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick force + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Simulate up key press** Simulate a press of the up key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Acceleration** Compare the acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum speed** Compare the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Steering angle** Compare the steering angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum steering angle** Compare the maximum steering angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Sterring back speed** Compare the sterring speed when turning back of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Steering speed** Compare the steering speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Wheel grip ratio** Compare the wheel grip ratio of the object (from 0 to 1). A ratio of 0 is like driving on ice. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -99,6 +275,7 @@ Compare the wheel grip ratio of the object (from 0 to 1). A ratio of 0 is like d | `Object.PhysicsCar::SteeringSpeed()` | Return the steering speed of the object. || | `Object.PhysicsCar::WheelGripRatio()` | Return the wheel grip ratio of the object (from 0 to 1). A ratio of 0 is like driving on ice. || + --- -*This page is an auto-generated reference page about the **Physics car** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **2D Top-Down Physics Car** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/physics-car3dkey-mapper/index.md b/docs/gdevelop5/extensions/physics-car3dkey-mapper/index.md new file mode 100644 index 0000000000..e079078c68 --- /dev/null +++ b/docs/gdevelop5/extensions/physics-car3dkey-mapper/index.md @@ -0,0 +1,27 @@ +# 3D car keyboard mapper + + +3D car keyboard controls. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). + +--- + +3D physics car keyboard controls. Add this "mapper" behavior on the object having the 3D Physics Car behavior so that it's automatically controlled by the keyboard. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## 3D car keyboard mapper + +Control a 3D physics car with a keyboard. + +_No expressions for this behavior._ + + + +--- + +*This page is an auto-generated reference page about the **3D car keyboard mapper** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/physics-character3danimator/index.md b/docs/gdevelop5/extensions/physics-character3danimator/index.md new file mode 100644 index 0000000000..b62d55eb66 --- /dev/null +++ b/docs/gdevelop5/extensions/physics-character3danimator/index.md @@ -0,0 +1,60 @@ +# 3D physics character animator + + +Change animations of a 3D physics character automatically. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). + +--- + +Automatically change the animationsof a 3D physics character based on movement and interaction with platform objects. + +The 3D platformer example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-platformer)). + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## 3D physics character animator + +Change animations of a 3D physics character automatically. + +### Behavior actions + +**Rotation speed** +Change the rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Rotation speed** +Compare the rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.PhysicsCharacter3DAnimator::RotationSpeed()` | Return the rotation speed of the object. || + + +--- + +*This page is an auto-generated reference page about the **3D physics character animator** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/physics-character3dkey-mapper/index.md b/docs/gdevelop5/extensions/physics-character3dkey-mapper/index.md new file mode 100644 index 0000000000..2c03a54d58 --- /dev/null +++ b/docs/gdevelop5/extensions/physics-character3dkey-mapper/index.md @@ -0,0 +1,34 @@ +# 3D character keyboard mapper + + +3D platformer and 3D shooter keyboard controls. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). + +--- + +3D platformer and 3D shooter keyboard controls. Add one of the "mapper" behaviors on an object having the "3D physics character" behavior so that it is controlled by the keyboard. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## 3D platformer keyboard mapper + +Control a 3D physics character with a keyboard for a platformer or a top-down game. + +_No expressions for this behavior._ + + +## 3D shooter keyboard mapper + +Control a 3D physics character with a keyboard for a first or third person shooter. + +_No expressions for this behavior._ + + + +--- + +*This page is an auto-generated reference page about the **3D character keyboard mapper** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/physics-ellipse-movement3d/index.md b/docs/gdevelop5/extensions/physics-ellipse-movement3d/index.md new file mode 100644 index 0000000000..685d9aef0f --- /dev/null +++ b/docs/gdevelop5/extensions/physics-ellipse-movement3d/index.md @@ -0,0 +1,164 @@ +# 3D ellipse movement + + +Move objects on ellipses or smoothly back and forth in one direction. + +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). + +--- + +It allows objects to move: + +- on an ellipsis or arcs +- smoothly vertically or horizontally (by setting one radius to 0) +- on a sine wave (by adding a force) + +It can be used for: + +- Making objects float, such as powerups or coins +- Moving platforms +- Enemy movement patterns +- Making a player constantly turn right or left ([open the project online](https://editor.gdevelop.io/?project=example://star-seeker)) + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## 3D ellipse movement + +Move objects on ellipses or smoothly back and forth in one direction. + +### Behavior actions + +**Ellipse height** +Change the ellipse height of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Loop duration** +Change the loop duration (in seconds). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Teleport at an angle** +Change the movement angle. The object is teleported according to the angle. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Movement angle + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Turn left or right** +Change the in which side the object is turning (left or right). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Turn left + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Ellipse width** +Change the ellipse width of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Turn the other way** +Change the turning direction (left or right). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Ellipse height** +Compare the ellipse height of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Is turning left** +Check if the object is turning left. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Loop duration** +Compare the loop duration (in seconds). + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Ellipse width** +Compare the ellipse width of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.PhysicsEllipseMovement3D::CenterH()` | Return the movement center position on Y axis. || +| `Object.PhysicsEllipseMovement3D::CenterV()` | Return the movement center position on X axis. || +| `Object.PhysicsEllipseMovement3D::Height()` | Return the ellipse height of the object. || +| `Object.PhysicsEllipseMovement3D::LoopDuration()` | Return the loop duration (in seconds). || +| `Object.PhysicsEllipseMovement3D::MovementAngle()` | Return the movement angle of the object. || +| `Object.PhysicsEllipseMovement3D::Width()` | Return the ellipse width of the object. || + + +--- + +*This page is an auto-generated reference page about the **3D ellipse movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/pinch-gesture/index.md b/docs/gdevelop5/extensions/pinch-gesture/index.md index 0502a7a5d2..bfbc8482f3 100644 --- a/docs/gdevelop5/extensions/pinch-gesture/index.md +++ b/docs/gdevelop5/extensions/pinch-gesture/index.md @@ -3,19 +3,19 @@ Move the camera or objects with pinching gestures. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- This extension allows to: -* Move, rotate and/or zoom the camera according to pinch gestures -* Move, rotate and optionally scale objects according to pinch gestures -* Handle more specific needs with various expressions +- Move, rotate and/or zoom the camera according to pinch gestures +- Move, rotate and optionally scale objects according to pinch gestures +- Handle more specific needs with various expressions Limitations: -* Only one pinching gesture is detected at a time +- Only one pinching gesture is detected at a time !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -25,36 +25,84 @@ Limitations: **Enable or disable camera pinch** Enable or disable camera pinch. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Enable camera pinch + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Camera pinch constraints** Change the camera pinch constraint. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Constraint (one of: "No constraint", "Zoom only", "Rotation only", "Zoom and rotation only") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Camera pinch layer** Choose the layer to move with pinch gestures. +??? quote "See parameters" + + - Parameter 1: 🔤 Layer name (String) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Camera pinch is enabled** Check if camera pinch is enabled. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Touch is pinching** Check if a touch is pinching, if 2 touches are pressed. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `PinchGesture::BeginningCenterX()` | Return the X position of the pinch center at the beginning of the gesture. || -| `PinchGesture::BeginningCenterY()` | Return the Y position of the pinch center at the beginning of the gesture. || -| `PinchGesture::CurrentCenterX()` | Return the X position of the pinch center. || -| `PinchGesture::CurrentCenterY()` | Return the Y position of the pinch center. || -| `PinchGesture::InversedX()` | Return the original X position of a point before the pinch gesture. || -| `PinchGesture::InversedY()` | Return the new position on the Y axis of a point after the pinch gesture. || +| `PinchGesture::BeginningCenterX(string)` | Return the X position of the pinch center at the beginning of the gesture. || +| | _string_ | Layer | +| `PinchGesture::BeginningCenterY(string)` | Return the Y position of the pinch center at the beginning of the gesture. || +| | _string_ | Layer | +| `PinchGesture::CurrentCenterX(string)` | Return the X position of the pinch center. || +| | _string_ | Layer | +| `PinchGesture::CurrentCenterY(string)` | Return the Y position of the pinch center. || +| | _string_ | Layer | +| `PinchGesture::InversedX(number, number, layer name)` | Return the original X position of a point before the pinch gesture. || +| | _🔢 Number_ | Position X after the pinch | +| | _🔢 Number_ | Position Y after the pinch | +| | _🔤 Layer name (String)_ | Layer | +| `PinchGesture::InversedY(number, number, layer name)` | Return the new position on the Y axis of a point after the pinch gesture. || +| | _🔢 Number_ | Position X after the pinch | +| | _🔢 Number_ | Position Y after the pinch | +| | _🔤 Layer name (String)_ | Layer | | `PinchGesture::Rotation()` | Return the rotation of the pinch gesture from its beginning (in degrees). || | `PinchGesture::Scaling()` | Return the scaling of the pinch gesture from its beginning. || -| `PinchGesture::TransformedX()` | Return the new X position of a point after the pinch gesture. || -| `PinchGesture::TransformedY()` | Return the new Y position of a point after the pinch gesture. || -| `PinchGesture::TranslationX()` | Return the horizontal translation of the pinch gesture from its beginning. || -| `PinchGesture::TranslationY()` | Return the vertical translation of the pinch gesture from its beginning. || +| `PinchGesture::TransformedX(number, number, layer name)` | Return the new X position of a point after the pinch gesture. || +| | _🔢 Number_ | Position X before the pinch | +| | _🔢 Number_ | Position Y before the pinch | +| | _🔤 Layer name (String)_ | Layer | +| `PinchGesture::TransformedY(number, number, layer name)` | Return the new Y position of a point after the pinch gesture. || +| | _🔢 Number_ | Position X before the pinch | +| | _🔢 Number_ | Position Y before the pinch | +| | _🔤 Layer name (String)_ | Layer | +| `PinchGesture::TranslationX(layer name)` | Return the horizontal translation of the pinch gesture from its beginning. || +| | _🔤 Layer name (String)_ | Layer | +| `PinchGesture::TranslationY(layer name)` | Return the vertical translation of the pinch gesture from its beginning. || +| | _🔤 Layer name (String)_ | Layer | ## Pinchable object @@ -65,14 +113,29 @@ Move objects by holding 2 touches on them. **Abort pinching** Abort the pinching of this object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is being pinched** Check if the object is being pinched. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Pinching gesture** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/pixel-perfect-movement/index.md b/docs/gdevelop5/extensions/pixel-perfect-movement/index.md index 4c05224bf4..97a0915f44 100644 --- a/docs/gdevelop5/extensions/pixel-perfect-movement/index.md +++ b/docs/gdevelop5/extensions/pixel-perfect-movement/index.md @@ -3,7 +3,7 @@ Grid-based or pixel perfect platformer and top-down movements. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [MikeSheldon](https://gd.games/MikeSheldon), [Mistafixxa069](https://gd.games/Mistafixxa069). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [MikeSheldon](https://gd.games/MikeSheldon), [Mistafixxa069](https://gd.games/Mistafixxa069). --- @@ -23,7 +23,7 @@ It can be used for: ## Pixel perfect platformer character -Seamlessly align big pixels using a platformer character movement. +Seamlessly align big pixels using a 2D platformer character movement. _No expressions for this behavior._ @@ -35,6 +35,7 @@ Seamlessly align big pixels using a top-down movement. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Pixel perfect movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/platform-ledge-grabber/index.md b/docs/gdevelop5/extensions/platform-ledge-grabber/index.md index 482ca630f1..1d310e36f2 100644 --- a/docs/gdevelop5/extensions/platform-ledge-grabber/index.md +++ b/docs/gdevelop5/extensions/platform-ledge-grabber/index.md @@ -3,14 +3,12 @@ Grab platforms ledges within reach automatically. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -35,17 +33,41 @@ Grab platforms ledges within reach automatically. **Only grab facing ledges** Change whether the character only grabs facing ledges or any ledges at reach. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Only grab facing ledges + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Maximum ledge distance** Change the maximum ledge distance on X axis where the character moves toward the ledge. Note that the character won't move unless it can actually grab the platform. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Maximum ledge distance on X axis + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Is moving toward a ledge** Check if the character is moving toward a ledge. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Platform ledge grabber** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/platformer-character-animator/index.md b/docs/gdevelop5/extensions/platformer-character-animator/index.md index 35ce5fa4a4..e6162ff004 100644 --- a/docs/gdevelop5/extensions/platformer-character-animator/index.md +++ b/docs/gdevelop5/extensions/platformer-character-animator/index.md @@ -3,11 +3,11 @@ Change animations and horizontal flipping of a platformer character automatically. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- -Automatically change the animations and horizontal flipping of a platformer character based on movement and interaction with platform objects. +Automatically change the animations and horizontal flipping of an object having the 2D platformer character behavior based on movement and interaction with platform objects. The platformer example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://platformer)). @@ -25,27 +25,84 @@ Change animations and horizontal flipping of a platformer character automaticall **Enable (or disable) automated animation changes** Enable (or disable) automated animation changes a platformer character. Disabling animation changes is useful to play custom animations. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Change animations automatically + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable (or disable) automated horizontal flipping** Enable (or disable) automated horizontal flipping of a platform character. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Enable horizontal flipping + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **"Climb" animation name** Set the "Climb" animation name. Do not use quotation marks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Animation name + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **"Fall" animation name** Set the "Fall" animation name. Do not use quotation marks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Animation name + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **"Idle" animation name** Set the "Idle" animation name. Do not use quotation marks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Animation name + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **"Jump" animation name** Set the "Jump" animation name. Do not use quotation marks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Animation name + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **"Move" animation name** Set the "Move" animation name. Do not use quotation marks. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Animation name + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Platformer character animator** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/platformer-trajectory/index.md b/docs/gdevelop5/extensions/platformer-trajectory/index.md index 7d57e4c03a..7b91e505bd 100644 --- a/docs/gdevelop5/extensions/platformer-trajectory/index.md +++ b/docs/gdevelop5/extensions/platformer-trajectory/index.md @@ -3,11 +3,11 @@ Platformer character jump easy configuration and platformer AI tools. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -This extension allows to: +For objects having the 2D platformer character behavior, this provides a behavior allowing to: * Configure the height of a jump by automatically choosing the right jump speed ([open the project online](https://editor.gdevelop.io/?project=example://platformer-jump-evaluator)). * Know when to jump to reach a platform (can be useful for AI). @@ -27,21 +27,49 @@ Configure the height of a jump and evaluate the jump trajectory. **Draw jump** Draw the jump trajectories from no sustain to full sustain. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Shape painter + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Jump height** Change the jump speed to reach a given height. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Jump height + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| -| `Object.PlatformerEvaluator::JumpDownTime()` | The time from the start of the jump when it reaches a given Y displacement moving downward. || -| `Object.PlatformerEvaluator::JumpPeakTime()` | The time from the start of the jump when it reaches the maximum Y displacement. || -| `Object.PlatformerEvaluator::JumpPeakY()` | The maximum Y displacement. || -| `Object.PlatformerEvaluator::JumpUpTime()` | The time from the start of the jump when it reaches a given Y displacement moving upward. || -| `Object.PlatformerEvaluator::JumpY()` | The jump Y displacement at a given time from the start of the jump. || -| `Object.PlatformerEvaluator::MovingX()` | The X displacement at a given time from now if accelerating (always positive). || -| `Object.PlatformerEvaluator::StopXDistance()` | The X displacement before the character stops (always positive). || -| `Object.PlatformerEvaluator::StoppingX()` | The X displacement at a given time from now if decelerating (always positive). || +| `Object.PlatformerEvaluator::JumpDownTime(number, number)` | The time from the start of the jump when it reaches a given Y displacement moving downward. || +| | _🔢 Number_ | Y position | +| | _🔢 Number_ | Jump sustaining duration | +| `Object.PlatformerEvaluator::JumpPeakTime(number)` | The time from the start of the jump when it reaches the maximum Y displacement. || +| | _🔢 Number_ | Jump sustaining duration | +| `Object.PlatformerEvaluator::JumpPeakY(number)` | The maximum Y displacement. || +| | _🔢 Number_ | Jump sustaining duration | +| `Object.PlatformerEvaluator::JumpUpTime(number, number)` | The time from the start of the jump when it reaches a given Y displacement moving upward. || +| | _🔢 Number_ | Y position | +| | _🔢 Number_ | Jump sustaining duration | +| `Object.PlatformerEvaluator::JumpY(number, number)` | The jump Y displacement at a given time from the start of the jump. || +| | _🔢 Number_ | Time | +| | _🔢 Number_ | Jump sustaining duration | +| `Object.PlatformerEvaluator::MovingX(number)` | The X displacement at a given time from now if accelerating (always positive). || +| | _🔢 Number_ | Time | +| `Object.PlatformerEvaluator::StopXDistance(number)` | The X displacement before the character stops (always positive). || +| | _🔢 Number_ | Time | +| `Object.PlatformerEvaluator::StoppingX(number)` | The X displacement at a given time from now if decelerating (always positive). || +| | _🔢 Number_ | Time | + --- diff --git a/docs/gdevelop5/extensions/player-avatar/index.md b/docs/gdevelop5/extensions/player-avatar/index.md new file mode 100644 index 0000000000..0e685c94fa --- /dev/null +++ b/docs/gdevelop5/extensions/player-avatar/index.md @@ -0,0 +1,61 @@ +# Player avatar + + +Display player avatars according to their GDevelop account. + +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh). + +--- + +An object that displays a player avatar according to their GDevelop account. It can be used for multiplayer games. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Expressions + +| Expression | Description | | +|-----|-----|-----| +| `PlayerAvatar::UserID(number)` | Return the UserID from a lobby player number. || +| | _🔢 Number_ | Lobby player number | + +## Multiplayer Avatar + +Display a player avatar according to their GDevelop account. + +### Object actions + +**Player unique ID** +Change the player unique ID of the avatar. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object conditions + +**Player unique ID** +Compare the player unique ID of the avatar. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.UserID()` | Return the player unique ID of the avatar. || + + +--- + +*This page is an auto-generated reference page about the **Player avatar** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/playgama-bridge/details.md b/docs/gdevelop5/extensions/playgama-bridge/details.md new file mode 100644 index 0000000000..83d5130288 --- /dev/null +++ b/docs/gdevelop5/extensions/playgama-bridge/details.md @@ -0,0 +1,126 @@ +--- +title: Details +--- +# Step-by-Step Guide to Monetizing HTML5 Games in GDevelop with PlaygamaBridge + +Welcome to our guide on integrating PlaygamaBridge with your GDevelop game! In this tutorial, we’ll be using a [GDevelop game](https://www.youtube.com/watch?v=P1MYDHdWDNw) as a working example to demonstrate how you can enhance your game's reach and monetization capabilities. + +This game consists of two core scenes: + +1. **Level selection scene**: Where the player chooses the level they have access to. +2. **Game logic scene**: Where the main gameplay takes place. + +The levels are managed through external layouts. Before proceeding, watch the accompanying video to get a clear understanding of how the game functions. Once you're familiar with it, return here to continue with the integration steps. + +Here’s the plan for our integration: + +1. **Create an initialization scene**: We’ll add a new scene that retrieves the maximum accessible level when the game starts. +2. **Switch to the level scene**: Once initialization is complete and the player starts the game, we’ll transition to the level scene and send a specific message to the **PlaygamaBridge** extension. +3. **Show interstitial ads**: When the player switches between levels, we’ll display interstitial ads to enhance monetization. +4. **Save and retrieve data**: We'll implement features to save the player's accessible level and retrieve it at the beginning of the game. This ensures that progress is preserved and players can seamlessly continue from where they left off. +5. **Implement rewarded ads**: We’ll add rewarded ads to provide incentives, granting rewards to the player based on their interaction with the ad. + +With these steps, we’ll enhance both the gameplay experience and monetization potential. Let’s dive in! + +# Installation + +There are two ways to install the **PlaygamaBridge** extension, giving you flexibility based on your preference: + +1. **Directly from GDevelop IDE**: Since **PlaygamaBridge** is a reviewed and approved extension, you can easily find and install it within the GDevelop interface. +2. **From the Release page**: Alternatively, you can download the extension from the official Release page for manual installation. + +Once the extension is installed, you’ll gain access to a full suite of **Conditions**, **Actions**, and **Expressions**, ready to be used in your game. These powerful tools will allow you to integrate monetization, data handling, and platform features seamlessly into your game development workflow. + +### **1. GDevelop IDE** + +Go to `Project Manager` → `Create or search for new extensions` → Type `Playgama` in `Search extensions` field and install the extension. + +![](images/playgama-bridge-extension.png) + +or: +### **2. Release page** + +Download the specific version of `PlaygamaBridge.json` from the [GitHub release page](https://github.com/playgama/bridge-gdevelop/releases). + +Go to `Project Manager` → `Create or search for new extensions` → `Import extension` and select the downloaded file. + +# **Create an initialization scene** + +When integrating PlaygamaBridge, there are essential steps you must follow. One critical requirement is to wait for the bridge to be fully initialized and ready to interact with the platform-specific API. Once initialization is complete, you can safely proceed with game logic, such as retrieving the player's profile or accessing stored data. + +To ensure smooth data handling, we’ll manage this process in a separate scene, which we have added and named the `Loader` ****scene, allowing for easy data retrieval at later stages of the game. + +Let’s see how it is done + +![](images/playgama-bridge-instruction-1.webp) + +You can also copy and paste this content into your clipboard and paste it into GDevelop to add this instruction line in a very quick way. + +We’ll come back to this scene later. For now, let’s do some other preparation + +# **Switch to the level scene** + +Once the initialization is complete and the game is ready to be displayed, we send the `GAME_READY` message. This step is crucial, as many platforms require it, although the implementation can vary across platforms. Thankfully, PlaygamaBridge simplifies this process, making it seamless. Just remember to trigger the `GAME_READY` message once everything is fully prepared to start the game. + +![](images/playgama-bridge-instruction-2.webp) + +# **Show interstitial ads** + +Here comes the most exciting part! Right before transitioning to the next level, we’ll display an interstitial ad. The process is incredibly simple and can be achieved with just a few steps, as shown below: + +![](images/playgama-bridge-instruction-3.webp) + +Now, we have the ability to subscribe to interstitial state changes, allowing us to react and perform custom game logic based on these events. This lets you manage the game's flow dynamically, such as pausing, resuming, or updating elements depending on the ad's status. + +![](images/playgama-bridge-instruction-4.webp) + +# **Save and retrieve data** + +To allow players to continue their progress across multiple devices, we implement data saving. Specifically, we’ll save and retrieve a variable `LevelNumber` that represents the maximum accessible level in our case. + +Here’s how it works: + +- When the player completes a level (in our simplified example, by collecting a coin), we increment the `LevelNumber` variable. +- We then save this updated value to storage. To ensure the data is accessible across sessions and devices, we’ll use the `platform_internal` option with the `default` storage setting. This option automatically detects whether platform cloud storage is available. If cloud storage isn't supported, it falls back to `local_storage`. + +Since the storage data structure isn't predefined, adding a new parameter requires an extra step. We need to use the `Append Parameter to Storage Data Set Request` method before performing the actual save operation. + +![](images/playgama-bridge-instruction-5.webp) + +Optionally, you can perform additional actions once the saving process is completed. To achieve this, use the `On Storage Data Set Request Completed` condition. Additionally, if you need to verify whether the save operation was successful, you can use the `Is Last Action Completed Successfully` condition. Based on the result of this check, you can trigger appropriate actions to handle both success and failure scenarios effectively. + + +![](images/playgama-bridge-instruction-6.webp) + +Retrieving data is a crucial step, and in our case, it should be done once at the beginning of the game, even before sending the `GAME_READY` message. This is important because the `GAME_READY` message signals that everything is fully prepared for the player to start interacting with the game. + +The ideal place to perform this data retrieval is in the `Loader` scene, the scene we added earlier for initialization. By retrieving the maximum accessible level and other necessary data here, we ensure that all essential information is loaded and ready for the game to proceed smoothly. + +![](images/playgama-bridge-instruction-7.webp) + +In the example above, we followed a similar approach to setting the data, but this time we used the `Append Parameter to Storage Data Get Request` method along with the `On Storage Data Get Request Completed` condition. We also checked for the existence of the `level` key in the response to ensure it can be assigned to our global variable, `LevelNumber`. + +Once all of this is completed, we’re ready to switch to the `LevelSelect` scene, allowing the player to choose their starting level. + +# Adding Rewarded Ads + +We've reached the final step: integrating rewarded ads. To keep things simple, we'll trigger the ad display when the player completes the 4th level. However, the timing is entirely up to you, depending on your game's design and flow. + +One crucial aspect to remember is that **rewarding the player** is a key requirement for using rewarded ads. This could be in the form of coins, extra attempts, or other in-game currency or benefits. Failure to provide a reward may lead to your game being rejected by certain platforms. + +For the purpose of this tutorial, I'll simply add a log to simulate the reward process. However, in your actual game, ensure that the player receives their reward appropriately to comply with platform requirements and enhance player satisfaction. + +![](images/playgama-bridge-instruction-8.webp) + +# Summary + +Congratulations! We've successfully implemented the core mechanisms that enable your game to be monetized across multiple platforms. From initializing the `PlaygamaBridge` to managing data storage, displaying interstitial and rewarded ads, and switching scenes seamlessly, your game is now equipped to reach a broader audience and generate revenue effectively. + +For further reference, you can explore the [repository](https://github.com/Playgama/bridge-gdevelop-example) with the full example of the game used in this guide. + +Stay creative, stay ambitious, and keep pushing the boundaries of HTML5 game development! Whether you're refining MVPs or crafting new game concepts, `PlaygamaBridge` has your back. Stay tuned for more updates and keep on building amazing experiences! + + +!!! tip + + Learn more about this extension in the [reference page](/gdevelop5/extensions/playgama-bridge/) \ No newline at end of file diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-extension.png b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-extension.png new file mode 100644 index 0000000000..d4537b69db Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-extension.png differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-1.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-1.webp new file mode 100644 index 0000000000..6875346665 Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-1.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-2.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-2.webp new file mode 100644 index 0000000000..95305d2499 Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-2.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-3.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-3.webp new file mode 100644 index 0000000000..2c2836b833 Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-3.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-4.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-4.webp new file mode 100644 index 0000000000..7ab083abeb Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-4.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-5.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-5.webp new file mode 100644 index 0000000000..5dccd69def Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-5.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-6.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-6.webp new file mode 100644 index 0000000000..694dd96b23 Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-6.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-7.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-7.webp new file mode 100644 index 0000000000..26f8e13fd3 Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-7.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-8.webp b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-8.webp new file mode 100644 index 0000000000..11f806b432 Binary files /dev/null and b/docs/gdevelop5/extensions/playgama-bridge/images/playgama-bridge-instruction-8.webp differ diff --git a/docs/gdevelop5/extensions/playgama-bridge/index.md b/docs/gdevelop5/extensions/playgama-bridge/index.md new file mode 100644 index 0000000000..9a229e0a18 --- /dev/null +++ b/docs/gdevelop5/extensions/playgama-bridge/index.md @@ -0,0 +1,1213 @@ +# Playgama Bridge + + +One SDK for cross-platform publishing HTML5 games. + +**Authors and contributors** to this experimental extension: [playgama](https://gd.games/playgama). + +--- + +One SDK for cross-platform publishing HTML5 games. +Please refer to [Playgama documentation](https://wiki.playgama.com/playgama/sdk/engines/gdevelop) for detailed guidance. + +[Read more...](/gdevelop5/extensions/playgama-bridge/details) + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Actions + +**Achievements Get List** +Achievements Get List. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Achievements Show Native Popup** +Achievements Show Native Popup. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Achievements Unlock** +Achievements Unlock. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Add Action Parameter** +Add Action Parameter. + +??? quote "See parameters" + + - Parameter 1 (string): Path + - Parameter 2 (string): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Add Bool Action Parameter** +Add Bool Action Parameter. + +??? quote "See parameters" + + - Parameter 1 (string): Path + - Parameter 2 (❓ True or False): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Add To Favorites** +Add To Favorites. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Add To Home Screen** +Add To Home Screen. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Append Parameter to Storage Data Delete Request** +Append Parameter to Storage Data Delete Request. + +??? quote "See parameters" + + - Parameter 1 (string): Key + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Append Parameter to Storage Data Get Request** +Append Parameter to Storage Data Get Request. + +??? quote "See parameters" + + - Parameter 1 (string): Key + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Append Parameter to Storage Data Set Request** +Append Parameter to Storage Data Set Request. + +??? quote "See parameters" + + - Parameter 1 (string): Key + - Parameter 2 (string): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Authorize Player** +Authorize Player. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Check AdBlock** +Check AdBlock. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Create Post** +Create Post. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Get Server Time** +Get Server Time. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Hide Banner** +Hide Banner. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Invite Friends** +Invite Friends. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Join Community** +Join Community. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Leaderboards Get Entries** +Leaderboards Get Entries. + +??? quote "See parameters" + + - Parameter 1 (string): Id + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Leaderboards Set Score** +Leaderboards Set Score. + +??? quote "See parameters" + + - Parameter 1 (string): Id + - Parameter 2 (🔢 Number): Score + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Leaderboards Show Native Popup** +Leaderboards Show Native Popup. + +??? quote "See parameters" + + - Parameter 1 (string): Id + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Payments Consume Purchase** +Payments Consume Purchase. + +??? quote "See parameters" + + - Parameter 1 (string): Id + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Payments Get Catalog** +Payments Get Catalog. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Payments Get Purchases** +Payments Get Purchases. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Payments Purchase** +Payments Purchase. + +??? quote "See parameters" + + - Parameter 1 (string): Id + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Platform Get All Games** +Platform Get All Games. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Platform Get Game By Id** +Platform Get Game By Id. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Rate** +Rate. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Send Message** +Send Message. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Message (one of: "GAME_READY", "IN_GAME_LOADING_STARTED", "IN_GAME_LOADING_STOPPED", "GAMEPLAY_STARTED", "GAMEPLAY_STOPPED", "PLAYER_GOT_ACHIEVEMENT") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Send Remote Config Get Request** +Send Remote Config Get Request. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Send Storage Data Delete Request** +Send Storage Data Delete Request. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Storage Type (one of: "default", "local_storage", "platform_internal") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Send Storage Data Get Request** +Send Storage Data Get Request. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Storage Type (one of: "default", "local_storage", "platform_internal") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Send Storage Data Set Request** +Send Storage Data Set Request. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Storage Type (one of: "default", "local_storage", "platform_internal") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Set Minimum Delay Between Interstitial** +Set Minimum Delay Between Interstitial. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Seconds + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Share** +Share. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Show Banner** +Show Banner. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Position (one of: "bottom", "top") + - Parameter 2 (string): Placement (optional) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Show Interstitial** +Show Interstitial. + +??? quote "See parameters" + + - Parameter 1 (string): Placement (optional) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Show Rewarded** +Show Rewarded. + +??? quote "See parameters" + + - Parameter 1 (string): Placement (optional) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +## Conditions + +**Does Player Have Name** +Does Player Have Name. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Does Player Have Photo** +Does Player Have Photo. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Index + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Has Remote Config Value** +Has Remote Config Value. + +??? quote "See parameters" + + - Parameter 1 (string): Key + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Has Server Time** +Has Server Time. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Has Storage Data** +Has Storage Data. + +??? quote "See parameters" + + - Parameter 1 (string): Key + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Is Achievements Get List Supported** +Is Achievements Get List Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Achievements Native Popup Supported** +Is Achievements Native Popup Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Achievements Supported** +Is Achievements Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Ad Block Detected** +Is Ad Block Detected. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Add To Favorites Supported** +Is Add To Favorites Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Add To Home Screen Supported** +Is Add To Home Screen Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Banner Supported** +Is Banner Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Create Post Supported** +Is Create Post Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Desktop** +Is Desktop. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is External Links Allowed** +Is External Links Allowed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Get All Games Supported** +Is Get All Games Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Get Game By Id Supported** +Is Get Game By Id Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Initialized** +Is Initialized. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Interstitial Supported** +Is Interstitial Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Invite Friends Supported** +Is Invite Friends Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Join Community Supported** +Is Join Community Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Last Action Completed Successfully** +Is Last Action Completed Successfully. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Mobile** +Is Mobile. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Payments Supported** +Is Payments Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Player Authorization Supported** +Is Player Authorization Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Player Authorized** +Is Player Authorized. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Rate Supported** +Is Rate Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Remote Config Supported** +Is Remote Config Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Rewarded Supported** +Is Rewarded Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Share Supported** +Is Share Supported. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Storage Available** +Is Storage Available. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Storage Type (one of: "platform_internal", "local_storage") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Is Storage Supported** +Is Storage Supported. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Storage Type (one of: "platform_internal", "local_storage") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Is Tablet** +Is Tablet. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Is Tv** +Is Tv. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**The leaderboard is of type In Game** +The leaderboard is of type In Game. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**The leaderboard is of type Native** +The leaderboard is of type Native. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**The leaderboard is of type Native Popup** +The leaderboard is of type Native Popup. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**The leaderboard is of type Not Available** +The leaderboard is of type Not Available. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Achievements Get List Completed** +On Achievements Get List Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Achievements Show Native Popup Completed** +On Achievements Show Native Popup Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Achievements Unlock Completed** +On Achievements Unlock Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Add To Favorites Completed** +On Add To Favorites Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Add To Home Screen Completed** +On Add To Home Screen Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Authorize Player Completed** +On Authorize Player Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Banner Failed** +On Banner Failed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Banner Hidden** +On Banner Hidden. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Banner Loading** +On Banner Loading. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Banner Shown** +On Banner Shown. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Banner State Changed** +On Banner State Changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Check AdBlock Completed** +On Check AdBlock Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Create Post Completed** +On Create Post Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Get All Games Completed** +On Get All Games Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Get Game By Id Completed** +On Get Game By Id Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Get Server Time Completed** +On Get Server Time Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Interstitial Closed** +On Interstitial Closed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Interstitial Failed** +On Interstitial Failed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Interstitial Loading** +On Interstitial Loading. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Interstitial Opened** +On Interstitial Opened. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Interstitial State Changed** +On Interstitial State Changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Invite Friends Completed** +On Invite Friends Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Join Community Completed** +On Join Community Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Leaderboards Get Entries Completed** +On Leaderboards Get Entries Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Leaderboards Set Score Completed** +On Leaderboards Set Score Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Leaderboards Show Native Popup Completed** +On Leaderboards Show Native Popup Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Payments Consume Purchase Completed** +On Payments Consume Purchase Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Payments Get Catalog Completed** +On Payments Get Catalog Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Payments Get Purchases Completed** +On Payments Get Purchases Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Payments Purchase Completed** +On Payments Purchase Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rate Completed** +On Rate Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Remote Config Got Completed** +On Remote Config Got Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rewarded Closed** +On Rewarded Closed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rewarded Failed** +On Rewarded Failed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rewarded Loading** +On Rewarded Loading. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rewarded Opened** +On Rewarded Opened. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rewarded Rewarded** +On Rewarded Rewarded. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Rewarded State Changed** +On Rewarded State Changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Share Completed** +On Share Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Storage Data Delete Request Completed** +On Storage Data Delete Request Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Storage Data Get Request Completed** +On Storage Data Get Request Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Storage Data Set Request Completed** +On Storage Data Set Request Completed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**On Visibility State Changed** +On Visibility State Changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Platform Is Audio Enabled** +Platform Is Audio Enabled. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Platform Is Paused** +Platform Is Paused. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Platform On Audio State Changed** +Platform On Audio State Changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Platform On Pause State Changed** +Platform On Pause State Changed. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +## Expressions + +| Expression | Description | | +|-----|-----|-----| +| `PlaygamaBridge::AchievementPropertiesCount()` | Achievement Properties Count. || +| `PlaygamaBridge::AchievementPropertyName(number)` | Achievement Property Name. || +| | _🔢 Number_ | Property Index | +| `PlaygamaBridge::AchievementPropertyValue(number, string)` | Achievement Property Value. || +| | _🔢 Number_ | Achievement Index | +| | _string_ | Property | +| `PlaygamaBridge::AchievementsCount()` | Achievements Count. || +| `PlaygamaBridge::BannerState()` | Banner State. || +| `PlaygamaBridge::DefaultStorageType()` | Default Storage Type. || +| `PlaygamaBridge::DeviceType()` | Device Type. || +| `PlaygamaBridge::InterstitialState()` | Interstitial State. || +| `PlaygamaBridge::LeaderboardEntriesCount()` | Leaderboard Entries Count. || +| `PlaygamaBridge::LeaderboardEntryId(number)` | Leaderboard Entry Id. || +| | _🔢 Number_ | Entry Index | +| `PlaygamaBridge::LeaderboardEntryName(number)` | Leaderboard Entry Name. || +| | _🔢 Number_ | Entry Index | +| `PlaygamaBridge::LeaderboardEntryPhoto(number)` | Leaderboard Entry Photo. || +| | _🔢 Number_ | Entry Index | +| `PlaygamaBridge::LeaderboardEntryRank(number)` | Leaderboard Entry Rank. || +| | _🔢 Number_ | Entry Index | +| `PlaygamaBridge::LeaderboardEntryScore(number)` | Leaderboard Entry Score. || +| | _🔢 Number_ | Entry Index | +| `PlaygamaBridge::LeaderboardsType()` | Leaderboards Type. || +| `PlaygamaBridge::MinimumDelayBetweenInterstitial()` | Minimum Delay Between Interstitial. || +| `PlaygamaBridge::PaymentsCatalogItemPropertiesCount()` | Payments Catalog Item Properties Count. || +| `PlaygamaBridge::PaymentsCatalogItemPropertyName(number)` | Payments Catalog Item Property Name. || +| | _🔢 Number_ | Property Index | +| `PlaygamaBridge::PaymentsCatalogItemPropertyValue(number, string)` | Payments Catalog Item Property Value. || +| | _🔢 Number_ | Product Index | +| | _string_ | Property | +| `PlaygamaBridge::PaymentsCatalogItemsCount()` | Payments Catalog Items Count. || +| `PlaygamaBridge::PaymentsFirstCatalogItemPropertyValue(string, string, string)` | Payments First Catalog Item Property Value. || +| | _string_ | Filter Property | +| | _string_ | Filter Property Value | +| | _string_ | Property | +| `PlaygamaBridge::PaymentsLastPurchasePropertiesCount()` | Payments Last Purchase Properties Count. || +| `PlaygamaBridge::PaymentsLastPurchasePropertyName(number)` | Payments Last Purchase Property Name. || +| | _🔢 Number_ | Property Index | +| `PlaygamaBridge::PaymentsLastPurchasePropertyValue(string)` | Payments Last Purchase Property Value. || +| | _string_ | Property | +| `PlaygamaBridge::PaymentsPurchasePropertiesCount()` | Payments Purchase Properties Count. || +| `PlaygamaBridge::PaymentsPurchasePropertyName(number)` | Payments Purchase Property Name. || +| | _🔢 Number_ | Property Index | +| `PlaygamaBridge::PaymentsPurchasePropertyValue(number, string)` | Payments Last Purchase Property Value. || +| | _🔢 Number_ | Purchase Index | +| | _string_ | Property | +| `PlaygamaBridge::PaymentsPurchasesCount()` | Payments Purchases Count. || +| `PlaygamaBridge::PlatformAllGamePropertiesCount()` | Platform All Game Properties Count. || +| `PlaygamaBridge::PlatformAllGamesCount()` | Platform All Games Count. || +| `PlaygamaBridge::PlatformAllGamesPropertyName(number)` | Platform All Games Property Name. || +| | _🔢 Number_ | Property Index | +| `PlaygamaBridge::PlatformAllGamesPropertyValue(number, string)` | Platform All Games Property Value. || +| | _🔢 Number_ | Game Index | +| | _string_ | Property | +| `PlaygamaBridge::PlatformGameByIdPropertyValue(string)` | Platform Game By Id Property Value. || +| | _string_ | Property | +| `PlaygamaBridge::PlatformId()` | Platform Id. || +| `PlaygamaBridge::PlatformLanguage()` | Platform Language. || +| `PlaygamaBridge::PlatformPayload()` | Platform Payload. || +| `PlaygamaBridge::PlatformTld()` | Platform Tld. || +| `PlaygamaBridge::PlayerExtraPropertiesCount()` | Player Extra Properties Count. || +| `PlaygamaBridge::PlayerExtraPropertyName(number)` | Player Extra Property Name. || +| | _🔢 Number_ | Property Index | +| `PlaygamaBridge::PlayerExtraPropertyValue(string)` | Player Extra Property Value. || +| | _string_ | Property | +| `PlaygamaBridge::PlayerId()` | Player Id. || +| `PlaygamaBridge::PlayerName()` | Player Name. || +| `PlaygamaBridge::PlayerPhoto(number)` | Player Photo # _PARAM1_. || +| | _🔢 Number_ | Index | +| `PlaygamaBridge::PlayerPhotosCount()` | Player Photos Count. || +| `PlaygamaBridge::RemoteConfigValue(string)` | Remote Config Value. || +| | _string_ | Key | +| `PlaygamaBridge::RewardedPlacement()` | Rewarded Placement. || +| `PlaygamaBridge::RewardedState()` | Rewarded State. || +| `PlaygamaBridge::ServerTime()` | Server Time. || +| `PlaygamaBridge::StorageData(string)` | Storage Data. || +| | _string_ | Key | +| `PlaygamaBridge::StorageDataAsJSON(string)` | Storage Data As JSON. || +| | _string_ | Key | +| `PlaygamaBridge::VisibilityState()` | Visibility State. || + + +--- + +*This page is an auto-generated reference page about the **Playgama Bridge** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/point-and-orbit/index.md b/docs/gdevelop5/extensions/point-and-orbit/index.md index 760292512f..6187cfc5a9 100644 --- a/docs/gdevelop5/extensions/point-and-orbit/index.md +++ b/docs/gdevelop5/extensions/point-and-orbit/index.md @@ -3,14 +3,12 @@ Point and orbit an object toward a position or angle. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato), [VictrisGames](https://gd.games/VictrisGames). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -32,9 +30,48 @@ The target angle action can be used to follow hte direction of a gamepad stick **Point and Orbit toward a position** Point and Orbit an object toward a position. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Gun object + The object that is going to orbit and rotate. + - Parameter 2 (🔢 Number): Orbit around this X position + Gun object will orbit around this X position. + - Parameter 3 (🔢 Number): Orbit around this Y position + Gun object will orbit around this Y position. + - Parameter 4 (🔢 Number): Orbit distance (in pixels) + Distance between the Gun object and the Orbit positions X and Y. + Example: 50 . + - Parameter 5 (🔢 Number): Point to this X position + Point the gun object to this Xposition. + - Parameter 6 (🔢 Number): Point to this Y position + Point the gun object to this Yposition. + - Parameter 7 (🔢 Number): Pointing speed (in deg/second) + Set to 0 for an immediate pointing. + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Point and Orbit toward an angle** Point and Orbit an object toward an angle. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Gun object + The object that is going to orbit and rotate. + - Parameter 2 (🔢 Number): Orbit around this X position + Gun object will orbit around this X position. + - Parameter 3 (🔢 Number): Orbit around this Y position + Gun object will orbit around this Y position. + - Parameter 4 (🔢 Number): Orbit distance (in pixels) + Distance between the Gun object and the Orbit positions X and Y. + Example: 50 . + - Parameter 5 (🔢 Number): Angle + Point the gun object to this angle + - Parameter 6 (🔢 Number): Pointing speed (in deg/second) + Set to 0 for an immediate pointing. + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/poki-games-sdkhtml/index.md b/docs/gdevelop5/extensions/poki-games-sdkhtml/index.md index 2eb066edb2..54c55baa67 100644 --- a/docs/gdevelop5/extensions/poki-games-sdkhtml/index.md +++ b/docs/gdevelop5/extensions/poki-games-sdkhtml/index.md @@ -3,7 +3,7 @@ Allow games to be hosted on Poki website and display ads. -**Authors and contributors** to this community extension: [alex_](https://gd.games/alex_). +**Authors and contributors** to this experimental extension: [alex_](https://gd.games/alex_). --- @@ -19,38 +19,105 @@ Please refer to [Poki's guide](https://sdk.poki.com/sdk-documentation.html) to k **Game loading finished** Inform Poki game finished loading. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Gameplay started** Inform Poki gameplay started. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Gameplay stopped** Inform Poki gameplay stopped. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Commercial break** Request commercial break. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Rewarded break** Request rewarded break. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **Commercial break just finished playing** Checks if a commercial break just finished playing. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Rewarded break just finished playing** Checks if a rewarded break just finished playing. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Commercial break is playing** Checks if a commercial break is playing. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Rewarded break is playing** Checks if a rewarded break is playing. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Poki SDK is ready** Check if the Poki SDK is ready to be used. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Should reward player** Checks if player should be rewarded after a rewarded break finished playing. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/pop-up/index.md b/docs/gdevelop5/extensions/pop-up/index.md index c8b42e398d..b198373a28 100644 --- a/docs/gdevelop5/extensions/pop-up/index.md +++ b/docs/gdevelop5/extensions/pop-up/index.md @@ -3,7 +3,7 @@ Display pop-ups to alert, ask confirmation, and let user type a response in text box. -**Authors and contributors** to this community extension: [Leo-Red](https://gd.games/Leo-Red), [Bouh](https://gd.games/Bouh), [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [Leo-Red](https://gd.games/Leo-Red), [Bouh](https://gd.games/Bouh), [arthuro555](https://gd.games/arthuro555). --- @@ -22,9 +22,6 @@ This extension adds actions to display three kinds of pop-ups. **Note that this pop-up type is unsupported on previews and PC exports.** - Displays a message to the player with a text field to write an answer in. The player will also have the option to either confirm or discard their input. -### Usage to save a value from a popup box: -![Screenshot of the way to use the extension to save a value in a variable](https://i.imgur.com/2iR5ofz.png) - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -34,26 +31,59 @@ This extension adds actions to display three kinds of pop-ups. **Alert** Displays an alert box with a message and an OK button in a pop-up window. +??? quote "See parameters" + + - Parameter 1 (string): Alert message + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Confirm** Ask confirmation of user with a message in a dialog box with an OK button, and a Cancel button. +??? quote "See parameters" + + - Parameter 1 (string): Confirmation message + The text to display in the confirm box. + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Prompt** Displays a prompt in a pop-up that prompts the user for input. This action return the text input or the false boolean if canceled. +??? quote "See parameters" + + - Parameter 1 (string): Prompt message + - Parameter 2 (string): Input placeholder + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Pop-up message confirmed** Check if a confirmation was accepted. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Existing prompt response** The response to a pop-up message is filled. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `PopUp::PromptResponse()` | Return the text response by user to prompt. || + --- *This page is an auto-generated reference page about the **Pop-up** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/pushable-and-pullable-box/index.md b/docs/gdevelop5/extensions/pushable-and-pullable-box/index.md index 40b48009a0..29e2446752 100644 --- a/docs/gdevelop5/extensions/pushable-and-pullable-box/index.md +++ b/docs/gdevelop5/extensions/pushable-and-pullable-box/index.md @@ -3,14 +3,12 @@ Convert object to a pushable or/and pullable box. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -43,17 +41,76 @@ Make object pushable or/and pullable by another object. **Pullable Box** Make object pullable by platformer character object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Player object + This object will pull the box. + - Parameter 2 (🧩 Behavior): Platformer character behavior + - Parameter 3 (👾 Object): Box object + - Parameter 4 (🧩 Behavior): Platformer character behavior + - Parameter 5 (🧩 Behavior): Platform behavior + - Parameter 6 (key): Pulling key + - Parameter 7 (🔢 Number): Box weight + The higher the value the lighter the box. + - Parameter 8 (key): Player moving right key + - Parameter 9 (key): Player moving left key + - Parameter 10 (🔢 Number): Pulling distance + The distance between player and box object must be below this number in order to pull the box. + Example: 10. + - Parameter 11 (👾 Object): Second box object + -Set it to the same first **box object** if you **only have 1 box object**. + -Set it to a **group of box objects** if you have **more than 1 box object**. + + > Technical note: parameters 0, 12 are internal parameters handled by GDevelop. + **Pushable Box** Make object pushable by platformer character object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Player object + This object will push the box. + - Parameter 2 (🧩 Behavior): Platformer character behavior + - Parameter 3 (👾 Object): Box object + - Parameter 4 (🧩 Behavior): Platformer character behavior + - Parameter 5 (🧩 Behavior): Platform behavior + - Parameter 6 (🔢 Number): Box weight + The higher the value the lighter the box. + - Parameter 7 (key): Player moving right key + - Parameter 8 (key): Player moving left key + - Parameter 9 (❓ Yes or No): Boxes can overlap when being pushed into each other horizontally + - Parameter 10 (👾 Object): Floor object + Select **any object** if you set the overlap to **Yes**. + Select your **floor object** if you set the overlap to **No**. + - Parameter 11 (👾 Object): Second box object + -Set it to the same first **box object** if you **only have 1 box object**. + -Set it to a **group of box objects** if you have **more than 1 box object**. + - Parameter 12 (🧩 Behavior): Platformer character behavior + - Parameter 13 (🧩 Behavior): Platform behavior + + > Technical note: parameters 0, 14 are internal parameters handled by GDevelop. + ## Conditions **Objct is pulling** Check if the player object is pulling. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Player object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Objct is pushing** Check if the player object is pushing. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Player object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/pushable-box/index.md b/docs/gdevelop5/extensions/pushable-box/index.md deleted file mode 100644 index cacdf5124a..0000000000 --- a/docs/gdevelop5/extensions/pushable-box/index.md +++ /dev/null @@ -1,55 +0,0 @@ -# Pushable Box (Deprecated) - - -Makes an object a pushable box. - -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -# This extension has been reworked -You can install the new reworked version by searching the name: - -**Pushable/Pullable Box** ---- -Extension to make object work as a pushable box -Requires: Platformer character behavior, Platformer behavior - -- Player can push and move the object. -- Player can stand on the object. -- User can set the "weight" of the box. -- User can set the moving keys of the object. -- User have the option to go through box or not. -- User can use up to 3 boxes. - - -*Remember: -- You can change the box (acceleration & deceleration) from the platformer character behavior. -- Extension action can be used ONCE only. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Actions - -**Pushable box (1 Box)** -Make any object a pushable box. - -**Pushable box (2 Boxes)** -Make any object a pushable box. - -**Pushable box (3 Boxes)** -Make any object a pushable box. - - - ---- - -*This page is an auto-generated reference page about the **Pushable Box (Deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/random-color/index.md b/docs/gdevelop5/extensions/random-color/index.md index 6edef253d1..8906bc3ae6 100644 --- a/docs/gdevelop5/extensions/random-color/index.md +++ b/docs/gdevelop5/extensions/random-color/index.md @@ -3,14 +3,12 @@ Create a random color for a scene, an object, or any other color input. -**Authors and contributors** to this community extension: [MrJeje](https://gd.games/MrJeje). +**Authors and contributors** to this experimental extension: [MrJeje](https://gd.games/MrJeje). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -26,6 +24,7 @@ To use it, go in the text area to set a color and type `RandomColor::CreateRando |-----|-----|-----| | `RandomColor::CreateRandomColor()` | Create a totally random color. || + --- *This page is an auto-generated reference page about the **Random Color Generator** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/raycaster3d/index.md b/docs/gdevelop5/extensions/raycaster3d/index.md index 84ce45be68..f2137ea20d 100644 --- a/docs/gdevelop5/extensions/raycaster3d/index.md +++ b/docs/gdevelop5/extensions/raycaster3d/index.md @@ -3,14 +3,12 @@ Find 3D objects that cross a line. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -28,18 +26,76 @@ It can be useful to: **Last recast distance** Compare the last recast intersection distance. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Raycast to a position** Sends a ray from the given source position to the final point, intersecting the closest object. The intersected object will become the only one taken into account. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to test against the ray + - Parameter 2 (🔢 Number): Ray source X position + - Parameter 3 (🔢 Number): Ray source Y position + - Parameter 4 (🔢 Number): Ray source Z position + - Parameter 5 (🔢 Number): Ray target X position + - Parameter 6 (🔢 Number): Ray target Y position + - Parameter 7 (🔢 Number): Ray target Z position + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Raycast from camera center** Sends a ray from the center of the camera, intersecting the closest object. The intersected object will become the only one taken into account. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to test against the ray + - Parameter 2 (🔢 Number): Ray maximum distance (in pixels) + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Raycast from cursor** +Sends a ray from the cursor on the camera screen, intersecting the closest object. The intersected object will become the only one taken into account. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to test against the ray + - Parameter 2 (🔤 Layer name (String)): 2D layer + - Parameter 3 (🔢 Number): Ray maximum distance (in pixels) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Raycast from a camera point** Sends a ray from the given source point on the camera screen, intersecting the closest object. The intersected object will become the only one taken into account. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to test against the ray + - Parameter 2 (🔢 Number): X position on the screen (from 0 to 1) + - Parameter 3 (🔢 Number): Y position on the screen (from 0 to 1) + - Parameter 4 (🔢 Number): Ray maximum distance (in pixels) + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Raycast** Sends a ray from the given source position and angle, intersecting the closest object. The intersected object will become the only one taken into account. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to test against the ray + - Parameter 2 (🔢 Number): Ray source X position + - Parameter 3 (🔢 Number): Ray source Y position + - Parameter 4 (🔢 Number): Ray source Z position + - Parameter 5 (🔢 Number): Rotation angle (in degrees) + - Parameter 6 (🔢 Number): Elevation angle (in degrees) + - Parameter 7 (🔢 Number): Ray maximum distance (in pixels) + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -52,6 +108,7 @@ Sends a ray from the given source position and angle, intersecting the closest o | `Raycaster3D::NormalY()` | Return the last recast intersection normal on X axis. || | `Raycaster3D::NormalZ()` | Return the last recast intersection normal on Z axis. || + --- *This page is an auto-generated reference page about the **3D raycast** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/read-pixels/index.md b/docs/gdevelop5/extensions/read-pixels/index.md index 2eefc3775c..c40ee4b1de 100644 --- a/docs/gdevelop5/extensions/read-pixels/index.md +++ b/docs/gdevelop5/extensions/read-pixels/index.md @@ -3,19 +3,11 @@ Read the values of pixels on the screen. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh). --- - -This extension allow to read pixels on screen. - -| Expression | Argument | Type returned | -|--|--|--| -| ReadPixelRed(x, y) | position x: number, position y: number | number (0-255) | -| ReadPixelGreen(x, y) | position x: number, position y: number | number (0-255) | -| ReadPixelBlue(x, y) | position x: number, position y: number | number (0-255) | -| ReadPixelAlpha(x, y) | position x: number, position y: number | number (0-255) | +Provides expressions allowing to read the RGB value of pixels on screen. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -24,10 +16,19 @@ This extension allow to read pixels on screen. | Expression | Description | | |-----|-----|-----| -| `ReadPixels::ReadPixelAlpha()` | Return the alpha component of the pixel at the specified position. || -| `ReadPixels::ReadPixelBlue()` | Return the blue component of the pixel at the specified position. || -| `ReadPixels::ReadPixelGreen()` | Return the green component of the pixel at the specified position. || -| `ReadPixels::ReadPixelRed()` | Return the red component of the pixel at the specified position. || +| `ReadPixels::ReadPixelAlpha(number, number)` | Return the alpha component of the pixel at the specified position. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `ReadPixels::ReadPixelBlue(number, number)` | Return the blue component of the pixel at the specified position. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `ReadPixels::ReadPixelGreen(number, number)` | Return the green component of the pixel at the specified position. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | +| `ReadPixels::ReadPixelRed(number, number)` | Return the red component of the pixel at the specified position. || +| | _🔢 Number_ | Position X | +| | _🔢 Number_ | Position Y | + --- diff --git a/docs/gdevelop5/extensions/recolorizer/index.md b/docs/gdevelop5/extensions/recolorizer/index.md index ea7edd8df9..c1becd9a91 100644 --- a/docs/gdevelop5/extensions/recolorizer/index.md +++ b/docs/gdevelop5/extensions/recolorizer/index.md @@ -3,7 +3,12 @@ Independently change the colors of a sprite, a tiled sprite or a panel sprite. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -18,6 +23,7 @@ It can be used to: An example shows how to change the 2 main colors of an object ([open the project online](https://editor.gdevelop.io/?project=example://recolorizer)). This extension is experimental and might no longer work in future version of GDevelop. +The [color map effect](https://wiki.gdevelop.io/gdevelop5/interface/scene-editor/layer-effects/#color-map) is the prefered way to recolorize 2D objects. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -33,9 +39,28 @@ Independently change the colors of a panel sprite. **Recolorize** Replace a given color of an object with another one. The scope allows to change similar colors at once. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Origin color + - Parameter 3 (color): Target color + - Parameter 4 (🔢 Number): Hue scope (from 0° to 180°) + - Parameter 5 (🔢 Number): Saturation scope (in percent) + - Parameter 6 (🔢 Number): Lightness scope (in percent) + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Reset color** Set back the original colors of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -48,9 +73,28 @@ Independently change the colors of a sprite. **Recolorize** Replace a given color of an object with another one. The scope allows to change similar colors at once. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Origin color + - Parameter 3 (color): Target color + - Parameter 4 (🔢 Number): Hue scope (from 0° to 180°) + - Parameter 5 (🔢 Number): Saturation scope (in percent) + - Parameter 6 (🔢 Number): Lightness scope (in percent) + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Reset color** Set back the original colors of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ @@ -63,12 +107,32 @@ Independently change the colors of a tiled sprite. **Recolorize** Replace a given color of an object with another one. The scope allows to change similar colors at once. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Origin color + - Parameter 3 (color): Target color + - Parameter 4 (🔢 Number): Hue scope (from 0° to 180°) + - Parameter 5 (🔢 Number): Saturation scope (in percent) + - Parameter 6 (🔢 Number): Lightness scope (in percent) + + > Technical note: parameter 7 are internal parameters handled by GDevelop. + **Reset color** Set back the original colors of an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Object recolorizer (experimental)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/record-movements/index.md b/docs/gdevelop5/extensions/record-movements/index.md index faa7d3d6f6..2e485e320c 100644 --- a/docs/gdevelop5/extensions/record-movements/index.md +++ b/docs/gdevelop5/extensions/record-movements/index.md @@ -3,14 +3,12 @@ Allow the user to record object movements and recall them to make reverse time mechanic. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -36,23 +34,77 @@ such as (Xposition, Yposition, AnimationID, FrameID, HorziontalFlip, VerticalFli **Clear all object records** Clear object records and reset all records back to 0. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Remove this object records + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Load Movements** Allow the user to load saved object movements. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to load its movements + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Record Movements** Allow the user to record object movements. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to record its movements + - Parameter 2 (🔢 Number): Recording speed .per second (Ex: 0.01 | 0.02 | 0.03 | 0.06) + The higher the number the faster loading. + Set to 0 to record every single frame. + - Parameter 3 (❓ Yes or No): Record object X position + - Parameter 4 (❓ Yes or No): Record object Y position + - Parameter 5 (❓ Yes or No): Record object animation ID & Frame ID + - Parameter 6 (❓ Yes or No): Record object horizontal flip direction + - Parameter 7 (❓ Yes or No): Record object vertical flip direction + - Parameter 8 (❓ Yes or No): Record object angle + - Parameter 9 (❓ Yes or No): Record object width + - Parameter 10 (❓ Yes or No): Record object height + - Parameter 11 (❓ Yes or No): Record object visibility + - Parameter 12 (❓ Yes or No): Record object opacity + + > Technical note: parameters 0, 13 are internal parameters handled by GDevelop. + ## Conditions **Recorded frames has finished loading** Check if the recorded frames has finished loading (= to 0). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to check its recorded frames + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Record limit is (below) number** Set recording limit to object (per frame). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Set recording limit to this object + - Parameter 2 (🔢 Number): The maximum recorded frames + Set to 0 or remove the limit condition for infinite recording frames + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Record limit is (above) number** Set recording limit to object (per frame). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Set recording limit to this object + - Parameter 2 (🔢 Number): The maximum recorded frames + Set to 0 or remove the limit condition for infinite recording frames + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/record/index.md b/docs/gdevelop5/extensions/record/index.md index 8823e95345..5c7b5fd890 100644 --- a/docs/gdevelop5/extensions/record/index.md +++ b/docs/gdevelop5/extensions/record/index.md @@ -1,13 +1,13 @@ # Record -Adds events to record the game and players download the clips. Works on desktop, and in the browser. +Actions to record the game and players download the clips. Works on desktop, and in the browser. -**Authors and contributors** to this community extension: [Add00](https://gd.games/Add00). +**Authors and contributors** to this experimental extension: [Add00](https://gd.games/Add00). --- -Adds events to record the game and let players download the clips. Includes options to pause, and resume recordings. Additonally, frame rate, and file format can be picked. +Actions to record the game and let players download the clips. Includes options to pause and resume recordings. Additionally, frame rate and file format can be chosen. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -17,59 +17,168 @@ Adds events to record the game and let players download the clips. Includes opti **Pause recording** Pause recording. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Resume recording** Resume recording. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Save recording** Save recording to the file system on destop, or to the downloads folder for web. Always ask for permission to save a file. +??? quote "See parameters" + + - Parameter 1 (string): File location, set using a FileSystem path e.g. FileSystem::DesktopPath() (only used for desktop saves) + - Parameter 2 (string): Name to save file as + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Set codec** Set the video codec, if a selected codec is unsupported on the users platform a supported one will be picked by deafult. +??? quote "See parameters" + + - Parameter 1 (string): codec + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Set GIF Dithering** Enable dithering in GIF, must be set before starting a recording. Defaults to false. +??? quote "See parameters" + + - Parameter 1 (❓ True or False): Dithering + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Set file format** Set the file format, if a selected file format is unsupported on the users platform a supported one will be picked by deafult. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Recording format (one of: "webm", "mp4", "ogg", "gif") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Set frame rate** Set the frame rate, must be set before starting a recording. Defaults to the min FPS set in the game properties. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Recommended fps for video: 25, 30, 60, for GIFs use 5, 10, 20 + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Set GIF quality** Set the GIF quality, must be set before starting a recording. Defaults to 10. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Quality + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Set video bit rate** Set the video bit rate, must be set before starting a recording. Defaults to 2500000. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): video bits per second + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Start recording** Start the recording. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Stop recording** End the recording. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **Is format supported on user device** Check if the specified format is available on the users device. To avoid unsupported formats pick commons ones like MP4 or WebM. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Select a common format for the best results (one of: "webm", "mp4", "ogg", "gif") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **When an errror has occurred ** Check if an error has occurred. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **When recording has paused** Check if a recording has just been paused. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **When recording has resumed** Check if a recording has just been resumed. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **When recording has saved** Check if recording has just been saved. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **When recording has started** Check if recording has just started. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **When recording has stopped** Check if recording has just stopped. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -83,6 +192,7 @@ Check if recording has just stopped. | `Record::Status()` | Returns the current status of the reccorder: inactive (not recording), recording, or paused. || | `Record::VideoBitRate()` | Returns the current video bit rate per second. || + --- *This page is an auto-generated reference page about the **Record** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/rectangle-movement/index.md b/docs/gdevelop5/extensions/rectangle-movement/index.md index 1385a7bfcf..23cd7921bb 100644 --- a/docs/gdevelop5/extensions/rectangle-movement/index.md +++ b/docs/gdevelop5/extensions/rectangle-movement/index.md @@ -3,7 +3,7 @@ Move objects in a rectangular pattern. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames), [D8H](https://gd.games/D8H). --- @@ -31,9 +31,26 @@ This example can be used to test different settings ([open the project online](h **Update rectangular movement to follow the border of an object** Update rectangular movement to follow the border of an object. Run once, or every time the center object moves. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Moving object + - Parameter 2 (🧩 Behavior): Rectangle Movement (required) + - Parameter 3 (👾 Object): Center object + - Parameter 4 (🔤 String): Position on border (one of: "Inside", "Center", "Outside") + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Move to the nearest corner of the center object** Move to the nearest corner of the center object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Moving object + - Parameter 2 (🧩 Behavior): Rectangle Movement (required) + - Parameter 3 (👾 Object): Center object + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Rectangular movement @@ -45,62 +62,204 @@ Move objects in a rectangular pattern. **Bottom bound** Change the bottom bound of the rectangular movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Clockwise** Change the direction to clockwise or counter-clockwise. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Clockwise + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Easing** Change the easing function of the movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Horizontal edge duration** Change the time the object takes to go through a horizontal edge (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Left bound** Change the left bound of the rectangular movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Right bound** Change the right bound of the rectangular movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Top bound** Change the top bound of the rectangular movement. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Vertical edge duration** Change the time the object takes to go through a vertical edge (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Teleport at a corner** Teleport the object to a corner of the movement rectangle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 String): Corner (one of: "Top-left corner", "Top-right corner", "Bottom-left corner", "Bottom-right corner") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Toggle direction** Toggle the direction to clockwise or counter-clockwise. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is moving clockwise** Check if the object is moving clockwise. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is moving down** Check if the object is moving down. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is moving left** Check if the object is moving to the left. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is moving right** Object is moving to the right. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is moving up** Check if the object is moving up. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is on bottom** Object is on the bottom side of the rectangle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is on left** Object is on the left side of the rectangle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is on right** Object is on the right side of the rectangle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is on top** Object is on the top side of the rectangle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -116,6 +275,7 @@ Object is on the top side of the rectangle. | `Object.RectangleMovement::VerticalEdgeDuration()` | Return the time the object takes to go through a vertical edge (in seconds). || | `Object.RectangleMovement::Width()` | Return the rectangle width. || + --- *This page is an auto-generated reference page about the **Rectangular movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/rectangular-flood-fill/index.md b/docs/gdevelop5/extensions/rectangular-flood-fill/index.md index cadd0dedbe..a7b6b1cfff 100644 --- a/docs/gdevelop5/extensions/rectangular-flood-fill/index.md +++ b/docs/gdevelop5/extensions/rectangular-flood-fill/index.md @@ -1,23 +1,30 @@ # Rectangular flood fill -Create fill objects that cover the rectangular area of target objects. +Create objects as a grid to cover a rectangular area or an other object. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- +This extension can be used to create multiple copies of an object in a wide variety of 2D arrangements, including: + +- horizontal row(s) +- vertical column(s) +- a solid rectangle or square +- an evenly spaced grid +- a grid with different spacing between rows and columns + How To Use: - Place target objects in the scene in the places you want fill objects to be created -- This action only needs to be run once (at the beginning of the scene or using TriggerOnce) +- This action only needs to be run once (at the beginning of the scene or using "Trigger Once") -Object variables (Fill objects): +Object variables (automatically added on Fill objects): - "CreationID" (number) - "RowID" (number) - "ColumnID" (number) -- "BatchID" (text) Tips: @@ -25,16 +32,47 @@ Tips: - Hide target objects at the beginning of the scene if you don't want them to be visible. - Keep the default origin point (top-left corner) on fill objects them to line up exactly with target objects. -[Read more...](https://victrisgames.itch.io/rectangular-flood-fill) +Watch this [tutorial video](https://youtu.be/rlGSlNSRR9w) to see examples of how to use this extension. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. ## Actions -**Rectangular flood fill** +**Create objects to flood fill a rectanglular area** +Create multiple copies of an object. + +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🔢 Number): Number of columns (default: 1) + - Parameter 3 (🔢 Number): Number of rows (default: 1) + - Parameter 4 (🔢 Number): Top-left starting position (X) (default: 0) + - Parameter 5 (🔢 Number): Top-left starting position (Y) (default: 0) + - Parameter 6 (🔢 Number): Amount of space between columns (default: 0) + - Parameter 7 (🔢 Number): Amount of space between rows (default: 0) + - Parameter 8: 🔤 Layer name (String) + - Parameter 9 (🔢 Number): Z order + + > Technical note: parameters 0, 10 are internal parameters handled by GDevelop. + +**Create objects to flood fill other objects** Create fill objects that cover the rectangular area of target objects. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Target object + Rectangular area that will be covered by fill objects + - Parameter 2 (👾 Object): Fill object + Object that is created to cover the rectangular area of target objects + - Parameter 3 (🔢 Number): Space between columns (pixels) + - Parameter 4 (🔢 Number): Space between rows (pixels) + - Parameter 5: 🔤 Layer name (String) + - Parameter 6 (🔢 Number): Z order + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/rectangular-movement/index.md b/docs/gdevelop5/extensions/rectangular-movement/index.md deleted file mode 100644 index 3d6ef5fd75..0000000000 --- a/docs/gdevelop5/extensions/rectangular-movement/index.md +++ /dev/null @@ -1,112 +0,0 @@ -# Rectangular Movement (deprecated) - - -Allow an object to move in a rectangular pattern. - -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -Allow an object to move in a rectangular pattern. -By default, movement will slow down when going around corners, but this can be changed to always use a constant speed. - -Example uses: - -- Moveable platforms -- Enemy movement patterns - -Properties: - -- Center of movement, X position -- Center of movement, Y position -- Horizontal distance -- Vertical distance -- Horizontal speed -- Vertical speed -- Use constant speed (object will not slow down at corners) -- Use counter-clockwise direction - -Tips: - -- Set the CenterX and CenterY values to move the object -- For horizontal movement only, set vertical distance to 0 -- For vertical movement only, set horizontal distance to 0 -- Use conditions to apply logic based on the direction the object is moving. For example, setting the animation. - -[Read more...](https://victrisgames.itch.io/extension-rectangular-movement) - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Rectangular Movement (deprecated) - -Allow an object to move in a rectangular pattern. - -### Behavior actions - -**Reset progress counters** -Reset progress counters. The object will return to the initial state. - -**Set center X position** -Set center X position. - -**Set center Y position** -Set center Y position. - -**Use constant speed** -Use constant speed. - -**Use counter-clockwise direction** -Use counter-clockwise direction. - -**Set horizontal distance** -Set horizontal distance. - -**Set horizontal speed** -Set horizontal speed. - -**Set vertical distance** -Set vertical distance. - -**Set vertical speed** -Set vertical speed. - -### Behavior conditions - -**Object is moving downwards** -Object is moving downwards. - -**Object is moving to the left** -Object is moving to the left. - -**Object is moving to the right** -Object is moving to the right. - -**Object is moving upwards** -Object is moving upwards. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.RectangularMovement::CenterX()` | Center of movement, X position. || -| `Object.RectangularMovement::CenterY()` | Center of movement, Y position. || -| `Object.RectangularMovement::HorizontalDistance()` | Horizontal distance. || -| `Object.RectangularMovement::HorizontalSpeed()` | Horizontal speed. || -| `Object.RectangularMovement::ProgressX()` | Counter used to change the X position of the object. || -| `Object.RectangularMovement::ProgressY()` | Counter used to change the Y position of the object. || -| `Object.RectangularMovement::VerticalDistance()` | Vertical distance. || -| `Object.RectangularMovement::VerticalSpeed()` | Vertical speed. || - ---- - -*This page is an auto-generated reference page about the **Rectangular Movement (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/references/index.md b/docs/gdevelop5/extensions/references/index.md index d1db736007..71418320b0 100644 --- a/docs/gdevelop5/extensions/references/index.md +++ b/docs/gdevelop5/extensions/references/index.md @@ -3,14 +3,12 @@ Adds references and pointers for variables. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -24,12 +22,35 @@ Adds actions to use references (variable that redirect any read/write to another **Create reference to global variable** Transforms a scene variable into a reference to a global variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): The scene variable to turn into a reference + - Parameter 2 (🗄️ Global variable): The global variable the reference will refer to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Create reference to object variable** Transforms a scene variable into a reference to an object's variable. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object that possesses the variable to refer to + - Parameter 2 (🗄️ Scene variable): The scene variable to turn into a reference + - Parameter 3 (🗄️ Object variable): The object variable the reference will refer to + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Create reference to scene variable** Transforms a scene variable into a reference to another scene variable. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): The scene variable to turn into a reference + - Parameter 2 (🗄️ Scene variable): The scene variable the reference will refer to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/reflection/index.md b/docs/gdevelop5/extensions/reflection/index.md index ac91047b3b..1183ecf81f 100644 --- a/docs/gdevelop5/extensions/reflection/index.md +++ b/docs/gdevelop5/extensions/reflection/index.md @@ -3,14 +3,12 @@ Add a reflection to a selected object. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -33,6 +31,26 @@ An action let you set the reflection for specific objects with a lot of options: **Add reflection to object** Reflect your object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Reflection object + A different object than the original object + - Parameter 2 (👾 Object): Original object + - Parameter 3 (🔢 Number): (Optional) Distance offset + Distance in pixel, default: 0px + - Parameter 4 (🔢 Number): (Optional) Reflection opacity + Between 0 transparent to 255 opaque + - Parameter 5 (👾 Object): Reflective surface object + - Parameter 6 (🔢 Number): Reflection object Z order + - Parameter 7 (🔤 Layer name (String)): Layer to create the reflection (Base layer by default) + - Parameter 8 (❓ Yes or No): Delete reflection when it collides with the original object (default: no) + - Parameter 9 (🔢 Number): Distance before removing the reflection + Distance between the reflection and the original object before deleting the reflection (0 by default for immediate delete when touch) + - Parameter 10 (🔢 Number): (Optional) Between 0 transparent to 255 opaque + + > Technical note: parameters 0, 11 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/reg-ex/index.md b/docs/gdevelop5/extensions/reg-ex/index.md index 64660531a2..6de19e78bf 100644 --- a/docs/gdevelop5/extensions/reg-ex/index.md +++ b/docs/gdevelop5/extensions/reg-ex/index.md @@ -3,11 +3,11 @@ Functions for using regular expressions to manipulate strings. -**Authors and contributors** to this community extension: [Add00](https://gd.games/Add00). +**Authors and contributors** to this experimental extension: [Add00](https://gd.games/Add00). --- -Adds function to use regular expressions with strings, such as +Conditions, actions and expressions to use regular expressions with strings, such as: - Find the position of pattern in a string - Find a pattern in a string @@ -23,26 +23,78 @@ Adds function to use regular expressions with strings, such as **Find all matches for a regex pattern** Builds an array containing all matches for a regex pattern. +??? quote "See parameters" + + - Parameter 1 (string): Pattern + - Parameter 2 (string): RegEx flags + - Parameter 3: string + - Parameter 4 (string): The name of the variable to store the result in + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Find all matches with their groups for a regex pattern** Builds an array containing for each regex pattern match an array with the match followed by its regex groups. +??? quote "See parameters" + + - Parameter 1 (string): Pattern + - Parameter 2 (string): RegEx flags + - Parameter 3: string + - Parameter 4 (string): The name of the variable to store the result in + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Find first match with groups for a regex pattern** Builds an array containing the first match for a regex pattern followed by the regex groups. +??? quote "See parameters" + + - Parameter 1 (string): Pattern + - Parameter 2 (string): Flags + - Parameter 3: string + - Parameter 4 (string): Variable name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Split a string into an array** Split a string by each part of it that matches a regex pattern and stores each part into an array. +??? quote "See parameters" + + - Parameter 1 (string): The pattern to split by + - Parameter 2 (string): RegEx flags + - Parameter 3 (string): The string to split by the pattern + - Parameter 4 (string): The name of the variable to store the result in + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Conditions **String matches regex pattern** Checks if a string matches a regex pattern. +??? quote "See parameters" + + - Parameter 1 (string): The pattern to check for + - Parameter 2 (string): RegEx flags + - Parameter 3 (string): The string to check for a pattern + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `RegEx::Find()` | Finds a regex pattern in a string, and returns the index of the position of the match, or -1 if it doesn't match the pattern. || -| `RegEx::Replace()` | Replaces a part of a string that matches a regex pattern with another string. || +| `RegEx::Find(string, string, string)` | Finds a regex pattern in a string, and returns the index of the position of the match, or -1 if it doesn't match the pattern. || +| | _string_ | Pattern | +| | _string_ | RegEx flags | +| | _string_ | String | +| `RegEx::Replace(string, string, string, string)` | Replaces a part of a string that matches a regex pattern with another string. || +| | _string_ | The pattern to check for | +| | _string_ | RegEx flags | +| | _string_ | The string to search for pattern matches in | +| | _string_ | The string to replace the matching patterns with | + --- diff --git a/docs/gdevelop5/extensions/render-to-sprite/index.md b/docs/gdevelop5/extensions/render-to-sprite/index.md index 66626f49c4..2da364bb28 100644 --- a/docs/gdevelop5/extensions/render-to-sprite/index.md +++ b/docs/gdevelop5/extensions/render-to-sprite/index.md @@ -3,7 +3,7 @@ Renders an object, layer, scene or an area of a scene and puts the resulting image into a sprite. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555), [TulenvakiProductions](https://gd.games/TulenvakiProductions). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555), [TulenvakiProductions](https://gd.games/TulenvakiProductions). --- @@ -18,15 +18,46 @@ This allows to make optimizations by transforming the resulting image of a shape **Render a layer into a sprite** Renders a layer and puts the rendered image into a sprite object. +??? quote "See parameters" + + - Parameter 1 (🔤 Layer name (String)): The layer to render + - Parameter 2 (👾 Object): The sprite to render to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Render an object into a sprite** Renders an object and puts the rendered image into a sprite object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The object to render + - Parameter 2 (👾 Object): The sprite to render to + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Render a scene into a sprite** Renders a scene and puts the rendered image into a sprite object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The sprite to render to + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Render an area of a scene into a sprite** Renders a defined area of a scene and puts the rendered image into a sprite object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): The sprite to render to + - Parameter 2 (🔢 Number): Origin X position of the render area + - Parameter 3 (🔢 Number): Origin Y Position of the render area + - Parameter 4 (🔢 Number): Width of the are to render + - Parameter 5 (🔢 Number): Height of the area to render + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/repeat-every-xseconds/index.md b/docs/gdevelop5/extensions/repeat-every-xseconds/index.md index 9fc4dc3dc6..c76067c53e 100644 --- a/docs/gdevelop5/extensions/repeat-every-xseconds/index.md +++ b/docs/gdevelop5/extensions/repeat-every-xseconds/index.md @@ -3,7 +3,7 @@ Trigger an event every X seconds. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555), [VegeTato](https://gd.games/VegeTato), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555), [VegeTato](https://gd.games/VegeTato), [D8H](https://gd.games/D8H). --- @@ -17,22 +17,53 @@ Convenience conditions, actions and behaviors for timers to trigger a condition **Reset repetition count of a scene timer** Reset repetition count of a scene timer. +??? quote "See parameters" + + - Parameter 1 (string): Timer name used to loop + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Repeat with a scene timer** Triggers every X seconds. +??? quote "See parameters" + + - Parameter 1 (string): Timer name used to loop + - Parameter 2 (🔢 Number): Duration in seconds between each repetition + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Repeat with a scene timer X times** Triggers every X seconds X amount of times. +??? quote "See parameters" + + - Parameter 1 (string): Timer name used to loop + - Parameter 2 (🔢 Number): Duration in seconds between each repetition + - Parameter 3 (🔢 Number): The limit of loops + Maximum nuber of repetition (-1 to repeat forever). + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Repetition number of a scene timer** Compare the number of times the timer has repeated. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (string): Timer name used to loop + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `RepeatEveryXSeconds::Repetition()` | Return the number of times the timer has repeated. || +| `RepeatEveryXSeconds::Repetition(string)` | Return the number of times the timer has repeated. || +| | _string_ | Timer name used to loop | ## Repeat every X seconds @@ -43,22 +74,62 @@ Allows to repeat an object timer every X seconds. **Reset repetition count of an object timer** Reset repetition count of an object timer. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Timer name used to loop + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Repeat with an object timer** Triggers every X seconds. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Timer name used to loop + - Parameter 3 (🔢 Number): Duration in seconds between each repetition + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Repeat with an object timer X times** Triggers every X seconds X amount of times. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): Timer name used to loop + - Parameter 3 (🔢 Number): Duration in seconds between each repetition + - Parameter 4 (🔢 Number): The limit of loops + Maximum nuber of repetition (-1 to repeat forever). + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Repetition number of an object timer** Compare the number of times the timer has repeated. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + - Parameter 4 (string): Timer name used to loop + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| -| `Object.RepeatTimer::Repetition()` | Return the number of times the timer has repeated. || +| `Object.RepeatTimer::Repetition(string)` | Return the number of times the timer has repeated. || +| | _string_ | Timer name used to loop | + --- diff --git a/docs/gdevelop5/extensions/rolling-counter/index.md b/docs/gdevelop5/extensions/rolling-counter/index.md new file mode 100644 index 0000000000..d9d3c8a4b4 --- /dev/null +++ b/docs/gdevelop5/extensions/rolling-counter/index.md @@ -0,0 +1,68 @@ +# Rolling counter + + +Smoothly change a counter value in a text object. + +**Authors and contributors** to this experimental extension: [Jurfix](https://gd.games/Jurfix). + +--- + +Smoothly change a counter value in a text object. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Rolling counter + +Smoothly changes a counter value in a text object. + +### Behavior actions + +**Jump to the counter animation end** +Directly display the counter value without playing the animation. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Counter value** +Change the value of the counter. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Counter value** +Compare the value of the counter. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.RollingCounter::Value()` | Return the value of the counter. || + + +--- + +*This page is an auto-generated reference page about the **Rolling counter** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/room-based-camera-movement/index.md b/docs/gdevelop5/extensions/room-based-camera-movement/index.md index 202eec0800..59a64b6fd1 100644 --- a/docs/gdevelop5/extensions/room-based-camera-movement/index.md +++ b/docs/gdevelop5/extensions/room-based-camera-movement/index.md @@ -3,7 +3,7 @@ Move and zoom camera to the room object that contains the trigger object (usually the player). -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [Silver-Streak](https://gd.games/Silver-Streak), [Jurfix](https://gd.games/Jurfix). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [Silver-Streak](https://gd.games/Silver-Streak), [Jurfix](https://gd.games/Jurfix). --- @@ -31,17 +31,53 @@ Tips: **Move and zoom camera to the room object that contains the trigger object (player)** Move and zoom camera to the room object that contains the trigger object (usually the player). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Room object + Room objects are used to mark areas that should be seen by the camera. + - Parameter 2 (👾 Object): Trigger object (player) + When the Trigger Object touches a new Room Object, the camera will move to the new room + - Parameter 3: 🔤 Layer name (String) + - Parameter 4 (🔢 Number): Lerp speed + Range: 0 to 1 + - Parameter 5 (🔢 Number): Maximum zoom + - Parameter 6 (🔢 Number): Minimum zoom + - Parameter 7 (🔢 Number): Outside buffer (pixels) + Minimum extra space displayed around each side the room + - Parameter 8 (🔢 Number): Camera + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + ## Conditions **Check if trigger object (player) has entered a new room** Check if trigger object (usually the player) has entered a new room on this frame. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Trigger object (player) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Check if camera is moving** Check if camera is moving (requires the use of "Move and zoom camera" action in this extension). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Check if camera is zooming** Check if camera is zooming (requires the use of "Move and zoom camera" action in this extension). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/rotate13/index.md b/docs/gdevelop5/extensions/rotate13/index.md index 6574433ad6..2d65bf496d 100644 --- a/docs/gdevelop5/extensions/rotate13/index.md +++ b/docs/gdevelop5/extensions/rotate13/index.md @@ -3,14 +3,12 @@ This extension rotates all alphabetic characters in a string by 13 characters. -**Authors and contributors** to this community extension: [Silver-Streak](https://gd.games/Silver-Streak). +**Authors and contributors** to this experimental extension: [Silver-Streak](https://gd.games/Silver-Streak). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,7 +28,9 @@ This can be used for basic secrets, passwords, or very insecure encryption of da | Expression | Description | | |-----|-----|-----| -| `Rotate13::rot13()` | Rotate String _PARAM1_ 13 Characters. || +| `Rotate13::rot13(string)` | Rotate String _PARAM1_ 13 Characters. || +| | _string_ | String to Rotate | + --- diff --git a/docs/gdevelop5/extensions/rtsunit-selection/index.md b/docs/gdevelop5/extensions/rtsunit-selection/index.md index 36615cb802..5147ffbb43 100644 --- a/docs/gdevelop5/extensions/rtsunit-selection/index.md +++ b/docs/gdevelop5/extensions/rtsunit-selection/index.md @@ -3,7 +3,7 @@ Allow player to select units by clicking on them or dragging a selection box. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [Slash](https://gd.games/Slash). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [Slash](https://gd.games/Slash). --- @@ -46,39 +46,114 @@ Tips: **Assign unit to a control group** Assign unit to a control group. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🔢 Number): Control group ID + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Assign a unique ID to each "Selected" unit** Assign a unique ID to each "Selected" unit. This should be ran every time there is a change in the number of "Selected" units. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Units + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Enable control groups using default controls** Enable control groups using default controls. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Units + Object (or object group) that will be assigned to a control group + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Allow player to select units by clicking on them or dragging a selection box** Allow player to select units by clicking on them or dragging a selection box. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Units + Object (or object group) that can be Selected + - Parameter 2 (👾 Object): Selection box + Edit shape painter properties to change the appearance of this selection box + - Parameter 3 (🔤 Layer name (String)): Layer (of selection box) + Must be the same layer as the units being selected + - Parameter 4 (🔢 Number): Z order (of selection box) + Z order of the selection box + - Parameter 5 (key): Additive select key + Hold this key to add units to selection + - Parameter 6 (key): Subtractive select key + Hold this key to remove units from selection + - Parameter 7 (mouse): Mouse button used to select units + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + **Set unit as "Preselected"** Set unit as "Preselected". +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (❓ True or False): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Set unit as "Selected"** Set unit as "Selected". +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (❓ True or False): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Check if a unit is assigned to a control group** Check if a unit is assigned to a control group. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🔢 Number): Control group ID + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Is unit "Preselected"** Check if the unit is "Preselected". +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Is unit "Selected"** Check if the unit is "Selected". +??? quote "See parameters" + + - Parameter 1: 👾 Object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `RTSUnitSelection::ControlGroupID()` | Control group this unit is assigned to. || -| `RTSUnitSelection::SelectedUnitID()` | Unit ID of a selected unit. || -| `RTSUnitSelection::TotalSelectedUnits()` | Provides the total number of _PARAM1_ that are currently "Selected". || +| `RTSUnitSelection::ControlGroupID(object)` | Control group this unit is assigned to. || +| | _👾 Object_ | Unit | +| `RTSUnitSelection::SelectedUnitID(object)` | Unit ID of a selected unit. || +| | _👾 Object_ | Unit | +| `RTSUnitSelection::TotalSelectedUnits(object)` | Provides the total number of _PARAM1_ that are currently "Selected". || +| | _👾 Object_ | Unit | + --- diff --git a/docs/gdevelop5/extensions/score-counter/index.md b/docs/gdevelop5/extensions/score-counter/index.md new file mode 100644 index 0000000000..f0cf505a8b --- /dev/null +++ b/docs/gdevelop5/extensions/score-counter/index.md @@ -0,0 +1,58 @@ +# Animated Score Counter + + +An animated score counter with an icon and a customisable font. + +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh). + +--- + +An animated score counter with an icon and a customisable font. + +There are ready-to-use counters in the asset-store [score counters pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=score-counters-score-counters). + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Animated Score Counter + +An animated score counter with an icon and a customisable font. + +### Object actions + +**Score** +Change the score of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object conditions + +**Score** +Compare the score of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.Score()` | Return the score of the object. || + + +--- + +*This page is an auto-generated reference page about the **Animated Score Counter** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/screen-orientation-checker/index.md b/docs/gdevelop5/extensions/screen-orientation-checker/index.md new file mode 100644 index 0000000000..76a11e7f11 --- /dev/null +++ b/docs/gdevelop5/extensions/screen-orientation-checker/index.md @@ -0,0 +1,80 @@ +# Screen Orientation Checker + + +Display a customizable screen asking the user to rotate their phone/tablet if not in the right orientation. + +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +Display a customizable screen asking the user to rotate their phone/tablet if not in the right orientation. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Screen Orientation Checker + +Automatically display a screen asking the player to rotate their screen if needed - on mobile phones and tablets only. Set up Anchor behavior on this object so that top/bottom/left/right edges are anchored to the screen top/bottom/left/right. + +### Object actions + +**Force show the screen** +Change if the screen should be forced to be shown. Use this to test the screen in your game. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Force show the screen? + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Message** +Change the message of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object conditions + +**Force show the screen** +Check if the screen should be forced to be shown. Use this to test the screen in your game. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Message** +Compare the message of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.Message()` | Return the message of the object. || + + +--- + +*This page is an auto-generated reference page about the **Screen Orientation Checker** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/screen-wrap/index.md b/docs/gdevelop5/extensions/screen-wrap/index.md index d6745c3956..e9f2cd83f3 100644 --- a/docs/gdevelop5/extensions/screen-wrap/index.md +++ b/docs/gdevelop5/extensions/screen-wrap/index.md @@ -3,14 +3,14 @@ Teleport object when it moves off the screen and immediately appear on the opposite side while maintaining speed and trajectory. -**Authors and contributors** to this community extension: [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames), [MelonDev](https://gd.games/MelonDev). +**Authors and contributors** to this experimental extension: [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames), [MelonDev](https://gd.games/MelonDev). --- The teleport happens when the center point of the object crosses a border (this can be adjusted with an offset). -By default, the borders of the wrapping area match the screen size, but they can alo be changed. +By default, the borders of the wrapping area match the screen size, but they can also be changed. -The Asteroid-like example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://space-asteroid)). +The Asteroid-like example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://space-asteroids)). !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -26,32 +26,102 @@ Teleport the object when leaving one side of the screen so that it immediately r **Enable horizontal wrapping** Enable wrapping on the left and right borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable vertical wrapping** Enable wrapping on the top and bottom borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set bottom border** Set bottom border (Y position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Bottom border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set left border** Set left border (X position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Left border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set right border** Set right border (X position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Right border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set top border** Set top border (Y position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Top border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set trigger offset** Set trigger offset (pixels). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): SetScreen Offset Leaving Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Is horizontal wrapping** Check if the object is wrapping on the left and right borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is vertical wrapping** Check if the object is wrapping on the top and bottom borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -71,38 +141,122 @@ Teleport the object when leaving one side of the screen so that it immediately r **Apply saved velocity values** Apply saved velocity values. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Enable horizontal wrapping** Enable wrapping on the left and right borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable vertical wrapping** Enable wrapping on the top and bottom borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Save current velocity values** Save current velocity values. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Set bottom border** Set bottom border (Y position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Bottom border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set left border** Set left border (X position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Left border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set right border** Set right border (X position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Right border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set top border** Set top border (Y position). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Top border value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set trigger offset** Set trigger offset (pixels). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): SetScreen Offset Leaving Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Is horizontal wrapping** Check if the object is wrapping on the left and right borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is vertical wrapping** Check if the object is wrapping on the top and bottom borders. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -113,6 +267,7 @@ Check if the object is wrapping on the top and bottom borders. | `Object.ScreenWrapPhysics::BorderTop()` | Top border (Y position). || | `Object.ScreenWrapPhysics::TriggerOffset()` | Number of pixels past the center where the object teleports and appears. || + --- *This page is an auto-generated reference page about the **Screen wrap** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/scrollbar/index.md b/docs/gdevelop5/extensions/scrollbar/index.md new file mode 100644 index 0000000000..35b90a08cc --- /dev/null +++ b/docs/gdevelop5/extensions/scrollbar/index.md @@ -0,0 +1,104 @@ +# Scrollbar + + +A scrollbar to help making a scroll view. + +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [Jurfix](https://gd.games/Jurfix), [Alios](https://gd.games/Alios). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +A scrollbar to help making a scroll view. + +An example of scroll view can be found in the [multiplayer custom lobbies](https://wiki.gdevelop.io/gdevelop5/extensions/multiplayer-custom-lobbies/) extension. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Scrollbar + +A scrollbar to help making a scroll view. + +### Object actions + +**Content length** +Change the content length of the object. The length of the content to scroll. The scroll bar don't actually scroll the content. You have to do it yourself with camera actions. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Scroll position** +Change the scroll position. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object conditions + +**Content length** +Compare the content length of the object. The length of the content to scroll. The scroll bar don't actually scroll the content. You have to do it yourself with camera actions. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Scrolling is required** +Check if the content is big enough to require scrolling. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Thumb is dragged** +Check if the thumb of the scrollbar is dragged. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Scroll position** +Compare the scroll position. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.ContentLength()` | Return the content length of the object. The length of the content to scroll. The scroll bar don't actually scroll the content. You have to do it yourself with camera actions. || +| `Object.ScrollPosition()` | Return the scroll position. || + + +--- + +*This page is an auto-generated reference page about the **Scrollbar** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/secret-code/index.md b/docs/gdevelop5/extensions/secret-code/index.md deleted file mode 100644 index 5913499304..0000000000 --- a/docs/gdevelop5/extensions/secret-code/index.md +++ /dev/null @@ -1,99 +0,0 @@ -# Secret Code - - -Allows to input a secret code for cheats and easter eggs. - -**Authors and contributors** to this community extension: [Dekar](https://gd.games/Dekar). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -Allows to input a secret code for cheats and easter eggs. - -There are two behaviors in this extension: `SecretCode` and `ManualSecretCode`. - -To use `SecretCode`, simply attach the behavior to any object in a scene and set the desired code. Use the `Code entered` condition in the editor to trigger your desired effects with events. - -To use `ManualSecretCode`, first attach the behavior to any object in a scene. To enter a key, use the `Input key` action, and use the `Code entered` condition in the editor to trigger your desired effects with events. - -Inspired by Konami Code extension. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Manual Secret Code - -Allows to manually input a secret code for cheats and easter eggs. - -### Behavior actions - -**Accept code** -Accept code input. - -**Change code** -Change secret code. - -**Input key** -Input key. - -**Reset code entered correctly status** -Reset code entered correctly status. - -**Reset inputted code** -Reset currently inputted code. - -### Behavior conditions - -**Is the code currently being entered** -Check if the code is currently being entered. - -**Code entered correctly** -Code entered correctly. - -**Is accepting code** -Check if the object is accepting code. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.ManualSecretCode::LastValidIndex()` | Return the last valid index. || -| `Object.ManualSecretCode::LastValidKey()` | Return the last valid key. || - -## Secret Code - -Allows to input a secret code for cheats and easter eggs. - -### Behavior actions - -**Accept code** -Accept code input. - -**Change code** -Change secret code. - -**Reset code entered correctly status** -Reset code entered correctly status. - -### Behavior conditions - -**Code entered correctly** -Code entered correctly. - -**Is accepting code** -Check if the object is accepting code. - -_No expressions for this behavior._ - - ---- - -*This page is an auto-generated reference page about the **Secret Code** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/selection-tools/index.md b/docs/gdevelop5/extensions/selection-tools/index.md index d5850e605a..8ff86dabd6 100644 --- a/docs/gdevelop5/extensions/selection-tools/index.md +++ b/docs/gdevelop5/extensions/selection-tools/index.md @@ -3,14 +3,12 @@ Select object instances by drawing rectangular, polygonal or lasso selection. -**Authors and contributors** to this community extension: [AshBadas](https://gd.games/AshBadas). +**Authors and contributors** to this experimental extension: [AshBadas](https://gd.games/AshBadas). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -63,29 +61,89 @@ Select object instances by drawing rectangular, polygonal or lasso selection. **Activate lasso selection** Change the current selection type to lasso selection. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Length of each side of the shape representing the lasso (in pixels) + - Parameter 2 (🔢 Number): Maximum number of vertices that the shape representing the lasso can have + Too many vertices can affect the performance. A limit on the vertex count ensures that doesn't happen. + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Activate polygonal selection** Change the current selection type to polygonal selection. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Minimum length of each side of the shape/polygon (in pixels) + - Parameter 2 (🔢 Number): Maximum number of vertices that the shape/polygon can have + Too many vertices can affect the performance. A limit on the vertex count ensures that doesn't happen. + - Parameter 3 (🔢 Number): Merge proximity + When clicked, how far (at maximum, in pixels) the cursor needs to be from the first vertex to close the shape. + - Parameter 4 (❓ Yes or No): True polygon? + If the selection is a true polygon, dragging while the mouse button or touch is down will not place new vertices. + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Activate rectangular selection** Change the current selection type to rectangular selection. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Clear selection** Clear the selection (Note: This action does not deslect selected objects). +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **De/Activate selection tools** De/Activate selection tools. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Activate? + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Current selection type** Current selection type. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Selection type (one of: "Rectangular", "Polygonal", "Lasso") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Select** Select objects inside the selection boundary. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object or group that is to be selected + - Parameter 2 (❓ Yes or No): Invert selection? + Select all object instances outside the selection boundary. + - Parameter 3 (❓ Yes or No): Pre-select? + Don't wait for the shape to be closed or the mouse button/touch to be released. + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Selection activated** Selection tools is activated. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Selection painter @@ -95,6 +153,7 @@ Draw selection (SelectionTools). _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Selection tools** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/shadow-clones/index.md b/docs/gdevelop5/extensions/shadow-clones/index.md index 584e54a4dd..b0dd4a7aa1 100644 --- a/docs/gdevelop5/extensions/shadow-clones/index.md +++ b/docs/gdevelop5/extensions/shadow-clones/index.md @@ -3,7 +3,7 @@ Create and animate shadow clones that follow the path of a primary object. -**Authors and contributors** to this community extension: [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames), [fuzzy](https://gd.games/fuzzy). +**Authors and contributors** to this experimental extension: [Entropy](https://gd.games/Entropy), [VictrisGames](https://gd.games/VictrisGames), [fuzzy](https://gd.games/fuzzy). --- @@ -42,9 +42,39 @@ Watch this [tutorial video](https://youtu.be/2t4ANYgrrak) to see examples of how **Animate shadow clones that follow the path of a primary object** Select the primary object, the shadow clone object, the number of shadow clones, the number of frames between shadow clones, the rate that shadow clones will fade away (if desired), the Z-value of the shadow clones, and the layer the shadow clones will be created on. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object that shadow clones will follow + - Parameter 2 (👾 Object): Shadows clones will be made of this object (Cannot be the same object used for primary object) + - Parameter 3 (🔢 Number): Number of shadow clones (Default: 1) + - Parameter 4 (🔢 Number): Number of empty frames between shadow clones (Default: 1) + - Parameter 5 (🔢 Number): Fade speed (Range: 0 to 255) (Default: 0) + Decrease in opacity for each consecutive shadow clone + - Parameter 6 (🔢 Number): Shrink speed (Range: 0 to 100) (Default: 0) + Decrease in scale for each consecutive shadow clone + - Parameter 7 (🔤 Layer name (String)): Shadow clones will be created on this layer. (Default: "") (Base Layer) + - Parameter 8 (🔢 Number): Z value for created shadow clones + - Parameter 9 (❓ Yes or No): Match X scale of primary object: + - Parameter 10 (❓ Yes or No): Match Y scale of primary object: + - Parameter 11 (❓ Yes or No): Match angle of primary object: + - Parameter 12 (❓ Yes or No): Match animation of primary object: + - Parameter 13 (❓ Yes or No): Match animation frame of primary object: + - Parameter 14 (❓ Yes or No): Match the vertical flip of primary object: + - Parameter 15 (❓ Yes or No): Match the horizontal flip of primary object: + + > Technical note: parameters 0, 16 are internal parameters handled by GDevelop. + **Delete shadow clone objects that are linked to a primary object** Delete shadow clone objects that are linked to a primary object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Primary object + - Parameter 2 (👾 Object): Shadow clones + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/shake-object/index.md b/docs/gdevelop5/extensions/shake-object/index.md index f78082e292..b099e5903d 100644 --- a/docs/gdevelop5/extensions/shake-object/index.md +++ b/docs/gdevelop5/extensions/shake-object/index.md @@ -3,7 +3,7 @@ Shake an object. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -17,8 +17,6 @@ It can be used for: The top-down RPG example uses this extension for damage animations ([open the project online](https://editor.gdevelop.io/?project=example://top-down-rpg)). -[Read more...](https://victrisgames.itch.io/gdevelop-camera-shake-example) - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -26,46 +24,106 @@ The top-down RPG example uses this extension for damage animations ([open the pr ## Shake object (position, angle) -Shake an object, using one or more ways to shake (position, angle). -This behavior can be used on any type of object. +Shake objects with translation and rotation. ### Behavior actions **Shake object (position, angle)** Shake an object, using one or more ways to shake (position, angle). Make sure to "Stop shaking" before starting a new shake if it uses different parameters. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration of shake (in seconds) (Default: 0.5) + - Parameter 3 (🔢 Number): Amplitude of postion shake in X direction (in pixels) (For example: 5) + - Parameter 4 (🔢 Number): Amplitude of position shake in Y direction (in pixels) (For example: 5) + Use a negative number to make the single-shake move in the opposite direction. + - Parameter 5 (🔢 Number): Amplitude of angle rotation shake (in degrees) (For example: 5) + - Parameter 6 (🔢 Number): Amount of time between shakes (in seconds) (Default: 0.08) + For a single-shake effect, set it to the same value as "Duration". + - Parameter 7 (❓ Yes or No): Keep shaking until stopped + Duration value will be ignored + + > Technical note: parameter 8 are internal parameters handled by GDevelop. + **Stop shaking the object** Stop any shaking of object that was initiated by the Shake Object extension. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Check if an object is shaking** Check if an object is shaking. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ ## Shake object (position, angle, scale) -Shake an object, using one or more ways to shake (position, angle, scale) -This behavior can only be used on sprite objects. +Shake objects with translation, rotation and scale. ### Behavior actions **Shake object (position, angle, scale)** Shake an object, using one or more ways to shake (position, angle, scale). Make sure to "Stop shaking" before starting a new shake if it uses different parameters. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration of shake (in seconds) (Default: 0.5) + - Parameter 3 (🔢 Number): Amplitude of postion shake in X direction (in pixels) (For example: 5) + - Parameter 4 (🔢 Number): Amplitude of position shake in Y direction (in pixels) (For example: 5) + Use a negative number to make the single-shake move in the opposite direction. + - Parameter 5 (🔢 Number): Amplitude of angle rotation shake (in degrees) (For example: 5) + - Parameter 6 (🔢 Number): Amplitude of scale shake (in percent change) (For example: 5) + - Parameter 7 (🔢 Number): Amount of time between shakes (in seconds) (Default: 0.08) + For a single-shake effect, set it to the same value as "Duration". + - Parameter 8 (❓ Yes or No): Keep shaking until stopped + Duration value will be ignored + + > Technical note: parameter 9 are internal parameters handled by GDevelop. + **Stop shaking an object** Stop shaking an object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Check if an object is shaking** Check if an object is shaking. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Shake object** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/shake-object3d/index.md b/docs/gdevelop5/extensions/shake-object3d/index.md index a60a1ddaa5..6c6f50abeb 100644 --- a/docs/gdevelop5/extensions/shake-object3d/index.md +++ b/docs/gdevelop5/extensions/shake-object3d/index.md @@ -3,7 +3,7 @@ Shake 3D objects. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -11,10 +11,6 @@ Shake 3D objects with translation and rotation. The 3D racing game example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://3d-racing-game)). -Breaking changes from 2.0.0 - -- The behavior for 3D box has been removed. The other behavior can be used for both models and boxes. - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -29,32 +25,91 @@ Shake 3D objects with translation and rotation. **Shaking frequency** Change the shaking frequency of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shake** Shake the object with a linear easing at the start and the end. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration (in seconds) + - Parameter 3 (🔢 Number): Ease duration to start (in seconds) + - Parameter 4 (🔢 Number): Ease duration to stop (in seconds) + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Start shaking** Shake the object with a linear easing at the start and keep shaking until the stop action is used. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Ease duration (in seconds) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Stop shaking** Stop shaking the object with a linear easing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Ease duration (in seconds) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior conditions **Shaking frequency** Compare the shaking frequency of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Is shaking** Check if the object is shaking. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is stopping to shake** Check if the object is stopping to shake. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.ShakeModel3D::Frequency()` | Return the shaking frequency of the object. || + --- *This page is an auto-generated reference page about the **3D object shake** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/share/index.md b/docs/gdevelop5/extensions/share/index.md index 3253811e67..ec3e52ef0f 100644 --- a/docs/gdevelop5/extensions/share/index.md +++ b/docs/gdevelop5/extensions/share/index.md @@ -3,7 +3,7 @@ Allows to share content via the system share dialog. Works only on mobile (browser or mobile app). -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [arthuro555](https://gd.games/arthuro555). --- @@ -19,20 +19,42 @@ This will work for Android and iOS on browsers (Google Chrome, Safari...) and on **Share** Share a link or text via another app using the system share dialog. +??? quote "See parameters" + + - Parameter 1 (string): Text to share + - Parameter 2 (string): Url to share + - Parameter 3 (string): Title to show in the Share dialog + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Conditions **Sharing is supported** Check if the browser/operating system of the device supports sharing. Sharing is typically not supported on desktop browsers or desktop apps. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Result of the last share dialog** Compare the result of the last share dialog. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Value to compare (one of: "unsupported", "ok", "canceled") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| | `Share::LastShareResult()` | Return the result of the last share dialog. || + --- *This page is an auto-generated reference page about the **Share dialog and sharing options** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/shock-wave-effect/index.md b/docs/gdevelop5/extensions/shock-wave-effect/index.md index 18dadd2dbb..bcad536c8e 100644 --- a/docs/gdevelop5/extensions/shock-wave-effect/index.md +++ b/docs/gdevelop5/extensions/shock-wave-effect/index.md @@ -3,7 +3,7 @@ Draw shock wave. -**Authors and contributors** to this community extension: [Alios](https://gd.games/Alios). +**Authors and contributors** to this experimental extension: [Alios](https://gd.games/Alios). --- @@ -31,95 +31,362 @@ Draw ellipse shock waves. **Duration** Change the duration of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Easing** Change the easing of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End angle** Change the end angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End Color** Change the end Color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End height** Change the end height of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End Opacity** Change the end Opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End outline thickness** Change the end outline thickness of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End width** Change the end width of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Enable filling** Enable or disable the filling of the shape. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): IsFilled + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Start angle** Change the start angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start color** Change the start color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start height** Change the start height of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start opacity** Change the start opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start outline thickness** Change the start outline of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start width** Change the start width of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Duration** Compare the duration of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Easing** Compare the easing of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End angle** Compare the end angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End Color** Compare the end Color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End height** Compare the end height of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End Opacity** Compare the end Opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End outline thickness** Compare the end outline thickness of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End width** Compare the end width of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shape filled** Check if the shape is filled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Start angle** Compare the start angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start color** Compare the start color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start height** Compare the start height of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start opacity** Compare the start opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start outline thickness** Compare the start outline of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start width** Compare the start width of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -148,101 +415,386 @@ Draw star shock waves. **Duration** Change the duration of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Easing** Change the easing of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔤 String): Value (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End angle** Change the end angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End color** Change the end color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End inner radius** Change the end inner radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End opacity** Change the end opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End outline thickness** Change the end outline thickness of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End radius** Change the end radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Enable filling** Enable or disable the filling of the shape. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): IsFilling + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Number of points** Change the number of points of the star. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start angle** Change the start angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start color** Change the start color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (color): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start inner radius** Change the start inner radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start opacity** Change the start opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start outline thickness** Change the start outline thickness of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start radius** Change the start radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Duration** Compare the duration of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Easing** Compare the easing of the animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔤 String): Value to compare (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInSine", "easeOutSine", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End angle** Compare the end angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End color** Compare the end color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End inner radius** Compare the end inner radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End opacity** Compare the end opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End outline thickness** Compare the end outline thickness of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **End radius** Compare the end radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Shape filled** Check if the shape is filled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Number of points** Compare the number of points of the star. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start angle** Compare the start angle of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start color** Compare the start color of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (color): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start inner radius** Compare the start inner radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start opacity** Compare the start opacity of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start outline thickness** Compare the start outline thickness of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Start radius** Compare the start radius of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -263,6 +815,7 @@ Compare the start radius of the object. | `Object.StarShockWave::StartOutlineThickness()` | Return the start outline thickness of the object. || | `Object.StarShockWave::StartRadius()` | Return the start radius of the object. || + --- *This page is an auto-generated reference page about the ** Shock wave effect** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sine-movement/index.md b/docs/gdevelop5/extensions/sine-movement/index.md deleted file mode 100644 index 6c7e6f66ed..0000000000 --- a/docs/gdevelop5/extensions/sine-movement/index.md +++ /dev/null @@ -1,110 +0,0 @@ -# Sine (or ellipsis) Movement (deprecated) - - -Allow an object to move smoothly on the X and/or Y axis following a sine wave, or an ellipsis. - -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [VictrisGames](https://gd.games/VictrisGames). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -Allow an object to move smoothly on the X and/or Y axis following a sine wave, or an ellipsis. - - -Example uses: - -- Floating objects, such as powerups or coins -- Moveable platforms -- Enemy movement patterns - -Properties: - -- Horizontal distance -- Vertical distance -- Horizontal speed -- Vertical speed -- Center of movement, X position -- Center of movement, Y position - -Tips: - -- For circular or elliptical movement, the horizontal and vertical speed need to be the same -- For horizontal movement only, set vertical distance to 0 -- For vertical movement only, set horizontal distance to 0 -- For figure-8 movement, set horizontal speed to 1/2 of the vertical speed - -[Read more...](https://victrisgames.itch.io/extension-sinemovement-and-deptheffect) - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Sine Movement (deprecated) - -Allow an object to move smoothly on the X and/or Y axis following a sine wave. - -Example uses: -- Floating pickups -- Moveable platforms -- Enemy movement - -Properties: -- Center of movement, X position -- Center of movement, Y position -- Horizontal distance -- Vertical distance -- Horizontal speed -- Horizontal distance - -Tips: -- For circular or elliptical movement, the horizontal and vertical speed need to be the same -- For horizontal movement, set vertical distance to 0 -- For vertical movement, set horizontal distance to 0 -- For figure-8 movement, set horizontal speed to 1/2 of the vertical speed. - -### Behavior actions - -**Reset sine progress counters** -Reset sine progress counters. The object will return to the initial state. - -**Set center X position** -Set center X position. - -**Set center Y position** -Set center Y position. - -**Set horizontal distance** -Set horizontal distance. - -**Set horizontal speed** -Set horizontal speed. - -**Set vertical distance** -Set vertical distance. - -**Set vertical speed** -Set vertical speed. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.SineMovement::CenterX()` | Center of movement, X position. || -| `Object.SineMovement::CenterY()` | Center of movement, Y position. || -| `Object.SineMovement::HorizontalDistance()` | Horizontal distance. || -| `Object.SineMovement::HorizontalSpeed()` | Horizontal speed. || -| `Object.SineMovement::SineProgressX()` | Counter used to change the X position of the object. || -| `Object.SineMovement::SineProgressY()` | Counter used to change the Y position of the object. || -| `Object.SineMovement::VerticalDistance()` | Vertical distance. || -| `Object.SineMovement::VerticalSpeed()` | Vertical speed. || - ---- - -*This page is an auto-generated reference page about the **Sine (or ellipsis) Movement (deprecated)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sky3d/index.md b/docs/gdevelop5/extensions/sky3d/index.md new file mode 100644 index 0000000000..6941b3c2d5 --- /dev/null +++ b/docs/gdevelop5/extensions/sky3d/index.md @@ -0,0 +1,61 @@ +# 3D Sky and sun + + +Fully animated 3D sky with sun. + +**Authors and contributors** to this experimental extension: [TheAvIGOLD](https://gd.games/TheAvIGOLD). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +Fully animated 3D sky with the sun. +You can adjust each parameter: the position of the sun, the brightness and the scattering of rays. +The color of the sky changes depending on the position of the sun: reddish at sunset and blue at the zenith. + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Actions + +**Create sky** +Create sky and sun. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Turbidity (0-20, default 10) + - Parameter 2 (🔢 Number): Rayleigh (0-4, default 3) + - Parameter 3 (🔢 Number): Mie coefficient (0-100, default 1) + - Parameter 4 (🔢 Number): Mie Directional (0-1, default 0.965) + - Parameter 5 (🔢 Number): Elevation (0-360, default 10) + - Parameter 6 (🔢 Number): Azimuth (0-360, default 0) + - Parameter 7 (🔢 Number): Exposure (0-1, default 0.5) + - Parameter 8: 🔤 Layer name (String) + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + +**Set sky parameters** +Set sky parameters. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Turbidity (0-20, default 10) + - Parameter 2 (🔢 Number): Rayleigh (0-4, default 3) + - Parameter 3 (🔢 Number): Mie coefficient (0-100, default 1) + - Parameter 4 (🔢 Number): Mie Directional (0-1, default 0.965) + - Parameter 5 (🔢 Number): Elevation (0-360, default 10) + - Parameter 6 (🔢 Number): Azimuth (0-360, default 0) + - Parameter 7 (🔢 Number): Exposure (0-1, default 0.5) + - Parameter 8: 🔤 Layer name (String) + + > Technical note: parameters 0, 9 are internal parameters handled by GDevelop. + + + + +--- + +*This page is an auto-generated reference page about the **3D Sky and sun** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/slot-system/index.md b/docs/gdevelop5/extensions/slot-system/index.md index 1fca4651a5..630bedc72e 100644 --- a/docs/gdevelop5/extensions/slot-system/index.md +++ b/docs/gdevelop5/extensions/slot-system/index.md @@ -3,14 +3,12 @@ Manage any kind of slots for your inventories, board games and tiled environments. -**Authors and contributors** to this community extension: [infokubarcade](https://gd.games/infokubarcade), [WickedSidereal](https://gd.games/WickedSidereal). +**Authors and contributors** to this experimental extension: [infokubarcade](https://gd.games/infokubarcade), [WickedSidereal](https://gd.games/WickedSidereal). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -47,310 +45,1149 @@ Use a 2D grid position to retrieve your informations. It uses the basic slot sys **Add item automatically** Add automatically an item to its slot, or the next empty slot if necessary. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Item + - Parameter 3 (🔢 Number): Quantity + - Parameter 4 (🔢 Number): Maximum quantity + Set 0 for unlimited slot. + - Parameter 5 (❓ Yes or No): Can flood on other empty slots + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Add named slot** Add a special slot with a name to the space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Import JSON string** Import a JSON string and convert it in a slot system. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (string): JSON string + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Delete the grid slot** Delete a grid slot from a space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Delete the named slot** Delete a slot from a space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Delete the slot** Delete a slot from a space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Move item on the grid** Move an item from a position to an other on the grid. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): From column index + - Parameter 3 (🔢 Number): From row index + - Parameter 4 (🔢 Number): To column index + If this slot already contains an item, it will be erased. + - Parameter 5 (🔢 Number): To row index + - Parameter 6 (❓ Yes or No): Exchange if the target already contains an item + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Move item from named slot to named slot** Move an item from a named slot to an other. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): From space name + - Parameter 2 (🔤 Name (String)): From slot name + - Parameter 3 (🔤 Name (String)): To space name + - Parameter 4 (🔤 Name (String)): To slot name + If this slot already contains an item, it will be erased. + - Parameter 5 (❓ Yes or No): Exchange if the target already contains an item + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Move item from named slot to slot** Move an item from a slot to an other. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): From space name + - Parameter 2 (🔤 Name (String)): From slot name + - Parameter 3 (🔤 Name (String)): To space name + - Parameter 4 (🔢 Number): To slot + If this slot already contains an item, it will be erased. + - Parameter 5 (❓ Yes or No): Exchange if the target already contains an item + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Move item from slot to named slot** Move an item from a slot to an other. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): From space name + - Parameter 2 (🔢 Number): From slot + - Parameter 3 (🔤 Name (String)): To space name + - Parameter 4 (🔤 Name (String)): To slot name + If this slot already contains an item, it will be erased. + - Parameter 5 (❓ Yes or No): Exchange if the target already contains an item + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Move item from slot to slot** Move an item from a slot to an other. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): From space name + - Parameter 2 (🔢 Number): From slot + - Parameter 3 (🔤 Name (String)): To space name + - Parameter 4 (🔢 Number): To slot + If this slot already contains an item, it will be erased. + - Parameter 5 (❓ Yes or No): Exchange if the target already contains an item + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Delete grid slot property** Delete a property content from a grid slot. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + - Parameter 4 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Delete named slot property** Delete a property content from a named slot. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + - Parameter 3 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Delete slot property** Delete a property content from a slot. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + - Parameter 3 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Grid slot count** Change the grid slot count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Empty the grid slot** Empty the grid slot of the space only. It still exists in the space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Set an item in a grid slot** Set an item in a grid slot of a space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + - Parameter 4 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Grid slot max count** Change the grid slot max count, or 0 if unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Grid slot number property** Change the number property of a grid slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + - Parameter 6 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Grid slot text property** Change the text property of a grid slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + - Parameter 6 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Set grid slot unlimited** Set the max count of a grid slot to be unlimited. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Named slot count** Change the named slot count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Empty the named slot** Empty the named slot of the space only. It still exists in the space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Set an item in a named slot** Set an item in a named slot of a space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + - Parameter 3 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Named slot max count** Change the named slot max count, or 0 if unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Named slot number property** Change the number property of a named slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Named slot text property** Change the text property of a named slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Set named slot unlimited** Set the max count of a named slot to be unlimited. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Slot count** Change the slot count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Empty the slot** Empty the slot of the space only. It still exists in the space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Set an item in a slot** Set an item in a slot of a space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + - Parameter 3 (🔤 Name (String)): Item name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Slot max count** Change the slot max count, or 0 if unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Slot number property** Change the number property of a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Slot text property** Change the text property of a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Set slot unlimited** Set the max count of a slot to be unlimited. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Set grid size** Set the space size using grid dimension. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Columns + - Parameter 3 (🔢 Number): Rows + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Set space size** Set the amount of slots in the space. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Size + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Sort items by property** Sort items and move them into a new slot order. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Property name + - Parameter 3 (❓ True or False): From named slots + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Conditions **Convert grid position to slot index** Compare a slot index of a grid position. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Convert a slot to a grid column index** Compare the column index from a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Convert a slot to a grid row index** Compare the row index from a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Named slot exists** Check if the named slot exists. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **The space exists** Check if the space exists. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Filled named slots** Compare the amount of filled named slots of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Filled slots** Compare the amount of filled slots of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **First empty slot** Compare First empty slot. Set to -1 if no slot is found. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **First item slot** Compare First slot containing a specific item. Set to -1 if no slot is found. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Item + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **First available slot** Compare First slot containing a specific item that is not full. Set to -1 if no slot is found. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Item + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Item at a grid position** Compare the item at grid postion. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 Name (String)): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Grid slot count** Compare the grid slot count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Grid slot max count** Compare the grid slot max count, or 0 if unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **The space has empty named slots** Check if the space contains empty named slots. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **The space has empty slots** Check if the space contains empty slots. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Grid slot has property** Check if a property is set on a slot. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + - Parameter 4 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Named slot has property** Check if a property is set on a named slot. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + - Parameter 3 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Slot has property** Check if a property is set on a slot. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + - Parameter 3 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Grid slot contains an item** The grid slot contains one or more items. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Grid slot is full** The grid slot is full. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Grid slot is unlimited** Check if the slot has an unlimited count. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Named slot contains an item** The named slot contains one or more items. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Named slot is full** The slot is full. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Named slot is unlimited** Check if the named slot has an unlimited count. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Slot contains an item** The slot contains one or more items. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Slot is full** The slot is full. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Slot position in grid** Check if the slot position is inside the grid boundaries. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Column index + - Parameter 3 (🔢 Number): Row index + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Slot is unlimited** Check if the slot has an unlimited count. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + - Parameter 2 (🔢 Number): Slot + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **The grid exists** Check if the space has a grid. +??? quote "See parameters" + + - Parameter 1 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Named slot count** Compare the named slot count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Named slot item name** Compare the item name of a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Named slot max count** Compare the named slot max count, or 0 if unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Slot property count** Compare the property count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Grid slot number property** Compare the number property of a grid slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + - Parameter 6 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Named slot number property** Compare the number property of a named slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Slot number property** Compare the number property of a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Remaining named slots** Compare the remaining named slots of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Remaining slots** Compare the remaining slots of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Slot count** Compare the slot count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Slot item name** Compare the item name of a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Slot max count** Compare the slot max count, or 0 if unlimited. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Slot property count** Compare the property count of a space. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Space grid height** Compare the space grid height. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Space grid width** Compare the space grid width. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Space named slot size** Compare how many slots the space has. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Space slot size** Compare how many slots the space has. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Sum of named slot properties** Compare Sum all the values of a slot property. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Sum of slot properties** Compare Sum all the values of a slot property. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + **Grid slot text property** Compare the text property of a grid slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Column index + - Parameter 5 (🔢 Number): Row index + - Parameter 6 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Named slot text property** Compare the text property of a named slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔤 Name (String)): Slot name + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Slot text property** Compare the text property of a slot. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + - Parameter 3 (🔤 Name (String)): Space name + - Parameter 4 (🔢 Number): Slot + - Parameter 5 (🔤 Name (String)): Property name + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `SlotSystem::ConvertGridPositionToSlot()` | Return a slot index of a grid position. || -| `SlotSystem::ConvertSlotToGridColumn()` | Return the column index from a slot. || -| `SlotSystem::ConvertSlotToGridRow()` | Return the row index from a slot. || -| `SlotSystem::FilledNamedSlots()` | Return the amount of filled named slots of a space. || -| `SlotSystem::FilledSlots()` | Return the amount of filled slots of a space. || -| `SlotSystem::FirstEmptySlot()` | Return First empty slot. Set to -1 if no slot is found. || -| `SlotSystem::FirstItemSlot()` | Return First slot containing a specific item. Set to -1 if no slot is found. || -| `SlotSystem::FirstItemSlotAvailable()` | Return First slot containing a specific item that is not full. Set to -1 if no slot is found. || -| `SlotSystem::GridItemName()` | Return the item at grid postion. || -| `SlotSystem::GridSlotCount()` | Return the grid slot count of a space. || -| `SlotSystem::GridSlotMax()` | Return the grid slot max count, or 0 if unlimited. || -| `SlotSystem::NamedSlotCount()` | Return the named slot count of a space. || -| `SlotSystem::NamedSlotItemName()` | Return the item name of a slot. || -| `SlotSystem::NamedSlotMax()` | Return the named slot max count, or 0 if unlimited. || -| `SlotSystem::NamedSlotPropertyCount()` | Return the property count of a space. || -| `SlotSystem::NumberOfGridSlotProperty()` | Return the number property of a grid slot. || -| `SlotSystem::NumberOfNamedSlotProperty()` | Return the number property of a named slot. || -| `SlotSystem::NumberOfSlotProperty()` | Return the number property of a slot. || -| `SlotSystem::RemainingNamedSlots()` | Return the remaining named slots of a space. || -| `SlotSystem::RemainingSlots()` | Return the remaining slots of a space. || -| `SlotSystem::SlotCount()` | Return the slot count of a space. || -| `SlotSystem::SlotItemName()` | Return the item name of a slot. || -| `SlotSystem::SlotMax()` | Return the slot max count, or 0 if unlimited. || -| `SlotSystem::SlotPropertyCount()` | Return the property count of a space. || -| `SlotSystem::SpaceGridHeight()` | Return the space grid height. || -| `SlotSystem::SpaceGridWidth()` | Return the space grid width. || -| `SlotSystem::SpaceNamedSlotSize()` | Return how many slots the space has. || -| `SlotSystem::SpaceSlotSize()` | Return how many slots the space has. || -| `SlotSystem::SumNamedSlotProperty()` | Return Sum all the values of a slot property. || -| `SlotSystem::SumSlotProperty()` | Return Sum all the values of a slot property. || -| `SlotSystem::TextOfGridSlotProperty()` | Return the text property of a grid slot. || -| `SlotSystem::TextOfNamedSlotProperty()` | Return the text property of a named slot. || -| `SlotSystem::TextOfSlotProperty()` | Return the text property of a slot. || -| `SlotSystem::ToJSON()` | Convert a complete space to JSON format. || +| `SlotSystem::ConvertGridPositionToSlot(string, number, number)` | Return a slot index of a grid position. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Column index | +| | _🔢 Number_ | Row index | +| `SlotSystem::ConvertSlotToGridColumn(string, number)` | Return the column index from a slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| `SlotSystem::ConvertSlotToGridRow(string, number)` | Return the row index from a slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| `SlotSystem::FilledNamedSlots(string)` | Return the amount of filled named slots of a space. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::FilledSlots(string)` | Return the amount of filled slots of a space. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::FirstEmptySlot(string)` | Return First empty slot. Set to -1 if no slot is found. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::FirstItemSlot(string, string)` | Return First slot containing a specific item. Set to -1 if no slot is found. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Item | +| `SlotSystem::FirstItemSlotAvailable(string, string)` | Return First slot containing a specific item that is not full. Set to -1 if no slot is found. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Item | +| `SlotSystem::GridItemName(string, number, number)` | Return the item at grid postion. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Column index | +| | _🔢 Number_ | Row index | +| `SlotSystem::GridSlotCount(string, number, number)` | Return the grid slot count of a space. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Column index | +| | _🔢 Number_ | Row index | +| `SlotSystem::GridSlotMax(string, number, number)` | Return the grid slot max count, or 0 if unlimited. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Column index | +| | _🔢 Number_ | Row index | +| `SlotSystem::NamedSlotCount(string, string)` | Return the named slot count of a space. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Slot name | +| `SlotSystem::NamedSlotItemName(string, string)` | Return the item name of a slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Slot name | +| `SlotSystem::NamedSlotMax(string, string)` | Return the named slot max count, or 0 if unlimited. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Slot name | +| `SlotSystem::NamedSlotPropertyCount(string, string)` | Return the property count of a space. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::NumberOfGridSlotProperty(string, number, number, string)` | Return the number property of a grid slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Column index | +| | _🔢 Number_ | Row index | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::NumberOfNamedSlotProperty(string, string, string)` | Return the number property of a named slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Slot name | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::NumberOfSlotProperty(string, number, string)` | Return the number property of a slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::RemainingNamedSlots(string)` | Return the remaining named slots of a space. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::RemainingSlots(string)` | Return the remaining slots of a space. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::SlotCount(string, number)` | Return the slot count of a space. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| `SlotSystem::SlotItemName(string, number)` | Return the item name of a slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| `SlotSystem::SlotMax(string, number)` | Return the slot max count, or 0 if unlimited. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| `SlotSystem::SlotPropertyCount(string, string)` | Return the property count of a space. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::SpaceGridHeight(string)` | Return the space grid height. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::SpaceGridWidth(string)` | Return the space grid width. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::SpaceNamedSlotSize(string)` | Return how many slots the space has. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::SpaceSlotSize(string)` | Return how many slots the space has. || +| | _🔤 Name (String)_ | Space name | +| `SlotSystem::SumNamedSlotProperty(string, string)` | Return Sum all the values of a slot property. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::SumSlotProperty(string, string)` | Return Sum all the values of a slot property. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::TextOfGridSlotProperty(string, number, number, string)` | Return the text property of a grid slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Column index | +| | _🔢 Number_ | Row index | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::TextOfNamedSlotProperty(string, string, string)` | Return the text property of a named slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔤 Name (String)_ | Slot name | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::TextOfSlotProperty(string, number, string)` | Return the text property of a slot. || +| | _🔤 Name (String)_ | Space name | +| | _🔢 Number_ | Slot | +| | _🔤 Name (String)_ | Property name | +| `SlotSystem::ToJSON(string)` | Convert a complete space to JSON format. || +| | _🔤 Name (String)_ | Space name | + --- diff --git a/docs/gdevelop5/extensions/smooth-camera/index.md b/docs/gdevelop5/extensions/smooth-camera/index.md index 873d6a8a8c..d7e44725c8 100644 --- a/docs/gdevelop5/extensions/smooth-camera/index.md +++ b/docs/gdevelop5/extensions/smooth-camera/index.md @@ -3,7 +3,7 @@ Smoothly scroll to follow an object. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -34,74 +34,264 @@ Smoothly scroll to follow an object. **Draw debug** Draw the targeted and actual camera position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Shape painter + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Move the camera closer** Move the camera closer to the object. This action must be called after the object has moved for the frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Camera delay** Change the camera delay (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Camera delay + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Downward catch-up speed** Change the camera downward catch-up speed (in ratio per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Downward catch-up speed (in ratio per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Downward maximum speed** Change the camera downward maximum speed (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Downward maximum speed (in pixels per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow free area bottom border** Change the camera follow free area bottom border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Follow free area bottom border + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow free area left border** Change the camera follow free area left border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Follow free area left border + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow free area right border** Change the camera follow free area right border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Follow free area right border + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow free area top border** Change the camera follow free area top border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Follow free area top border + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow on X** Enable or disable the following on X axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Follow on X axis + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Follow on Y** Enable or disable the following on Y axis. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Follow on Y axis + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Forecast time** Change the camera forecast time (in seconds). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Forecast time + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Leftward catch-up speed** Change the camera leftward catch-up speed (in ratio per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Leftward catch-up speed (in ratio per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Leftward maximum speed** Change the camera leftward maximum speed (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Leftward maximum speed (in pixels per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Camera offset X** Change the camera offset on X axis of the object. This is not the current difference between the object and the camera position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Camera offset Y** Change the camera offset on Y axis of the object. This is not the current difference between the object and the camera position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rightward catch-up speed** Change the camera rightward catch-up speed (in ratio per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Rightward catch-up speed (in ratio per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Rightward maximum speed** Change the camera rightward maximum speed (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Rightward maximum speed (in pixels per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Upward catch-up speed** Change the camera upward catch-up speed (in ratio per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Upward catch-up speed (in ratio per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Upward maximum speed** Change the camera upward maximum speed (in pixels per second). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Upward maximum speed (in pixels per second) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Wait and catch up** Delay the camera according to a maximum speed and catch up the delay. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Waiting duration (in seconds) + - Parameter 3 (🔢 Number): Waiting maximum camera target speed X + - Parameter 4 (🔢 Number): Waiting maximum camera target speed Y + - Parameter 5 (🔢 Number): Catch up duration (in seconds) + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + ### Behavior conditions **Camera offset X** Compare the camera offset on X axis of the object. This is not the current difference between the object and the camera position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Camera offset Y** Compare the camera offset on Y axis of the object. This is not the current difference between the object and the camera position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -116,6 +306,7 @@ Smoothly scroll to follow a character and stabilize the camera when jumping. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Smooth Camera** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/snap-to-grid/index.md b/docs/gdevelop5/extensions/snap-to-grid/index.md index fc7f233ee3..7e329c4a93 100644 --- a/docs/gdevelop5/extensions/snap-to-grid/index.md +++ b/docs/gdevelop5/extensions/snap-to-grid/index.md @@ -1,13 +1,13 @@ -# Rectangular grid +# Rectangular 2D grid Snap objects on a virtual grid. -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). --- -It allows to snap objects on a *virtual grid*. +It allows to snap objects on a *virtual 2D grid*. It's useful for: @@ -24,8 +24,19 @@ A [simple example](https://editor.gdevelop.io/?project=example://snap-object-to- **Snap objects to a virtual grid** Snap object to a virtual grid (i.e: this is not the grid used in the editor). +??? quote "See parameters" + + - Parameter 1 (👾 Object): Objects to snap to the virtual grid + - Parameter 2 (🔢 Number): Width of a cell of the virtual grid (in pixels) + - Parameter 3 (🔢 Number): Height of a cell of the virtual grid (in pixels) + - Parameter 4 (🔢 Number): Offset on the X axis of the virtual grid (in pixels) + - Parameter 5 (🔢 Number): Offset on the Y axis of the virtual grid (in pixels) + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- -*This page is an auto-generated reference page about the **Rectangular grid** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Rectangular 2D grid** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sound-volume-based-on-distance/index.md b/docs/gdevelop5/extensions/sound-volume-based-on-distance/index.md index 761652d3c8..c62eb8f014 100644 --- a/docs/gdevelop5/extensions/sound-volume-based-on-distance/index.md +++ b/docs/gdevelop5/extensions/sound-volume-based-on-distance/index.md @@ -3,14 +3,12 @@ Make any sound volume on any channel increase and decrease based on distance. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -32,6 +30,20 @@ Make any sound volume on any channel increase and decrease based on distance. **Sound volume based on distance** Change a channel volume based on distance between 2 objects. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Player object + - Parameter 2 (👾 Object): Sound source object + - Parameter 3 (🔢 Number): Sound channel + - Parameter 4 (🔢 Number): Sound range + How far the player can go before the sound start fading out. + - Parameter 5 (🔢 Number): Max volume range (in pixels) + Distance between object and sound source object to get the maximum volume. + *Note: increasing max volume range will also increase the sound range.* + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/speed-restrictions/index.md b/docs/gdevelop5/extensions/speed-restrictions/index.md index afddf2b6a4..1ab4752d4c 100644 --- a/docs/gdevelop5/extensions/speed-restrictions/index.md +++ b/docs/gdevelop5/extensions/speed-restrictions/index.md @@ -1,13 +1,13 @@ # Speed restrictions -Limit the maximum movement and rotation speed of an object from forces or the physics behavior. +Limit the maximum movement and rotation speed of an object from forces or the 2D Physics behavior. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- -Limit the maximum movement and rotation speed of an object from forces or the physics behavior. +Limit the maximum movement and rotation speed of an object from forces or the 2D Physics behavior. How to use: @@ -45,6 +45,7 @@ Limit the maximum rotation speed of an object from physics forces. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Speed restrictions** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sprite-based-lighting/index.md b/docs/gdevelop5/extensions/sprite-based-lighting/index.md deleted file mode 100644 index 98511df3b7..0000000000 --- a/docs/gdevelop5/extensions/sprite-based-lighting/index.md +++ /dev/null @@ -1,45 +0,0 @@ -# Sprite Based Lighting - - -Make light using sprites. - -**Authors and contributors** to this community extension: [MelonDev](https://gd.games/MelonDev). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -Make light using sprite objects or any kind. and add the light obstacle behavior to the objects that will be affected by the light. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Light - -The object that will act as the light. - -_No expressions for this behavior._ - - -## Light obstacle - -The object that will be the obstacle for the light. - -### Behavior actions - -**Make the light** -Make light using object. - -_No expressions for this behavior._ - - ---- - -*This page is an auto-generated reference page about the **Sprite Based Lighting** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sprite-masking/index.md b/docs/gdevelop5/extensions/sprite-masking/index.md index df82fb438f..44ffba07d4 100644 --- a/docs/gdevelop5/extensions/sprite-masking/index.md +++ b/docs/gdevelop5/extensions/sprite-masking/index.md @@ -3,7 +3,7 @@ Use a sprite or a shape painter to mask another object. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- @@ -17,12 +17,33 @@ When masked, the masked object is only visible through the mask. **Mask an object with a sprite** Define a sprite as a mask of an object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to mask + - Parameter 2 (👾 Object): Sprite object to use as a mask + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Mask an object with a shape painter** Define a shape painter as a mask of an object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object to mask + - Parameter 2 (👾 Object): Shape painter to use as a mask + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Remove the mask** Remove the mask of the specified object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object with a mask to remove + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/sprite-multitouch-joystick/index.md b/docs/gdevelop5/extensions/sprite-multitouch-joystick/index.md index 56783795a3..ca518c9032 100644 --- a/docs/gdevelop5/extensions/sprite-multitouch-joystick/index.md +++ b/docs/gdevelop5/extensions/sprite-multitouch-joystick/index.md @@ -3,16 +3,16 @@ Joysticks or buttons for touchscreens. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [MelonDev](https://gd.games/MelonDev), [xellix](https://gd.games/xellix), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [MelonDev](https://gd.games/MelonDev), [xellix](https://gd.games/xellix), [D8H](https://gd.games/D8H). --- -Multitouch joysticks can be used the same way as physical gamepads: +Multitouch joysticks are objects showing a joystick on the screen, useful for mobile. They work like a physical gamepad: - 4 or 8 directions - Analogus pads - Player selection -- Controls mapping for top-down movement and platformer characters +- Automatic "mapper" behaviors for 2D and 3D movement behaviors (platformer characters, top-down movement, 3D character etc...). Add one of these to the object with the movement behavior (i.e: the player most of the time) and the behavior will then be controlled automatically by the virtual joystick (it works by reading the multitouch joystick state and simulating controls). No need for additional events to make it work once the behaviors are set up. There are ready-to-use joysticks in the asset-store [multitouch joysticks pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=multitouch-joysticks-multitouch-joysticks). @@ -23,29 +23,96 @@ There are ready-to-use joysticks in the asset-store [multitouch joysticks pack]( ## Conditions +**New touch on a screen side** +Check if a new touch has started on the right or left side of the screen. + +??? quote "See parameters" + + - Parameter 1 (👾 Object): Multitouch joystick + - Parameter 2 (🔤 String): Screen side (one of: "Left", "Right") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Multitouch controller button just pressed** +Check if a button was just pressed on a multitouch controller. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Multitouch controller identifier (1, 2, 3, 4...) + - Parameter 2 (string): Button name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Multitouch controller button pressed** -Check if a button is pressed on a gamepad. +Check if a button is pressed on a multitouch controller. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Multitouch controller identifier (1, 2, 3, 4...) + - Parameter 2 (string): Button name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. **Multitouch controller button released** -Check if a button is released on a gamepad. +Check if a button is released on a multitouch controller. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Multitouch controller identifier (1, 2, 3, 4...) + - Parameter 2 (string): Button name + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. **Joystick pushed in a direction (4-way)** Check if joystick is pushed in a given direction. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Multitouch controller identifier (1, 2, 3, 4...) + - Parameter 2 (🔤 String): Joystick name (one of: "Primary", "Secondary") + - Parameter 3 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right") + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Joystick pushed in a direction (8-way)** Check if joystick is pushed in a given direction. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Multitouch controller identifier (1, 2, 3, 4...) + - Parameter 2 (🔤 String): Joystick name (one of: "Primary", "Secondary") + - Parameter 3 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right", "UpLeft", "UpRight", "DownLeft", "DownRight") + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **Stick force** Compare the force of multitouch contoller stick (from 0 to 1). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + - Parameter 3 (🔢 Number): Multitouch controller identifier (1, 2, 3, 4...) + - Parameter 4 (🔤 String): Stick name (one of: "Primary", "Secondary") + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `SpriteMultitouchJoystick::StickAngle()` | Return the angle the multitouch controller stick is pointing towards (Range: -180 to 180). || -| `SpriteMultitouchJoystick::StickForce()` | Return the force of multitouch contoller stick (from 0 to 1). || -| `SpriteMultitouchJoystick::StickForceX()` | Return the multitouch contoller stick force on X axis (from -1 at the left to 1 at the right). || -| `SpriteMultitouchJoystick::StickForceY()` | Return the multitouch contoller stick force on Y axis (from -1 at the top to 1 at the bottom). || +| `SpriteMultitouchJoystick::StickAngle(number, string)` | Return the angle the multitouch controller stick is pointing towards (Range: -180 to 180). || +| | _🔢 Number_ | Multitouch controller identifier (1, 2, 3, 4...) | +| | _🔤 String_ | Joystick name | +| `SpriteMultitouchJoystick::StickForce(number, string)` | Return the force of multitouch contoller stick (from 0 to 1). || +| | _🔢 Number_ | Multitouch controller identifier (1, 2, 3, 4...) | +| | _🔤 String_ | Stick name | +| `SpriteMultitouchJoystick::StickForceX(number, string)` | Return the multitouch contoller stick force on X axis (from -1 at the left to 1 at the right). || +| | _🔢 Number_ | Multitouch controller identifier (1, 2, 3, 4...) | +| | _🔤 String_ | Joystick name | +| `SpriteMultitouchJoystick::StickForceY(number, string)` | Return the multitouch contoller stick force on Y axis (from -1 at the top to 1 at the bottom). || +| | _🔢 Number_ | Multitouch controller identifier (1, 2, 3, 4...) | +| | _🔤 String_ | Joystick name | ## Multitouch Joystick @@ -56,44 +123,152 @@ Joystick for touchscreens. **De/activate control** De/activate control of the joystick. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Activate + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Multitouch controller identifier** Change the multitouch controller identifier (1, 2, 3, 4...). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Dead zone radius** Change the dead zone radius of the joystick (range: 0 to 1). The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Joystick name** Change the joystick name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Show and start pressing** +Show the joystick until it is released. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + ### Object conditions **Multitouch controller identifier** Compare the multitouch controller identifier (1, 2, 3, 4...). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Dead zone radius** Compare the dead zone radius of the joystick (range: 0 to 1). The deadzone is an area for which movement on sticks won't be taken into account (instead, the stick will be considered as not moved). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Joystick pushed in a direction (4-way movement)** Check if joystick is pushed in a given direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right") + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Joystick pushed in a direction (8-way movement)** Check if joystick is pushed in a given direction. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right", "UpLeft", "UpRight", "DownLeft", "DownRight") + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Stick pressed** Check if a stick is pressed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Joystick name** Compare the joystick name of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Stick force** Compare the strick force (from 0 to 1). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Stick X force** Compare the stick force on X axis (from -1 at the left to 1 at the right). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Stick Y force** Compare the stick force on Y axis (from -1 at the top to 1 at the bottom). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | @@ -106,17 +281,293 @@ Compare the stick force on Y axis (from -1 at the top to 1 at the bottom). | `Object.StickForceX()` | Return the stick force on X axis (from -1 at the left to 1 at the right). || | `Object.StickForceY()` | Return the stick force on Y axis (from -1 at the top to 1 at the bottom). || +## First person camera multitouch controller mapper + +Control camera rotations with a multitouch controller. + +### Behavior actions + +**Horizontal rotation acceleration** +Change the horizontal rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Horizontal rotation deceleration** +Change the horizontal rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum horizontal rotation speed** +Change the maximum horizontal rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Z position offset** +Change the z position offset of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical camera angle** +Change the maximum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Minimum vertical camera angle** +Change the minimum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation acceleration** +Change the vertical rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation deceleration** +Change the vertical rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical rotation speed** +Change the maximum vertical rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior conditions + +**Horizontal rotation acceleration** +Compare the horizontal rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Horizontal rotation deceleration** +Compare the horizontal rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum horizontal rotation speed** +Compare the maximum horizontal rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Z position offset** +Compare the z position offset of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical camera angle** +Compare the maximum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Minimum vertical camera angle** +Compare the minimum vertical camera angle of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation acceleration** +Compare the vertical rotation acceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Vertical rotation deceleration** +Compare the vertical rotation deceleration of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Maximum vertical rotation speed** +Compare the maximum vertical rotation speed of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +### Behavior expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.FirstPersonMultitouchMapper::HorizontalRotationAcceleration()` | Return the horizontal rotation acceleration of the object. || +| `Object.FirstPersonMultitouchMapper::HorizontalRotationDeceleration()` | Return the horizontal rotation deceleration of the object. || +| `Object.FirstPersonMultitouchMapper::HorizontalRotationSpeedMax()` | Return the maximum horizontal rotation speed of the object. || +| `Object.FirstPersonMultitouchMapper::OffsetZ()` | Return the z position offset of the object. || +| `Object.FirstPersonMultitouchMapper::VerticalAngleMax()` | Return the maximum vertical camera angle of the object. || +| `Object.FirstPersonMultitouchMapper::VerticalAngleMin()` | Return the minimum vertical camera angle of the object. || +| `Object.FirstPersonMultitouchMapper::VerticalRotationAcceleration()` | Return the vertical rotation acceleration of the object. || +| `Object.FirstPersonMultitouchMapper::VerticalRotationDeceleration()` | Return the vertical rotation deceleration of the object. || +| `Object.FirstPersonMultitouchMapper::VerticalRotationSpeedMax()` | Return the maximum vertical rotation speed of the object. || + ## Multitouch button -Detect button presses made on a touchscreen. +Detect presses made on a touchscreen on the object so it acts like a button and automatically trigger the button having the same identifier for the mapper behaviors. ### Behavior conditions +**Button just pressed** +Check if the button was just pressed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Button pressed** -Check if button is pressed. +Check if the button is pressed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. **Button released** -Check if button is released. +Check if the button is released. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +_No expressions for this behavior._ + + +## 3D car multitouch controller mapper + +Control a 3D physics car with a multitouch controller. + +_No expressions for this behavior._ + + +## 3D platformer multitouch controller mapper + +Control a 3D physics character with a multitouch controller. _No expressions for this behavior._ @@ -128,6 +579,13 @@ Control a platformer character with a multitouch controller. _No expressions for this behavior._ +## 3D shooter multitouch controller mapper + +Control a 3D physics character with a multitouch controller. + +_No expressions for this behavior._ + + ## Top-down multitouch controller mapper Control a top-down character with a multitouch controller. @@ -135,6 +593,7 @@ Control a top-down character with a multitouch controller. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Multitouch joystick and buttons (sprite)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sprite-sheet/index.md b/docs/gdevelop5/extensions/sprite-sheet/index.md index 2264a2565a..d52bc10f56 100644 --- a/docs/gdevelop5/extensions/sprite-sheet/index.md +++ b/docs/gdevelop5/extensions/sprite-sheet/index.md @@ -3,11 +3,10 @@ Animate a tiled sprite from a sprite sheet. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- - Animate images from a sprite sheet by using a tiled sprite. ## How to use @@ -77,12 +76,37 @@ Animates a horizontal (left to right) sprite sheet. **Pause animation** Pause the animation of a sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Play animation** Play an animation from the sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): First Frame of the animation + - Parameter 3 (🔢 Number): Last Frame of animation + - Parameter 4 (🔢 Number): Duration for each frame (seconds) + - Parameter 5 (🔢 Number): What row is the animation in + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Resume animation** Resume a paused animation of a sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -98,18 +122,56 @@ Animates a sprite sheet using JSON (see extension description). **Display a frame** Display one frame without animating the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): The frame to display + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Load data from a JSON resource** Loads a new JSON spritesheet data into the behavior. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): The JSON to load + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Pause animation** Pause the animation of a sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Play Animation** Play an animation from the sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (string): The name of the animation + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Resume animation** Resume a paused animation of a sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -126,18 +188,44 @@ Animates a vertical (top to bottom) sprite sheet. **Pause animation** Pause the animation of a sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Play animation** Play an animation from the sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): First frame of the animation + - Parameter 3 (🔢 Number): Last frame of the animation + - Parameter 4 (🔢 Number): Duration for each frame (seconds) + - Parameter 5 (🔢 Number): The column containing the animation + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Resume animation** Resume a paused animation of a sprite sheet. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.VerticalSpriteSheetAnimator::CurrentFrame()` | The current frame of the current animation. || + --- *This page is an auto-generated reference page about the **Sprite Sheet Animations** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sprite-toggle-switch/index.md b/docs/gdevelop5/extensions/sprite-toggle-switch/index.md index 1437d317c3..8c98dac187 100644 --- a/docs/gdevelop5/extensions/sprite-toggle-switch/index.md +++ b/docs/gdevelop5/extensions/sprite-toggle-switch/index.md @@ -3,7 +3,7 @@ Toggle switch that users can click or touch. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames). --- @@ -27,35 +27,110 @@ A toggle switch that users can click or touch. **De/activate interactions** De/activate interactions with the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Activate + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Check (or uncheck)** Check (or uncheck) the toggle switch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): IsChecked + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Toggle** Toggle the switch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + ### Object conditions **Has just been checked** Check if the toggle switch was checked in the current frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Has just been toggled** Check if the toggle switch was checked or unchecked in the current frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Has just been unchecked** Check if the toggle switch was unchecked in the current frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Interactions activated** Check if interactions are activated on the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is checked** Check if the toggle switch is checked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Is hovered** Check if the cursor is hovered over the button. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Is pressed** +Check if the button is currently being pressed with mouse or touch. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Is held outside** +Check if the button is currently being pressed outside with mouse or touch. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + _No expressions for this object._ + --- *This page is an auto-generated reference page about the **Toggle switch** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sprite3d/index.md b/docs/gdevelop5/extensions/sprite3d/index.md index 6f84e3890c..cfa84674e6 100644 --- a/docs/gdevelop5/extensions/sprite3d/index.md +++ b/docs/gdevelop5/extensions/sprite3d/index.md @@ -3,14 +3,12 @@ An animated sprite in 3D. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,6 +28,7 @@ An animated sprite in 3D. _No expressions for this object._ + --- *This page is an auto-generated reference page about the **3D sprite** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/star-rating-bar/index.md b/docs/gdevelop5/extensions/star-rating-bar/index.md new file mode 100644 index 0000000000..8e733c11e7 --- /dev/null +++ b/docs/gdevelop5/extensions/star-rating-bar/index.md @@ -0,0 +1,79 @@ +# Star Rating Bar + + +An animated bar to rate out of 5. + +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh). + +--- + +An animated bar to rate out of 5, or more by editing and adding more stars in the object. +The animation can be disabled. +The star icon and background are customizable. + +There are ready-to-use bars in the asset-store [star rating bars pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=star-rating-bars-star-rating-bars). + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Star Rating Bar + +An animated score counter with an icon and a customisable font. + +### Object actions + +**Disable the rating** +Enable or disable the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Disable + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Rate** +Change the rate of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object conditions + +**Disable the rating** +Check if the object is disabled. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**Rate** +Compare the rate of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +### Object expressions + +| Expression | Description | | +|-----|-----|-----| +| `Object.Rate()` | Return the rate of the object. || + + +--- + +*This page is an auto-generated reference page about the **Star Rating Bar** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/star-rating/index.md b/docs/gdevelop5/extensions/star-rating/index.md index 69a3ba11dd..24e4a9c480 100644 --- a/docs/gdevelop5/extensions/star-rating/index.md +++ b/docs/gdevelop5/extensions/star-rating/index.md @@ -3,14 +3,12 @@ A rating system indicated by stars using the shape painter. -**Authors and contributors** to this community extension: [Entropy](https://gd.games/Entropy). +**Authors and contributors** to this experimental extension: [Entropy](https://gd.games/Entropy). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,9 +28,25 @@ A rating system indicated by stars using the shape painter. **Set the rating** Sets the rating to a new value. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): New rating + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set total star count** Sets a new total stars count. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Total star count + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -40,6 +54,7 @@ Sets a new total stars count. | `Object.StarRating::Rating()` | Gets the current rating. || | `Object.StarRating::TotalStars()` | Get the total amount of stars. || + --- *This page is an auto-generated reference page about the **Star Rating** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/stay-on-screen/index.md b/docs/gdevelop5/extensions/stay-on-screen/index.md index 33b97af225..53add1a11e 100644 --- a/docs/gdevelop5/extensions/stay-on-screen/index.md +++ b/docs/gdevelop5/extensions/stay-on-screen/index.md @@ -1,13 +1,13 @@ -# Stay On Screen +# Stay On Screen (2D) Move the object to keep it visible on the screen. -**Authors and contributors** to this community extension: [4ian](https://gd.games/4ian), [Bouh](https://gd.games/Bouh), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [4ian](https://gd.games/4ian), [Bouh](https://gd.games/Bouh), [D8H](https://gd.games/D8H). --- -Force the object to stay visible on the screen by setting back its position inside the viewport of the camera. +Force the object to stay visible on the screen by setting back its 2D position (X and Y coordinates) inside the viewport of the camera. The shoot'em up example uses this extension ([open the project online](https://editor.gdevelop.io/?project=example://space-shooter)). @@ -18,36 +18,108 @@ The shoot'em up example uses this extension ([open the project online](https://e ## Stay on Screen -Force the object to stay visible on the screen by setting back its position inside the viewport of the camera. +Force the object to stay visible on the screen by setting back its 2D position inside the viewport of the camera. ### Behavior actions **Screen bottom margin** Change the bottom margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Screen left margin** Change the left margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Screen right margin** Change the right margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Screen top margin** Change the top margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Screen bottom margin** Compare the bottom margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Screen left margin** Compare the left margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Screen right margin** Compare the right margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Screen top margin** Compare the top margin (in pixels) to leave between the object and the screen border. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -57,6 +129,7 @@ Compare the top margin (in pixels) to leave between the object and the screen bo | `Object.StayOnScreen::MarginRight()` | Return the right margin (in pixels) to leave between the object and the screen border. || | `Object.StayOnScreen::MarginTop()` | Return the top margin (in pixels) to leave between the object and the screen border. || + --- -*This page is an auto-generated reference page about the **Stay On Screen** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Stay On Screen (2D)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sticker/index.md b/docs/gdevelop5/extensions/sticker/index.md index d2943f0687..5190ac9ef1 100644 --- a/docs/gdevelop5/extensions/sticker/index.md +++ b/docs/gdevelop5/extensions/sticker/index.md @@ -3,15 +3,15 @@ Make objects follow the position and rotation of the object they are stuck to. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- This extension can be useful to: -* Stick accessories to moving objects -* Animate a skeleton -* Delete an object with another one +- Stick accessories to moving objects +- Animate a skeleton +- Delete an object with another one An example allows to check it out ([open the project online](https://editor.gdevelop.io/?project=example://stick-objects)). @@ -23,6 +23,14 @@ An example allows to check it out ([open the project online](https://editor.gdev **Is stuck to another object** Check if the object is stuck to another object. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Sticker + - Parameter 2 (🧩 Behavior): Sticker behavior + - Parameter 3 (👾 Object): Basis + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Sticker @@ -34,12 +42,28 @@ Stick the object to another. Use the action to stick the object, or unstick it l **Stick** Stick on another object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (👾 Object): Object to stick to + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Unstick** Unstick from the object it was stuck to. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Stick objects to others** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/sway/index.md b/docs/gdevelop5/extensions/sway/index.md index f286034cd0..b51c47470b 100644 --- a/docs/gdevelop5/extensions/sway/index.md +++ b/docs/gdevelop5/extensions/sway/index.md @@ -3,7 +3,7 @@ Sway objects like grass in the wind. -**Authors and contributors** to this community extension: [Bubble](https://gd.games/Bubble). +**Authors and contributors** to this experimental extension: [Bubble](https://gd.games/Bubble). --- @@ -17,7 +17,7 @@ It can be used to: Set *Center* and *Origin* points to the center base of the object for best results. -Check out [this demo](https://liluo.io/bubble/swayexamples) to see what this extension can do. +Check out [this demo](https://gd.games/bubble/swayexamples) to see what this extension can do. !!! tip @@ -34,18 +34,55 @@ Sway multiple instances of an object at different times - useful for random gras **Set sway angle left and right** Set sway angle left and right. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle to the left (degrees) - Use negative number + - Parameter 3 (🔢 Number): Angle to the right (degrees) - Use positive number + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Set sway angle time range** Set sway angle time range. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Angle tween time minimum (seconds) + - Parameter 3 (🔢 Number): Angle tween time maximum (seconds) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Set sway Y scale mininum and maximum** Set sway Y scale mininum and maximum. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Minimum Y scale + - Parameter 3 (🔢 Number): Maximum Y scale + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Set sway Y scale time range** Set Y scale time range. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Y scale tween time minimum (seconds) + - Parameter 3 (🔢 Number): Y scale tween time maximum (seconds) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Sway** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/swipe-gesture/index.md b/docs/gdevelop5/extensions/swipe-gesture/index.md index 0769d07957..35cd2cd583 100644 --- a/docs/gdevelop5/extensions/swipe-gesture/index.md +++ b/docs/gdevelop5/extensions/swipe-gesture/index.md @@ -3,7 +3,7 @@ Detect swipe gestures based on their distance and duration. -**Authors and contributors** to this community extension: [E1e5en](https://gd.games/E1e5en), [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [E1e5en](https://gd.games/E1e5en), [VictrisGames](https://gd.games/VictrisGames). --- @@ -38,59 +38,178 @@ Conditions: **Draw swipe gesture** Draw a line that indicates the current swipe gesture. Edit "Outline Size" of the shape painter to adjust the thickness of the line. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Shape painter used to draw swipe + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Enable (or disable) swipe gesture detection** Enable (or disable) swipe gesture detection. +??? quote "See parameters" + + - Parameter 1 (❓ True or False): Enable swipe detection + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Layer used to detect swipe gestures** Change the Layer used to detect swipe gestures. +??? quote "See parameters" + + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 Layer name (String)): Value + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + ## Conditions **Swipe angle (degrees)** Compare Swipe angle (degrees). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Swipe distance (pixels)** Compare Swipe distance (pixels). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Swipe distance in horizontal direction (pixels)** Compare Swipe distance in horizontal direction (pixels). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Swipe distance in vertical direction (pixels)** Compare Swipe distance in vertical direction (pixels). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Swipe duration (seconds)** Compare Swipe duration (seconds). +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **End point of the swipe X position** Compare End point of the swipe X position. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **End point of the swipe Y position** Compare End point of the swipe Y position. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Swipe just ended** Check if the swipe has just ended. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Is swipe detection enabled** Check if swipe detection is enabled. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Swipe is in progress** Check if a swipe is currently in progress. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Layer used to detect swipe gestures** Compare the Layer used to detect swipe gestures. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 Layer name (String)): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Start point of the swipe X position** Compare Start point of the swipe X position. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Start point of the swipe Y position** Compare Start point of the swipe Y position. +??? quote "See parameters" + + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Swipe moved in a direction (4-way movement)** Check if swipe moved in a given direction. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Swipe moved in a direction (8-way movement)** Check if swipe moved in a given direction. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Direction (one of: "Up", "Down", "Left", "Right", "UpLeft", "UpRight", "DownLeft", "DownRight") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -106,6 +225,7 @@ Check if swipe moved in a given direction. | `SwipeGesture::StartX()` | Return Start point of the swipe X position. || | `SwipeGesture::StartY()` | Return Start point of the swipe Y position. || + --- *This page is an auto-generated reference page about the **Swipe Gesture** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/text-entry-console/index.md b/docs/gdevelop5/extensions/text-entry-console/index.md deleted file mode 100644 index fdb6ffa388..0000000000 --- a/docs/gdevelop5/extensions/text-entry-console/index.md +++ /dev/null @@ -1,35 +0,0 @@ -# Console (commands handler for Text Entry objects) - - -A console behavior that allows parsing simple commands inputed via a Text Entry object. - -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). - ---- - -A behavior that makes a Text Entry behave like a console. Whenever Return is pressed, the Text Entry is cleared and the entered text parsed, and the first word is stored as the command name, and the rest as arguments. Each word is one argument, and you can get them with the expression `GetArg`. When a command is triggered, it triggers the condition bound to this command. Example: -If you have entered `hello foo bar` and Return, then the condition `Entered command "hello"` will trigger, `Object::Console.GetArg(0)` will return `"foo"`, and `Object::Console.GetArg(1)` will return `"bar"`. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Text entry console - -A behavior that will parse any command endered via a text entry. - -### Behavior conditions - -**A command has been entered** -Triggers when a specific command has been entered. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.TextEntryConsole::GetArg()` | Get an argument from the last entered command. || - ---- - -*This page is an auto-generated reference page about the **Console (commands handler for Text Entry objects)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/text-entry-virtual-keyboard/index.md b/docs/gdevelop5/extensions/text-entry-virtual-keyboard/index.md deleted file mode 100644 index 6b7c6353f1..0000000000 --- a/docs/gdevelop5/extensions/text-entry-virtual-keyboard/index.md +++ /dev/null @@ -1,36 +0,0 @@ -# Mobile virtual keyboard for Text Entry - - -Allow to open and close the virtual keyboard on mobile (iOS, Android). To be used with Text Entry objects. - -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh). - ---- - -Allow to open and close the virtual keyboard on mobile (iOS, Android). To be used with Text Entry objects. - -Actions to open and close the keyboard are added. You can then use the Text Entry as usual. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Mobile virtual keyboard for Text Entry - -Allow to open and close the virtual keyboard on mobile (iOS, Android). To be used on Text Entry objects. - -### Behavior actions - -**Close mobile keyboard** -Close mobile keyboard. - -**Open mobile keyboard** -Open mobile keyboard. - -_No expressions for this behavior._ - - ---- - -*This page is an auto-generated reference page about the **Mobile virtual keyboard for Text Entry** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/text-to-speech/index.md b/docs/gdevelop5/extensions/text-to-speech/index.md index 6440c7c4fd..fe522e2b70 100644 --- a/docs/gdevelop5/extensions/text-to-speech/index.md +++ b/docs/gdevelop5/extensions/text-to-speech/index.md @@ -3,7 +3,7 @@ An extension to enable the use of Text-to-Speech features. -**Authors and contributors** to this community extension: [jugule](https://gd.games/jugule). +**Authors and contributors** to this experimental extension: [jugule](https://gd.games/jugule). --- @@ -17,9 +17,29 @@ Text to Speech extension allows you to use the system's Text-to-Speech features **Speak out a message** Speaks a text message aloud through the system text-to-speech. +??? quote "See parameters" + + - Parameter 1 (string): The message to be spoken + - Parameter 2 (string): The voice to be used + Voices vary depending on the operating system. + Here is a list of windows voice names: https://bit.ly/windows-voices + And here is a list of voice names for MacOS: https://bit.ly/mac-voices + - Parameter 3 (🔢 Number): Volume between 0% and 100% + - Parameter 4 (🔢 Number): Speed between 10% and 1000% + - Parameter 5 (🔢 Number): Pitch between 0% and 200% + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + **Force stop speaking** Forces all Text-to-Speech to be stopped. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/text3d/index.md b/docs/gdevelop5/extensions/text3d/index.md index 76d6cf3627..f09b03dfc5 100644 --- a/docs/gdevelop5/extensions/text3d/index.md +++ b/docs/gdevelop5/extensions/text3d/index.md @@ -3,14 +3,12 @@ Display texts in 3D scenes. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -30,113 +28,386 @@ A text in 3D. **Bold** De/activate bold. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Bold + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Color** Change the color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Font** Change the font of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Font size** Change the font size of a text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Italic** De/activate italic. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Italic + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Line spacing** Change the line spacing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Outline color** Change the outline color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable outline** Enable or disable the outline of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Enable outline + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Outline thickness** Change the outline thickness of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow angle** Change the shadow angle of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow blur radius** Change the shadow blur radius of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow color** Change the shadow color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (string): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow distance** Change the shadow distance of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Enable shadow** Enable or disable the shadow of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Show the shadow + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Shadow opacity** Change the shadow opacity of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Alignment** Change the text alignment of a multiline text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔤 String): Value (one of: "left", "center", "right") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Wrapping** De/activate word wrapping. Note that word wrapping is a graphical option, you can't get the number of lines displayed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1 (❓ Yes or No): Enable outline + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Wrapping width** Change the word wrapping width of a Text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object conditions **Color** Compare the color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Font** Compare the font of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Font size** Compare the font size of a text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Bold** Check if the boldstyle is activated. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Italic** Check if the italic style is activated. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Outline enabled** Check if the text outline is enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Shadow enabled** Check if the text shadowis enabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Wrapping** Check if the word wrapping style of an object is set. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Line spacing** Compare the line spacing of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Outline color** Compare the outline color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Outline thickness** Compare the outline thickness of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow angle** Compare the shadow angle of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow blur radius** Compare the shadow blur radius of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow color** Compare the shadow color of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (string): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow distance** Compare the shadow distance of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Shadow opacity** Compare the shadow opacity of the text. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Alignment** Compare the text alignment of a multiline text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔤 String): Value to compare (one of: "left", "center", "right") + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Wrapping width** Compare the word wrapping width of a Text object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | @@ -155,6 +426,7 @@ Compare the word wrapping width of a Text object. | `Object.TextAlignment()` | Return the text alignment of a multiline text object. || | `Object.WrappingWidth()` | Return the word wrapping width of a Text object. || + --- *This page is an auto-generated reference page about the **3D text** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/third-person-camera/index.md b/docs/gdevelop5/extensions/third-person-camera/index.md index 703466e140..7ac3e4e307 100644 --- a/docs/gdevelop5/extensions/third-person-camera/index.md +++ b/docs/gdevelop5/extensions/third-person-camera/index.md @@ -3,7 +3,7 @@ Move the camera to look at an object from a given distance. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -11,9 +11,10 @@ Move the camera to look at an object from a given distance with a rotation and It can be useful for: -- Third person camera -- Isometric-like point of view - +- 3D platformer games ([open the project online](https://editor.gdevelop.io/?project=example://3d-platformer)) +- 3D racing games ([open the project online](https://editor.gdevelop.io/?project=example://3d-car-coin-hunt)) +- Orbit camera controls ([open the project online](https://editor.gdevelop.io/?project=example://3d-tile-based-city-builder)) +- Isometric-like point of view ([open the project online](https://editor.gdevelop.io/?project=example://3d-road-crosser)) !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -23,9 +24,32 @@ It can be useful for: **Look at an object from a distance** Move the camera to look at an object from a distance. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): 3D capability + - Parameter 3 (🔢 Number): Distance + - Parameter 4 (🔢 Number): Rotation angle (around Z axis) + - Parameter 5 (🔢 Number): Elevation angle (around Y axis) + - Parameter 6: 🔤 Layer name (String) + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + **Look at a position from a distance** Move the camera to look at a position from a distance. +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Position on X axis + - Parameter 2 (🔢 Number): Position on Y axis + - Parameter 3 (🔢 Number): Position on Z axis + - Parameter 4 (🔢 Number): Distance + - Parameter 5 (🔢 Number): Rotation angle (around Z axis) + - Parameter 6 (🔢 Number): Elevation angle (around Y axis) + - Parameter 7: 🔤 Layer name (String) + + > Technical note: parameters 0, 8 are internal parameters handled by GDevelop. + ## Third person camera @@ -34,77 +58,335 @@ Smoothly follow an object at a distance. ### Behavior actions +**Rotate the camera all the way** +Rotate the camera all the way to the targeted angle. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Move the camera closer** Move the camera closer to the object. This action must be called after the object has moved for the frame. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Camera rotation** +Change the camera rotation. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Camera distance** Change the camera distance of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Elevation angle offset** Change the elevation angle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Halfway time for elevation rotation** +Change the halfway time for elevation rotation of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Follow free area top border on Z axis** Change the follow free area top border on Z axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Follow free area bottom border on Z axis** Change the follow free area bottom border on Z axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Lateral distance offset** Change the lateral distance offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Ahead distance offset** Change the ahead distance offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Z offset** Change the z offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation angle offset** Change the rotation angle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Halfway time for rotation** Change the halfway time for rotation of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Targeted rotation angle** +Change the targeted camera rotation angle of the object. When this angle is set, the camera follow this value instead of the object angle. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Halfway time on Z axis** Change the halfway time on Z axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Camera distance** Compare the camera distance of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Elevation angle offset** Compare the elevation angle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Halfway time for elevation rotation** +Compare the halfway time for elevation rotation of the object. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Follow free area top border on Z axis** Compare the follow free area top border on Z axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Follow free area bottom border on Z axis** Compare the follow free area bottom border on Z axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Lateral distance offset** Compare the lateral distance offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Ahead distance offset** Compare the ahead distance offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Z offset** Compare the z offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation angle offset** Compare the rotation angle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Halfway time for rotation** Compare the halfway time for rotation of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Targeted rotation angle** +Compare the targeted camera rotation angle of the object. When this angle is set, the camera follow this value instead of the object angle. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Halfway time on Z axis** Compare the halfway time on Z axis of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.ThirdPersonCamera::Distance()` | Return the camera distance of the object. || | `Object.ThirdPersonCamera::ElevationAngleOffset()` | Return the elevation angle offset of the object. || +| `Object.ThirdPersonCamera::ElevationHalfwayDuration()` | Return the halfway time for elevation rotation of the object. || | `Object.ThirdPersonCamera::FollowFreeAreaZMax()` | Return the follow free area top border on Z axis of the object. || | `Object.ThirdPersonCamera::FollowFreeAreaZMin()` | Return the follow free area bottom border on Z axis of the object. || | `Object.ThirdPersonCamera::OffsetX()` | Return the lateral distance offset of the object. || @@ -112,8 +394,10 @@ Compare the halfway time on Z axis of the object. | `Object.ThirdPersonCamera::OffsetZ()` | Return the z offset of the object. || | `Object.ThirdPersonCamera::RotationAngleOffset()` | Return the rotation angle offset of the object. || | `Object.ThirdPersonCamera::RotationHalfwayDuration()` | Return the halfway time for rotation of the object. || +| `Object.ThirdPersonCamera::TargetedRotationAngle()` | Return the targeted camera rotation angle of the object. When this angle is set, the camera follow this value instead of the object angle. || | `Object.ThirdPersonCamera::TranslationZHalfwayDuration()` | Return the halfway time on Z axis of the object. || + --- *This page is an auto-generated reference page about the **Third person camera** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/three-dflip/index.md b/docs/gdevelop5/extensions/three-dflip/index.md index 214a9db276..2d60421d68 100644 --- a/docs/gdevelop5/extensions/three-dflip/index.md +++ b/docs/gdevelop5/extensions/three-dflip/index.md @@ -1,13 +1,13 @@ -# 3D Flip +# 3D-like Flip for 2D Sprites -Flip sprites with a 3D rotation effect. +Flip sprites with a 3D-like rotation effect. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato), [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato), [D8H](https://gd.games/D8H). --- -It can be used to flip cards or characters. +Flip sprites with a 3D-like rotation effect. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -23,23 +23,62 @@ Flip a Sprite with a 3D effect. **Flip the object** Start a flipping animation on the object. The X origin point must be set at the object center. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Flip to a side** Flips the object to one specific side. The X origin point must be set at the object center. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Reverse side + - Parameter 3 (🔢 Number): Duration (in seconds) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Jump to flipping end** Jump to the end of the flipping animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is flipped** Checks if the object is flipped or will be flipped. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Flipping is playing** Checks if a flipping animation is currently playing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + _No expressions for this behavior._ + --- -*This page is an auto-generated reference page about the **3D Flip** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **3D-like Flip for 2D Sprites** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/tiled-units-bar/index.md b/docs/gdevelop5/extensions/tiled-units-bar/index.md index 7fa437c382..81691f83a5 100644 --- a/docs/gdevelop5/extensions/tiled-units-bar/index.md +++ b/docs/gdevelop5/extensions/tiled-units-bar/index.md @@ -3,7 +3,7 @@ A bar that represents a resource in the game (health, mana, ammo, etc). -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames), [Entropy](https://gd.games/Entropy). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [VictrisGames](https://gd.games/VictrisGames), [Entropy](https://gd.games/Entropy). --- @@ -27,23 +27,67 @@ A bar that represents a resource in the game (health, mana, ammo, etc). **Maximum value** Change the maximum value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Value** Change the value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Operator + - Parameter 2 (🔢 Number): Value + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object conditions **Empty** Check if the bar is empty. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Full** Check if the bar is full. +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + **Maximum value** Compare the maximum value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Value** Compare the value of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🟰 Relational operator + - Parameter 2 (🔢 Number): Value to compare + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + ### Object expressions | Expression | Description | | @@ -51,6 +95,7 @@ Compare the value of the object. | `Object.MaxValue()` | Return the maximum value of the object. || | `Object.Value()` | Return the value of the object. || + --- *This page is an auto-generated reference page about the **Resource bar (separated units)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/time-detector/index.md b/docs/gdevelop5/extensions/time-detector/index.md deleted file mode 100644 index b8e824437d..0000000000 --- a/docs/gdevelop5/extensions/time-detector/index.md +++ /dev/null @@ -1,113 +0,0 @@ -# TimeDetector - - -Detects the current time of the day, week and month. - -**Authors and contributors** to this community extension: [TheMime](https://gd.games/TheMime). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -1. Detects one of the following parts of the day : - - -- Morning. -- Dusk. -- Night. -- Dawn. - -2. Detects current day : - - -- Saturday, sunday, etc.. - -3. Detects current month of the year : - - -- January, February, etc.. - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Conditions - -**Is April** -Check if it is April. - -**Is August** -Check if it is August. - -**Is Dawn** -Check if it is Dawn. - -**Is December** -Check if it is December. - -**Is Dusk** -Check if it is Dusk. - -**Is February** -Check if it is February. - -**Is Friday** -Check if it is Friday. - -**Is January** -Check if it is January. - -**Is July** -Check if it is July. - -**Is June** -Check if it is June. - -**Is March** -Check if it is March. - -**Is May** -Check if it is May. - -**Is Monday** -Check if it is Monday. - -**Is Morning** -Check if it is Morning. - -**Is Night** -Check if it is Night. - -**Is November** -Check if it is November. - -**Is October** -Check if it is October. - -**Is Saturday** -Check if it is Saturday. - -**Is Septemper** -Check if it is Septemper. - -**Is Sunday** -Check if it is Sunday. - -**Is Thrusday** -Check if it is Thrusday. - -**Is Tuesday** -Check if it is Tuesday. - -**Is Wednesday** -Check if it is Wednesday. - - - ---- - -*This page is an auto-generated reference page about the **TimeDetector** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/time-formatter/index.md b/docs/gdevelop5/extensions/time-formatter/index.md index 78c70590b2..83d8744800 100644 --- a/docs/gdevelop5/extensions/time-formatter/index.md +++ b/docs/gdevelop5/extensions/time-formatter/index.md @@ -3,7 +3,7 @@ Converts seconds into standard time formats, such as HH:MM:SS. -**Authors and contributors** to this community extension: [Bouh](https://gd.games/Bouh). +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh). --- @@ -21,8 +21,11 @@ Formats included: | Expression | Description | | |-----|-----|-----| -| `TimeFormatter::SecondsToHHMMSS()` | Format time in seconds to HH:MM:SS. || -| `TimeFormatter::SecondsToHHMMSS000()` | Format time in seconds to HH:MM:SS.000, including milliseconds. || +| `TimeFormatter::SecondsToHHMMSS(number)` | Format time in seconds to HH:MM:SS. || +| | _🔢 Number_ | Time, in seconds | +| `TimeFormatter::SecondsToHHMMSS000(number)` | Format time in seconds to HH:MM:SS.000, including milliseconds. || +| | _🔢 Number_ | Time, in seconds | + --- diff --git a/docs/gdevelop5/extensions/timed-back-and-forth-movement/index.md b/docs/gdevelop5/extensions/timed-back-and-forth-movement/index.md index 6984c8fe33..586cba723e 100644 --- a/docs/gdevelop5/extensions/timed-back-and-forth-movement/index.md +++ b/docs/gdevelop5/extensions/timed-back-and-forth-movement/index.md @@ -3,7 +3,7 @@ This behavior moves objects back and forth for a chosen time or distance, vertically or horizontally. -**Authors and contributors** to this community extension: [Greench](https://gd.games/Greench). +**Authors and contributors** to this experimental extension: [Greench](https://gd.games/Greench). --- @@ -19,11 +19,11 @@ Note: animations must be facing **Right** (for horizontal) or **Down** (for vert ## Timed Back and Forth Movement Move an object (e.g. enemy) for a chosen time or distance, then flip it and start over. -Note: animations should be facing LEFT. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Timed Back and Forth Movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/toggle-switch/index.md b/docs/gdevelop5/extensions/toggle-switch/index.md index 9b690fde29..44b1e99282 100644 --- a/docs/gdevelop5/extensions/toggle-switch/index.md +++ b/docs/gdevelop5/extensions/toggle-switch/index.md @@ -3,7 +3,7 @@ Toggle switch that users can click or touch. -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- @@ -34,71 +34,243 @@ Use a shape-painter object to draw a toggle switch that users can click or touch **Thumb color (when checked)** Change the thumb color (when checked). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Thumb color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Active track color** Change the active track color (the part on the thumb left). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Color of active track + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Active track opacity** Change the active track opacity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Active track opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Check (or uncheck) the toggle switch** Check (or uncheck) the toggle switch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Checked + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Disable (or enable) the toggle switch** Disable (or enable) the toggle switch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): Disabled + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo opacity (hover)** Change opacity of the halo when the thumb is hovered. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo opacity (hover) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo opacity (pressed)** Change the halo opacity when the thumb is pressed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo opacity (pressed) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Halo radius** Change the halo radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Halo radius + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb color (when unchecked)** Change the thumb color (when unchecked). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Thumb color + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Inactive track color** Change the inactive track color (the part on the thumb right). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (color): Color of inactive track + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Inactive track opacity** Change the inactive track opacity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Inactive track opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb opacity** Change the thumb opacity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Thumb opacity + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb radius** Change the thumb radius. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Thumb radius + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb shadow offset on X axis** Change the offset on X axis of the thumb shadow. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X offset (pixels) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb shadow offset on Y axis** Change the offset on Y axis of the thumb shadow. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Y offset (pixels) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Thumb shadow opacity** Change the thumb shadow opacity. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Opacity of shadow on thumb + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Track height** Change the track height. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Track height + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Track width** Change the track width. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Track width + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Toggle the switch** If checked, change to unchecked. If unchecked, change to checked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Is checked** Check if the toggle switch is checked. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is disabled** Check if the toggle switch is disabled. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Is mouse hovered over toggle switch?** Check if mouse is hovering over toggle switch. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -119,6 +291,7 @@ Check if mouse is hovering over toggle switch. | `Object.ToggleSwitch::TrackHeight()` | Track height. || | `Object.ToggleSwitch::TrackWidth()` | Track width. || + --- *This page is an auto-generated reference page about the **Toggle switch (for Shape Painter)** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/top-down-corner-sliding/index.md b/docs/gdevelop5/extensions/top-down-corner-sliding/index.md index 93af788956..1918b40939 100644 --- a/docs/gdevelop5/extensions/top-down-corner-sliding/index.md +++ b/docs/gdevelop5/extensions/top-down-corner-sliding/index.md @@ -3,14 +3,12 @@ Slide on corners of rectangular obstacles. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -41,6 +39,7 @@ Flag objects as obstacles for top-down characters. _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **Top-down corner sliding** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/top-down-movement-animator/index.md b/docs/gdevelop5/extensions/top-down-movement-animator/index.md index 4091aa4a04..891fe3565d 100644 --- a/docs/gdevelop5/extensions/top-down-movement-animator/index.md +++ b/docs/gdevelop5/extensions/top-down-movement-animator/index.md @@ -3,14 +3,7 @@ Change the animation according to the movement direction. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- @@ -30,16 +23,70 @@ Change the animation according to the movement direction. **Animation name** Change the animation name of the object. -**Scale animation according to speed** -Change whether the animation is scaled according to speed or not. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (string): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Pause animations when objects stop** +Change whether animations are paused when objects stop. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): IsPausingAnimation + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + +**Scale animations according to speed** +Change whether animations are scaled according to speed or not. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (❓ Yes or No): IsScalingAnimation + + > Technical note: parameter 3 are internal parameters handled by GDevelop. ### Behavior conditions **Animation name** Compare the animation name of the object. -**Scale animation according to speed** -Check if the animation is scaled according to speed. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (string): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + +**Pause animations when objects stop** +Check if animations are paused when objects stop. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + +**Scale animations according to speed** +Check if animations are scaled according to speed. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. ### Behavior expressions @@ -47,6 +94,7 @@ Check if the animation is scaled according to speed. |-----|-----|-----| | `Object.TopDownMovementAnimator::AnimationName()` | Return the animation name of the object. || + --- *This page is an auto-generated reference page about the **Top-down movement animator** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/trampoline-platform/index.md b/docs/gdevelop5/extensions/trampoline-platform/index.md index 8d69a0004b..c3c7cca3eb 100644 --- a/docs/gdevelop5/extensions/trampoline-platform/index.md +++ b/docs/gdevelop5/extensions/trampoline-platform/index.md @@ -3,14 +3,12 @@ Convert object to trampoline platform. -**Authors and contributors** to this community extension: [VegeTato](https://gd.games/VegeTato). +**Authors and contributors** to this experimental extension: [VegeTato](https://gd.games/VegeTato). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -49,11 +47,30 @@ Convert object to trampoline platform. **Trampoline Platform** Convert object to trampoline platform. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Platformer character object (player) + - Parameter 2 (🧩 Behavior): Platformer character behavior + - Parameter 3 (👾 Object): Trampoline object + - Parameter 4 (🔢 Number): Trampoline force (in pixels per second) + - Parameter 5 (❓ Yes or No): Player must be on top of the trampoline in order to start the force + **Yes:** Insert platform behavior (jump through) on trampoline object. + **No:** No need for platform behavior. + + > Technical note: parameters 0, 6 are internal parameters handled by GDevelop. + ## Conditions **Trampoline has been triggered** Check if a trampoline has been triggered. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Trampoline object + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/travel-to-random-positions/index.md b/docs/gdevelop5/extensions/travel-to-random-positions/index.md index e43da62095..93de9cbca1 100644 --- a/docs/gdevelop5/extensions/travel-to-random-positions/index.md +++ b/docs/gdevelop5/extensions/travel-to-random-positions/index.md @@ -3,11 +3,11 @@ Make object travel to random positions (with the pathfinding behavior). -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames). --- -When the action is used, the object(s) will select a random nearby location and begin moving towards it (using the Pathfinding behavior). +When the action is used, the object(s) will select a random nearby 2D location and begin moving towards it (using the 2D Pathfinding behavior). If desired, choose a direction and how closely you want the object to follow it. This can be used to make objects chase (or run away from) the player, or to make objects cross the screen using a meandering path. @@ -23,6 +23,19 @@ If you want to modify the speed of the object, edit the Pathfinding behavior of **Make object travel to a random position, with optional direction** Make object travel to a random position around the object current position. The movement is initiated only when the object is not moving already (its Pathfinding behavior speed is 0). Move towards a specified angle, if desired. +??? quote "See parameters" + + - Parameter 1 (👾 Object): Object that will be travelling (must have Pathfinding behavior) + - Parameter 2 (🧩 Behavior): Pathfinding Behavior (required) + - Parameter 3 (🔢 Number): Minimum distance between each position (Default: 100px) + - Parameter 4 (🔢 Number): Maximum distance between each position (Default: 200px) + - Parameter 5 (🔢 Number): Direction (in degrees) the object will move towards (Range: 0-360) + - Parameter 6 (🔢 Number): Direction bias (Range: 0-1) + For example: "0" picks a completely random direction, "0.5" will select a direction within the half-circle that faces the specified direction, and "1" simply uses the specified direction. + + > Technical note: parameters 0, 7 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/turret/index.md b/docs/gdevelop5/extensions/turret/index.md index 62c2fe392e..6f4aa806c1 100644 --- a/docs/gdevelop5/extensions/turret/index.md +++ b/docs/gdevelop5/extensions/turret/index.md @@ -1,13 +1,13 @@ -# Turret movement +# Turret 2D movement A turret movement with customizable speed, acceleration and stop angles. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H). --- -With this behavior, you can make an object rotate like a turret toward a position. +With this behavior, you can make an object rotate like a turret toward a 2D position. It may be used with the **Bullet** extension to fire objects. !!! tip @@ -24,29 +24,78 @@ A turret movement with customizable speed, acceleration and stop angles. **Move clockwise** Move clockwise. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Move counter-clockwise** Move counter-clockwise. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Move toward a position** Move toward a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + - Parameter 4 (🔢 Number): Angle margin + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Aiming angle** Change the aiming angle. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Aiming angle + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Set aiming angle toward a position** Set angle toward a position. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): X position + - Parameter 3 (🔢 Number): Y position + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior conditions **Is moving** Check if the turret is moving. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| | `Object.Turret::AimingAngle()` | Aiming angle (between 0° and 360° if no stop angle are set). || + --- -*This page is an auto-generated reference page about the **Turret movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Turret 2D movement** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/tween-zorder/index.md b/docs/gdevelop5/extensions/tween-zorder/index.md deleted file mode 100644 index ee54633349..0000000000 --- a/docs/gdevelop5/extensions/tween-zorder/index.md +++ /dev/null @@ -1,41 +0,0 @@ -# Tween Z-Order - - -Smoothly animate Z order of objects. - -**Authors and contributors** to this community extension: [PANDAKO](https://gd.games/PANDAKO). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -This extension provides a behavior to smoothly animate the Z-order of an object. -Add the "Tween Z-Order" behavior to any object and use the "Tween Z-Order" action. - -[Read more...](https://github.com/PANDAKO-GitHub/TweenZOrderExtension) - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - - - -## Tween Z-Order - -Smoothly animate Z order of objects. - -### Behavior actions - -**Tween Z-Order** -Tweens an object Z order from its current value to a new one. - -_No expressions for this behavior._ - - ---- - -*This page is an auto-generated reference page about the **Tween Z-Order** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/tween3d/index.md b/docs/gdevelop5/extensions/tween3d/index.md index 55f8a590eb..1a9c81da50 100644 --- a/docs/gdevelop5/extensions/tween3d/index.md +++ b/docs/gdevelop5/extensions/tween3d/index.md @@ -3,14 +3,12 @@ Smoothly squash, strentch, tint and wobble 3D models. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [Jurfix](https://gd.games/Jurfix). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [Jurfix](https://gd.games/Jurfix). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -20,10 +18,6 @@ It's used in this example: * a 3D Bomberman-like game ([open the project online](https://editor.gdevelop.io/?project=example://3d-bomber-bunny)) -Breaking changes of 0.1.0: - -- The Tween behavior is now required by the 3D Tween behavior. Add the Tween behavior on any object that uses the 3D Tween behavior - !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -32,6 +26,14 @@ Breaking changes of 0.1.0: **Tint color** Change the tint of an object. The default color is white. +??? quote "See parameters" + + - Parameter 1: 👾 Object + - Parameter 2 (🧩 Behavior): Object capability + - Parameter 3: color + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + ## Advanced 3D tween @@ -43,64 +45,230 @@ Smoothly squash, strentch and tint 3D models. **Pause a tween** Pause the running tween animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Remove a tween** Remove the tween animation from the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Resume a tween** Resume the tween animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Scale volume** Change the scale volume. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stretch on Y axis** Change the stretch on Y axis. The object volume is conserved. A stretch of 2 makes the object appear 2 times longer on Y in proportion to the dimensions on X and Z. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stretch on Z axis** Change the stretch on Z axis. The object volume is conserved. A stretch of 2 makes the object appear 2 times longer on Z in proportion to the dimensions on X and Y. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stop a tween** Stop the running tween animation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + - Parameter 3 (❓ Yes or No): Jump to end + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Tween scale volume** Tweens an object scale volume from its current value to a new one. The scale volume can never be 0 or less. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + - Parameter 3 (🔢 Number): Scale volume + - Parameter 4 (🔢 Number): Duration (in seconds) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Tween stretch Y** Tweens an object stretch Y from its current value to a new one. The stretch can never be 0 or less. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + - Parameter 3 (🔢 Number): Stretch on Y axis + - Parameter 4 (🔢 Number): Duration (in seconds) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Tween stretch Z** Tweens an object stretch Z from its current value to a new one. The stretch can never be 0 or less. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + - Parameter 3 (🔢 Number): Stretch on Z axis + - Parameter 4 (🔢 Number): Duration (in seconds) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + **Tween object color** Tweens the object color from its current value to a new one. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + - Parameter 3: color + - Parameter 4 (🔢 Number): Duration (in seconds) + - Parameter 5 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 6 are internal parameters handled by GDevelop. + ### Behavior conditions **Tween exists** Check if the tween animation exists. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Tween finished playing** Check if the tween animation has finished playing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Tween is playing** Check if the tween animation is currently playing. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Progress of a tween** Compare the progress of a tween (between 0.0 and 1.0). +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + - Parameter 4 (🔤 Name (String)): Tween identifier + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Scale volume** Compare the scale volume. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stretch on Y axis** Compare the stretch on Y axis. The object volume is conserved. A stretch of 2 makes the object appear 2 times longer on Y in proportion to the dimensions on X and Z. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stretch on Z axis** Compare the stretch on Z axis. The object volume is conserved. A stretch of 2 makes the object appear 2 times longer on Z in proportion to the dimensions on X and Y. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | |-----|-----|-----| -| `Object.Tween3D::Progress()` | Return the progress of a tween (between 0.0 and 1.0). || +| `Object.Tween3D::Progress(string)` | Return the progress of a tween (between 0.0 and 1.0). || +| | _🔤 Name (String)_ | Tween identifier | | `Object.Tween3D::ScaleVolume()` | Return the scale volume. || | `Object.Tween3D::StretchY()` | Return the stretch on Y axis. The object volume is conserved. A stretch of 2 makes the object appear 2 times longer on Y in proportion to the dimensions on X and Z. || | `Object.Tween3D::StretchZ()` | Return the stretch on Z axis. The object volume is conserved. A stretch of 2 makes the object appear 2 times longer on Z in proportion to the dimensions on X and Y. || @@ -114,53 +282,199 @@ Squash and stretch a 3D model in loop. **Cycle duration** Change the cycle duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum scale volume** Change the maximum scale volume of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Minimum scale volume** Change the minimum scale volume of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Scale cycle offset** Change the scale cycle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum stretch** Change the maximum stretch of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Minimum stretch** Change the minimum stretch of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stretch cycle offset** Change the stretch cycle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Tween maximum scale volume** Tweens the maximum scale volume from its current value to a new one. The scale volume can never be 0 or less. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Maximum scale volume + - Parameter 3 (🔢 Number): Duration (in seconds) + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + **Tween minimum scale volume** Tweens the minimum scale volume from its current value to a new one. The scale volume can never be 0 or less. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Minimum scale volume + - Parameter 3 (🔢 Number): Duration (in seconds) + - Parameter 4 (🔤 String): Easing (one of: "linear", "easeInQuad", "easeOutQuad", "easeInOutQuad", "easeInCubic", "easeOutCubic", "easeInOutCubic", "easeInQuart", "easeOutQuart", "easeInOutQuart", "easeInQuint", "easeOutQuint", "easeInOutQuint", "easeInOutSine", "easeInExpo", "easeOutExpo", "easeInOutExpo", "easeInCirc", "easeOutCirc", "easeInOutCirc", "easeOutBounce", "easeInBack", "easeOutBack", "easeInOutBack", "elastic", "swingFromTo", "swingFrom", "swingTo", "bounce", "bouncePast", "easeFromTo", "easeFrom", "easeTo") + + > Technical note: parameter 5 are internal parameters handled by GDevelop. + ### Behavior conditions **Cycle duration** Compare the cycle duration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum scale volume** Compare the maximum scale volume of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Minimum scale volume** Compare the minimum scale volume of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Scale cycle offset** Compare the scale cycle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum stretch** Compare the maximum stretch of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Minimum stretch** Compare the minimum stretch of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Stretch cycle offset** Compare the stretch cycle offset of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -173,6 +487,7 @@ Compare the stretch cycle offset of the object. | `Object.Wobble::StretchMin()` | Return the minimum stretch of the object. || | `Object.Wobble::StretchPeriodOffset()` | Return the stretch cycle offset of the object. || + --- *This page is an auto-generated reference page about the **Advanced 3D tween** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/two-choices-dialog-boxes/index.md b/docs/gdevelop5/extensions/two-choices-dialog-boxes/index.md new file mode 100644 index 0000000000..8af7bea6a6 --- /dev/null +++ b/docs/gdevelop5/extensions/two-choices-dialog-boxes/index.md @@ -0,0 +1,50 @@ +# Two choices dialog boxes + + +A dialog box with buttons to let users make a choice. + +**Authors and contributors** to this experimental extension: [Bouh](https://gd.games/Bouh). + +--- + +A dialog box showing multiple options (usually "yes" and "no") and a customizable text message. +It handles keyboard, gamepad and touch controls. + +There are ready-to-use dialog boxes in the asset-store [dialog boxes pack](https://editor.gdevelop.io/?initial-dialog=asset-store&asset-pack=dialog-boxes-dialog-boxes). + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + + + +## Two choices dialog box + +A dialog box showing two options. + +### Object conditions + +**"No" button is clicked** +Check if the "No" button of the dialog was selected. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +**"Yes" button is clicked** +Check if the "Yes" button of the dialog was selected. + +??? quote "See parameters" + + - Parameter 0: 👾 Object + + > Technical note: parameter 1 are internal parameters handled by GDevelop. + +_No expressions for this object._ + + + +--- + +*This page is an auto-generated reference page about the **Two choices dialog boxes** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/unicode-conversion/index.md b/docs/gdevelop5/extensions/unicode-conversion/index.md index 2502ab4bbe..a6f8b1bf5a 100644 --- a/docs/gdevelop5/extensions/unicode-conversion/index.md +++ b/docs/gdevelop5/extensions/unicode-conversion/index.md @@ -3,7 +3,7 @@ Provides conversion tools for Ascii and Unicode characters. -**Authors and contributors** to this community extension: [Ahnaf30e](https://gd.games/Ahnaf30e). +**Authors and contributors** to this experimental extension: [Ahnaf30e](https://gd.games/Ahnaf30e). --- @@ -17,9 +17,19 @@ The `UnicodeConversion::ReverseUnicode(string, range, base)` string expression c | Expression | Description | | |-----|-----|-----| -| `UnicodeConversion::ReverseUnicode()` | Reverses the unicode of a string with a base. || -| `UnicodeConversion::TextToUnicode()` | Converts a string into unicode representation with a base. || -| `UnicodeConversion::UnicodeToText()` | Converts a unicode representation into String with a base. || +| `UnicodeConversion::ReverseUnicode(string, number, number)` | Reverses the unicode of a string with a base. || +| | _string_ | String to reverse | +| | _🔢 Number_ | Base of the reverse (Default: 2) | +| | _🔢 Number_ | Range of unicode characters (Put 16 here to support the most characters if you put 2 in the base) | +| `UnicodeConversion::TextToUnicode(string, number, string)` | Converts a string into unicode representation with a base. || +| | _string_ | The string to convert to unicode | +| | _🔢 Number_ | Base | +| | _string_ | Seperator text (Optional) | +| `UnicodeConversion::UnicodeToText(string, number, string)` | Converts a unicode representation into String with a base. || +| | _string_ | The unicode to convert to String | +| | _🔢 Number_ | Base | +| | _string_ | Seperator text (Optional) | + --- diff --git a/docs/gdevelop5/extensions/update-checker/index.md b/docs/gdevelop5/extensions/update-checker/index.md index aa4c44a0a7..0142a5a958 100644 --- a/docs/gdevelop5/extensions/update-checker/index.md +++ b/docs/gdevelop5/extensions/update-checker/index.md @@ -3,14 +3,12 @@ Checks if the version of the game on liluo is different than the current game version. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -25,14 +23,33 @@ If you want your users to see that an update is available, simply change the ver **Re-check for updates** Loads the latest game version from liluo. This is already called at the beginnign of the scene, but you can still re-call it if it failed or if you want to add a "check again" button. Make sure to not call this too often (or at all), as otherwise it will DDoS the version-checking server!. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **Update is available** Checks if the game version on liluo is different from the one of the currently running game. It may take a few seconds for the liluo game version to be obtained, and in this time frame, the condition will not trigger. If disconnected from the internet, this will not function. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Updates check failed** Checks if the fetching of the latest version from liluo succeeded. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/upload-download-text-file/index.md b/docs/gdevelop5/extensions/upload-download-text-file/index.md index 072c85033a..b6381440db 100644 --- a/docs/gdevelop5/extensions/upload-download-text-file/index.md +++ b/docs/gdevelop5/extensions/upload-download-text-file/index.md @@ -3,14 +3,12 @@ Allows users to upload/download text content to a filename and vice versa. -**Authors and contributors** to this community extension: [planktonfun](https://gd.games/planktonfun). +**Authors and contributors** to this experimental extension: [planktonfun](https://gd.games/planktonfun). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -29,14 +27,34 @@ Allows users to upload/download text content to a filename and vice versa. **Download file with text content** Download file with text content. +??? quote "See parameters" + + - Parameter 1 (string): FileName + - Parameter 2 (string): TextContent + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **Upload a text file to text input** Upload a text file to text input. +??? quote "See parameters" + + - Parameter 1 (🗄️ Scene variable): SceneVariable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **Uploading text file finished?** Uploading text file finished. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/urltools/index.md b/docs/gdevelop5/extensions/urltools/index.md index 961d3ca3ac..d9e6821ba5 100644 --- a/docs/gdevelop5/extensions/urltools/index.md +++ b/docs/gdevelop5/extensions/urltools/index.md @@ -1,13 +1,13 @@ # Webpage URL tools (Web browser) -Allows to read URL on Web browser exports of the game and manipulate URLs generally. +Allows to read URL where a web-game is hosted and manipulate URL strings. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- -This extension allows to +This extension allows to: - Get the URL of the game page - Reload the page @@ -24,19 +24,44 @@ This extension allows to **Redirect to another page** Loads another page in place of the current one. +??? quote "See parameters" + + - Parameter 1 (string): URL to redirect to + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Reload the web page** Reloads the current web page. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | |-----|-----|-----| -| `URLTools::ChangeURLAttribute()` | Updates a specific part of a URL. || -| `URLTools::ChangeURLQueryStringParameter()` | Sets or replaces a query string parameter of a URL. || +| `URLTools::ChangeURLAttribute(string, string, string)` | Updates a specific part of a URL. || +| | _string_ | The URL to change | +| | _🔤 String_ | The attribute to update | +| | _string_ | The new value of this attribute | +| `URLTools::ChangeURLQueryStringParameter(string, string, string)` | Sets or replaces a query string parameter of a URL. || +| | _string_ | The URL to change | +| | _string_ | The query string parameter to update | +| | _string_ | The new value of the query string parameter | | `URLTools::CurrentURL()` | Gets the URL of the current game page. || -| `URLTools::RemoveURLQueryStringParameter()` | Removes a query string parameter from an URL. || -| `URLTools::URLAttribute()` | Get an attribute from a URL. || -| `URLTools::URLQueryStringParameter()` | Gets a parameter of a URL query string. || +| `URLTools::RemoveURLQueryStringParameter(string, string)` | Removes a query string parameter from an URL. || +| | _string_ | The URL to change | +| | _string_ | The query string parameter to remove | +| `URLTools::URLAttribute(string, string)` | Get an attribute from a URL. || +| | _string_ | The URL to get the attribute from | +| | _🔤 String_ | The attribute to get | +| `URLTools::URLQueryStringParameter(string, string)` | Gets a parameter of a URL query string. || +| | _string_ | The URL to get a query string parameter from | +| | _string_ | The query string parameter to get | + --- diff --git a/docs/gdevelop5/extensions/uuid/index.md b/docs/gdevelop5/extensions/uuid/index.md index e2693b197b..ce00df6313 100644 --- a/docs/gdevelop5/extensions/uuid/index.md +++ b/docs/gdevelop5/extensions/uuid/index.md @@ -3,7 +3,7 @@ A collection of UID generation expressions. -**Authors and contributors** to this community extension: [arthuro555](https://gd.games/arthuro555). +**Authors and contributors** to this experimental extension: [arthuro555](https://gd.games/arthuro555). --- @@ -22,6 +22,7 @@ Adds UUID (Universally Unique Identifiers) generation expressions via multiple p | `UUID::GenerateIncrementedIntegerUID()` | Generates a unique identifier with the incremented integer pattern. || | `UUID::GenerateUUIDv4()` | Generates a unique identifier with the UUIDv4 pattern. || + --- *This page is an auto-generated reference page about the **Unique Identifiers** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/values-of-multiple-objects/index.md b/docs/gdevelop5/extensions/values-of-multiple-objects/index.md index 1bc9e23c39..e287761816 100644 --- a/docs/gdevelop5/extensions/values-of-multiple-objects/index.md +++ b/docs/gdevelop5/extensions/values-of-multiple-objects/index.md @@ -3,46 +3,14 @@ Values of picked object instances (including position, size, force and angle). -**Authors and contributors** to this community extension: [VictrisGames](https://gd.games/VictrisGames), [Bouh](https://gd.games/Bouh), [Uiles](https://gd.games/Uiles). +**Authors and contributors** to this experimental extension: [VictrisGames](https://gd.games/VictrisGames), [Bouh](https://gd.games/Bouh), [Uiles](https://gd.games/Uiles). --- -Provides values based on picked object instances. +Provides values based on picked object instances: minimum or average X or Y position, center position, width, height, 2D Z-order. Useful for camera tracking, flocking behaviors, and more. -Included expressions - -Center points: - -- X center point (absolute) -- Y center point (absolute) -- X center point (average) -- Y center point (average) - -Position expressions (based on AABB of objects): - -- Minimum X position -- Minimum Y position -- Maximum X position -- Maximum Y position - -Force expressions: - -- Average horizontal force (X) -- Average vertical force (Y) - -Angle expressions: - -- Average angle of rotation - -Size expressions: - -- Width (min/max/average) -- Height (min/max/average) - -Z-order expressions: (min/max/average) - -[Read more...](https://victrisgames.itch.io/values-of-multiple-objects) +An example shows how to use the extension ([open the Itch.io page](https://victrisgames.itch.io/values-of-multiple-objects)). !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. @@ -51,26 +19,47 @@ Z-order expressions: (min/max/average) | Expression | Description | | |-----|-----|-----| -| `ValuesOfMultipleObjects::AbsoluteCenterOfObjectsX()` | X center point (absolute) of picked object instances. || -| `ValuesOfMultipleObjects::AbsoluteCenterOfObjectsY()` | Y center point (absolute) of picked object instances. || -| `ValuesOfMultipleObjects::AverageAngle()` | Average angle of rotation of picked object instances. || -| `ValuesOfMultipleObjects::AverageCenterOfObjectsX()` | X center point (average) of picked object instances. || -| `ValuesOfMultipleObjects::AverageCenterOfObjectsY()` | Y center point (average) of picked object instances. || -| `ValuesOfMultipleObjects::AverageForceX()` | Average horizontal force (X) of picked object instances. || -| `ValuesOfMultipleObjects::AverageForceY()` | Average vertical force (Y) of picked object instances. || -| `ValuesOfMultipleObjects::AverageHeight()` | Average height of picked object instances. || -| `ValuesOfMultipleObjects::AverageWidth()` | Average width of picked object instances. || -| `ValuesOfMultipleObjects::AverageZOrder()` | Average Z order of picked object instances. || -| `ValuesOfMultipleObjects::MaxHeight()` | Max object height of picked object instances. || -| `ValuesOfMultipleObjects::MaxWidth()` | Max object width of picked object instances. || -| `ValuesOfMultipleObjects::MaxX()` | Maximum X position of picked object instances (using AABB of objects). || -| `ValuesOfMultipleObjects::MaxY()` | Maximum Y position of picked object instances (using AABB of objects). || -| `ValuesOfMultipleObjects::MaxZOrder()` | Maximum Z order of picked object instances. || -| `ValuesOfMultipleObjects::MinHeight()` | Min object height of picked object instances. || -| `ValuesOfMultipleObjects::MinWidth()` | Min object width of picked object instances. || -| `ValuesOfMultipleObjects::MinX()` | Minimum X position of picked object instances (using AABB of objects). || -| `ValuesOfMultipleObjects::MinY()` | Minimum Y position of picked object instances (using AABB of objects). || -| `ValuesOfMultipleObjects::MinZOrder()` | Minimum Z order of picked object instances. || +| `ValuesOfMultipleObjects::AbsoluteCenterOfObjectsX(object)` | X center point (absolute) of picked object instances. || +| | _👾 Object_ | Objects Objects that will be used to calculate their center point | +| `ValuesOfMultipleObjects::AbsoluteCenterOfObjectsY(object)` | Y center point (absolute) of picked object instances. || +| | _👾 Object_ | Objects Objects that will be used to calculate their center point | +| `ValuesOfMultipleObjects::AverageAngle(object)` | Average angle of rotation of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::AverageCenterOfObjectsX(object)` | X center point (average) of picked object instances. || +| | _👾 Object_ | Objects Objects that will be used to calculate their center point | +| `ValuesOfMultipleObjects::AverageCenterOfObjectsY(object)` | Y center point (average) of picked object instances. || +| | _👾 Object_ | Objects Objects that will be used to calculate their center point | +| `ValuesOfMultipleObjects::AverageForceX(object)` | Average horizontal force (X) of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::AverageForceY(object)` | Average vertical force (Y) of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::AverageHeight(object)` | Average height of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::AverageWidth(object)` | Average width of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::AverageZOrder(object)` | Average Z order of picked object instances. || +| | _👾 Object_ | objects | +| `ValuesOfMultipleObjects::MaxHeight(object)` | Max object height of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::MaxWidth(object)` | Max object width of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::MaxX(object)` | Maximum X position of picked object instances (using AABB of objects). || +| | _👾 Object_ | objects | +| `ValuesOfMultipleObjects::MaxY(object)` | Maximum Y position of picked object instances (using AABB of objects). || +| | _👾 Object_ | objects | +| `ValuesOfMultipleObjects::MaxZOrder(object)` | Maximum Z order of picked object instances. || +| | _👾 Object_ | objects | +| `ValuesOfMultipleObjects::MinHeight(object)` | Min object height of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::MinWidth(object)` | Min object width of picked object instances. || +| | _👾 Object_ | Objects | +| `ValuesOfMultipleObjects::MinX(object)` | Minimum X position of picked object instances (using AABB of objects). || +| | _👾 Object_ | objects | +| `ValuesOfMultipleObjects::MinY(object)` | Minimum Y position of picked object instances (using AABB of objects). || +| | _👾 Object_ | objects | +| `ValuesOfMultipleObjects::MinZOrder(object)` | Minimum Z order of picked object instances. || +| | _👾 Object_ | objects | + --- diff --git a/docs/gdevelop5/extensions/voice-recognition/index.md b/docs/gdevelop5/extensions/voice-recognition/index.md index c5f0a80f9e..f885b09fdc 100644 --- a/docs/gdevelop5/extensions/voice-recognition/index.md +++ b/docs/gdevelop5/extensions/voice-recognition/index.md @@ -3,14 +3,12 @@ Converts voice to text. -**Authors and contributors** to this community extension: [planktonfun](https://gd.games/planktonfun). +**Authors and contributors** to this experimental extension: [planktonfun](https://gd.games/planktonfun). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -50,14 +48,32 @@ Features: **Listen for speeches** Listen for speeches. +??? quote "See parameters" + + - Parameter 1 (🔤 String): Language (Optional, defaults to the browser language setting if none given) (one of: "ar-SA (Arabic)", "bn-BD (Bangla)", "bn-IN (Bangla)", "cs-CZ (Czech)", "da-DK (Danish)", "de-AT (German)", "de-CH (German)", "de-DE (German)", "el-GR (Greek)", "en-AU (English)", "en-CA (English)", "en-GB (English)", "en-IE (English)", "en-IN (English)", "en-NZ (English)", "en-US (English)", "en-ZA (English)", "es-AR (Spanish)", "es-CL (Spanish)", "es-CO (Spanish)", "es-ES (Spanish)", "es-MX (Spanish)", "es-US (Spanish)", "fi-FI (Finnish)", "fr-BE (French)", "fr-CA (French)", "fr-CH (French)", "fr-FR (French)", "he-IL (Hebrew)", "hi-IN (Hindi)", "hu-HU (Hungarian)", "id-ID (Indonesian)", "it-CH (Italian)", "it-IT (Italian)", "jp-JP (Japanese)", "ko-KR (Korean)", "nl-BE (Dutch)", "nl-NL (Dutch)", "no-NO (Norwegian)", "pl-PL (Polish)", "pt-BR (Portugese)", "pt-PT (Portugese)", "ro-RO (Romanian)", "ru-RU (Russian)", "sk-SK (Slovak)", "sv-SE (Swedish)", "ta-IN (Tamil)", "ta-LK (Tamil)", "th-TH (Thai)", "tr-TR (Turkish)", "zh-CN (Chinese)", "zh-HK (Chinese)", "zh-TW (Chinese)") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **On Voice Recognition Error** On Voice Recognition Error. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **On Voice Recognition Success** On Voice Recognition Success. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -66,6 +82,7 @@ On Voice Recognition Success. | `VoiceRecognition::RetrieveStatus()` | Retrieves Voice Recognition Error Status. || | `VoiceRecognition::RetrievetResultText()` | Retrieves Voice Recognition Result Text. || + --- *This page is an auto-generated reference page about the **Voice Recognition API** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/walk3d/index.md b/docs/gdevelop5/extensions/walk3d/index.md index 7ef22c8699..9549d23c47 100644 --- a/docs/gdevelop5/extensions/walk3d/index.md +++ b/docs/gdevelop5/extensions/walk3d/index.md @@ -1,27 +1,25 @@ -# 3D walk +# Top-down walk Turn and move objects forward and sideways. -**Authors and contributors** to this community extension: [D8H](https://gd.games/D8H), [LazyPanda](https://gd.games/LazyPanda), [SG631_DEV](https://gd.games/SG631_DEV). +**Authors and contributors** to this experimental extension: [D8H](https://gd.games/D8H), [LazyPanda](https://gd.games/LazyPanda), [SG631_DEV](https://gd.games/SG631_DEV). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- -Move objects forward and sideways arrording to the direction they're facing. +Move objects forward and sideways according to the direction they're facing. !!! tip Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. -## 3D walk +## Top-down walk Turn and move objects forward and sideways. @@ -30,83 +28,304 @@ Turn and move objects forward and sideways. **Current forward speed** Change the current forward speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current rotation speed** Change the current rotation speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current sideways speed** Change the current sideways speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation acceleration** Change the rotation acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation deceleration** Change the rotation deceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum rotation speed** Change the maximum rotation speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Acceleration** Change the acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Deceleration** Change the deceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum speed** Change the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Operator + - Parameter 3 (🔢 Number): Value + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Simulate move backward key press** Simulate a press of the move backward key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate move forward key press** Simulate a press of the move forward key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate move left key press** Simulate a press of the move left key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate move right key press** Simulate a press of the move right key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate stick control** Simulate a stick control. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Stick angle (in degrees) + - Parameter 3 (🔢 Number): Stick force (between 0 and 1) + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Simulate stick control for rotation** Simulate a stick control for rotation. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2 (🔢 Number): Axis value (between -1 and 1) + + > Technical note: parameter 3 are internal parameters handled by GDevelop. + **Simulate turn left key press** Simulate a press of the turn left key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + **Simulate turn right key press** Simulate a press of the turn right key. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + + > Technical note: parameter 2 are internal parameters handled by GDevelop. + ### Behavior conditions **Current forward speed** Compare the current forward speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current rotation speed** Compare the current rotation speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Current sideways speed** Compare the current sideways speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation acceleration** Compare the rotation acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Rotation deceleration** Compare the rotation deceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum rotation speed** Compare the maximum rotation speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Acceleration** Compare the acceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Deceleration** Compare the deceleration of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + **Maximum speed** Compare the maximum speed of the object. +??? quote "See parameters" + + - Parameter 0: 👾 Object + - Parameter 1: 🧩 Behavior + - Parameter 2: 🟰 Relational operator + - Parameter 3 (🔢 Number): Value to compare + + > Technical note: parameter 4 are internal parameters handled by GDevelop. + ### Behavior expressions | Expression | Description | | @@ -121,6 +340,7 @@ Compare the maximum speed of the object. | `Object.Walk3D::TranslationDeceleration()` | Return the deceleration of the object. || | `Object.Walk3D::TranslationSpeedMax()` | Return the maximum speed of the object. || + --- -*This page is an auto-generated reference page about the **3D walk** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file +*This page is an auto-generated reference page about the **Top-down walk** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/web-socket-client/index.md b/docs/gdevelop5/extensions/web-socket-client/index.md index d3b8a80be7..e168b55f4b 100644 --- a/docs/gdevelop5/extensions/web-socket-client/index.md +++ b/docs/gdevelop5/extensions/web-socket-client/index.md @@ -3,7 +3,7 @@ A WebSocket client for fast client-server networking. -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). --- @@ -31,32 +31,86 @@ Doesn't contain: **Connect to server** Connects to a WebSocket server. +??? quote "See parameters" + + - Parameter 1 (string): The server address + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Disconnect from server** Disconnects from the current WebSocket server. +??? quote "See parameters" + + - Parameter 1 (string): The reason for disconnection + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **Mark as processed** Dismisses an event after processing it to allow processing the next one without waiting for the next frame. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Send data to the server** Sends a string to the server. +??? quote "See parameters" + + - Parameter 1 (string): The data to send to the server + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + ## Conditions **An event was received** Triggers when the server has sent the client some data. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Connection to a server was closed** Triggers if the connection to a WebSocket server was closed. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Connected to a server** Triggers if the client is connected to a WebSocket server. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **Connecting to a server** Triggers if the client is currently connecting to the WebSocket server. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **An error occurred** Triggers when a WebSocket error has occurred. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Expressions | Expression | Description | | @@ -64,6 +118,7 @@ Triggers when a WebSocket error has occurred. | `WebSocketClient::Data()` | Returns the piece of data from the server that is currently being processed. || | `WebSocketClient::LastError()` | Gets the last error that occurred. || + --- *This page is an auto-generated reference page about the **WebSocket client** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/with-three-js/index.md b/docs/gdevelop5/extensions/with-three-js/index.md deleted file mode 100644 index 557dc13e37..0000000000 --- a/docs/gdevelop5/extensions/with-three-js/index.md +++ /dev/null @@ -1,423 +0,0 @@ -# With Three JS - - -Create a simple 3D scene. - -**Authors and contributors** to this community extension: [PANDAKO](https://gd.games/PANDAKO). - -!!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. - ---- - -Extension for GDevelop to create simple 3D scenes. -This extension is intended for easy and simple 3D rendering. It does not currently aim for realistic 3D rendering. - -## 📖 How to use -Check out this page. -[WithThreeJs Extension for GDevelop](https://pandako.itch.io/with-threejs-extension-for-gdevelop) - -## ⚠️ Notes on updating from version 1.x.x to version 2.0.0 -The "Create 3D Scene", "Load 3D Texture", "Play 3D Sound" and "Create 3D Light" actions have been updated in version 2.0.0. -The previous actions with the same names still work but are deprecated. (Look for the ⚠️ icon in the event.) Please use the new actions with the same names. - -## 🍩 Donation -Currently, I'm doing development in between jobs, but if many people support me, I will be able to devote more time to the development. -If you enjoy this extension, please consider [downloading the Example project file](https://pandako.itch.io/with-threejs-extension-for-gdevelop) to maintain this extension. (The Example project file will surely help you.😉) - -## Three.js -Copyright 2010-2022 Three.js Authors -https://github.com/mrdoob/three.js/blob/dev/LICENSE - -[Read more...](https://pandako.itch.io/with-threejs-extension-for-gdevelop) - -!!! tip - Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. - -## Actions - -**👥Add Child** -Add 3D Object as child to 3D object. - -**🆔Add Suffix To 3D Object ID** -Adds a suffix to the IDs of the specified 3D object and its children. -Note that if lights or sounds are included as children, their IDs will also change. - -**👀3D Camera Look At 3D Object** -👀3D Camera Look At 3D Object - -**🎥Change 3D Camera FOV** -Change the Field Of View of the 3D Camera. - -**🎥Change 3D Camera Far** -Change the far property of 3D Camera. -The 3D Camera will not render 3D Objects farther than this distance. - -**🎥Change 3D Camera Near** -Change the near property of the 3D Camera. -The 3D Camera will not render 3D Objects closer than this distance. - -**🎥Change 3D Camera Zoom** -🎥Change 3D Camera Zoom - -**🧱Change 3D Texture** -Change the 3D Texture of a 3D Object. - -**🎞️Change 3D Object All Animations Speed Scale** -Change all animations speed scale of a 3D Object. -0 is pause. -Negative values play backwards. - -**🧱Change 3D Object Blend Mode** -Change the Blend Mode of a 3D Object. - -**🧱Change 3D Object DepthWrite** -Change the DepthWrite of a 3D Object. -Whether rendering this 3D Object has any effect on the depth buffer. -If transparent 3D Objects overlap and render incorrectly, you may be able to obtain ideal rendering results by setting the DepthWrite of that 3D Object to No. -Default is Yes. - -**🔊Change Master Volume Of 3D Scene** -🔊Change Master Volume Of 3D Scene - -**🥛Change 3D Object Opacity** -Change the Opacity of a 3D Object. -The same value is set for multiple textures. - -**↕️Change 3D Object Scale** -Change the Scale of a 3D Object. -Note that 3D Sprite and 3D Model were scaled when created. - -**🌗Change 3D Object Visibility** -Change the visibility of a 3D Object. - -**🗑️Clear 3D Scene** -Clear 3D Scene. Removes all 3D Objects in the 3D Scene. -As a result, this action also removes 2D Objects that have 3D Projection Behaviors. -This action does not clear the loaded 3D Texture data and the loaded 3D Model data. -They will continue to be accessible by ID. - -**🛟Create 3D Axes Helper** -🛟Create 3D Axes Helper - -**✨Create 3D Box** -✨Create 3D Box - -**👥Create 3D Group** -This 3D Object without geometry is useful for grouping other 3D Objects together or changing their center point. - -**💡Create 3D Light** -⚠️ 3D Lights are highly loaded. -3D Directional Light and 3D Spot Light emit light in the -Z direction. -3D Lights can be handled like 3D Objects. - -**💎Create 3D Model** -Create a new 3D model from the 3D model loaded with the "Load 3D Model From OBJ" action. - -**💎Create 3D Model From Built-In 3D Model** -The only valid object properties are "3D model" and "Material modifier". - -**✨Create 3D Plane** -✨Create 3D Plane - -**🏞️Create 3D Scene** -Create a 3D Scene and initialize all 3D Cameras. -The second parameter is the background image. -Background image ratio 2:1 (e.g. 1024 x 512 pixels) => Skybox. -Other image ratio => Flat background image. -No image specified => No Background Image. - -**✨Create 3D Sprite** -✨Create 3D Sprite - -**👥Detach From Parent** -Detach a 3D Object from its parent. -(Set Parent to Scene) - -**🔜Linearly interpolate 3D Object** -🔜Linearly interpolate 3D Object - -**🔜Linearly interpolate 3D Camera** -🔜Linearly interpolate 3D Camera - -**📥Load 3D Model From OBJ** -📥Load 3D Model From OBJ - -**📥Load 3D Texture** -Load image from GDevelop resources and create 3D Texture. - -**👀Look At 3D Camera** -👀Look At 3D Camera - -**👀Look At 3D Object** -👀Look At 3D Object - -**↔️Move 3D Camera** -Move a 3D Camera. -'=' is relative to the parent axis. -"+" and "-" are relative to the local axis. - -**↔️Move 3D Object** -Move a 3D Object. -'=' is relative to the parent axis. -"+" and "-" are relative to the local axis. - -**↔️Move 3D Object On World** -Move a 3D Object on the world axis. -"=", "+" and "-" are relative to the world axis. - -**🛟Output All IDs To Console** -🛟Output All IDs To Console - -**🛟Output 3D Model Information To Console** -🛟Output 3D Model Information To Console - -**🔎Place 3D Object Using Raycast Result** -🔎Place 3D Object Using Raycast Result - -**🎞️Play 3D Animation** -Play 3D animation. -If already playing, only the "Animation Speed Scale" and "Loop" properties are updated. - -**Play 3D Sound V1 (Deprecated)** -Play a 3D Positional Sound. -This action is deprecated but is still available. This is because the new action has issues with the editor and is difficult to use. - -**🔊Play 3D Sound** -Play a 3D Positional Sound. - -**🔎Raycast** -Do a Raycast. -You can get the count of 3D Objects in the result with the "Raycast Result Count" expression. -The result can be accessed via the "Raycast Result Number" expression or the "Raycast Result String" string expression. - -**🔎Raycast From 3D Camera** -Do a Raycast from the 3D Camera. -You can get the count of 3D Objects in the result with the "Raycast Result Count" expression. -The result can be accessed via the "Raycast Result Number" expression or the "Raycast Result String" string expression. - -**🔎Raycast From 3D Object** -Do a Raycast from the 3D Object. (Z axis direction) -You can get the count of 3D Objects in the result with the "Raycast Result Count" expression. -The result can be accessed via the "Raycast Result Number" expression or the "Raycast Result String" string expression. - -**🗑️Remove 3D Object** -Remove a 3D Object from the 3D Scene. -This action cannot remove 3D Objects created by 3D Projection Behaviors. -This action does not clear the loaded 3D Texture data and the loaded 3D Model data. -They will continue to be accessible by ID. - -**💥Resolve Bounding Box Collision** -Resolve collisions between Bounding Boxes. -It is not necessary to use the "Check Bounding Box Collision" condition beforehand. (It will do almost the same processing) -Note that the 3D Objects are still in contact after resolution. ("Check Bounding Box Collision" condition will not be false.) -3D Object thickness too thin for the amount of movement will not resolve correctly. -This action updates the "Bounding Box Collision Result". -"Bounding Box Collision Result" stores the value when the Target 3D Object is unmoved. - -**🔄️Rotate 3D Camera** -Rotate the 3D Camera in the order X, Y, Z. - -**🔄️Rotate 3D Camera Like Head** -Rotate the 3D Camera first in the world Y axis, then on the local X and Z axes. - -**🔄️Rotate 3D Camera On World** -Rotate the 3D Camera in the order X, Y, Z on the world axis. - -**🔄️Rotate 3D Object** -Rotate the 3D Object in the order X, Y, Z. - -**🔄️Rotate 3D Object Like Head** -Rotate the 3D Object first in the world Y axis, then on the local X and Z axes. - -**🔄️Rotate 3D Object On World** -Rotate the 3D Object in the order X, Y, Z on the world axis. - -**👤Set 3D Object Shadow** -If both "Cast Shadow" and "Receive Shadow" are enabled, striped patterns are likely to occur in the shadow. - -**👥Set 3D Object ID Of Children To Scene Variable (Deprecated)** -Set 3D Object ID of all children to scene variable as array. - -**👥Set 3D Object ID Of Children To Variable** -Set 3D Object ID of all children to variable (Global, Scene or Local) as array. - -**📝Set number to 3D Object Variable** -📝Set number to 3D Object Variable - -**📝Set string to 3D Object Variable** -📝Set string to 3D Object Variable - -**🎥Setup Multiple 3D Cameras** -Note that rendering time increases by the number of enabled 3D Cameras. - -**🎞️Stop 3D Animation** -🎞️Stop 3D Animation - -**🔇Stop 3D Sound** -Stop a 3D Positional Sound. - -**🛟Update Bounding Box Helper** -Create or update Helper to graphically display Bounding Box. - -## Conditions - -**🎞️Check 3D Animation Is Finished** -Check if the 3D Animation is finished. -This condition is valid only for animations with "Loop" set to "Once". - -**🎞️Check 3D Animation Is Playing** -Check if the 3D Animation is playing. - -**🔊Check 3D Sound Is Playing** -Check if the 3D Sound is playing. - -**💥Check Bounding Box Collision** -Checks for collisions between the Bounding Boxes of two 3D Objects. -This condition updates the "Bounding Box Collision Result" when it returns True. - -**💎Check Existence Of 3D Object** -💎Check Existence Of 3D Object - -**💥Check Oriented Bounding Box Collision** -Checks for collisions between the Oriented Bounding Boxes of two 3D Objects. -OBB cannot resolve collisions between OBBs or get collision results. - -**🌗Check Visibility Of 3D Object** -Check the visibility of a 3D Object. -This condition cannot be tested correctly if the visibility of the 3D object is changed by inheritance. - -## Expressions - -| Expression | Description | | -|-----|-----|-----| -| `WithThreeJS::BoundingBoxCollisionResultNumber()` | Bounding Box Collision Result Number || -| `WithThreeJS::CameraDirection()` | Normalized direction vector of 3D camera.(3D Camera is shooting in the negative Z axis direction) || -| `WithThreeJS::CameraFOV()` | 3D Camera FOV || -| `WithThreeJS::CameraFar()` | 3D Camera Far || -| `WithThreeJS::CameraNear()` | The camera will not render objects closer than this distance. || -| `WithThreeJS::CameraPosition()` | 3D Camera Position || -| `WithThreeJS::CameraRotation()` | 3D Camera Rotation || -| `WithThreeJS::CameraZoom()` | 3D Camera Zoom || -| `WithThreeJS::DistanceFrom3DCameraTo3DObject()` | Distance From 3D Camera To 3D Object || -| `WithThreeJS::DistanceFrom3DObjectTo3DObject()` | Distance From 3D Object To 3D Object || -| `WithThreeJS::MasterVolumeOf3DScene()` | Master Volume Of 3D Scene || -| `WithThreeJS::ObjectAnimationDuration()` | 3D Object Animation Duration || -| `WithThreeJS::ObjectAnimationSpeedScale()` | 3D Object Animation Speed Scale || -| `WithThreeJS::ObjectAnimationTime()` | 3D Object Animation Time || -| `WithThreeJS::ObjectDirection()` | Normalized direction vector of 3D Object.(Z axis direction) || -| `WithThreeJS::ObjectNumberVariable()` | 3D Object Number Variable || -| `WithThreeJS::ObjectOpacity()` | Returns the opacity of the 3D Object, or the first opacity found among its children. || -| `WithThreeJS::ObjectParent()` | 3D Object Parent || -| `WithThreeJS::ObjectPosition()` | 3D Object Position || -| `WithThreeJS::ObjectPositionOnWorld()` | 3D Object Position On World || -| `WithThreeJS::ObjectRotation()` | 3D Object Rotation || -| `WithThreeJS::ObjectRotationOnWorld()` | 3D Object Rotation On World || -| `WithThreeJS::ObjectScale()` | 3D Object Scale || -| `WithThreeJS::ObjectStringVariable()` | 3D Object String Variable || -| `WithThreeJS::PointOf3DObjectOn3DCamera()` | Point Of 3D Object On 3D Camera || -| `WithThreeJS::PointOfPositionOn3DCamera()` | Point Of World Position On 3D Camera || -| `WithThreeJS::RaycastResultCount()` | Count of 3D Objects in Raycast Result || -| `WithThreeJS::RaycastResultNumber()` | Raycast Result Number || -| `WithThreeJS::RaycastResultString()` | Raycast Result String || - -## 3D Box - -This 3D Box can have different textures on 6 faces. -⚠️ This object is high load. - -### Object expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.Depth()` | Depth || -| `Object.Id()` | 3D Object ID || - -## Enable WithThreeJS - -Adding this object to your project will enable WithThreeJS in all scenes. -There is no need to place this in the scene. - -_No expressions for this object._ - - -## 3D Board Projection - -Create 3D Board (Plane) from Sprite object. Moving that Sprite will also move the 3D Object. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.BoardProjection::AlphaTest()` | Alpha Channel Test || -| `Object.BoardProjection::AngleAxis()` | Axis linked to 2D Object Angle || -| `Object.BoardProjection::Id()` | 3D Object ID || -| `Object.BoardProjection::Orientation()` | Orientation || - -## 3D Box Projection from Tiled Sprite - -Create 3D Box from Tiled Sprite object. Moving that Tiled Sprite will also move the 3D Object. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.BoxProjectionFromTiled::AlphaTest()` | Alpha Channel Test || -| `Object.BoxProjectionFromTiled::Blend()` | Blend Mode || -| `Object.BoxProjectionFromTiled::Depth()` | Depth || -| `Object.BoxProjectionFromTiled::Id()` | 3D Object ID || - -## Linked 3D Camera - -Link a Sprite object and a 3D Camera. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.LinkedCamera::Fov()` | Field Of View || -| `Object.LinkedCamera::Id()` | 3D Camera ID || - -## Linked 3D Light - -⚠️ 3D Lights are highly loaded. -Link a Sprite object and a 3D Light. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.LinkedLight::Id()` | 3D Object ID || -| `Object.LinkedLight::Tilt()` | Tilt || -| `Object.LinkedLight::Type()` | Type || - -## 3D Plane Projection from Tiled Sprite - -Create 3D Plane from Tiled Sprite object. Moving that Tiled Sprite will also move the 3D Object. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.PlaneProjectionFromTiled::AlphaTest()` | Alpha Channel Test || -| `Object.PlaneProjectionFromTiled::Blend()` | Blend Mode || -| `Object.PlaneProjectionFromTiled::Id()` | 3D Object ID || - -## 3D Sprite Projection - -Create 3D Sprite from Sprite object. Moving that Sprite will also move the 3D Sprite. - -### Behavior expressions - -| Expression | Description | | -|-----|-----|-----| -| `Object.SpriteProjection::AlphaTest()` | Alpha Channel Test || -| `Object.SpriteProjection::Id()` | 3D Object ID || - ---- - -*This page is an auto-generated reference page about the **With Three JS** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/wortal-sdk/index.md b/docs/gdevelop5/extensions/wortal-sdk/index.md new file mode 100644 index 0000000000..ebf0977d39 --- /dev/null +++ b/docs/gdevelop5/extensions/wortal-sdk/index.md @@ -0,0 +1,727 @@ +# Wortal SDK + + +Wortal SDK for GDevelop 5. + +**Authors and contributors** to this experimental extension: (not specified). + +!!! warning + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. + +--- + +Allow developer to use one SDK to deliver their games everywhere. To learn more about Wortal please visit our to [Official site](https://wortal.ai) and our [SDK Documentation](https://docs.games-api.ai/). + +[Read more...](https://docs.games-api.ai) + +!!! tip + Learn [how to install new extensions](/gdevelop5/extensions/search) by following a step-by-step guide. + +## Actions + +**Can subscribe to bot asynchronously** +Checks if the current user can subscribe to the game's bot. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Boolean variable to set the result + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Cancel all notifications async** +Cancel all scheduled notifications. + +??? quote "See parameters" + + - Parameter 1 (string): Notification label + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Cancel notification async** +Cancel a notification async. + +??? quote "See parameters" + + - Parameter 1 (string): Notification ID + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Choose context async** +Opens a context selection dialog for the player. If the player selects an available context, the client will attempt to switch into that context, and resolve if successful. Otherwise, if the player exits the menu or the client fails to switch into the new context, this function will reject. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Consume purchase async** +Consumes a specific purchase belonging to the current player. + +??? quote "See parameters" + + - Parameter 1 (string): Token of the Purchased product + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Create context async** +Attempts to create a context between the current player and a specified player or a list of players. + +??? quote "See parameters" + + - Parameter 1 (string): ID of players separated by comma + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Create a tournament async** +Opens the tournament creation dialog if the player is not currently in a tournament session. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Tournament creation payload structure variable + - Parameter 2 (🗄️ Any variable): Tournament structure variable callback + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Flush data asynchronously** +Flushes any unsaved data to the platform's storage. This function is expensive, and should primarily be used for critical changes where persistence needs to be immediate and known by the game. Non-critical changes should rely on the platform to persist them in the background. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Start the gameplay session** +Tracks the start of a gameplay session. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Stop the gameplay session** +Tracks the end of a gameplay session. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Get ASID asynchronously** +A unique identifier for the player. This is the standard Facebook Application-Scoped ID which is used for all Graph API calls. If your game shares an AppID with a native game this is the ID you will see in the native game too. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): String variable to save ASID + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get achievements async** +Gets a player's achievements. This method returns all achievements, regardless of whether they are unlocked or not. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Array of Achivement structure variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get all tournaments async** +Returns a list of eligible tournaments that can be surfaced in-game. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Array of tournament structure variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get catalog async** +Gets the catalog of available products the player can purchase. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Array of product structure variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get connected players async** +Gets ConnectedPlayers containing information about active players that are connected to the current player. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Payload variable with structure type + - Parameter 2 (🗄️ Any variable): Array of connected player + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Get connected players entries** +Retrieves the leaderboard score entries of the current player's connected players (including the current player), ordered by local rank within the set of connected players. + +??? quote "See parameters" + + - Parameter 1 (string): The name of the leaderboard + - Parameter 2 (🔢 Number): The number of entries to attempt to fetch from the leaderboard + - Parameter 3 (🔢 Number): The offset from the set of ordered connected player score entries to fetch from + - Parameter 4 (🗄️ Any variable): Array of Leaderboard structure result variable callback + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**Get current player leaderboard entry async** +Retrieves the leaderboard's entry for the current player, or null if the player has not set one yet. + +??? quote "See parameters" + + - Parameter 1 (string): The name of the leaderboard + - Parameter 2 (🗄️ Any variable): Leaderboard entry structure variable callback + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Get current tournament async** +Fetch the tournament out of the current context the user is playing. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Tournament structure variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get player data async** +Retrieve data from the designated cloud storage of the current player. + +??? quote "See parameters" + + - Parameter 1 (string): String of data keys (separated them with comma for multiple data points) + - Parameter 2 (🗄️ Any variable): Variable to save data received from server + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Get entry point asynchronously** +Get entry point that the game was launched from asynchronously. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): String variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get entry point data** +Get any data object associated with the entry point that the game was launched from. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Structure variable callback to set the result + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get leaderboard async** +Fetch a specific leaderboard belonging to this game. + +??? quote "See parameters" + + - Parameter 1 (string): The name of the leaderboard. Each leaderboard for a game must have its own distinct name + - Parameter 2 (🗄️ Any variable): Leaderboard structure variable callback + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Get leaderboard entries** +Retrieves a set of leaderboard entries, ordered by score ranking in the leaderboard. + +??? quote "See parameters" + + - Parameter 1 (string): The name of the leaderboard + - Parameter 2 (🔢 Number): The number of entries to attempt to fetch from the leaderboard + - Parameter 3 (🔢 Number): The offset from the set of ordered connected player score entries to fetch from + - Parameter 4 (🗄️ Any variable): Array of Leaderboard structure result variable callback + + > Technical note: parameters 0, 5 are internal parameters handled by GDevelop. + +**Get leaderboard entry count async** +Gets the total number of entries in the leaderboard. + +??? quote "See parameters" + + - Parameter 1 (string): The name of the leaderboard + - Parameter 2 (🗄️ Any variable): Entry count variable callback + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Get notification history async** +Gets the history of scheduled notifications for the past 30 days. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable callback to save the notification + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get players async** +Gets an array of ConnectedPlayer objects containing information about active players in the current context (people who played the game in the current context in the last 90 days). + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Variable to save the result of connected players of current context + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get purchased products async** +Gets purchased products. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Array of purchased products structure variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get signed ASID async** +A unique identifier for the player. This is the standard Facebook Application-Scoped ID which is used for all Graph API calls. If your game shares an AppID with a native game this is the ID you will see in the native game too. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Signed ASID Structure variable callback + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Get stats async** +Gets a player's stats. + +??? quote "See parameters" + + - Parameter 1 (string): Level + - Parameter 2 (🔤 String): Period of stat (one of: "alltime", "daily", "monthly", "weekly") + - Parameter 3 (🗄️ Any variable): Variable to save the result (Array) + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + +**Get traffic source** +Gets the traffic source info for the game. This is useful for tracking where players are coming from. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Structure variable to set traffic source + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Invite Async** +This invokes a dialog to let the user invite one or more people to the game. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Invite players payload + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Join tournament async** +Request a switch into a specific tournament context. + +??? quote "See parameters" + + - Parameter 1 (string): Tournament ID + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Log game choice** +Logs a choice the player made in the game. This can be a powerful tool for balancing the game and understanding what content the players are interacting with the most. + +??? quote "See parameters" + + - Parameter 1 (string): Decision + - Parameter 2 (string): Choice + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Log level end** +Logs the end of a level. To ensure the level timer is recorded the level name must match the name passed into the previous logLevelStart call. If it does not match then the timer will be logged at 0. + +??? quote "See parameters" + + - Parameter 1 (string): Level + - Parameter 2 (string): Score + - Parameter 3 (🔤 String): Flag if level is completed or not (one of: "completed", "not completed") + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + +**Log level start** +Logs the start of a level. + +??? quote "See parameters" + + - Parameter 1 (string): Level + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Log level up** +Logs the player achieving a new level. + +??? quote "See parameters" + + - Parameter 1 (string): Level + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Log score** +Logs the player's score. + +??? quote "See parameters" + + - Parameter 1 (string): Score + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Log social invite** +Logs the player's social invite. + +??? quote "See parameters" + + - Parameter 1 (string): Placement of the invite + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Log social share** +Logs the player's social share. + +??? quote "See parameters" + + - Parameter 1 (string): Placement of the share + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Log tutorial end** +Logs the end of a tutorial. To ensure the level timer is recorded the tutorial name must match the name passed into the previous logTutorialStart call. If it does not match then the timer will be logged at 0. + +??? quote "See parameters" + + - Parameter 1 (string): Name of the tutorial + - Parameter 2 (🔤 String): Was the tutorial completed (one of: "compeleted", "not compeleted") + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Log turotial start** +Logs the start of a tutorial. + +??? quote "See parameters" + + - Parameter 1 (string): Name of the tutorial + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Make purchase async** +Make purchase for specified product. + +??? quote "See parameters" + + - Parameter 1 (string): ID of product + - Parameter 2 (🗄️ Any variable): Purchase result structure variable callback + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Post stats async** +Posts a player's stats. + +??? quote "See parameters" + + - Parameter 1 (string): Level + - Parameter 2 (🔢 Number): The value of the stat + - Parameter 3 (🗄️ Any variable): Payload structure variable + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + +**Post tournament score async** +Posts a player's score. This API should only be called within a tournament context at the end of an activity (example: when the player doesn't have "lives" to continue the game). + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Score + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Schedule notification async** +Schedule a notification to be delivered to the player at a later time. Limit of 5 pending scheduled notifications per recipient. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Notification payload structure variable + - Parameter 2 (🗄️ Any variable): Schedule result structure variable callbacl to save result + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Send leaderboard entry async** +Updates the player's score. If the player has an existing score, the old score will only be replaced if the new score is better than it. + +??? quote "See parameters" + + - Parameter 1 (string): The name of the leaderboard + - Parameter 2 (🔢 Number): Score for the entry. Must be a 64-bit integer number + - Parameter 3 (🗄️ Any variable): Leaderboard entry sturcture variable callback + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + +**Save data async** +Set data to be saved to the designated cloud storage of the current player. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Game progress structure variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Set Wortal loading progress** +Set the loading progress of your game. + +??? quote "See parameters" + + - Parameter 1 (🔢 Number): Progress (0-100) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Set session data** +Set the data associated with the individual gameplay session for the current context. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Structure Variable to set the session data + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Share async** +This invokes a dialog to let the user share specified content, as a post on the user's timeline. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Share payload structure variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Share link async** +This invokes a dialog that contains a custom game link that users can copy to their clipboard, or share. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Payload structure variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Share tournament async** +Opens the share tournament dialog if the player is currently in a tournament session. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Payload structure variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Show auth prompt async** +Shows the authentication prompt to the player. This allows the player to log in or register for an account. If the player successfully logs in or registers, the player API will be updated with the new player information. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Show banner ad** +Shows a banner ad. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Ad position on the screen (one of: "top", "bottom") + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Show happy time** +Can be called on various player achievements (beating a boss, reaching a high score, etc.). It makes the website celebrate (for example by launching some confetti). + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Show interstitial ad** +Shows an interstitial ad. These can be shown at various points in the game such as a level end, restart or a timed interval in games with longer levels. + +??? quote "See parameters" + + - Parameter 1 (🔤 String): Placement type (one of: "start", "pause", "next", "browse") + - Parameter 2 (string): Ad placement + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Show link account prompt async** +Shows the link account prompt to the player. This allows the player to link their account to a different platform. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Show rewarded ad** +Shows a rewarded ad. These are longer, optional ads that the player can earn a reward for watching. The player must be notified of the ad and give permission to show before it can be shown. + +??? quote "See parameters" + + - Parameter 1 (string): Ad description + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Start Game** +Start Game. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Subscribe bot async** +Request that the player subscribe the bot associated to the game. The API will reject if the subscription fails - else, the player will subscribe the game bot. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Swith context async** +Request a switch into a specific context. + +??? quote "See parameters" + + - Parameter 1 (string): ID of context + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +**Switch game async** +Switch to another game. The API will reject if the switch fails - else, the client will load the new game. + +??? quote "See parameters" + + - Parameter 1 (string): ID of game + - Parameter 2 (🗄️ Any variable): Optional payload structure variable + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Unlock achivement** +Unlocks an achievement for the player. This method will only unlock the achievement if it has not already been unlocked. + +??? quote "See parameters" + + - Parameter 1 (string): Achivement name + - Parameter 2 (🗄️ Any variable): Is unlocked variable callback + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + +**Update context async** +Posts an update to the current context. + +??? quote "See parameters" + + - Parameter 1 (🗄️ Any variable): Payload structure variable + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + +## Conditions + +**Ad has just finished showing** +Check if ad just finished showing. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Ad is blocked** +Returns whether ads are blocked for the current session. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Ad is enabled** +Returns whether ads are enabled for the current session. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Ad is showing** +Check if ad is showing. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Audio is enabled** +Returns whether the audio is enabled for the player. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Player is playing for first time** +Checks whether this is the first time the player has played this game. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**IAP is enabled** +Checks whether IAP is enabled in this session. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Wortal SDK is ready** +Check if Wortal SDK is ready. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +**Player should be rewarded** +To check if should reward player after showing rewarded ad. + +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + +## Expressions + +| Expression | Description | | +|-----|-----|-----| +| `WortalSDK::ContextID()` | Get current context id. || +| `WortalSDK::ContextType()` | Gets the type of the current context. || +| `WortalSDK::Device()` | Get user device. || +| `WortalSDK::Locale()` | Get user locale in BCP47 format. || +| `WortalSDK::Orientation()` | Get the orientation of the device the player is using. || +| `WortalSDK::Platform()` | Get the platform the game is running on. This is useful for platform specific code. For example, if you want to show a different social share asset on Facebook than on Link. || +| `WortalSDK::PlayerID()` | Gets the player's ID from the platform. || +| `WortalSDK::PlayerName()` | Gets the player's name on the platform. || +| `WortalSDK::PlayerPhotoURL()` | Gets the player's photo from the platform. || + + +--- + +*This page is an auto-generated reference page about the **Wortal SDK** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/extensions/ygame-sdk/index.md b/docs/gdevelop5/extensions/ygame-sdk/index.md index 81780b1258..193e44d015 100644 --- a/docs/gdevelop5/extensions/ygame-sdk/index.md +++ b/docs/gdevelop5/extensions/ygame-sdk/index.md @@ -3,14 +3,12 @@ Yandex Games SDK allows to interact with Yandex APIs for games distributed on this platform. -**Authors and contributors** to this community extension: [3freelancers](https://gd.games/3freelancers). +**Authors and contributors** to this experimental extension: [3freelancers](https://gd.games/3freelancers). !!! warning - This is an extension made by a community member — but not reviewed - by the GDevelop extension team. As such, we can't guarantee it - meets all the quality standards of official extensions. In case of - doubt, contact the author to know more about what the extension - does or inspect its content before using it. + This is an extension made by a community member and it only got through a + light review by the GDevelop extension team. As such, we can't guarantee it + meets all the quality standards of fully reviewed extensions. --- @@ -24,62 +22,183 @@ YGameSDK. **GetLang** GetLang. +??? quote "See parameters" + + - Parameter 1 (string): Global variable (string) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **GetPlayerName** GetPlayerName. +??? quote "See parameters" + + - Parameter 1 (string): Global variable (string) + + > Technical note: parameters 0, 2 are internal parameters handled by GDevelop. + **InitPayments** InitPayments. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **InitPlayer** InitPlayer. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **InitSDK** Init SDK. +??? quote "See parameters" + + - Parameter 1 (❓ Yes or No): Fullscreen + - Parameter 2 (🔤 String): Screen orientation (one of: "portrait", "landscape") + - Parameter 3 (❓ Yes or No): Lock screen + + > Technical note: parameters 0, 4 are internal parameters handled by GDevelop. + **LoadLeaderboardByName** LoadLeaderboardByName. +??? quote "See parameters" + + - Parameter 1 (string): TableNameYandex + - Parameter 2 (string): GlobalVariableName + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **LoadPurchaseByID** LoadPurchaseByID. +??? quote "See parameters" + + - Parameter 1 (string): product ID + - Parameter 2 (string): Glodal variable result true/false + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **PurchaseByID** PurchaseByID. +??? quote "See parameters" + + - Parameter 1 (string): product ID + - Parameter 2 (string): Global variable true/false + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **SetScoreLeaderboard** SetScoreLeaderboard. +??? quote "See parameters" + + - Parameter 1 (string): GlobalVariableName + - Parameter 2 (string): TableNameYandex + + > Technical note: parameters 0, 3 are internal parameters handled by GDevelop. + **ShowBanner** ShowBanner. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **ShowVideo** ShowVideo. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + ## Conditions **IsInit** IsInit SDK. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsInitLeaderboard** IsInitLeaderboard. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsInitPayments** IsInitPayments. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsInitPlayer** IsInitPlayer. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsVideoClosed** IsVideoClosed. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsVideoFailed** IsVideoFailed. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsVideoOpen** IsVideoOpen. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + **IsVideoRewarded** IsVideoRewarded. +??? quote "See parameters" + + + + > Technical note: parameters 0, 1 are internal parameters handled by GDevelop. + + --- diff --git a/docs/gdevelop5/extensions/ysort/index.md b/docs/gdevelop5/extensions/ysort/index.md index a4093807a0..c746d6a541 100644 --- a/docs/gdevelop5/extensions/ysort/index.md +++ b/docs/gdevelop5/extensions/ysort/index.md @@ -3,7 +3,7 @@ Create an illusion of depth by setting the Z-order based on the Y position of the object. Useful for isometric games, 2D games with a "Top-Down" view, RPG... -**Authors and contributors** to this community extension: (not specified). +**Authors and contributors** to this experimental extension: (not specified). --- @@ -26,6 +26,7 @@ Set the depth (Z-order) of the instance to the value of its Y position in the sc _No expressions for this behavior._ + --- *This page is an auto-generated reference page about the **YSort** extension, made by the community of [GDevelop, the open-source, cross-platform game engine designed for everyone](https://gdevelop.io/).* Learn more about [all GDevelop community-made extensions here](/gdevelop5/extensions). \ No newline at end of file diff --git a/docs/gdevelop5/gdevelop-screenshot.png b/docs/gdevelop5/gdevelop-screenshot.png new file mode 100644 index 0000000000..5edeedda79 Binary files /dev/null and b/docs/gdevelop5/gdevelop-screenshot.png differ diff --git a/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/.pages b/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/.pages new file mode 100644 index 0000000000..0dcafb3437 --- /dev/null +++ b/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/.pages @@ -0,0 +1 @@ +hide: true \ No newline at end of file diff --git a/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/pasted/20220513-085548.png b/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/20220513-085548.png similarity index 100% rename from docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/pasted/20220513-085548.png rename to docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/20220513-085548.png diff --git a/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university.md b/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/index.md similarity index 84% rename from docs/gdevelop5/getting_started/batch-install-gdevelop-company-university.md rename to docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/index.md index acf1a4fc63..028ae24f06 100644 --- a/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university.md +++ b/docs/gdevelop5/getting_started/batch-install-gdevelop-company-university/index.md @@ -19,7 +19,7 @@ The installer is based on *NSIS*, so you can find online resources to use it fro For usage in a company or university, we recommend installing it "system-wide" (i.e: for all users). Each user will have their own preferences. You can create a Powershell script: -![](/gdevelop5/getting_started/batch-install-gdevelop-company-university/pasted/20220513-085548.png) +![](./20220513-085548.png) Something like this (adapt the executable path): @@ -41,18 +41,22 @@ You should be able to install GDevelop using the provided AppImage or the Flatpa ## Domains to be allowed for GDevelop app & services to function correctly. -GDevelop requires an internet connection to access services such as: exporting a game, games examples, tutorials, cloud saves etc. See below for a list of domains that need to be whitelisted for the services to work fully. +GDevelop requires an internet connection to access services such as: exporting a game, games examples, tutorials, cloud saves etc. See below for a list of domains that need to be whitelisted for the services to work fully. Make sure these are accessible especially if you're on a school, university or company computers/network. ``` *.gdevelop.io -*.liluo.io -*.gd.games *.gdevelop-app.com -*.compilgames.net -*.github.com -*.cloudfront.net *.googleapis.com -gdevelop-services.firebaseapp.com -gdevelop-services.firebaseio.com -gdevelop-services.appspot.com +*.amazonaws.com +*.cloudflarestorage.com +``` + +If you can, also whitelist these domains to ensure games exported from GDevelop can be played: + +``` +*.cloudfront.net +app.posthog.com +*.github.com +*.gd.games +gravatar.com ``` diff --git a/docs/gdevelop5/getting_started/index.md b/docs/gdevelop5/getting_started/index.md index 8394da624f..1c08c7c5fe 100644 --- a/docs/gdevelop5/getting_started/index.md +++ b/docs/gdevelop5/getting_started/index.md @@ -1,82 +1,60 @@ --- title: Getting Started with GDevelop +icon: material/rocket-launch --- # Getting Started with GDevelop -GDevelop is a free, open-source, and cross-platform game creation tool that anyone can use to create games *without* programming skills. +This page explains how to start GDevelop and provides the first steps recommended for beginners. -This guide explains how to get started with GDevelop. +## Step 1: Download and start GDevelop -## Step 1: Install GDevelop +GDevelop is available for all devices—computers (Windows, macOS, and Linux), tablets, and phones (iPad, iPhone, Android devices). To download GDevelop, visit [gdevelop.io/download](https://gdevelop.io/download/). -GDevelop is available for all major operating systems, including the latest versions of Windows, macOS, and Linux. To download GDevelop, visit [gdevelop.io/download](https://gdevelop.io/download/). +* **Windows**: Double-click the executable file. Click "Next" several times until the installation begins. This installs GDevelop, launches the app, and adds an icon to your Desktop. +* **macOS**: Open the DMG file and drag "GDevelop" into your "~/Applications" directory. +* **Linux (Flatpak)**: Open a terminal and follow the command line instructions at the bottom of the [GDevelop Flathub page](https://flathub.org/apps/details/io.gdevelop.ide). +* **Linux (AppImage)**: Open a terminal. Make the AppImage file executable by typing `chmod a+x GDevelop*.AppImage` and pressing Enter. Then run it: `./GDevelop*.AppImage` (or double-click the file). +* **iOS**: Download [GDevelop from the App Store](https://apps.apple.com/us/app/gdevelop-game-maker/id1663675754). +* **Android**: Download [GDevelop from Google Play](https://play.google.com/store/apps/details?id=io.gdevelop.ide). +* **Chromebooks or other devices**: Open your browser and go to [editor.gdevelop.io](https://editor.gdevelop.io). If you're on Android or a Chromebook, choose the option to add it to your home screen. -!!! note +!!! warning - If you're on a phone, tablet or can't install GDevelop on your device (Chromebooks), use the online version of GDevelop available at [editor.gdevelop.io](https://editor.gdevelop.io/). You can use it to create full games and store your projects in the Cloud. + Installing or using GDevelop at work, university, or anywhere with a firewall? Make sure to [unblock/allow access to all the domains used by GDevelop—see the list here](/gdevelop5/getting_started/batch-install-gdevelop-company-university). -The installation instructions depend on the operating system. - -**Windows**: - - * Double-click on the executable. - * Click on the Next button several times, until the installation begins. This installs GDevelop, launches the app, and adds an icon to the Desktop. - -**macOS**: - - * Open the DMG file. - * Drag "GDevelop.app" into the "~/Applications" directory. - -**Linux (flatpak)**: - - * Open a terminal. - * Follow the command line instructions at the bottom of the [GDevelop Flathub page](https://flathub.org/apps/details/io.gdevelop.ide) - -**Linux (AppImage)**: - - * Open a terminal. - * Make the AppImage file executable by typing `chmod a+x GDevelop*.AppImage`. - * Run it: `./GDevelop*.AppImage` (or double-click on the file). - -**Phone, tablets, and Chromebooks**: - - * Open your browser and go to [editor.gdevelop.io](https://editor.gdevelop.io). - * If you are on Android or a Chromebook, choose the option to "Add to Homescreen". !!! tip - For administrators trying to install GDevelop on several machines (with a company or a university, for example), the Windows installer is based on *NSIS*, so you can find online resources to use it from a script. Read this page to learn about [installing GDevelop on a network of machines](/gdevelop5/getting_started/batch-install-gdevelop-company-university). You can also have a [portable version of GDevelop by extracting it with 7zip](/gdevelop5/getting_started/windows-portable-version-gdevelop). + For administrators installing GDevelop on multiple machines (for a company or university, for example), the Windows installer is based on *NSIS*, so you can find online resources to use it from a script. Read this page to learn about [installing GDevelop on a network of machines](/gdevelop5/getting_started/batch-install-gdevelop-company-university). You can also create a [portable version of GDevelop by extracting it with 7zip](/gdevelop5/getting_started/windows-portable-version-gdevelop). -## Step 2: Create a new project +## Step 2: Customize a game template or create a new project -1. Launch GDevelop. -2. Either open a **Template** to use as a starting point, or click **Create a project** to start from an empty project. -3. Choose a location and name for the project, as well as the game's resolution if starting a new project. +When you launch GDevelop, you can choose a game template that can be customized in a few minutes (which is great for getting a feel for game creation), open a game template in the editor, or start from scratch. ![](/gdevelop5/getting_started/pasted/20230309-173349.png) -## Step 3: Preview the game +## Step 3: Preview your game -A **Preview** button is available via the toolbar. This button launches a preview of the game in a new window. +A **Preview** button is available in the toolbar. This button launches a preview of your game in a new window. -!!! tip +![](/gdevelop5/getting_started/pasted/20230309-173456.png) - To preview your game from a mobile device, click the down arrow and select **Start Network Preview**. Then use a browser on your mobile device to visit the address that is displayed. **Alternatively**, you can click the publish button and generate a private web link for the game through GDevelop's games hosting platform [gd.games](https://gd.games/). +## Next steps -![](/gdevelop5/getting_started/pasted/20230309-173456.png) +Depending on your preference and learning style, follow one of the paths below. -## Next step +### In-app tutorials -Depending on your preference, follow one of the two link paths below. +Tutorials integrated into GDevelop are accessible from the "Get Started" page as well as the "Learn" page. Try the first ones to learn the basic usage of GDevelop. -### Wiki path +### Documentation path -Begin by reading through the [Basic Game Making Concepts](https://wiki.gdevelop.io/gdevelop5/tutorials/basic-game-making-concepts) wiki page. +Begin by reading the [Basic Game Making Concepts](https://wiki.gdevelop.io/gdevelop5/tutorials/basic-game-making-concepts) wiki page. Then follow along with the [Asteroids Game Example](https://wiki.gdevelop.io/gdevelop5/tutorials/asteroids/start). You'll learn how to create a physics-based asteroids game from scratch and discover many of GDevelop's fundamental concepts, such as objects, events, and behaviors. ### Video path -Begin by watching the [Official Intro Tutorial Video Series](https://www.youtube.com/watch?v=595-swNh0Mw&list=PL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8&ab_channel=GDevelop). +Start by watching the [Official Intro Tutorial Video Series](https://www.youtube.com/watch?v=595-swNh0Mw&list=PL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8&ab_channel=GDevelop). -Then follow along with the [Asteroids game example](https://www.youtube.com/watch?v=w1SCpQ-mRCk&list=PL3YlZTdKiS8_Q8UPu2BJV5P5gYA-Q-k19&ab_channel=GDevelop) and build your own physics-based asteroids game. \ No newline at end of file +Then follow along with the [Asteroids game example](https://www.youtube.com/watch?v=w1SCpQ-mRCk&list=PL3YlZTdKiS8_Q8UPu2BJV5P5gYA-Q-k19&ab_channel=GDevelop) and build your own physics-based asteroids game. diff --git a/docs/gdevelop5/getting_started/windows-portable-version-gdevelop/.pages b/docs/gdevelop5/getting_started/windows-portable-version-gdevelop/.pages new file mode 100644 index 0000000000..0dcafb3437 --- /dev/null +++ b/docs/gdevelop5/getting_started/windows-portable-version-gdevelop/.pages @@ -0,0 +1 @@ +hide: true \ No newline at end of file diff --git a/docs/gdevelop5/getting_started/windows-portable-version-gdevelop.md b/docs/gdevelop5/getting_started/windows-portable-version-gdevelop/index.md similarity index 100% rename from docs/gdevelop5/getting_started/windows-portable-version-gdevelop.md rename to docs/gdevelop5/getting_started/windows-portable-version-gdevelop/index.md diff --git a/docs/gdevelop5/index.md b/docs/gdevelop5/index.md index 7dc4c82152..ea52eaeb40 100644 --- a/docs/gdevelop5/index.md +++ b/docs/gdevelop5/index.md @@ -6,12 +6,19 @@ hide: # GDevelop 5 -GDevelop is a free, open-source, and cross-platform game creation tool that anyone can use to create games *without* programming skills. This documentation contains everything you need to know to create games with GDevelop — even if you've never created a game before. +GDevelop is a full-featured, no-code, open-source game creation tool. Build **2D, 3D, and multiplayer games**, as well as interactive presentations and experiences, for mobile (iOS and Android), desktop, and web platforms. -![](/gdevelop5/start/pasted/20230304-181105.png) +GDevelop is designed to be fast and intuitive: build games using an easy-to-understand yet powerful event-based system, reusable behaviors and an AI that guides or builds alongside you. -## Next steps +![The GDevelop game editor](./gdevelop-screenshot.png) -* [Download GDevelop](https://gdevelop.io/download) and read the [Getting Started](/gdevelop5/getting_started) guide. -* If you've never made a game before, read the [Basic game-making concepts](/gdevelop5/tutorials/basic-game-making-concepts) guide. -* If you're ready to start making a game, watch the [Official Intro Tutorial Video Series](https://www.youtube.com/watch?v=bR2BjT7JG0k&list=PL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8) or [browse the tutorials](/gdevelop5/tutorials). +!!! tip + + GDevelop is perfect for creating your first game projects in just a few days — **even if you've never created a game before**. + If you're an experienced developer, animator, or game designer, you'll become familiar with the concepts in minutes and can quickly create ambitious prototypes or complete games. + +## First steps + +* [Download and start GDevelop](https://gdevelop.io/download). Read the [Getting Started](/gdevelop5/getting_started) guide if you need help. +* If you've never made a game before, read the [Basic game-making concepts](/gdevelop5/tutorials/basic-game-making-concepts) guide and follow the tasks on GDevelop's "Get Started" page, including the guided tutorials. +* If you're ready to start making a game, watch the [Official Intro Tutorial Video Series](https://www.youtube.com/watch?v=595-swNh0Mw&list=PL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8&index=1). diff --git a/docs/gdevelop5/interface/.pages b/docs/gdevelop5/interface/.pages index c20fb9459a..593e9cda79 100644 --- a/docs/gdevelop5/interface/.pages +++ b/docs/gdevelop5/interface/.pages @@ -1,10 +1,15 @@ nav: + - games.md + - games-dashboard - project-manager - scene-editor - events-editor - - preview.md + - Preview: preview.md - debugger - profile - - games-dashboard - - command-palette-and-shortcuts.md + - AI (Chat and AI Agent): ai - ... + - More: + - command-palette-and-shortcuts.md + - Updates: updates.md + - themes diff --git a/docs/gdevelop5/interface/Create-Dashboard-dark.png b/docs/gdevelop5/interface/Create-Dashboard-dark.png new file mode 100644 index 0000000000..d35cc9671b Binary files /dev/null and b/docs/gdevelop5/interface/Create-Dashboard-dark.png differ diff --git a/docs/gdevelop5/interface/Create-Dashboard-dark2.png b/docs/gdevelop5/interface/Create-Dashboard-dark2.png new file mode 100644 index 0000000000..131e856fe2 Binary files /dev/null and b/docs/gdevelop5/interface/Create-Dashboard-dark2.png differ diff --git a/docs/gdevelop5/interface/Create-Dashboard-themes.png b/docs/gdevelop5/interface/Create-Dashboard-themes.png new file mode 100644 index 0000000000..b9764decae Binary files /dev/null and b/docs/gdevelop5/interface/Create-Dashboard-themes.png differ diff --git a/docs/gdevelop5/interface/Create-Dashboard.png b/docs/gdevelop5/interface/Create-Dashboard.png new file mode 100644 index 0000000000..d1e55339fb Binary files /dev/null and b/docs/gdevelop5/interface/Create-Dashboard.png differ diff --git a/docs/gdevelop5/interface/Game-Project-Architecture.png b/docs/gdevelop5/interface/Game-Project-Architecture.png new file mode 100644 index 0000000000..48704c09f9 Binary files /dev/null and b/docs/gdevelop5/interface/Game-Project-Architecture.png differ diff --git a/docs/gdevelop5/interface/Home-create.png b/docs/gdevelop5/interface/Home-create.png new file mode 100644 index 0000000000..9da91e3b87 Binary files /dev/null and b/docs/gdevelop5/interface/Home-create.png differ diff --git a/docs/gdevelop5/interface/Home-get-started.png b/docs/gdevelop5/interface/Home-get-started.png new file mode 100644 index 0000000000..a9d324a65e Binary files /dev/null and b/docs/gdevelop5/interface/Home-get-started.png differ diff --git a/docs/gdevelop5/interface/Home-learn.png b/docs/gdevelop5/interface/Home-learn.png new file mode 100644 index 0000000000..1b1c546ab8 Binary files /dev/null and b/docs/gdevelop5/interface/Home-learn.png differ diff --git a/docs/gdevelop5/interface/Home-play.png b/docs/gdevelop5/interface/Home-play.png new file mode 100644 index 0000000000..72be72b205 Binary files /dev/null and b/docs/gdevelop5/interface/Home-play.png differ diff --git a/docs/gdevelop5/interface/Home-shop.png b/docs/gdevelop5/interface/Home-shop.png new file mode 100644 index 0000000000..4e610e5b22 Binary files /dev/null and b/docs/gdevelop5/interface/Home-shop.png differ diff --git a/docs/gdevelop5/interface/Home-teach.png b/docs/gdevelop5/interface/Home-teach.png new file mode 100644 index 0000000000..27959f4f58 Binary files /dev/null and b/docs/gdevelop5/interface/Home-teach.png differ diff --git a/docs/gdevelop5/interface/Not-published-game.png b/docs/gdevelop5/interface/Not-published-game.png new file mode 100644 index 0000000000..3c466ac73e Binary files /dev/null and b/docs/gdevelop5/interface/Not-published-game.png differ diff --git a/docs/gdevelop5/interface/Project-Workspace.png b/docs/gdevelop5/interface/Project-Workspace.png new file mode 100644 index 0000000000..6a05e22d82 Binary files /dev/null and b/docs/gdevelop5/interface/Project-Workspace.png differ diff --git a/docs/gdevelop5/interface/Project-manager-open-project.png b/docs/gdevelop5/interface/Project-manager-open-project.png new file mode 100644 index 0000000000..f5a774c0cd Binary files /dev/null and b/docs/gdevelop5/interface/Project-manager-open-project.png differ diff --git a/docs/gdevelop5/interface/Published-game.png b/docs/gdevelop5/interface/Published-game.png new file mode 100644 index 0000000000..1346b0b96b Binary files /dev/null and b/docs/gdevelop5/interface/Published-game.png differ diff --git a/docs/gdevelop5/interface/UI-tabs.png b/docs/gdevelop5/interface/UI-tabs.png new file mode 100644 index 0000000000..e2118bed22 Binary files /dev/null and b/docs/gdevelop5/interface/UI-tabs.png differ diff --git a/docs/gdevelop5/interface/ai/agent/ai-agent-conversation.png b/docs/gdevelop5/interface/ai/agent/ai-agent-conversation.png new file mode 100644 index 0000000000..38a5aad5ff Binary files /dev/null and b/docs/gdevelop5/interface/ai/agent/ai-agent-conversation.png differ diff --git a/docs/gdevelop5/interface/ai/agent/index.md b/docs/gdevelop5/interface/ai/agent/index.md new file mode 100644 index 0000000000..2aabcabb6e --- /dev/null +++ b/docs/gdevelop5/interface/ai/agent/index.md @@ -0,0 +1,72 @@ +--- +title: Build with AI +--- +# Build with AI: the AI agent + +The **AI agent** is an AI designed specifically to build games and do game creation tasks with GDevelop. + +![A conversation with the AI agent building a feature in a game](./ai-agent-conversation.png) + +## How to use it + +To open the AI, click the "Ask AI" button in the top-right corner of the GDevelop interface. Select **"Build for me"**, then type your request and send it — that’s it. You can then watch take it actions in your game to build what you asked. + +## What the AI agent can build for you + +The AI agent has knowledge of all GDevelop features and official, reviewed extensions. It also has a view of your whole game, and can if necessary inspect your game events or scenes. + +The AI agent is good for: + +- Doing simple changes ("Make an object bigger"), +- Creating new features ("Make an enemy that attacks the player"), +- Experimenting ("Make the key move away from the player when they try to reach it") +- Learning new concepts - by watching what the AI does for you. + +The AI will reply in a few seconds after your request. It will then progressively take actions in your game. This can be: + +- Creating a scene, +- Adding a new object, +- Adding a behavior to an object, +- Creating or modifying events to build the logic of your game, +- Placing game objects on the scene, +- And more. + +The AI will try to fulfill the request as much as it can. It will show on the screen a summary of everything it is doing. Some steps can also have extra details you can inspect. Sometimes, a task can fail (for example: generating game logic may fail if the request is hard to fulfill), in which case the AI agent will try alternative ways to continue. + +!!! note + + As with every AI tool, what the AI is doing is not perfect. From time to time, it can confuse some concepts, misunderstanding your game or what you're trying to do. + Always double check what the AI does: you can keep continuing as long as it looks useful or stop and rework yourself what was created. + + +You can continue the conversation by asking follow-up requests. If you want to switch topics or ask something unrelated, click **"Start a new chat"** — this helps the AI better focus on your new request. + +## Tips to use properly the AI agent + +Before using the AI agent, **make sure to save your project**. This way, you can easily undo any changes the AI makes. In the future, cloud projects will support automatic restore points. +Here are a few best practices for working with the AI agent: + +- Be **specific in your prompt**. Think of it like explaining your idea to someone who’s about to build it for you. Avoid vague instructions: clear language helps the AI understand your goals. +- Use **one chat per task**. When you’ve finished a task, start a new conversation. This keeps things focused and avoids confusing the AI with unrelated details. +- **Keep an eye on what the AI is doing**. If things start going off-track, you can click Pause to stop the process. +- **Expect variation**. Results may differ from one attempt to another—feel free to retry or rephrase your request for better outcomes. + +## Cost of an AI request + +Each account starts with a few **free AI requests**. If you have a GDevelop Silver, Gold or Pro subscription, you’ll receive more every day — 4 with Silver, 20 with Gold and 100 with Pro. + +Once you've used all free requests, a request to the AI agent you send costs **4 to 20 credits**. The actual price depends on how much work and thinking the AI agent has to do. A simple request for a small change will be 4 credits, while a work involved request that needs for example to generate multiple events can be 16 or 20 credits. + +!!! tip + + This means that with [a package of 500 credits](/gdevelop5/interface/profile/credits), you can make from 30 to 100 requests. Remember you can get **free credits by following GDevelop accounts** on socials — check your profile! + +If you hover/tap the text indicating the price of the request, below the field where you write your request, you will see the credits paid for the last request you sent. + +## Help us improve the AI + +You can rate the AI’s answers with a 👍 or 👎. These ratings help the GDevelop team improve the assistant: we've reviewing every day the reports (especially if you include some details explaining what went wrong) and are constantly improving the AI. + +!!! note + + Sometimes, high demand can temporarily slow things down or prevent a proper response. If that happens, don’t worry — you won’t be charged credits or lose your free requests. diff --git a/docs/gdevelop5/interface/ai/ask-ai-tab.png b/docs/gdevelop5/interface/ai/ask-ai-tab.png new file mode 100644 index 0000000000..239c5e05c1 Binary files /dev/null and b/docs/gdevelop5/interface/ai/ask-ai-tab.png differ diff --git a/docs/gdevelop5/interface/ai/chat/ai-chat-conversation.png b/docs/gdevelop5/interface/ai/chat/ai-chat-conversation.png new file mode 100644 index 0000000000..46e9c8b8f5 Binary files /dev/null and b/docs/gdevelop5/interface/ai/chat/ai-chat-conversation.png differ diff --git a/docs/gdevelop5/interface/ai/chat/index.md b/docs/gdevelop5/interface/ai/chat/index.md new file mode 100644 index 0000000000..912b62fc6f --- /dev/null +++ b/docs/gdevelop5/interface/ai/chat/index.md @@ -0,0 +1,54 @@ +--- +title: Chat with AI +--- +# Chat with AI: Get Help Building Your Game with AI + +The **AI chat** is a chat assistant designed specifically to answer questions about GDevelop and game creation. + +![A conversation with the AI chat](./ai-chat-conversation.png) + +## How to use it + +To open the AI, click the "Ask AI" button in the top-right corner of the GDevelop interface. Select **"Ask a question"**, then type your question and send it — that’s it. + +The AI will reply in a few seconds. Answers often include **links to helpful resources, extensions, behaviors**, and relevant GDevelop concepts like actions or conditions. + +!!! note + + As with every AI tool, the AI answers are not perfect. From time to time, it can confuse some concepts, misunderstanding your game or what you're trying to do. + Always double check the answers and use the AI answers as suggestions to build your game. It's a good idea to follow the **[GDevelop Essentials Course](https://gdevelop.io/academy)** to quickly learn the basics of GDevelop and make your first games. + +You can continue the conversation by asking follow-up questions. If you want to switch topics or ask something unrelated, click **"Start a new chat"** — this helps the AI better focus on your new request. + +## What the AI chat can help you with + +The AI understands all built-in GDevelop features and official, reviewed extensions (it doesn’t include community extensions unless they’ve been approved by the GDevelop team). It also has access to *an overview* of your project, which includes: + +- Your game scene names +- Global objects and objects in each scene (but not their exact configuration), +- Object behaviors (but not their exact configuration), +- Global, scene and object variables (but not their content). + +It **does not** currently have access to your scene events. It also has no access or details given about your username, profile, cloud projects, leaderboards, analytics or any personal detail from your user account. + +The AI chat is perfect for getting a better understanding of a game develpment notion, discover extensions or features that you can use or learn how to build something. + + +## Cost of an answer from the AI + +Each account starts with a few **free AI requests**. If you have a GDevelop Silver, Gold or Pro subscription, you’ll receive more every day — 4 with Silver, 20 with Gold and 100 with Pro. + +!!! tip + + Once you've used all free answers, a message you send to the AI costs 5 credits. This means that with [a package of 500 credits](/gdevelop5/interface/profile/credits), you can make up to 100 requests. Remember you can get **free credits by following GDevelop accounts** on socials — check your profile! + + This is done to help pay for the expenses related to AI processing, and their maintenance. + + +## Help us improve the AI + +You can rate the AI’s answers with a 👍 or 👎. These ratings help the GDevelop team improve the assistant. + +!!! note + + Sometimes, high demand can temporarily slow things down or prevent a proper response. If that happens, don’t worry — you won’t be charged credits or lose your free requests. diff --git a/docs/gdevelop5/interface/ai/index.md b/docs/gdevelop5/interface/ai/index.md new file mode 100644 index 0000000000..a0a1c84f95 --- /dev/null +++ b/docs/gdevelop5/interface/ai/index.md @@ -0,0 +1,46 @@ +--- +title: Ask AI (build/chat with AI) +--- +# Ask AI: Build your game with AI + +Click on **Ask AI** on the top-right corner of GDevelop to open the GDevelop AI editor. + +![Ask AI screen](./ask-ai-tab.png) + +Unlike general-purpose AI tools like ChatGPT, Claude, or Google Gemini, GDevelop AI is **tailored for game creation**. It knows how GDevelop works and can help you: + +- Understand features and how to use them +- Build specific mechanics or systems +- Explore, brainstorm and bring new ideas to life + +!!! tip + + Think of it as a mentor and creative collaborator that speaks GDevelop fluently. + +## How does it work: AI agent and AI chat + +The AI understands all built-in GDevelop features and official, reviewed extensions (it doesn’t include community extensions unless they’ve been approved by the GDevelop team). It can also read the content of your game project when you ask it to build something for you. + +The AI has two operating modes: + +- **[Build for me (AI agent)](./agent)**: the AI will build your request inside your game. This can range from simple changes ("Make this object bigger") to more complex requests ("Create an enemy that starts attacking when the player comes near"). +- **[Ask a question (AI chat)](./chat)**: the AI will answer any question you ask it about game development and usage of GDevelop. + +[Learn more about the GDevelop AI agent](./agent){ .md-button .md-button--primary .full-width } + +[Learn more about the GDevelop AI chat](./chat){ .md-button .full-width } + + +## About privacy + +GDevelop AI is **not trained on your game projects** - be it local or cloud projects. Cloud projects are stored separately from the GDevelop AI infrastructure and the AI has no access to them. + +GDevelop AI is built on general purpose Large Language Models that we can be adapted, fine tuned or have internally multiple agents working on a request. In all cases there is no usage of private data for improving the AI. + +## Help us improve the AI + +You can rate the AI’s answers with a 👍 or 👎. These ratings help the GDevelop team improve the assistant. + +!!! note + + Sometimes, high demand can temporarily slow things down or prevent a proper response. If that happens, don’t worry — you won’t be charged credits or lose your free requests. diff --git a/docs/gdevelop5/interface/command-palette-and-shortcuts.md b/docs/gdevelop5/interface/command-palette-and-shortcuts.md index 97ee51b5e1..fdd800699e 100644 --- a/docs/gdevelop5/interface/command-palette-and-shortcuts.md +++ b/docs/gdevelop5/interface/command-palette-and-shortcuts.md @@ -3,55 +3,55 @@ title: Command palette and shortcuts --- # Command palette and shortcuts -GDevelop provides keyboard shortcuts that allow you to quickly get to places. You can customize them to fit your preferences. +GDevelop provides keyboard shortcuts that allow you to quickly navigate to different areas. You can customize them to fit your preferences. !!! warning - Some shortcuts like **Closing GDevelop**(Ctrl+Shift+Q) won't work on the web app + Some shortcuts like **Closing GDevelop** (Ctrl+Shift+Q) won't work on the web app. -##Customising keyboard +## Customizing keyboard shortcuts **On web version**: - * Click **Open projects manager** (On the start page) + * Click **Open projects manager** (on the start page) * Go to **Preferences** * Go to the **Keyboard shortcuts** tab **On desktop version**: - * Open **Files** on the toolbar + * Open **File** on the toolbar * Go to **Preferences** * Go to the **Keyboard shortcuts** tab ![](/gdevelop5/interface/shortcuts.png) -Click on the keyboard combination you want to change that is displayed against the command +Click on the keyboard combination you want to change that is displayed next to the command. -Enter the key combination you want to use by pressing the keys in order (Shift and E for entering Shift + E) +Enter the key combination you want to use by pressing the keys in order (Shift and E for entering Shift + E). ![](/gdevelop5/interface/shortcuts3.png) -You can't use a key combination that is already utilized by another command. A exclamation mark will be displayed against the conflicting combinations. +You can't use a key combination that is already used by another command. An exclamation mark will be displayed next to the conflicting combinations. ![](/gdevelop5/interface/shortcuts2.png) -##Command palette +## Command palette -The command palette shows all the command you can do in the current menu. This can allow you to quickly access tools. +The command palette shows all the commands you can execute in the current menu. This allows you to quickly access tools. -By Default, use Ctrl+P to open the command palette. You can change it to your liking, see **Editing Shortcuts** section on this page +By default, use Ctrl+P to open the command palette. You can change it to your liking—see the **Editing Shortcuts** section on this page. ![](/gdevelop5/interface/shortcuts5.png) -The corresponding shortcut of a command is displayed opposite to it +The corresponding shortcut for a command is displayed next to it. -Use the arrows keys or the mouse wheel to move through the list. You can also search the command palette by text. +Use the arrow keys or the mouse wheel to move through the list. You can also search the command palette by text. -You can use **ENTER** or click on the command to select commands +You can use **Enter** or click on the command to select commands. -Press **ESC** or click outside the list to exit the command palette +Press **Esc** or click outside the list to exit the command palette. -Some commands/shortcuts can have sub-sections (Ex: Edit Objects) +Some commands/shortcuts can have sub-sections (e.g., Edit Objects). ![](/gdevelop5/interface/commandpalette.png) diff --git a/docs/gdevelop5/interface/debugger-create-instance.gif b/docs/gdevelop5/interface/debugger/debugger-create-instance.gif similarity index 100% rename from docs/gdevelop5/interface/debugger-create-instance.gif rename to docs/gdevelop5/interface/debugger/debugger-create-instance.gif diff --git a/docs/gdevelop5/interface/debugger-edit-instance-properties.gif b/docs/gdevelop5/interface/debugger/debugger-edit-instance-properties.gif similarity index 100% rename from docs/gdevelop5/interface/debugger-edit-instance-properties.gif rename to docs/gdevelop5/interface/debugger/debugger-edit-instance-properties.gif diff --git a/docs/gdevelop5/interface/debugger/index.md b/docs/gdevelop5/interface/debugger/index.md index 65cc337b7b..f31b3294ed 100644 --- a/docs/gdevelop5/interface/debugger/index.md +++ b/docs/gdevelop5/interface/debugger/index.md @@ -12,14 +12,17 @@ The *Profiler* is a tool that measures the time spent on different aspects of yo This is an advanced feature of GDevelop. If you use it, we would like you to show your support for GDevelop by [getting a subscription](/gdevelop5/interface/profile)! +![](pasted/20230304-171835.png) -![](/gdevelop5/interface/debugger/pasted/20230304-171835.png) +
+ +
## Launch the debugger To launch the debugger, in the toolbar of a scene editor, click on the arrow beside the preview button to bring up a drop-down menu. In that menu, choose "Preview with debugger and performance profiler". -![](/gdevelop5/interface/debugger/pasted/20230314-003437.png) +![](pasted/20230314-003437.png) This will open a new tab called "Debugger" and will also launch a preview of your game as usual. @@ -27,15 +30,15 @@ Note that even if you close the preview, you can let the debugger tab stay unclo When the game is first launched, the debugger is empty: -![](/gdevelop5/interface/debugger/pasted/20230304-172007.png) +![](pasted/20230304-172007.png) Click on **"Refresh"** at any time to fetch the data of the game: -![](/gdevelop5/interface/debugger/pasted/20230314-003719.png) +![](pasted/20230314-003719.png) You can also use the **Pause** button in the toolbar: -![](/gdevelop5/interface/debugger/pasted/20230314-003327.png) +![](pasted/20230314-003327.png) ## Inspect the scenes of the game @@ -47,7 +50,7 @@ If you click on the name of a scene, it will be displayed in the inspector on th To create a new instance, click on the name of the scene where you want to create the instance. Write the name of the object and click on Create: -![](/gdevelop5/interface/debugger-create-instance.gif) +![](debugger-create-instance.gif) The instance will be created at position 0;0, on the base layer with a Z-order of 0. You can then find it in the list of instances and change its position, angle, layer, etc. @@ -57,11 +60,11 @@ You can then find it in the list of instances and change its position, angle, la In the list, you can find **Instances** of every running scene. Instances are grouped by objects name. Click on an object name to see the list of instances of this object living on the scene. Click on an instance number (each instance has a unique number) to inspect it: -![](/gdevelop5/interface/debugger/pasted/20230304-172210.png) +![](pasted/20230304-172210.png) The inspector shows general properties of the instance, for example, position, angle, layer, etc. For each of these properties, you can **edit them by clicking on the value**: -![](/gdevelop5/interface/debugger-edit-instance-properties.gif) +![](debugger-edit-instance-properties.gif) Validate your changes by clicking on the small **validate button** (the one with the tick icon). @@ -74,7 +77,7 @@ You can inspect variables of the game (global variables), of a scene (scene vari To do this, in the list, click on **Global Variables**, **Scene variables**, or the instance number that you want to inspect. Variables will be shown in a list showing variable names and values (either a number or a text). Here is an example of an instance of an object having a "Life" variable: -![](/gdevelop5/interface/instance-variables.png) +![](instance-variables.png) Like other fields, you can **click on the value of the variable** to change it. It's a good way to see how your game is behaving according to the value of variables and test that your events are working properly. @@ -82,7 +85,7 @@ Variables can also be **structures**, meaning that they hold other variables. In Here is an example of a variable named "Options", containing children variables to store the options of a game: -![](/gdevelop5/interface/structure-variable-inspector.png) +![](structure-variable-inspector.png) You can also change the value of the children variables like any other. diff --git a/docs/gdevelop5/interface/instance-variables.png b/docs/gdevelop5/interface/debugger/instance-variables.png similarity index 100% rename from docs/gdevelop5/interface/instance-variables.png rename to docs/gdevelop5/interface/debugger/instance-variables.png diff --git a/docs/gdevelop5/interface/debugger/profile-your-game.md b/docs/gdevelop5/interface/debugger/profile-your-game/index.md similarity index 94% rename from docs/gdevelop5/interface/debugger/profile-your-game.md rename to docs/gdevelop5/interface/debugger/profile-your-game/index.md index d07fd676b0..45380c7d76 100644 --- a/docs/gdevelop5/interface/debugger/profile-your-game.md +++ b/docs/gdevelop5/interface/debugger/profile-your-game/index.md @@ -9,14 +9,14 @@ The profiler is part of the [Debugger](/gdevelop5/interface/debugger). [Read her When the **Debugger** is opened, the profiler is shown on the bottom part of the screen. -![](/gdevelop5/interface/debugger/profile-your-game/pasted/20230314-195529.png) +![](pasted/20230314-195529.png) While the game is running, click on the **Start Profiling** button to launch the profiler. After a few seconds, click **Stop Profiling** to end the process. The game will only store up to 600 frames worth of information, which is approximately 10 seconds of running the profiler. If you record more than 600 frames with the profiler, only the last 600 frames of information will be displayed. When you stop running the profiler, the new results will be displayed. -![](/gdevelop5/interface/debugger/profile-your-game/pasted/20230304-172426.png) +![](pasted/20230304-172426.png) The time spent on different aspects of your game is displayed in sections: diff --git a/docs/gdevelop5/interface/structure-variable-inspector.png b/docs/gdevelop5/interface/debugger/structure-variable-inspector.png similarity index 100% rename from docs/gdevelop5/interface/structure-variable-inspector.png rename to docs/gdevelop5/interface/debugger/structure-variable-inspector.png diff --git a/docs/gdevelop5/interface/events-editor/index.md b/docs/gdevelop5/interface/events-editor/index.md index 4c5bd16ad8..92d8db8e20 100644 --- a/docs/gdevelop5/interface/events-editor/index.md +++ b/docs/gdevelop5/interface/events-editor/index.md @@ -35,7 +35,7 @@ After clicking the button, a blank sub-event appears below our selected event. ![](/gdevelop5/interface/events-editor/pasted/20230313-180002.png) -//Sub-events are executed only if the conditions of the main event it's attached to are true//. Sub-events provide a way to avoid repeating the same conditions, making your game more performant. They also make the logic much easier to read and search through. +**Sub-events are executed only if the conditions of the main event it's attached to are true**. Sub-events provide a way to avoid repeating the same conditions, making your game more performant. They also make the logic much easier to read and search through. ## Add a comment diff --git a/docs/gdevelop5/interface/games-dashboard/Game-Analytics-hover.png b/docs/gdevelop5/interface/games-dashboard/Game-Analytics-hover.png deleted file mode 100644 index 0b2b60488b..0000000000 Binary files a/docs/gdevelop5/interface/games-dashboard/Game-Analytics-hover.png and /dev/null differ diff --git a/docs/gdevelop5/interface/games-dashboard/Game-Analytics.png b/docs/gdevelop5/interface/games-dashboard/Game-Analytics.png index f6a4070a2f..16813bb7ca 100644 Binary files a/docs/gdevelop5/interface/games-dashboard/Game-Analytics.png and b/docs/gdevelop5/interface/games-dashboard/Game-Analytics.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Game-Dashboard.png b/docs/gdevelop5/interface/games-dashboard/Game-Dashboard.png new file mode 100644 index 0000000000..f637deb835 Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Game-Dashboard.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Game-manage.png b/docs/gdevelop5/interface/games-dashboard/Game-manage.png new file mode 100644 index 0000000000..c19c757000 Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Game-manage.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Manage-Games-Dashboard.png b/docs/gdevelop5/interface/games-dashboard/Manage-Games-Dashboard.png new file mode 100644 index 0000000000..7ea12dc673 Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Manage-Games-Dashboard.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Playerfeedback-Dashboard.png b/docs/gdevelop5/interface/games-dashboard/Playerfeedback-Dashboard.png new file mode 100644 index 0000000000..ab56b61600 Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Playerfeedback-Dashboard.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Playerfeedback-enablingfeedback.png b/docs/gdevelop5/interface/games-dashboard/Playerfeedback-enablingfeedback.png new file mode 100644 index 0000000000..6e8e260930 Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Playerfeedback-enablingfeedback.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Playerfeedback-seeingfeedback.png b/docs/gdevelop5/interface/games-dashboard/Playerfeedback-seeingfeedback.png new file mode 100644 index 0000000000..fd76683d24 Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Playerfeedback-seeingfeedback.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/Playsection.png b/docs/gdevelop5/interface/games-dashboard/Playsection.png new file mode 100644 index 0000000000..d3b76d91fe Binary files /dev/null and b/docs/gdevelop5/interface/games-dashboard/Playsection.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/game-analytics.md b/docs/gdevelop5/interface/games-dashboard/game-analytics.md index 3272476700..22e08233aa 100644 --- a/docs/gdevelop5/interface/games-dashboard/game-analytics.md +++ b/docs/gdevelop5/interface/games-dashboard/game-analytics.md @@ -1,35 +1,27 @@ # Game Analytics -!!! note - - **Who can use this feature:** All users with a GDevelop account who have published their game on [gd.games](https://gd.games). Some limitations may apply depending on the license type. - Player analytics are essential during video game development. They provide data on how long players stay engaged with the game and how quickly they lose interest. By understanding these patterns, developers can tailor game features to better suit player preferences, enhancing enjoyment and engagement. Alongside player feedback, this information guides improvements, helping ensure the game's success by making it more appealing and enjoyable for its audience. -## Accessing game metrics -When you've opened the "Manage Game" section, navigate to the Analytics tab. This shows various numbers that are useful to understand how successful is your game. +![Manage-Games-Dashoard](Manage-Games-Dashboard.png) -![Game-Analytics-tab](Game-Analytics-tab.png) +## Accessing game metric +Find the game you'd like to access on GDevelop home and click "Manage". Under the thumbnail image you'll see the "Analytics" card displaying the numer of sessions in your game. Click "See all" to access the full report. + +![Game-Dashboard](Game-Dashboard.png) ## Interpreting game analytics The Game Analytics section provides the following metrics and indicators: -* **Number of sessions:** Number of times the game was launched. -* **Bounce rate:** Percentage of players who leave a webpage without interacting further. -* **Play time:** The total duration players spend engaging with the video game. -* **Number of players with more than X minutes:** Players who engage with a game for at least X minutes. This information is crucial for understanding player retention and game performance. - - ![Game-Analytics](Game-Analytics.png) +* **1) Number of sessions:** Number of people who launched the game. Viewers are considered players when they stayed at least 60 seconds including loading screens. +* **2) Bounce rate:** Percentage of people who leave before 60 seconds including loading screens. +* **3) Average minutes per player:** Time spent by each player engaged with a game. The graphs show how this average stayed true across time. +* **4) Number of players with more than X minutes:** Average of players still active after 15 minutes. This graph shows how long players stay in the game after X minutes. It helps to see if the players quit quickly or keep playing for a while. +* **5) Percentage of players with more than X minutes:** Shows how long players stay in the game over time. The percentages are showing people playing for more than 3, 5, 10, and 15 minutes based on the best day. A higher value means better player retention on the day. This helps you understand when players are most engaged — and when they drop off quickly. -* **Average minutes per player:** Time spent by each player engaged with a game. The graphs show how this average stayed true across time. -* **Number of players with more than 15 minutes:** Displays a distribution on player retention going form 1 to 15 minutes. -* **Percentage of players with more than X minutes:** Displays the most representative sample (in percentage) on a specific time length. The graph also displays players with more than 3, 5, 10 and 15 minutes. - -![Games-Analytics](Game-Analytics-hover.png) !!! note @@ -39,12 +31,11 @@ If you don't have a GDevelop subscription, you'll only get access to the number As GDevelop is providing the analytics, the infrastructure cost and the bandwidth to collect the session metrics, we ask you to support GDevelop by getting a subscription. This will help the development of the game engine for the future and help to strengthen the community! -While the presentation of the metrics is for now very simple, it will be improved later to offer a better picture of the sessions played on your game. - ## About collecting metrics + While GDevelop strive to collect only usage metrics that are anonymized, and limits these to the purpose of analyzing the performance of your game, you may collect other metrics by your own means. In any cases, it's important that you have a clear privacy policy (which will be asked by most app stores anyway) explaining how you use these data and respect the privacy of your users. !!! tip * If you **want to display an explanation** before enabling metrics collection, use the action to disable the metrics collection at the beginning of your game, then use the action to enable them again once the player consent to the metrics collection. - * If you **don't want to collect any metrics at all**, use the action to disable the metrics collection at the beginning of your game. By doing this, no data will be sent at all. Of course, this means that you won't be able to follow the number of sessions played on your game. \ No newline at end of file + * If you **don't want to collect any metrics at all**, use the action to disable the metrics collection at the beginning of your game. By doing this, no data will be sent at all. Of course, this means that you won't be able to follow the number of sessions played on your game. diff --git a/docs/gdevelop5/interface/games-dashboard/index.md b/docs/gdevelop5/interface/games-dashboard/index.md index 4babb7565b..a4a63d2611 100644 --- a/docs/gdevelop5/interface/games-dashboard/index.md +++ b/docs/gdevelop5/interface/games-dashboard/index.md @@ -1,62 +1,76 @@ --- -title: Manage Games +title: Game dashboard --- -# Manage Games +# Game dashboard +Tracking game performance during and post-launch is crucial. It helps identify improvements, understand player behavior, and enhance the gaming experience for long-term success. Once the project has been publised, it's important to set up a system to collect player feedback, encourage player competition, market the game and measure player's engagement and retention. -!!! note +GDevelop's Game dashboard section is equipped with features such as leaderboards, player feedback, game lobbies, and marketing publication packages. The engine provides a comprehensive suite of tools for developers to enhance player engagement and drive the success of their games. - **Who can use this feature:** All users with a GDevelop account who had published their game to [gd.games](https://gd.games) +![Game-manage](Game-manage.png) -Tracking game performance post-launch is crucial. It helps identify improvements, understand player behavior, and enhance the gaming experience for long-term success. Once the project has been publised, it's important to set up a system to collect player feedback, encourage player competition, market the game and measure player's engagement and retention. + 1. Game Details (game information) + 2. Game analytics + 3. Player feedback + 4. Game leaderboards + 5. Game multiplayer Lobbies + 6. Game projects + 7. Exports -GDevelop's Manage section is equipped with features such as leaderboards, player feedback, game lobbies, and marketing publication packages. The engine provides a comprehensive suite of tools for developers to enhance player engagement and drive the success of their games. -* Game Details (game information) -* Build Management -* [Player Feedback](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/player-feedback/) -* [Game Analytics](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/game-analytics) -* [Game Leaderboards](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/leaderboard-administration/) -* [Game Marketing and Ads](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/marketing/) - -All these services are available for all users with a GDevelop account and are easy to configure. They work **without** intrusive trackers, third-party applications, or compromising players' privacy. +All these services are available for all users with a GDevelop account and are easy to configure. They work **without** intrusive trackers, third-party applications, or compromising players' privacy. Some of these services will work according to your [GDevelop account membership](https://gdevelop.io/pricing). !!! tip - Depending on the terms and conditions under which your game is distributed, you may be required to inform your players about data collection. Metrics can be disabled by using an action in the [Events editor](https://wiki.gdevelop.io/gdevelop5/interface/events-editor/) to enable or disable metrics. - -## Publishing the game - -To enable the "Manage" functionality and access the game's metrics, the project has to be published on [gd.games](https://gd.games). Before publishing the game, make sure to be logged to the [GDevelop account](/gdevelop5/interface/profile) that you wish to use to publish. - -Numerous platforms are available for export. Learn how to do it according to your desired platforms with the help of [this guide](https://wiki.gdevelop.io/gdevelop5/publishing/). + Depending on the terms and conditions under which your game is distributed, you may be required to inform your players about data collection. Metrics can be disabled by using an action in the Events editor to enable or disable metrics. -Once the game is online, it will be automatically visible and available through the app's "Manage" section. -![Manage-Game-Interface](Manage-Games.png) +## 1. Game details -!!! note +Through the game details view, a creator can configure their game's visibility on GDevelop's free publishing website [gd.games](/gdevelop5/publishing/web/): - Game insights are collected anonymously when a game is launched. It's important to respect the privacy of the players, so GDevelop does not collect nor store any personal information. This means that while aggregated data can be useful to understand your audience, you can't know about a particular player, because the information is not stored and players are not tracked individually. +* **Publish game on gd.games (on/off):** controls game publication on [gd.games](https://gd.games), GDevelop gaming platform. Turning it off automatically disables the following customisation options. +* **Visibility**: + * **Visible in search and profile:** Players will be available to find the game through the gd.games website + * **Hidden:** Only players with the URL will be able to find the game on gd.games. +* **Enable ads and revenue sharing on the game page (on/off):** [Monetize your game](/gdevelop5/monetization/#publishing-on-platforms-with-integrated-ads) without setting up any web ads network. +* **Collect feedback from players (on/off):** The game will display a banner to collect [player feedback](/gdevelop5/interface/games-dashboard/player-feedback/) through gd.games website -## Manage Games Dashboard +To learn how to publish to the gd.games platform and configure the privacy of the links follow [these instructions](/gdevelop5/publishing/web/). -Through the dashboard view, a creator can configure their game's visibility on GDevelop's free publishing website [gd.games](https://wiki.gdevelop.io/gdevelop5/publishing/web/#creating-a-private-web-link): -* **Make discoverable on gd.games:** Players will be available to find the game through the gd.games website -* **Show feedback banner on gd.page:** The game will display a banner to collect [player feedback](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/player-feedback/) through gd.games website -* **Ask for feedback on all builds:** All published versions of the game listed under the "Builds" tab will dislay the feedback banner to collect player feedback +## 2. Game analytics -To learn how to publish to the gd.games platform and configure the privacy of the links follow [these instructions](https://wiki.gdevelop.io/gdevelop5/publishing/web/). +Analytics play a crucial role in video game development. They offer insights into how long players remain engaged and when they begin to lose interest. By analyzing these trends, developers can adjust game features to align with player preferences, ultimately improving both enjoyment and retention. [Learn more about game analytics](/gdevelop5/interface/games-dashboard/game-analytics/) -## About collecting metrics +### About collecting metrics While GDevelop strives to collect only usage metrics that are anonymized and limits these to the purpose of Game Research to analize the performance of your game, you may collect other metrics by your own means. In any case, you must have a clear privacy policy (which will be asked by most app stores) explaining how you use these data to respect the privacy of your users. !!! tip - If you want to **display an explanation** before enabling metrics collection, use the action to disable the metrics collection at the beginning of your game, then use the action to enable them again once the player consent to the metrics collection. - + - If you **don't want to collect any metrics at all**, use the action to disable the metrics collection at the beginning of your game. By doing this, no data will be sent at all. Be aware that you won't be able to follow the number of sessions played on your game. + +## 3. Player feedback + +GDevelop’s built-in player feedback system allows developers to collect written feedback from online players to refine the game design, improving player engagement. [Learn more about player feedback](/gdevelop5/interface/games-dashboard/player-feedback/). + +## 4. Game leaderboards + +Leaderboards create a competitive environment by displaying player's top scores. This can improve game engagement by motivating people to reach the top of the charts. [Learn more about Leaderboards](/gdevelop5/interface/games-dashboard/leaderboard-administration/). + +## 5. Game multiplayer lobbies + +Multiplayer lobbies improve game mechanics by enabling real-time interaction between players, creating a game mechanic based on collaboration or even competition. [Learn more about GDevelop Multiplayer](/gdevelop5/all-features/multiplayer/). + +## 6. Game projects + +Lists all projects linked to the game. They are a great way to work on project versioning without risking any undesirable outcomes or breaking changes. To create a new version of the same project file: open the project to be duplicated and "Save As". Choose the project location (desktop of the cloud) and choose "Keep the new project linked to this game". + +## 7. Exports + +Access your game exports (iOS, Android, desktop exports, gd.games exports...) in this section. [Learn more about publishing your game](/gdevelop5/publishing). diff --git a/docs/gdevelop5/interface/games-dashboard/leaderboard-administration/index.md b/docs/gdevelop5/interface/games-dashboard/leaderboard-administration/index.md index d96a0b9ff2..2da878eff7 100644 --- a/docs/gdevelop5/interface/games-dashboard/leaderboard-administration/index.md +++ b/docs/gdevelop5/interface/games-dashboard/leaderboard-administration/index.md @@ -9,7 +9,7 @@ title: Leaderboard Administration To learn about how to send a score to a leaderboard and then display it, see [leaderboards](/gdevelop5/all-features/leaderboards). -To manage leaderboards, start by opening the GDevelop application and clicking on "File" -> "Games Dashboard". Find the game you want to manage and click "Manage game". Next, click on the tab named "Leaderboards". +To administrate leaderboards of your game, find your game on GDevelop home page, open the game dashboard and find the section named "Leaderboards". Click on "See more". ![](/gdevelop5/interface/games-dashboard/leaderboard-administration/pasted/20220429-164150.png) diff --git a/docs/gdevelop5/interface/games-dashboard/marketing/index.md b/docs/gdevelop5/interface/games-dashboard/marketing/index.md index 6a8746fc9b..e86562dc76 100644 --- a/docs/gdevelop5/interface/games-dashboard/marketing/index.md +++ b/docs/gdevelop5/interface/games-dashboard/marketing/index.md @@ -2,43 +2,86 @@ title: GDevelop Marketing Campaigns --- -# GDevelop Marketing Campaigns +# Boosts (GDevelop Marketing Campaigns) -GDevelop Marketing Campaigns are packages designed to improve the visibility of your game within the GDevelop community and beyond. Whether you're gearing up for a game launch, seeking valuable feedback, or simply looking to increase your game's exposure, these packages offer tailored solutions to meet your promotional needs. +GDevelop Marketing Campaigns, also called **Boosts**, are packages designed to improve the visibility of your game within the GDevelop community and beyond. Whether you're gearing up for a game launch, seeking valuable feedback, or simply looking to increase your game's exposure, these packages offer tailored solutions to meet your promotional needs. -## Why Use a Marketing Campaign? +!!! note -Marketing Campaigns are particularly beneficial during crucial phases of game development, such as: + Boosts are beneficial during different phases of game development. For example: -- Pre-Launch: Build anticipation and gather feedback before your game is officially published. -- Wishlist Building: Encourage users to add your game to their wishlists (notably on Steam), boosting its potential success upon release. -- Visibility Enhancement: Increase your game's overall visibility and attract a broader audience. + - Pre-Launch: Build anticipation and gather feedback before your game is officially published. + - Wishlist Building: Encourage users to add your game to their wishlists (notably on Steam), boosting its potential success upon release. + - Visibility Enhancement: Increase your game's overall visibility and attract a broader audience. + - Retention: Acquiring players and check if they come back to continue playing the game. -## How to Get a Marketing Campaign? +## How Boosts Work -Marketing Campaigns can be purchased inside GDevelop, using GDevelop Credits. +When you boost your game, depending on the Boost you selected, your game will: -1. Head down to your Games Dashboard -2. Pick the game you want to promote -3. Click on the "Marketing & Ads" tab to explore the available packages. +* Appear as a highlighted, **promoted game on gd.games**, making it more visible to players browsing the platform and other game creators on the GDevelop "Play" tab. +* Be featured in ads run by GDevelop on platforms like **TikTok**. +* We reserve the right to promote your game on our social channels, provided it meets basic quality standards (see Best Practices below for details). -Learn more about [GDevelop Credits here](/gdevelop5/interface/profile/credits). +The ads GDevelop runs are designed to attract new players, many of whom may not know about GDevelop or your game. These ads are usually generic gaming ads that promote games in general. -## Available Packages +Since these players likely have no prior knowledge of your game, it's crucial to make **a strong first impression** - see the next sections to learn more about the audience and advices for your game. -![Marketing Campaigns](/gdevelop5/interface/games-dashboard/marketing/marketing-campaigns.png) +### Understanding the Audience of a Boost + +GDevelop’s ads target a broad audience, making player acquisition very cost-effective. They are appealing to gamers in general and will often be short videos showcasing multiple games of various genres. +Thanks to this broad targeting, the cost to acquire players is multiple times lower than what is usually seen when ads are run for a single game. + +!!! note + + If you want more control over targeting, we encourage you to try other channels or making your own ads. This comes with higher costs but may better align with your game’s niche audience. + +While demographics can vary, the typical audience for a Boost is: + +* Age: **18–55** +* Gender: 60% male / 40% female +* Region: **Europe and the Middle East** +* Device: Majority on mobile, so ensure your game is **touchscreen-friendly**. + +## Best Practices for a Successful Boost + +To ensure your game performs well during a Boost, focus on these key areas: + +### 1. Optimize Loading and Presentation -1. Basic Package +* **Fast loading times:** A smooth loading experience helps reduce player drop-off. +* **Attractive and simple first screen:** Whether it’s a title screen, menu, or first level, make sure it’s visually engaging and easy to understand. - - Featuring on gd.games: Your game will be showcased on GDevelop's game platform for 7 days, generating increased views and feedback. You can extend the featuring period by purchasing an additional package. - - Ideal for: Developers looking to gather initial feedback, increase visibility, and engage with the GDevelop community. +!!! tip + + Sessions are counted a few seconds after the loading screen finishes. This means the “bounce rate” (players leaving without playing) can be tracked accurately, without being impacted by people immediately leaving the page. Ensure your game hooks players immediately! -2. Pro Package +### 2. Focus on Fun and Accessibility - - Social Networks and Newsletter Promotion: your game will be promoted across GDevelop's social media channels and newsletters, reaching thousands of players. - - Ideal for: Developers seeking a broader audience, social media exposure, and increased visibility within the GDevelop community. +Highly engaging games often: -3. Premium Package +* Allow players to **start playing immediately** without needing a tutorial or complex menus. +* Offer a **polished gameplay experience** that retains players from the first interaction. +* Use menus or title screens strategically, such as after the first level or in subsequent playthroughs. - - Dedicated Banner Inside GDevelop App: Your game will have a dedicated promotional banner within the GDevelop app, visible by hundreds of thousands of game creators and players. - - Ideal for: Developers aiming for maximum visibility, increased downloads, and a prominent presence within the GDevelop platform. +!!! tip + + Use variables and Storage actions in GDevelop to remember returning players and tailor their experience. + +## How to Boost Your Game + +Boosts can be purchased inside GDevelop, using GDevelop Credits. + +1. Head down to your Games Dashboard, +2. Pick the game you want to promote, +3. Click on the "Marketing & Ads" tab to explore the available packages. + +!!! tip + + Remember that many players accessing your game — whether on gd.games or through Boosts — will be using a **mobile device**. Make sure your game is fully **touchscreen-friendly**, with controls that are intuitive and responsive. + +Learn more about [GDevelop Credits here](/gdevelop5/interface/profile/credits). + +## Available Packages + +![Marketing Campaigns](/gdevelop5/interface/games-dashboard/marketing/marketing-campaigns.png) diff --git a/docs/gdevelop5/interface/games-dashboard/marketing/marketing-campaigns.png b/docs/gdevelop5/interface/games-dashboard/marketing/marketing-campaigns.png index ddd1779c62..46087393f6 100644 Binary files a/docs/gdevelop5/interface/games-dashboard/marketing/marketing-campaigns.png and b/docs/gdevelop5/interface/games-dashboard/marketing/marketing-campaigns.png differ diff --git a/docs/gdevelop5/interface/games-dashboard/player-feedback.md b/docs/gdevelop5/interface/games-dashboard/player-feedback.md index cf80a51f63..b98edfdfdb 100644 --- a/docs/gdevelop5/interface/games-dashboard/player-feedback.md +++ b/docs/gdevelop5/interface/games-dashboard/player-feedback.md @@ -5,7 +5,7 @@ title: Player Feedback !!! note - **This feature is available to:** All users with a GDevelop account. Please note that the number of player feedbacks might be limited to each subscription level. For more information on subscription limits, [click here](https://gdevelop.io/pricing) + This feature is available to all users with a GDevelop account. Please note that the number of player feedbacks might be limited to each subscription level. For more information on subscription limits, [click here](https://gdevelop.io/pricing) Player feedback is a crucial step in the process of game development. @@ -14,7 +14,7 @@ It helps developers understand player interactions, preferences, and areas needi GDevelop's integrated player feedback allows developers to enhance game design to increase player satisfaction, leading to a more engaging experience and a loyal player base. ## Feedback availabity by channel -Player Feedback is available to every user with a GDevelop account from free to paying subscriptions and only through gd.games. +Player Feedback is available to every user with a GDevelop account from free to paying subscriptions and only through [gd.games](https://gd.games/). Games published on sites like Itch, Newgrounds, Poki, and personal websites; or exported to Android or iOS cannot collect player feedback. @@ -30,21 +30,23 @@ Player feedback can be turned on or off acording to the game's development stage To be able to collect player feedback the game has to be available online. You can verify that the Game has been published to gd.games through the [Manage section](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/): -![Manage section](Manage-Games.png) +![Playerfeedback-Dashboard](Playerfeedback-Dashboard.png) -On the game listing screen, you can configure: +In the Game Manage screen, click on "Edit details" to configure: -* **Make discoverable on gd.games:** Players will be able to find the game through the gd.games website -* **Show feedback banner on gd.games game page:** The game will display a banner to collect player feedback through the website gd.games -* **Ask for feedback on all builds:** All published versions of the game listed under the "Builds" tab will display the feedback banner to collect player feedback +* **Visible on gd.games (yes/no):** Players will be able to find the game through the gd.games website +* **Revenue share (on/off):** gd.games will display ad banners in your game's page to start making revenue. You can see and manage your earnings through the Manage section. +* **Player feedback (on/off):** All published versions of the game listed under the "Builds" section will display the feedback banner to collect player feedback + +![Playerfeedback-enablingfeedback](Playerfeedback-enablingfeedback.png) To learn how to publish to the gd.games platform and configure the privacy of the links [follow these instructions](https://wiki.gdevelop.io/gdevelop5/publishing/web/). ## Receiving feedback -Recieved player feedback is stored and visible under the "Feedback" tab of the desired published game. -Click on the [Manage section](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/) > the game that you wish to manage to see the "Feedback tab". +Received player feedback is stored and visible under the "Feedback" section of the desired published game. +Click on the [Manage section](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/) > the game that you wish to manage to see the "Feedback" section. -![Feedback-tab](Player-feedback.png) +![Playerfeedback-seeingfeedback](Playerfeedback-seeingfeedback.png) ## Rating Feedback Rating player feedback helps the community identify the best beta testers of gd.games so they can get rewarded accordingly. @@ -57,11 +59,11 @@ Rate the feedback by clicking on the correspondent icon: 2. Good feedback 3. Bad feedback 4. Report feedback (spam) -5. Resolve / Close feedback +5. Resolve / Close feedback -Keep in mind that the creators that rate the most amount of player feedback, will be listed under the Community's Top 5 "Games with rated comments". +Keep in mind that the creators that rate the most amount of player feedback, will be listed in the "Play" section in the Top 5 "Games with rated comments". -![Community section](Community-section.png) +![Playsection](Playsection.png) ### FAQ diff --git a/docs/gdevelop5/interface/games.md b/docs/gdevelop5/interface/games.md new file mode 100644 index 0000000000..ef23207f43 --- /dev/null +++ b/docs/gdevelop5/interface/games.md @@ -0,0 +1,63 @@ +--- +title: Games +--- + +# Games + +The Games section is where you can view all your game development projects made with GDevelop. +It provides an all-in-one space to analyze, access, and manage games and projects. + +![Create-Dashboard](Create-Dashboard.png) + +## Games list + +The Games section allows you to access, edit, manage, filter, and create your games. GDevelop automatically organizes multiple project versions (including local and cloud projects) under their respective games, simplifying version control and project iteration. + +![Game-Project-Architecture](Game-Project-Architecture.png) + +Each project attached to a game can be individually modified or, for cloud projects, shared with collaborators (see [project collaboration](/gdevelop5/collaboration/)). + +### Game cards + +Each game card provides key details and indicators: + +1. **Last modification details:** Displays who last modified the game and when. Learn more about [project collaboration](https://wiki.gdevelop.io/gdevelop5/collaboration/). +2. **Number of projects (desktop or cloud) attached:** Shows the number of linked desktop or cloud projects. Click the icon to view all projects. +3. **gd.games published status (on/off):** Manages game's visibility on gd.games. [Manage game visibility](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/#manage-games-dashboard). +4. **Ad revenue share status (on/off):** Enable or disable ad revenue sharing. [Learn more about hosting on GDevelop's platform](https://wiki.gdevelop.io/gdevelop5/monetization/#hosting-on-gdevelops-platform-gdgames). +5. **Player feedback (on/off):** Control whether player feedback is collected. [Learn more about player feedback](https://wiki.gdevelop.io/gdevelop5/interface/games-dashboard/player-feedback/). +6. **Manage:** Access the [Game's Dashboard](/gdevelop5/interface/games-dashboard/) which includes analytics, player services, and the full list of game projects. +7. **Open:** Launches the latest saved version of the project. + +![Not-published-game](Not-published-game.png) + +For published games, additional options are available: + +8. **Game URL:** Displays the URL of your game on gd.games. Privacy depends on the game visibility settings. +9. **Social media sharing:** Quickly share your game URL on social media platforms. + +![Published-game](Published-game.png) + + +!!! tip + + If a game isn't properly displaying a project, make sure that the project of the game still exists in your local files or in the cloud. Then, open the project so GDevelop recognizes it and links it to the game to which it belongs. + +## Game earnings and GDevelop credits wallet + +Each account on GDevelop can optionally earn from games published on gd.games. Creators have two options to cash out their game earnings: + + * **Cash out directly:** Accumulate $60 USD of earnings to be able to cash them out. + * **Exchange for GDevelop Credits:** No minimum amount is required. These credits can be used within GDevelop to purchase assets, templates, marketing packages, and more. + +To learn more about enabling game earnings, head to [Hosting on GDevelop's Platform](/gdevelop5/monetization/#hosting-on-gdevelops-platform-gdgames). + +The Wallet section shows the credits in your GDevelop account. Use credits to buy items in the GDevelop Asset Store (asset packs, templates, premium courses...). A few ways to get credits are listed below: + +* Giving [written feedback](/gdevelop5/interface/games-dashboard/player-feedback/#giving-feedback) on games published on gd.games. +* Exchanging game earnings as credits through the "credit out" option. +* Completing challenges like following GDevelop on social media. +* Purchasing a [GDevelop premium subscription](https://gdevelop.io/pricing) that includes a certain number of credits per month. + +Learn more about [GDevelop credits](/gdevelop5/interface/profile/credits/#gdevelop-credits). + diff --git a/docs/gdevelop5/interface/index.md b/docs/gdevelop5/interface/index.md index 86956c548f..7d80dd498a 100644 --- a/docs/gdevelop5/interface/index.md +++ b/docs/gdevelop5/interface/index.md @@ -1,65 +1,140 @@ --- title: GDevelop interface +icon: material/view-dashboard --- -# GDevelop interface +# GDevelop's user interface -The working interface of GDevelop is based on editors that are displayed in tabs. These editors allow you to change different parts of your game. +GDevelop's main game creation interface is divided into multiple tabs: the **Home Page** (1) and **Project Editors** (2). -![](/gdevelop5/interface/pasted/20230309-173715.png) +![UI-tabs](UI-tabs.png) + +Watch an overview of GDevelop's layout:
-## Home Page +## Home Page tab + +The **Home Page** appears when you first launch GDevelop. It consists of multiple sections: + + 1. Get Started + 2. Create + 3. Teach + 4. Shop + 5. Learn + 6. Play + +![Create-Dashboard-dark](Create-Dashboard-dark.png) + +### 1. Get Started +The **Get Started** section offers resources and updates tailored for new users. To disable this section on startup, check "Don't show this screen on next startup" at the bottom of the page. + +![Home-get-started](Home-get-started.png) + +### 2. Create (Games section) +The **Games section** serves as a central hub for managing your game projects, providing tools to access, analyze, and organize files. Learn more about the [Games section](/gdevelop5/interface/games/). + +![Home-create](Home-create.png) + +### 3. Teach +The Teach section is designed for educational use, offering tools for teachers and schools, including anonymous student accounts and teacher management interfaces. It is available exclusively with an [Education Subscription](https://gdevelop.io/pricing/education). Learn more about the advantages of [Teacher accounts](/gdevelop5/education/#teacher-accounts-managing-students-and-their-work). + +![Home-teach](Home-teach.png) + +### 4. Shop +GDevelop's Marketplace offers pre-made assets, including: + + * Character animations + * Backgrounds and props + * Particles and visual effects + * User interface parts + * Smart, ready-to-use objects + * Ready-made game templates + * Sounds and music -The Home Page is displayed when you first launch GDevelop. From the Home Page you can create your projects, load previously saved projects, or load tutorials. +![Home-shop](Home-shop.png) -![](/gdevelop5/interface/pasted/20230303-231024.png) +Creators can contribute and sell their assets. [Learn more about selling assets here](/gdevelop5/community/sell-asset-pack-store/). -At startup, GDevelop will check for new updates. If a new update is available, the update will automatically be downloaded (unless deactivated in preferences). +### 5. Learn +The **Learn section** includes courses, tutorials, videos, and documentation to help users start their game creation journey with GDevelop. -You can see [the progress by clicking on About GDevelop](/gdevelop5/interface/updates). +![Home-learn](Home-learn.png) -## Project Manager +### 6. Play +The Play section showcases community-made games published on gd.games, including multiplayer titles. [Providing written feedback](/gdevelop5/interface/games-dashboard/player-feedback/#giving-feedback) to creators through GDevelop's player feedback interface gives you [credits](/gdevelop5/interface/profile/credits/) in exchange. These credits are redeemable in the Shop. -When a project is opened, you can click on the top-left button to access to the project manager. +![Home-play](Home-play.png) -![](/gdevelop5/interface/pasted/20230309-173922.png) -The project manager shows the structure of your game: +## Project editors -![](/gdevelop5/interface/pasted/20230309-174021.png) +When editing a game with GDevelop, multiple editors can be opened in tabs next to the home page: -Using the project manager, you can add new elements to your game and open editors. -Learn more about [the content of the project manager here](/gdevelop5/interface/project-manager). + 1. Project manager + 2. Scene editor + 3. Events editor + 4. Preview + 5. Debugger -## Scene editor +![Project-Workspace](Project-Workspace.png) -When opening a scene (or an external layout), the scene editor associated with that scene opens. -This is where you can design and build your game levels and menus by creating and adding objects to the scene. -The first scene in the list is the first scene loaded when the game is launched. +### 1. Project manager -[Learn more about using scene editors](/gdevelop5/interface/scene-editor). +Located in the upper-left corner, the **[Project manager](/gdevelop5/interface/project-manager/#project-manager)** becomes active when a project is open. It provides access to: -## Events editor + * [Global variables](/gdevelop5/all-features/variables/global-variables/#global-variables) + * [Resources](/gdevelop5/interface/project-manager/resources) + * [Scenes](/gdevelop5/interface/scene-editor/) + * [Extensions](/gdevelop5/extensions/tiers/#extension-tiers) + * [External events](/gdevelop5/interface/events-editor/external-events/#external-events) + * [External layouts](/gdevelop5/interface/scene-editor/external-layouts/#external-layouts) -When opening a scene (or when opening external events), the events editor associated with that scene is also opened. This is where you set up your game's logic, using GDevelop's visual no-code system to program your game without any specific programming knowledge or experience. +Use the project manager to add new elements to your project. + +!!! note + + GDevelop doesn't close a project automatically. Even if all project tabs are closed, GDevelop still considers the project to be open and active. + + +To close a project, click the three-dot menu on the project's card and select "Close Project." Ensure all changes are saved beforehand. + +![Project-manager-open-project](Project-manager-open-project.png) + +### 2. Scene editor + +The **Scene editor** is where you design and build game levels and menus by placing and configuring objects. The first scene in the list is loaded when the game starts. + +Learn more about the scene editor [here](/gdevelop5/interface/scene-editor). + +### 3. Events editor +The Events Editor allows you to define your game's logic using GDevelop's visual no-code system. Learn more about [its usage on this page](/gdevelop5/interface/events-editor) or check [the help about events](/gdevelop5/events). -## Top menu +### 4. Preview +You can preview your project at any time using the **[Preview](/gdevelop5/interface/preview/#previewing-your-game)** button in the toolbar. Additional options are available in the drop-down menu next to the button. + +### 5. Debugger +The **[debugger](/gdevelop5/interface/debugger/profile-your-game/)** allows you to inspect a running game, helps identify performance bottlenecks, and optimize resource usage. + +## Other sections of the app + +![Create-Dashboard-dark2](Create-Dashboard-dark2.png) -The menu at the top left corner of the screen allows you to open, save, and [publish a game](/gdevelop5/publishing). +Additional sections include: -You can also open GDevelop preferences or see [the profile associated with your GDevelop account](/gdevelop5/interface/profile). + 1. **GDevelop account (profile):** Manage subscriptions and account settings. [Learn more](/gdevelop5/interface/profile/#cancelling-your-subscription) + 2. **Preferences:** Customize language, theme, and keyboard shortcuts. [Learn more](/gdevelop5/preferences/#preferences) + 3. **About GDevelop:** View update history and check for [available updates](/gdevelop5/interface/updates). -![](/gdevelop5/interface/pasted/20230309-182715.png) +!!! note -## Interface Themes + At startup, GDevelop will check for new updates. If a new update is available, it will automatically be downloaded (unless deactivated in preferences). -You can choose a different theme for the interface, according to your taste. To change the theme, navigate to **File**->**Preferences**. +### GDevelop UI themes -See, [preferences](/gdevelop5/preferences) +GDevelop provides two official themes: **GDevelop Default Dark** and **GDevelop Default Light**, as well as multiple community-contributed themes. You can choose them from the app preferences. -You can also create themes of your own to use and share. Learn more about creating a theme [here](/gdevelop5/all-features/themes). \ No newline at end of file +![Create-Dashboard-themes](Create-Dashboard-themes.png) diff --git a/docs/gdevelop5/interface/preview.md b/docs/gdevelop5/interface/preview.md index aa3d98c371..27de8fae5b 100644 --- a/docs/gdevelop5/interface/preview.md +++ b/docs/gdevelop5/interface/preview.md @@ -3,11 +3,11 @@ title: Previewing your game --- # Previewing your game -After opening a project, you can launch a preview of it at any time using the "Preview" button on the GDevelop toolbar. You can also access more options by clicking on the drop-down menu to the right of the preview button. +After opening a project, you can launch a preview of it at any time using the **Preview** button on the GDevelop toolbar. You can also access more options by clicking on the drop-down menu to the right of the preview button. ## Launch a preview of a scene -By clicking on the "Preview" button, you can launch a preview of your game. By default, the preview will start with the scene that you're currently editing (or from the first scene if you've not opened any scene). +By clicking on the **Preview** button, you can launch a preview of your game. By default, the preview will start with the scene that you're currently editing (or from the first scene if you haven't opened any scene). ![](/gdevelop5/interface/preview/pasted/20230313-204127.png) @@ -15,27 +15,27 @@ The preview will open in a separate window. Close the preview window to end the ### Apply your changes to your live preview -When the preview of your game is running, the preview button changes to an "update" button, which will apply changes you've made to the game to the preview. This is useful for designing your game while playtesting it, allowing you to quickly see and test the result without having to restart from the beginning of the scene after each change. (this is called "Live Preview" or, using more technical terms, "Hot Reloading"): +When the preview of your game is running, the preview button changes to an **Update** button, which will apply changes you've made to the game to the preview. This is useful for designing your game while playtesting it, allowing you to quickly see and test the result without having to restart from the beginning of the scene after each change (this is called "Live Preview" or, using more technical terms, "Hot Reloading"): ![](/gdevelop5/interface/preview/pasted/20230313-204759.png) -This is especially useful when you want to do some tweaks to your game, like changing the parameters of effects or the properties of the behavior of an object, and see the result immediately. It's also useful to check how your events are working without restarting your preview from the beginning. +This is especially useful when you want to make tweaks to your game, like changing the parameters of effects or the properties of the behavior of an object, and see the result immediately. It's also useful to check how your events are working without restarting your preview from the beginning. !!! tip - Note that in certain rare cases, GDevelop will be unable to apply your changes to the preview. In this case, a dialog will invite you to close the preview and launch a new one from the beginning. + Note that in certain rare cases, GDevelop will be unable to apply your changes to the preview. In this case, a dialog will ask you to close the preview and launch a new one from the beginning. ### Start multiple live previews -While a preview is running, you can open the drop-down menu beside the preview button to show a menu where you can launch another preview in a new window. Useful for testing games with networking or just to test multiple iterations of your game. +While a preview is running, you can open the drop-down menu beside the preview button to show a menu where you can launch another preview in a new window. This is useful for testing games with networking or just to test multiple iterations of your game. ![](/gdevelop5/interface/preview/pasted/20230313-205315.png) -You can click the Play button to apply changes made in the editor, and all the running previews will be updated. +You can click the **Play** button to apply changes made in the editor, and all the running previews will be updated. ### Overriding the scene used to start the preview -By default, the preview starts with the scene that you're currently editing. If you want to force GDevelop to start your game from another scene, first open that scene, then open the drop-down beside the preview button, and choose "Use this scene to start all previews". +By default, the preview starts with the scene that you're currently editing. If you want to force GDevelop to start your game from another scene, first open that scene, then open the drop-down beside the preview button, and choose **Use this scene to start all previews**. ![](/gdevelop5/interface/preview/pasted/20230313-205620.png) @@ -43,7 +43,7 @@ A flag will be added to the icon to remind you that the preview is always starti ## Launch a Network preview (Preview over WiFi/LAN) -By selecting "Network preview (Preview over WiFi/LAN)" from the drop-down menu beside the preview button, you can preview your game on mobile devices (or any other computer) connected to the same network as the editor. +By selecting **Network preview (Preview over WiFi/LAN)** from the drop-down menu beside the preview button, you can preview your game on mobile devices (or any other computer) connected to the same network as the editor. ![](/gdevelop5/interface/preview/pasted/20230313-210315.png) @@ -51,9 +51,9 @@ After clicking the button, a window will appear showing the address the preview ![](/gdevelop5/interface/preview/pasted/20230313-210104.png) -You can now close the pop-up window in the editor and continue to edit your game. When you click on the button to apply the changes to the preview, all the previews running on your computer, other computers or tablet/phones will be updated. +You can now close the pop-up window in the editor and continue to edit your game. When you click on the button to apply the changes to the preview, all the previews running on your computer, other computers, or tablets/phones will be updated. -You can also hit the "Reload" button of your device browser to restart the preview from the beginning. +You can also hit the **Reload** button of your device browser to restart the preview from the beginning. ## Launch a preview with the Debugger and the Profiler @@ -64,4 +64,4 @@ You can launch the debugger from the same drop-down menu beside the preview butt ![](/gdevelop5/interface/preview/pasted/20230313-210917.png) -[Read more about the Debugger and the Profiler](/gdevelop5/interface/debugger) usage. \ No newline at end of file +[Read more about the Debugger and the Profiler](/gdevelop5/interface/debugger) usage. \ No newline at end of file diff --git a/docs/gdevelop5/interface/profile/credits.md b/docs/gdevelop5/interface/profile/credits.md index a1cccd9f11..5c10d9034d 100644 --- a/docs/gdevelop5/interface/profile/credits.md +++ b/docs/gdevelop5/interface/profile/credits.md @@ -18,20 +18,17 @@ Credits can be acquired in several ways: - **Purchasing**: You can buy credits directly from the GDevelop interface, via your profile. The credits will be added to your account immediately after the purchase. - **Winning**: You can win credits by participating in game jams, unlocking achievements, or other specific actions in the community. The credits will be added to your account immediately after the action is completed. - **Giving game feedback**: You can earn credits by giving feedback on games on [gd.games](https://gd.games/). Depending on the quality of the feedback, you can earn credits that will be added to your account immediately after the feedback is submitted. +- **Converting ads earnings to credits**: Games published on gd.games will earn money according to the number of sessions and player engagement. You can convert [these earnings to credits](/gdevelop5/monetization/). ![GDevelop Credits Packages](/gdevelop5/interface/profile/credits-packages.png) -## Current Features +## Using Credits in the GDevelop ecosystem -### Marketing (Promotion) Package +### Boosts (Marketing Packages) -Credits can be utilized to purchase a **Marketing Package** for your game. These packages include: +Credits can be used to purchase a **Boost** for your game. These boosts will increase the visibility of your game on GDevelop's game platform, reaching a wider audience of dozens of thousands of players. According to the Boost, your game will also be promoted on GDevelop ad network. -- Increased Visibility on gd.games: Boost the visibility of your game on GDevelop's game platform, reaching a wider audience of dozens of thousands of players. -- Social Network Boost: Leverage social media promotion made by GDevelop to enhance your game's online presence. -- Dedicated Banner on the app: Show a dedicated promotional banner within the GDevelop app, attracting the attention from hundreds of thousands of players. - -You can learn more about the [Marketing and Promotional Packages here](/gdevelop5/interface/games-dashboard/marketing/). +You can learn more about the [Marketing and Boosts here](/gdevelop5/interface/games-dashboard/marketing/). ### Assets and Game Templates @@ -39,6 +36,11 @@ Credits can be used to purchase assets and game templates from the GDevelop stor ![Template purchase with credits](/gdevelop5/interface/profile/template-purchase-credits.png) +### More AI requests + +Use credits to ask questions in the ["Ask AI"](/gdevelop5/interface/ask-ai) tab, an AI assistant designed specifically to help you create your game in GDevelop. +You'll also receive a free allowance every month when you [subscribe](https://gdevelop.io/pricing) to a premium account. + ### Additional Online Builds Credits can be used to unlock additional online builds for your games. This is useful if you have reached the limit of online builds for your games and need to create more. @@ -46,6 +48,6 @@ You can also consider getting a [subscription](/gdevelop5/interface/profile#subs ![Online build purchase with credits](/gdevelop5/interface/profile/online-build-purchase-credits.png) -## Future Access Unlocked with Credits +## Unlock Premium Course Chapters -As the GDevelop ecosystem continues to evolve, more perks will be accessible using credits. Stay tuned! +You can use credits to unlock chapters of premium course offered in the Learn section of the Home page. These courses are designed to help you quickly learn GDevelop. diff --git a/docs/gdevelop5/interface/project-manager/Project-editor-closed.png b/docs/gdevelop5/interface/project-manager/Project-editor-closed.png new file mode 100644 index 0000000000..1d50a826c6 Binary files /dev/null and b/docs/gdevelop5/interface/project-manager/Project-editor-closed.png differ diff --git a/docs/gdevelop5/interface/project-manager/Project-editor-opened.png b/docs/gdevelop5/interface/project-manager/Project-editor-opened.png new file mode 100644 index 0000000000..6bcf3f1c73 Binary files /dev/null and b/docs/gdevelop5/interface/project-manager/Project-editor-opened.png differ diff --git a/docs/gdevelop5/interface/project-manager/icons.md b/docs/gdevelop5/interface/project-manager/icons.md index 0f1ad00294..948df4e7dd 100644 --- a/docs/gdevelop5/interface/project-manager/icons.md +++ b/docs/gdevelop5/interface/project-manager/icons.md @@ -1,5 +1,5 @@ --- -title: Set the icons and thumbnail of the game +title: Game icons and thumbnail --- # Set the icons and thumbnail of the game diff --git a/docs/gdevelop5/interface/project-manager/index.md b/docs/gdevelop5/interface/project-manager/index.md index 6769e373dd..34c73a5af8 100644 --- a/docs/gdevelop5/interface/project-manager/index.md +++ b/docs/gdevelop5/interface/project-manager/index.md @@ -3,24 +3,24 @@ title: Project Manager --- # Project Manager -When a project is opened, you can click on the top-left button on the toolbar to access the project manager. +When a project is opened, you can click on the top-left 3 line button on the toolbar to access the project manager. -![](/gdevelop5/interface/project-manager/pasted/20230309-185213.png) +![](Project-editor-closed.png) The project manager shows the structure of your entire game. -![](/gdevelop5/interface/project-manager/pasted/20230309-185441.png) +![](Project-editor-opened.png) You can fold and unfold each category by clicking on the small arrow next to each category. - * **Game settings:** This is where you can customize the global settings of the game. For example, the default size of the game window or the package name for Android and iOS. You can see [all settings in "Properties"](/gdevelop5/interface/project-manager/properties). You can also [set the icons for your game](/gdevelop5/interface/project-manager/icons) and [manage the resources](/gdevelop5/interface/project-manager/resources) from the game. + * **1. Game settings:** This is where you can customize the global settings of the game. For example, the default size of the game window or the package name for Android and iOS. You can see [all settings in "Properties"](/gdevelop5/interface/project-manager/properties). You can also [set the icons for your game](/gdevelop5/interface/project-manager/icons) and [manage the resources](/gdevelop5/interface/project-manager/resources) from the game. - * **Scenes:** Scenes are the different screens and levels in your game. Everything in GDevelop is created in [scenes](/gdevelop5/interface/scene-editor). + * **2. Scenes:** Scenes are the different screens and levels in your game. Everything in GDevelop is created in [scenes](/gdevelop5/interface/scene-editor). - * **Extensions:** Extend GDevelop and make your objects and logic more modular by creating **custom behaviors**, new actions, conditions, expressions, or even custom objects using events. [Read more about extensions](/gdevelop5/extensions/create) to learn how to create them, use them in your game and share them. + * **3. Extensions:** Extend GDevelop and make your objects and logic more modular by creating **custom behaviors**, new actions, conditions, expressions, or even custom objects using events. [Read more about extensions](/gdevelop5/extensions/create) to learn how to create them, use them in your game and share them. - * **External events:** [External events](/gdevelop5/interface/events-editor/External-events) are event sheets that are not linked to any particular scene. You can create an external event sheet and then link to it anywhere in your game's events. This allows developers to create their game logic once, and then reuse that logic throughout their project. + * **4. External events:** [External events](/gdevelop5/interface/events-editor/External-events) are event sheets that are not linked to any particular scene. You can create an external event sheet and then link to it anywhere in your game's events. This allows developers to create their game logic once, and then reuse that logic throughout their project. - * **External layouts:** Similar to external events, you can create an external layout for anything you want to use throughout your project(like UI and menu set ups), and then load them into any scene you choose. See [External Layouts](/gdevelop5/interface/scene-editor/external-layouts) to learn how to use them. + * **5.External layouts:** Similar to external events, you can create an external layout for anything you want to use throughout your project(like UI and menu set ups), and then load them into any scene you choose. See [External Layouts](/gdevelop5/interface/scene-editor/external-layouts) to learn how to use them. diff --git a/docs/gdevelop5/interface/project-manager/properties.md b/docs/gdevelop5/interface/project-manager/properties.md index 8a1f35ad72..14e89b1bd0 100644 --- a/docs/gdevelop5/interface/project-manager/properties.md +++ b/docs/gdevelop5/interface/project-manager/properties.md @@ -25,6 +25,8 @@ It is in these properties, you can find: * **Project file type:** By default, your game is saved in a single file. You can also choose to save it as multiple files: each scene, external layout, and external event sheet will be saved in a different file. This is perfect for working on a large game in a team and sharing your game in a version control system like Github or Mercurial. * **AdMob application ID (for iOS and Android):** ID number used to connect your game with your AdMob account. Only required if you're running ads in your game. [Read more about AdMob](/gdevelop5/all-features/admob). * **Firebase configuration string:** The mandatory authentication key for use with Firebase events. Only required if you're using Firebase in your project. [Read more about Firebase](https://wiki.gdevelop.io/gdevelop5/all-features/firebase/quickstart). +* **Scenes resources preloading:** Choose if all scenes should preload their resources in background (default), or disable preloading. This setting can be overridden for each scene from the Scene properties. +* **Resources unloading:** Decide whether the resources of a scene are unloaded when the scene is left. If enabled, they will be loaded again the next time the scene starts. ## Branding and Loading screen diff --git a/docs/gdevelop5/interface/project-manager/resources.md b/docs/gdevelop5/interface/project-manager/resources.md index 9d3636f9d3..61870a056a 100644 --- a/docs/gdevelop5/interface/project-manager/resources.md +++ b/docs/gdevelop5/interface/project-manager/resources.md @@ -54,31 +54,21 @@ Images can appear blurry if they're scaled to a ratio they were not meant to be, ![](/gdevelop5/interface/project-manager/resources/pasted/20230310-181038.png) -### Always loaded in memory - - -!!! note - - Currently the **Always loaded in memory** option is not yet supported. All the resources (except audio) are always loaded at the startup of the game during the loading. ### Preload as sound/music - This allows you to preload audio files as music/sound, making them start quickly as you don't have to wait for the audio to load. If the appropriate toggle isn't checked, the first time this audio file is played it may be distorted as it's loaded in. ![](/gdevelop5/interface/project-manager/resources/pasted/20230310-181721.png) ### Some other options/tools - - For more options related to each resource file, you can open a drop-down menu by clicking on the three dots to the right of the resource name, or right click on the resource. ![](/gdevelop5/interface/project-manager/resources/pasted/20230310-182803.png) ### Renaming - Allows you to rename the resources. The name is the path to the resource by default. You may need to re-open the resource manager to apply the changes to the UI. ### Removing @@ -92,22 +82,18 @@ Removes the selected resource from the project. ### Open the file - Lets you open the selected resource in a player/viewer (Uses the default software for that file type on your system) ### Locate file - Opens the selected resource in the file manager of your system. ### Copy file path - Copies the file path of the resource to your clipboard, which you can then paste somewhere else. ### Scan for images/audio/fonts/videos - If there are files that exist in the project folder, but are not used by your project, you can add those files by selecting this option. It scans the project folder and adds them to your project. ### Remove unused images/audio/fonts diff --git a/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-205841.png b/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-205841.png index d241d0e7c3..ac5bd13020 100644 Binary files a/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-205841.png and b/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-205841.png differ diff --git a/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-210717.png b/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-210717.png index 58fadb1814..4923b94418 100644 Binary files a/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-210717.png and b/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-210717.png differ diff --git a/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-212114.png b/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-212114.png index d8acbdb6f0..ed672d13ba 100644 Binary files a/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-212114.png and b/docs/gdevelop5/interface/project-manager/resources/pasted/20230309-212114.png differ diff --git a/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-180753.png b/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-180753.png index e253bf811f..eff7d2bd0e 100644 Binary files a/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-180753.png and b/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-180753.png differ diff --git a/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-184125.png b/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-184125.png index 7609224313..6aa11270ab 100644 Binary files a/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-184125.png and b/docs/gdevelop5/interface/project-manager/resources/pasted/20230310-184125.png differ diff --git a/docs/gdevelop5/interface/scene-editor/index.md b/docs/gdevelop5/interface/scene-editor/index.md index 928cc458a3..fc257a2423 100644 --- a/docs/gdevelop5/interface/scene-editor/index.md +++ b/docs/gdevelop5/interface/scene-editor/index.md @@ -37,7 +37,7 @@ An object that you put on the scene _is called **an instance**_. The Properties ![New panel](Properties-panel.png) 1. **Name indicator:** displays the name of the object that the *instance* represents - 2. **Instance lock:** blocks an instance's possition. It has 3 states: *(ii)* blocks the instance while maintaining its edition capabilites, *(iii)* blocks the instance's possition, edition *and* selection, and *(i)* unlocks the instance completely. + 2. **Instance lock:** blocks an instance's position. It has 3 states: *(ii)* blocks the instance while maintaining its edition capabilites, *(iii)* blocks the instance's position, edition *and* selection, and *(i)* unlocks the instance completely. Another method to unlock an instance is finding the instance on the [instance panel list](/gdevelop5/interface/scene-editor/#objects-groups-panel) and clicking on the icon to unlock the desired instance ![Lock states](Icons.png) diff --git a/docs/gdevelop5/interface/scene-editor/layers-and-cameras.md b/docs/gdevelop5/interface/scene-editor/layers-and-cameras.md index bd2a372e21..7c80351a4f 100644 --- a/docs/gdevelop5/interface/scene-editor/layers-and-cameras.md +++ b/docs/gdevelop5/interface/scene-editor/layers-and-cameras.md @@ -3,6 +3,10 @@ title: Layers and cameras --- # Layers and cameras +
+ +
+ ## Layers A layer is a virtual container of objects in a scene. Layers serve multiple purposes, including: @@ -30,6 +34,19 @@ In the layers editor, you can create a new layer by clicking the **Add new layer ![](/gdevelop5/interface/scene-editor/layers-and-cameras/pasted/20230310-194242.png) +### Layer centering according to the game window + +Edit a layer properties to access multiple options regarding a layer. You can notably choose if: + +* The camera of the layer **stays centered** when the game window is resized. This is usually useful for game content or menus +* The **top-left corner of the camera stays fixed** when the game window is resized. This is usually useful for UI or content that can expand. + +![](./layers-and-cameras/layer-camera-positioning.png) + +!!! note + + This camera behavior is only useful when you're not using events to move the camera. If you center a camera on an object for example, this option won't have any impact. + ### Moving objects to a different layer Objects can be dynamically moved to a different layer while the game is running. There is a condition to check which layer an object is on, and an action that will change the layer of an object. diff --git a/docs/gdevelop5/interface/scene-editor/layers-and-cameras/layer-camera-positioning.png b/docs/gdevelop5/interface/scene-editor/layers-and-cameras/layer-camera-positioning.png new file mode 100644 index 0000000000..ee44a98e6f Binary files /dev/null and b/docs/gdevelop5/interface/scene-editor/layers-and-cameras/layer-camera-positioning.png differ diff --git a/docs/gdevelop5/all-features/themes/index.md b/docs/gdevelop5/interface/themes/index.md similarity index 100% rename from docs/gdevelop5/all-features/themes/index.md rename to docs/gdevelop5/interface/themes/index.md diff --git a/docs/gdevelop5/monetization/index.md b/docs/gdevelop5/monetization/index.md index 0082ac481d..0da6a19b01 100644 --- a/docs/gdevelop5/monetization/index.md +++ b/docs/gdevelop5/monetization/index.md @@ -1,11 +1,16 @@ --- title: Monetizing Your Games +icon: material/cash-multiple --- # Monetizing Your Games Monetizing your game is an exciting opportunity, but it's important to note that it is entirely optional when using GDevelop. Whether you choose to monetize or not, GDevelop provides multiple ways to do so, allowing you to find the best fit for your game's audience and platform. +
+ +
+ ## Different Ways to Monetize There are several methods to monetize your game: @@ -16,7 +21,7 @@ You can sell your game on various digital storefronts such as: - **Steam:** One of the most popular platforms for PC games. You can follow our [tutorial](/gdevelop5/publishing/publish-to-steam/) to learn how to publish your game on Steam. - **App Stores:** Including the Google Play Store for Android and the Apple App Store for iOS. You can use the built-in One-Click exporters inside GDevelop to export your game for these platforms. -- **Itch.io:** A popular platform for indie developers to sell games. Here's a [tutorial](gdevelop5/publishing/publishing-to-itch-io/). +- **Itch.io:** A popular platform for indie developers to sell games. Here's a [tutorial](/gdevelop5/publishing/publishing-to-itch-io/). ### Using Ads @@ -31,8 +36,8 @@ We also offer a unique solution through our hosting platform, [gd.games](https:/ !!! note - If you choose to host your game on gd.games, it's important to know that you can opt-out of this monetization feature if you prefer not to display ads on your game page and earn money. - Just go to your game dashboard, in "Marketing & Ads" tab to disable the option. + If you choose to host your game on gd.games, it's important to know that you can opt out of this monetization feature if you prefer not to display ads on your game page and earn money. + Just go to your game dashboard, open the "Marketing & Ads" tab, and disable the option. Once you've earned money through gd.games, from your games dashboard, you have two options to cash out your earnings: diff --git a/docs/gdevelop5/objects/.pages b/docs/gdevelop5/objects/.pages index 6dfba9dbd1..600466b28e 100644 --- a/docs/gdevelop5/objects/.pages +++ b/docs/gdevelop5/objects/.pages @@ -9,4 +9,4 @@ nav: - 3D Model: 3d-model - ... - External Tilemap (LDtk/Tiled): tilemap - - custom-objects-prefab-template.md + - Custom Objects ("Prefabs"): custom-objects-prefab-template diff --git a/docs/gdevelop5/objects/3d-box/index.md b/docs/gdevelop5/objects/3d-box/index.md index 1d2e6d7b4d..af6541a568 100644 --- a/docs/gdevelop5/objects/3d-box/index.md +++ b/docs/gdevelop5/objects/3d-box/index.md @@ -7,14 +7,6 @@ A 3D box displays a box in 3D, with up to 6 faces each showing an image. If you need to show more detail 3D objects, check the [3D model object](../3d-model). -!!! note - - This object is new and subject to changes. Check the release notes when GDevelop is updated and read regularly this page to ensure you follow the best practices when using 3D boxes in your game. - - Notably, this object does not support yet animations for each face. - - Your help to [improve these features in the GDevelop game engine is welcome](https://github.com/4ian/GDevelop). - ## Lighting Lighting can be set up through [layers effects](../../interface/scene-editor/layer-effects). Ambient and directional light effects allow to configure basic lighting for 3D layers. @@ -24,6 +16,16 @@ Lighting can be set up through [layers effects](../../interface/scene-editor/lay - Either it does not react to light, meaning that it's always shown with the colors of the texture that was set (like a 2D object) - Or it does react to light. In this case, don't forget to set up a light in the layer effects. +## Shadows + +3D boxes can cast and receive shadows. To see them: + +- Add a **Directional Light** effect to the layer (new layers already include one and an Ambient Light). +- Ensure the box uses the **Standard** material. +- Enable **Shadow casting** and **Shadow receiving** in the object's properties (these are enabled for new objects by default). + +Shadows are rendered around the camera. You can tweak their range, quality and the light intensity by editing the Directional Light effect in the layer. + ## About transparency Support for transparency (faces with transparent or semi opaque colors) can be enabled by checking the checkbox **"Enable texture transparency"** when editing a 3D box object. diff --git a/docs/gdevelop5/objects/3d-model/3d-platformer-shadows-models.png b/docs/gdevelop5/objects/3d-model/3d-platformer-shadows-models.png new file mode 100644 index 0000000000..b358f66e12 Binary files /dev/null and b/docs/gdevelop5/objects/3d-model/3d-platformer-shadows-models.png differ diff --git a/docs/gdevelop5/objects/3d-model/index.md b/docs/gdevelop5/objects/3d-model/index.md index cdfe64e9d0..cadcc3c18b 100644 --- a/docs/gdevelop5/objects/3d-model/index.md +++ b/docs/gdevelop5/objects/3d-model/index.md @@ -3,17 +3,11 @@ title: 3D model --- # 3D model -A 3D model displays an object modeled in a 3D modeling software. Like a [sprite for 2D games](../sprite) (or for interfaces in 3D games), it's a very common object that can be used for players, enemies, backgrounds, projectiles. +A 3D model displays an object modeled in a 3D modeling software, with one or more animations. Like a [sprite for 2D games](../sprite) (or for interfaces in 3D games), it's a very common object that can be used for players, enemies, backgrounds, projectiles. If you need to create walls, plane grounds or other rectangular/cubic 3D objects, consider using the [3D box object](../3d-box). -!!! note - - This object is new and subject to changes. Check the release notes when GDevelop is updated and regularly read this page to ensure you follow the best practices when using 3D models in your game. - - Notably, this object does not yet support animations. - - Your help to [improve these features in the GDevelop game engine is welcome](https://github.com/4ian/GDevelop). +![A 3D game with multiple 3D models](3d-platformer-shadows-models.png) ## Lighting @@ -21,6 +15,16 @@ Lighting can be set up through [layers effects](../../interface/scene-editor/lay The model can be set up to react to lighting in different ways. The GLTF format can include data about light reflection. The 3D model can either use this data or use a forced configuration. +## Shadows + +3D models can cast and receive shadows. To display shadows: + +- Ensure the layer has a **Directional Light** effect. New layers in new games include this effect along with an Ambient Light by default. +- Set the object's material to **Standard** (not **Basic**, which ignores lighting). +- Enable **Shadow casting** and **Shadow receiving** in the object's properties (enabled by default for new assets from the store). + +Shadows are computed around the camera with a range suitable for most games. You can adjust the light intensity, shadow quality and range by editing the Directional Light effect in the layer's effects. + ## File format GDevelop supports 3D models saved in the **GLB (.glb) format**. It is a standardized file format used to share 3D data. Notably, it includes the 3D mesh of the object, as well as its textures or material specifications. This format is also sometimes called **GLTF**, for "GL Transmission Format". You can sometimes find .gltf files, but only the **.glb** files are supported by GDevelop, as they can embed the textures whereas .gltf files can't do this. diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template.md b/docs/gdevelop5/objects/custom-objects-prefab-template.md deleted file mode 100644 index aacad0c054..0000000000 --- a/docs/gdevelop5/objects/custom-objects-prefab-template.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: Custom Objects ("prefabs") ---- -# Custom Objects ("prefabs") - -**Custom objects** are reusable objects containing custom logic and one or more other objects. "Custom objects" are also called **"Prefabs"** or "Templates" in some game engines. - -They allow to speed-up development and make games more modular by having an object that can be reused and customized in different scenes. - -For example, the **[multitouch joysticks](/gdevelop5/objects/multitouch-joystick), [buttons](/gdevelop5/objects/button), [sliders](/gdevelop5/objects/slider)** and other user interface objects that you can find in the list of objects are “custom objects” built with other objects. - -Custom objects contain other objects, which are called "child objects". They can display on screen one or more instances of these "child objects" and can offer: - -* custom conditions, -* custom actions, -* custom expressions. - -!!! warning - - This feature is a work-in-progress. You must activate it in the preferences of GDevelop and the user experience for creating a custom object from scratch is rough. - -## Create a new custom object - -Make sure you've activated the feature in the preferences of GDevelop. - -Custom objects are grouped into "extensions". They are composed of functions, behaviors or custom objects powered by events. You can see the list of all the extensions the game has in the [Project Manager](/gdevelop5/interface/project-manager). - -Extensions that are installed by the asset store are using events. They can be modified the same way as any extensions. This allows to make some changes to the way the objects work to better fit a game. Make sure to back up your changes or rename the extension to avoid overriding them later by updating the extension. - -!!! tip - - As we write this documentation, please reach out on the forum or the help channel on Discord if you struggle to use them or have feedback. \ No newline at end of file diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/condition-used-from-custom-object.png b/docs/gdevelop5/objects/custom-objects-prefab-template/condition-used-from-custom-object.png new file mode 100644 index 0000000000..a43685c9c3 Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/condition-used-from-custom-object.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/custom-condition-in-custom-object.png b/docs/gdevelop5/objects/custom-objects-prefab-template/custom-condition-in-custom-object.png new file mode 100644 index 0000000000..37887e0eda Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/custom-condition-in-custom-object.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/custom-object-with-two-buttons.png b/docs/gdevelop5/objects/custom-objects-prefab-template/custom-object-with-two-buttons.png new file mode 100644 index 0000000000..b3c0f94ffd Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/custom-object-with-two-buttons.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/extract-custom-object.png b/docs/gdevelop5/objects/custom-objects-prefab-template/extract-custom-object.png new file mode 100644 index 0000000000..846a7cda70 Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/extract-custom-object.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/index.md b/docs/gdevelop5/objects/custom-objects-prefab-template/index.md new file mode 100644 index 0000000000..6680c215a8 --- /dev/null +++ b/docs/gdevelop5/objects/custom-objects-prefab-template/index.md @@ -0,0 +1,63 @@ +--- +title: Custom Objects ("prefabs") +--- +# Custom Objects ("prefabs") + +**Custom objects** are containers, composed of one or more other objects and having custom logic (made with events, like in a traditional scene) inside them. + +!!! tip + + "Custom objects" are also called **"Prefabs"** or "Templates" in some game engines. + +They allow to speed-up development and make games more modular by having an object that can be reused in different scenes. + +For example, you can build: + +- A **dialog**, composed of a background, some text, some buttons. This allows to do all the logic related to this dialog inside the custom object events, without cluttering the scene events. +- A character or some other game objects that is composed of **multiple parts**. For example, a player with a moving arm. + +!!! note + + The **[multitouch joysticks](/gdevelop5/objects/multitouch-joystick), [buttons](/gdevelop5/objects/button), [sliders](/gdevelop5/objects/slider)** and other user interface objects that you can find in the list of objects are “custom objects” built with other objects. + +The objects contained inside a custom object are called "children" or "child objects". + +## Create a new custom object + +Custom objects are grouped into "extensions". Extensions are composed of functions, behaviors or custom objects powered by events. You can see the list of all the extensions the game has in the [Project Manager](/gdevelop5/interface/project-manager). + +To create a new custom object, the easiest way is to add a few objects on the scene, then put an instance of each on the scene editor. Select then these instances, right click/long touch the selection and choose "Extract" > **"Extract as a custom object"**. + +![Two objects extracted into a single custom object](./extract-custom-object.png) + +Choose an extension name, custom object name and validate. This will open a new editor containing the objects you've selected along with the instances from the scene. In the scene, the instances you've selected are replaced by a unique custom object, that acts as a container for all of them. + +![A custom object that was just created](./custom-object-with-two-buttons.png) + +!!! note + + At the moment, you can't mix 2D and 3D objects in a custom object. + +If you started creating events using these objects, you must rework them. Indeed, the objects are now hidden inside the new custom object (they are called "children"). In most cases, you want to add 2 type of "functions" to your custom object: + +- A **doStepPostEvents** function that are events launched at every frame - much like scene events. They can do logic on the child objects. For example, it could rotate them, animate them or something else. +- One or more **action** or **condition**. If your scene wants to manipulate a child, or use a condition on it, it's a good sign that you need to "expose" this through a custom **action** or **condition**. + +This is an example of a condition made inside a custom object: + +![A custom condition in a custom object](./custom-condition-in-custom-object.png) + +Of course, this example is pretty simple and just check if the button is clicked. But similar conditions and actions could be added to manipulate the custom object, and any logic you add here will work across all the scenes using the custom object. + +The condition can be then used in the scene: + +![](./condition-used-from-custom-object.png) + + +By doing this for more complex needs, you can break down game menus or even gameplay objects (like a player character, complex obstacles, enemies, etc...) into custom object that can be edited independently. Your scene stays simple and only focused on the high level details of your game. + +## Change the default size of a custom object + +The grey rectangle on the scene is the custom object default size. Your can change this size by clicking on the button on the top right corner. + +![](./object-scene-properties.png) diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/button-children.png b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/button-children.png new file mode 100644 index 0000000000..f1b28dfac8 Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/button-children.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/button-properties.png b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/button-properties.png new file mode 100644 index 0000000000..ba50a4224a Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/button-properties.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/index.md b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/index.md new file mode 100644 index 0000000000..66bb7b965b --- /dev/null +++ b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/index.md @@ -0,0 +1,138 @@ +--- +title: Migrate custom objects to variants +--- +# Migrate custom objects to variants + +The migration to variants is recommended but not mandatory. You can keep using your current extension version the same way as before, but you won't get any new feature or bug fix for the custom objects. + +!!! warning + + Make sure to backup your project before migrating to variants. + + +## Migrate custom objects from the asset-store + +The assets of the store are now using variants. If your custom object comes from the asset-store, you only have to follow a few steps: + +- Find back your assets in the store +- Install them in your project +- Accept the extension update +- Choose the new variant on your objects + +![](./variant-selector.png) + + +## Migrate custom objects with your own assets + +Custom object variants use a graphical editor to place the instances. Properties that once fit this role has been removed in the new extensions. It means that after the extension update the custom objects will look deformed. You can fix this by adjusting the instances positions inside the custom object with the graphical editor. + +!!! note + + A good way to start is to read the [custom objects](/gdevelop5/objects/custom-objects-prefab-template) page to learn about the general concepts. + +The following sections give specific instructions for each custom object. + +### Migrate buttons + +After upgrading the button extension, you will notice that the label of all buttons disappeared. + +- Copy and paste the text from **Initial text to display** to the **Label** property. + +![](./button-properties.png) + +- Apply the changes. The label came back but it's probably misaligned. +- Go back in the object editor and duplicate the default variant by clicking on the **Duplicate** button below the **Variant** title. +- Choose a name for your new button style. +- To edit the new variant, click on the **Edit** button, close the dialog and select the new opened tab. + +You should see something like this: + +![](./button-children.png) + +- Report your configuration on the **Object's children** on the left. For convenience, you may want to open your project backup in a second instance of GDevelop. +- Adapt the [default size](/gdevelop5/objects/custom-objects-prefab-template#change-the-default-size-of-a-custom-object) to your image resources. + +The **Top margin**, **Bottom margin**, **Right margin** and **Bottom margin** properties no longer exist. You can adjust the label position directly with the graphical editor. + +For the other buttons in your project, you can choose the new variant you created and only copy the label value. + + +### Migrate sliders + +After upgrading the button extension, you will notice that the slider is deformed. + +- Open the object editor and duplicate the default variant by clicking on the **Duplicate** button below the **Variant** title. +- Choose a name for your new slider style. +- To edit the new variant, click on the **Edit** button, close the dialog and select the new opened tab. + +![](./variant-selector.png) + +You should see something like this: + +![](./slider-children.png) + +- Report your configuration on the **Object's children** on the left. For convenience, you may want to open your project backup in a second instance of GDevelop. +- Adapt the [default size](/gdevelop5/objects/custom-objects-prefab-template#change-the-default-size-of-a-custom-object) to your image resources. + +The **Bar top margin**, **Bar bottom margin**, **Bar right margin** and **Bar bottom margin** properties no longer exist. You can adjust the bar position directly with the graphical editor. + +For the other sliders in your project, you can choose the new variant you created, no additional change is required. + + +### Migrate toggle switches + +After upgrading the button extension, you will notice that the toggle switch is deformed. + +- Open the object editor and duplicate the default variant by clicking on the **Duplicate** button below the **Variant** title. +- Choose a name for your new toggle switch style. +- To edit the new variant, click on the **Edit** button, close the dialog and select the new opened tab. +- Report your configuration on the **Object's children** on the left. For convenience, you may want to open your project backup in a second instance of GDevelop. +- Adapt the [default size](/gdevelop5/objects/custom-objects-prefab-template#change-the-default-size-of-a-custom-object) to your image resources. + +![](./variant-selector.png) + +For the other toggle switch in your project, you can choose the new variant you created, no additional change is required. + + +### Migrate resource bars (continuous) + +After upgrading the button extension, you will notice that the slider is deformed. + +- Open the object editor and duplicate the default variant by clicking on the **Duplicate** button below the **Variant** title. +- Choose a name for your new resource bar style. +- To edit the new variant, click on the **Edit** button, close the dialog and select the new opened tab. + +![](./variant-selector.png) + +You should see something like this: + +![](./resource-bar-continuous-children.png) + +- Report your configuration on the **Object's children** on the left. For convenience, you may want to open your project backup in a second instance of GDevelop. +- Adapt the [default size](/gdevelop5/objects/custom-objects-prefab-template#change-the-default-size-of-a-custom-object) to your image resources. + +The **Bar top margin**, **Bar bottom margin**, **Bar right margin** and **Bar bottom margin** properties no longer exist. You can adjust the bar position directly with the graphical editor. + +For the other resource bars in your project, you can choose the new variant you created, no additional change is required. + + +### Migrate Resource bars (separated units) + +After upgrading the button extension, you will notice that the slider is deformed. + +- Open the object editor and duplicate the default variant by clicking on the **Duplicate** button below the **Variant** title. +- Choose a name for your new resource bar style. +- To edit the new variant, click on the **Edit** button, close the dialog and select the new opened tab. + +![](./variant-selector.png) + +You should see something like this: + +![](./resource-bar-unit-children.png) + +- Report your configuration on the **Object's children** on the left. For convenience, you may want to open your project backup in a second instance of GDevelop. +- Adapt the [default size](/gdevelop5/objects/custom-objects-prefab-template#change-the-default-size-of-a-custom-object) to your image resources. + +The **Bar right margin** and **Bar bottom margin** properties no longer exist. You can adjust the bar position directly with the graphical editor. + +For the other resource bars in your project, you can choose the new variant you created, no additional change is required. diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/resource-bar-continuous-children.png b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/resource-bar-continuous-children.png new file mode 100644 index 0000000000..227ed0d1fe Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/resource-bar-continuous-children.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/resource-bar-unit-children.png b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/resource-bar-unit-children.png new file mode 100644 index 0000000000..e230f06941 Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/resource-bar-unit-children.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/slider-children.png b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/slider-children.png new file mode 100644 index 0000000000..93de005cb6 Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/slider-children.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/variant-selector.png b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/variant-selector.png new file mode 100644 index 0000000000..f4ff344dbc Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/migrate-to-variants/variant-selector.png differ diff --git a/docs/gdevelop5/objects/custom-objects-prefab-template/object-scene-properties.png b/docs/gdevelop5/objects/custom-objects-prefab-template/object-scene-properties.png new file mode 100644 index 0000000000..c1ef6d70ae Binary files /dev/null and b/docs/gdevelop5/objects/custom-objects-prefab-template/object-scene-properties.png differ diff --git a/docs/gdevelop5/objects/index.md b/docs/gdevelop5/objects/index.md index d742309804..f65094cda7 100644 --- a/docs/gdevelop5/objects/index.md +++ b/docs/gdevelop5/objects/index.md @@ -1,28 +1,35 @@ --- title: Objects +icon: material/cube --- # Objects -In GDevelop, everything on the screen is an _object_. This includes — but is not limited to — the playable character, enemies, and parts of the environment. +In GDevelop, everything displayed on screen is an _object_. This includes—but is not limited to—the playable character, enemies, and parts of the environment. -You can create different types of objects for different purposes. For example, [Sprite](/gdevelop5/objects/sprite) objects add animated graphics to a game, while [Text](/gdevelop5/objects/text) objects add text to a game. +You can use different types of objects in your game, each serving a specific purpose. For example, [Sprite](/gdevelop5/objects/sprite) objects display animated visuals, while [Text](/gdevelop5/objects/text) objects show written content. -Objects can have [behaviors](/gdevelop5/behaviors) attached to them, adding to objects some pre-defined functionalities. You can use [events](/gdevelop5/events) to manipulate an object during the game (change its position, rotate it, change its animation, add an effect, etc...). +Objects can also include [behaviors](/gdevelop5/behaviors), which give them built-in abilities—like moving, jumping, or following a path. To control what happens during gameplay, you can use [events](/gdevelop5/events) to make objects move, rotate, switch animations, or apply effects. -## List of objects +
+ +
+ +## Common object types in GDevelop -This section lists the different types of objects, each of which serves a unique purpose. +GDevelop offers a wide variety of objects, each designed for a specific use. Below is a selection of commonly used ones, grouped by purpose: -- General: +- **General objects** (used for visuals, layouts, or 3D elements): - [Sprite](/gdevelop5/objects/sprite) - - [Tiled sprite](/gdevelop5/objects/tiled_sprite) + - [Tiled Sprite](/gdevelop5/objects/tiled_sprite) - [Panel Sprite ("9-patch")](/gdevelop5/objects/panel_sprite) - [Tilemap](/gdevelop5/objects/simple-tilemap) -- Display a text (score, name, explanation): + - [3D Model](/gdevelop5/objects/3d-model) + - [3D Box](/gdevelop5/objects/3d-box) +- **Display text** (like scores, dialogue, or labels): - [Text](/gdevelop5/objects/text) - [Bitmap text](/gdevelop5/objects/bitmap_text) - [BBText](/gdevelop5/objects/bbtext) -- Build user interfaces: +- **Create user interfaces** (menus, controls, input fields, etc.): - [Text input](/gdevelop5/objects/text_input) - [Button](/gdevelop5/objects/button) - [Multi-touch joystick](/gdevelop5/objects/multitouch-joystick) @@ -30,18 +37,17 @@ This section lists the different types of objects, each of which serves a unique - [Toggle switch](/gdevelop5/objects/toggle-switch) - [Resource bar](/gdevelop5/objects/resource-bar) - [Video](/gdevelop5/objects/video) -- Make visual effects: - - [Particles emitter](/gdevelop5/objects/particles_emitter) - - [Light](/gdevelop5/objects/light) +- **Add visual effects** (particles, lighting, drawing shapes): + - [2D Particle emitter](/gdevelop5/objects/particles_emitter) + - [3D Particle Emitter](/gdevelop5/extensions/particle-emitter3d/) + - [2D Light](/gdevelop5/objects/light) - [Shape painter](/gdevelop5/objects/shape_painter) -- Advanced effects or rendering: +- **Advanced effects or rendering**: - [External Tilemap (LDtk/Tiled)](/gdevelop5/objects/tilemap) -## Learn about some objects with this video tutorial +!!! tip -
- -
+ Many more objects are available through extensions, which you can add from the extension library. Advanced users can also **create their own custom objects**, either to create an entirely new kind of object on the screen or to [assemble multiple objects into one ("prefabs")](/gdevelop5/objects/custom-objects-prefab-template). ## Adding an object to your game @@ -56,12 +62,12 @@ This section lists the different types of objects, each of which serves a unique ## Choosing a name for your object -Objects are given a default name when they are created. You can change this from the object editor or using the context menu on the object in the objects list. +Objects are given a default name when they are created. You can change this from the object editor or by using the context menu on the object in the objects list. -Note that there are limitations on how you name your object: you can only use alphanumeric characters and no spaces. You can use an underscore if you want to make a separation between words (though usually, games are using casing to separate words. For example: `EnemyBullet`). -This is to make sure your object will be recognized properly when used in [expressions](/gdevelop5/all-features/expressions). +Note that there are limitations on how you name your object: you can only use alphanumeric characters and no spaces. You can use an underscore if you want to separate words (though games typically use camelCase to separate words, for example: `EnemyBullet`). +This is to ensure your object will be recognized properly when used in [expressions](/gdevelop5/all-features/expressions). -Some good exampless of names are: `Player`, `RedEnemy`, `Red_Enemy`, `Car1`, `FinalBoss`, `Final_Boss`, `Wall`... Giving a descriptive name is useful to make sure you can quickly identify objects in the events. +Some good examples of names are: `Player`, `RedEnemy`, `Red_Enemy`, `Car1`, `FinalBoss`, `Final_Boss`, `Wall`... Giving a descriptive name is useful to help you quickly identify objects in events. ## Adding an instance of an object to a scene @@ -81,34 +87,40 @@ You can customize the following properties of an object's instance: ### Position -All objects have coordinates. These coordinates correspond to the horizontal position (X-axis) and the vertical position (Y-axis) on the [Cartesian plane](https://en.wikipedia.org/wiki/Cartesian_coordinate_system). The X-coordinate decreases as you go to the left and increases as you go to the right. The Y-coordinate increases as you go down and decreases as you go up. +Every object has a position in the game world, defined by coordinates. These coordinates follow the [Cartesian coordinate system](https://en.wikipedia.org/wiki/Cartesian_coordinate_system), with **X** for horizontal placement and **Y** for vertical placement. The X value increases as you move right and decreases as you move left. The Y value increases as you move down and decreases as you move up. + +If you're working with 3D objects, there's also a **Z** coordinate, which adds depth alongside X and Y. ![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20201015-145909.png) ### Angle -The **Angle** option defines the rotation of an object in degrees. The following illustration demonstrates how GDevelop understands the angle of rotation: +The **Angle** option defines the rotation of an object, in degrees. The following illustration demonstrates how GDevelop understands the angle of rotation for 2D objects: ![](gdevelop_co.png) +3D objects also have **rotation**, in degrees, around the X and Y axes. + !!! warning - If you use trigonometric functions like the sine or the cosine, you need to express the angles in radians. (1 radian = 180/PI degrees and 1 degree = PI/180 radians. PI is the number which is approximately equal to 3.14159). You can use expressions `ToRad` and `ToDeg` in events to convert between degrees and radians. + If you use trigonometric functions like sine or cosine, you need to express angles in radians. (1 radian = 180/PI degrees and 1 degree = PI/180 radians. PI is the number approximately equal to 3.14159). You can use the expressions `ToRad` and `ToDeg` in events to convert between degrees and radians. !!! tip Also see more details about [How to rotate objects](/gdevelop5/objects/how-to-rotate-objects). -### Z Order +### Z Order (for 2D objects) -When objects on the same layer overlap, the **Z Order** of the object determines whether the objects appear in front or behind one another. For example, an object with a **Z Order** of `2` appears in front of an object with a **Z Order** of `1`. +When objects on the same layer overlap, the **Z Order** of the object determines whether the objects appear in front of or behind one another. For example, an object with a **Z Order** of `2` appears in front of an object with a **Z Order** of `1`. -In the following image, the Z order of the bush on left is `2`, the Z order of the coin is `1`, and the Z order of the bush on the right is `0`: +In the following image, the Z order of the bush on the left is `2`, the Z order of the coin is `1`, and the Z order of the bush on the right is `0`: ![](coin-bush-zorder.png) The value of the **Z Order** field can be any integer, including negative numbers and zero. +Note that 3D objects don't have a Z order, but rather a Z coordinate in 3D space. + ### Layer All objects exist on a layer. Objects are then drawn onto the screen layer-by-layer, from bottom to top. This means an object on the top layer will always appear in front of objects on the bottom layer (even if the objects in the bottom layer have a higher **Z Order** value). @@ -119,7 +131,7 @@ Typically, background objects, interactive objects (such as the playable charact ### Lock position/angle in the editor -Sometimes, a scene has a lot of objects and it's difficult to select a specific instance. If you enable the **Lock position/angle in the editor** option, you can no longer select the instance, which makes it easier to select the instance you _do_ want to select. +Sometimes, a scene has many objects and it's difficult to select a specific instance. If you enable the **Lock position/angle in the editor** option, you can no longer select the instance, which makes it easier to select the instance you _do_ want to select. ![](base_object/pasted/20200406-093052.png) @@ -133,7 +145,7 @@ For more information, refer to [Object variables](/gdevelop5/all-features/variab ### Custom size -If enabled, you can change the height and width of the object instance. This height and width is distinct from the dimensions of the original object. +If enabled, you can change the height and width of the object instance. These dimensions are distinct from those of the original object. ![](pasted/20230305-104815.png) @@ -143,14 +155,15 @@ Each instance of an object living on the scene can have timers set during the ga ### Visibility -By default, object instances are all marked as visible, meaning that they are displayed on the screen. Using events, you can **hide** any instance during the game. An hidden object instance won't be displayed anymore, but will still live on the scene (reacting to collisions, and following all other events as usual). +By default, object instances are all marked as visible, meaning they are displayed on the screen. Using events, you can **hide** any instance during the game. A hidden object instance won't be displayed anymore, but will still exist on the scene (reacting to collisions and following all other events as usual). !!! tip - Some objects, like Sprite or Text objects, can also have an **opacity**. The opacity, between 0 and 255, defines how transparent an object is (0 being fully transparent, 255 is the fully opaque and is the default). This can be changed independently from the visibility. + Some objects, like Sprite or Text objects, can also have an **opacity**. The opacity, between 0 and 255, defines how transparent an object is (0 being fully transparent, 255 being fully opaque and is the default). This can be changed independently from the visibility. + ## Adding effects to objects -You can add extra visual effects to objects. For example, you could use the "Outline" effect to make an object to pick up or to use more visible. You can also use more advanced visual effects that change the shape of the object or create interesting visual results. +You can add extra visual effects to objects. For example, you could use the "Outline" effect to make an object easier to pick up or more visible. You can also use more advanced visual effects that change the shape of the object or create interesting visual results. ![](pasted/20210820-093809.png) @@ -158,20 +171,20 @@ Read [this page to learn more about adding effects to your objects](/gdevelop5/o !!! note - You can also add visual effects to a layer of the scene - useful for example to animate a background or change the atmosphere of the whole level at once. Read more about [adding effects to layers here](/gdevelop5/interface/scene-editor/layer-effects). + You can also add visual effects to a layer of the scene—useful for example to animate a background or change the atmosphere of the whole level at once. Read more about [adding effects to layers here](/gdevelop5/interface/scene-editor/layer-effects). ## In the events editor -You can change and manipulate the properties of an instance of an object, or of multiple instances, using events during the game. This is even what game making is all about in GDevelop: to manipulate objects in real-time as we play the game. As the events and events editor are out of the scope of this page, refer to [the basic game making concepts](/gdevelop5/tutorials/basic-game-making-concepts) page to get started. +You can change and manipulate the properties of an instance of an object, or of multiple instances, using events during the game. This is the essence of game making in GDevelop: manipulating objects in real-time as the game is played. Since events and the events editor are beyond the scope of this page, refer to [the basic game making concepts](/gdevelop5/tutorials/basic-game-making-concepts) page to get started. -* All objects share the **same common features** (like position, angle and everything that is written on this page), and there are a lot of conditions and actions that you can use for all objects. -* Objects can also provides you with specific feature. For example, [Sprite objects](/gdevelop5/objects/sprite) can have animations, and the animation being played can be changed using an action. Find more information in the page of each specific object. +* All objects share the **same common features** (like position, angle, and everything that is written on this page), and there are many conditions and actions that you can use for all objects. +* Objects can also provide you with specific features. For example, [Sprite objects](/gdevelop5/objects/sprite) can have animations, and the animation being played can be changed using an action. Find more information on the page for each specific object. ### Organizing objects into groups for events You can organize objects into _groups_ and then refer to all of the objects in that group by a single name. -This makes it possible to create events that applies to lots of objects without repeating events multiple times, increasing performance of your game, maintainability, and readability of your events. +This makes it possible to create events that apply to many objects without repeating events multiple times, increasing the performance of your game, maintainability, and readability of your events. !!! tip @@ -181,8 +194,8 @@ This makes it possible to create events that applies to lots of objects without Thanks to its modular extension system, you can create custom objects, which are reusable objects containing one or more other objects. ["Custom objects" are also called "Prefabs" or "templates"](/gdevelop5/objects/custom-objects-prefab-template) in some game engines. -For example, the [multitouch joysticks](/gdevelop5/objects/multitouch-joystick), buttons, sliders and other user interface objects that you can find in the list of objects are "custom objects" built with other objects. +For example, the [multitouch joysticks](/gdevelop5/objects/multitouch-joystick), buttons, sliders, and other user interface objects that you can find in the list of objects are "custom objects" built with other objects. ## Reference -All actions, conditions and expressions are listed in [the object reference page](/gdevelop5/all-features/object/reference) +All actions, conditions, and expressions are listed in [the object reference page](/gdevelop5/all-features/object/reference). diff --git a/docs/gdevelop5/objects/multitouch-joystick/index.md b/docs/gdevelop5/objects/multitouch-joystick/index.md index 0c769175f0..d01a14720a 100644 --- a/docs/gdevelop5/objects/multitouch-joystick/index.md +++ b/docs/gdevelop5/objects/multitouch-joystick/index.md @@ -63,6 +63,22 @@ The multitouch button behavior allows the developer to choose a button name. The [![](platformer-example-multitouch-controls.png){ width="320" }](https://editor.gdevelop.io/?project=example://platformer) +### Move a 3D platformer character + +The "3D platformer multitouch controller mapper" behavior can be added to a [3d physics character](/gdevelop5/behaviors/physics3d) to make the character move according to player touches automatically. + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-platformer){ .md-button .md-button--primary } + +[![](/gdevelop5/behaviors/physics3d/platformer3d.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-platformer) + +### Move a 3D shooter character + +The "3D shooter multitouch controller mapper" behavior can be added to a [3d physics character](/gdevelop5/behaviors/physics3d) to make the character move according to player touches automatically. + +[Open example in GDevelop](https://editor.gdevelop.io/?project=example://3d-first-person){ .md-button .md-button--primary } + +[![](/gdevelop5/behaviors/physics3d/first-person.png){ width="320" }](https://editor.gdevelop.io/?project=example://3d-first-person) + ### Move a character with a custom movement Joysticks and buttons can be used to create controls similar to a real gamepad. Interactions of each player can be checked with the conditions in the following screenshot. diff --git a/docs/gdevelop5/objects/particles_emitter/index.md b/docs/gdevelop5/objects/particles_emitter/index.md index beb21ea7d4..6b95e753ca 100644 --- a/docs/gdevelop5/objects/particles_emitter/index.md +++ b/docs/gdevelop5/objects/particles_emitter/index.md @@ -1,16 +1,14 @@ --- -title: Particles emitters +title: Particle emitters --- -# Particles emitters +# Particle emitters -Particle emitters can be used to display a large number of small particles. They can be used to simulate effects in a game. A few examples of particle emitters are fire, explosions, smoke, and dust. +Particle emitters let you create and display many small particles to simulate visual effects in your game—like fire, explosions, smoke, or dust. GDevelop includes both 2D and 3D particle emitters to bring these effects to life. -The Particles Emitter object parameters can be configured in multiple different ways to create a specific desired effect. +This pages mostly describes the 2D particle emitter object, but the [3D particle emitters](/gdevelop5/extensions/particle-emitter3d) work the same.
- +
## Particle types @@ -60,4 +58,5 @@ You can also change the maximum number of particles rendered by the object on th ## Reference -All actions, conditions and expressions are listed in [the particle system reference page](/gdevelop5/all-features/particle-system/reference/). +All actions, conditions and expressions for the 2D particle emitter are listed in [this reference page](/gdevelop5/all-features/particle-system/reference/). +All actions, conditions and expressions for the 23 particle emitter are listed in [this reference page](/gdevelop5/extensions/particle-emitter3d). diff --git a/docs/gdevelop5/objects/particles_emitter/ParticleEmitterWishforgeVideo.mp4 b/docs/gdevelop5/objects/particles_emitter/unused/ParticleEmitterWishforgeVideo.mp4 similarity index 100% rename from docs/gdevelop5/objects/particles_emitter/ParticleEmitterWishforgeVideo.mp4 rename to docs/gdevelop5/objects/particles_emitter/unused/ParticleEmitterWishforgeVideo.mp4 diff --git a/docs/gdevelop5/objects/spine/image.png b/docs/gdevelop5/objects/spine/image.png new file mode 100644 index 0000000000..07f0f58f45 Binary files /dev/null and b/docs/gdevelop5/objects/spine/image.png differ diff --git a/docs/gdevelop5/objects/spine/index.md b/docs/gdevelop5/objects/spine/index.md new file mode 100644 index 0000000000..76af0c02c9 --- /dev/null +++ b/docs/gdevelop5/objects/spine/index.md @@ -0,0 +1,52 @@ +--- +title: Spine +--- + +# Spine (Experimental) + +The **Spine** object allows you to display and smoothly animate 2D skeletal animations created with [**Spine editor**](https://esotericsoftware.com/spine). + +![Calcopus Spine Demo](image.png) + +!!! warning + This object is currently experimental — please share your feedback on the forum so we can improve it in future versions of GDevelop. + +The Spine object is ideal for animating complex 2D characters with bones and meshes. +It supports smooth transitions between animations, as well as access to points and attachments defined in Spine. + +You can: + +- Load and display Spine animations exported from the Spine editor. +- Control animation playback and blending. +- Retrieve the position of specific **point attachments** defined in your Spine skeleton. +- Use multiple animations with smooth transitions between them. + +It uses files exported from Spine (`.json`, `.atlas`, and image files) to render and animate characters or elements with smooth, interpolated bone-based movement. + +!!! tip + To ensure proper compatibility with GDevelop, use **Spine version 4.1** when exporting your animations. You can select the Spine version in the **Spine launcher** before exporting your files. + + +!!! note + If you use Spine, you need to have a license, [read more on here](https://esotericsoftware.com/spine-purchase). + + +## Properties + +In the object editor, you can configure: + +| Property | Description | +| ------------------- | --------------------------------------------------------------------------------------------------------- | +| **Spine JSON file** | The main file describing bones, animations, and attachments. | +| **Scale** | The overall display scale of the skeleton. Default value is **1**. | +| **Animations list** | List of available animations. Click **Scan** to automatically generate the list from the Spine JSON file. | + +## Examples + +You can explore example(s) to see how a Spine object is integrated in a GDevelop project: + +[Open the Calcopus Spine Demo](https://gdevelop.io/game-example/free/calcopus-spine-demo){ .md-button .md-button--primary } + +## References + +You can browse all the actions, conditions and expressions related to [the Spine object on this reference page](/gdevelop5/all-features/spine/reference/) diff --git a/docs/gdevelop5/objects/sprite/index.md b/docs/gdevelop5/objects/sprite/index.md index 7132316d33..7616302769 100644 --- a/docs/gdevelop5/objects/sprite/index.md +++ b/docs/gdevelop5/objects/sprite/index.md @@ -7,6 +7,10 @@ Sprite objects are the most commonly used [objects](/gdevelop5/objects) in GDeve A sprite object allows us to display an image or play a series of images as an animation. It can be used for many things in our games, like buttons, characters, or platforms. Anything that can be represented with an image can be a sprite object. +
+ +
+ ## Creating a sprite object To add a sprite to your scene, select the "Click to add an object" option located on the right at the bottom of the objects panel. diff --git a/docs/gdevelop5/preferences.md b/docs/gdevelop5/preferences.md index e5bb524d0b..59bf36a165 100644 --- a/docs/gdevelop5/preferences.md +++ b/docs/gdevelop5/preferences.md @@ -3,13 +3,13 @@ title: Preferences --- # Preferences -You can change how GDevelop looks and acts to your liking. +You can change how GDevelop looks and behaves to suit your preferences. -##Opening Preferences +## Opening Preferences -On the **web app**: Projects manager → Preferences +**On the web app**: Projects manager → Preferences -On the **desktop version**: Files → Preferences +**On the desktop version**: File → Preferences ![](/gdevelop5/gdevelop-preferences-locate.gif) @@ -17,59 +17,59 @@ The preferences window will look like this: ![](/gdevelop5/preferences.png) -##Changing the theme +## Changing the theme ![](/gdevelop5/properties-appearance.png) -Themes allow you to change how the interface looks +Themes let you customize the look of the interface. -**UI theme** changes the UI's look +**UI theme** changes the application's appearance. -**Code editor theme** changes the look of the code editor in the JavaScript code block +**Code editor theme** changes how the JavaScript code block looks. ![](/gdevelop5/codeblockmonokai.png) -There are multiple themes you can choose from. You can also create your own themes! See, [how you can make one](https://github.com/4ian/GDevelop/blob/master/newIDE/README-themes.md) +There are multiple themes to choose from, and you can even create your own. See [how you can make one](https://github.com/4ian/GDevelop/blob/master/newIDE/README-themes.md). -##Changing backdrop click behaviour +## Changing backdrop click behavior ![](/gdevelop5/properties-dialogue.png) -This allows you to choose what will happen when the backdrop (The faded part outside a window) is clicked. +This setting controls what happens when the backdrop (the faded area outside a window) is clicked. -If **No changes** is selected, clicking the backdrop won't close the window +If **No changes** is selected, clicking the backdrop won't close the window. -If **Cancel changes** is selected, the changes done in the current window will be **abandoned** (Only happens in some windows) +If **Cancel changes** is selected, any edits in the current window are **abandoned** (only available in some windows). -If **Apply changes**(Default) is selected, the changes done in the current window will be **applied**(Only happens in some windows) +If **Apply changes** (default) is selected, any edits in the current window are **applied** (only available in some windows). -##Hints and Explanations +## Hints and explanations -GDevelop shows some hints/explanations for some features in the UI. You can toggle them off if you don't want them to be shown. +GDevelop displays hints and explanations for certain features. You can turn them off if you prefer. -Example of an hint/explanation: +Example of a hint/explanation: ![](/gdevelop5/hints2.png) ## Keyboard shortcuts -There is a separate page discussing about keyboard shortcuts and the command palette +There is a separate page discussing keyboard shortcuts and the command palette. -See, [command palette and shortcuts](/gdevelop5/interface/command-palette-and-shortcuts) +See [command palette and shortcuts](/gdevelop5/interface/command-palette-and-shortcuts). -## Changing Language +## Changing language You can choose what language the interface should use. -Go to the **Start Page** +Go to the **Start Page**: ![](/gdevelop5/home-page-language-select.png) -You can choose from the options of languages from the list. +Choose from the available languages in the list. -Some language might not be fully supported, you can see the estimate of how much has been translated. +Some languages might not be fully supported—you can see an estimate of the translation progress. -You can help translate GDevelop to your language and report any mistakes. It would be much appreciated. +You can help translate GDevelop into your language and report any mistakes. Your help is greatly appreciated. ![](/gdevelop5/changinglanguage2.png) diff --git a/docs/gdevelop5/publishing/android_and_ios_with_cordova.md b/docs/gdevelop5/publishing/android_and_ios_with_cordova.md index dc95d90325..58e4d930bc 100644 --- a/docs/gdevelop5/publishing/android_and_ios_with_cordova.md +++ b/docs/gdevelop5/publishing/android_and_ios_with_cordova.md @@ -56,7 +56,7 @@ npm install -g cordova After that, navigate to your Cordova project's directory and type this on the command prompt or terminal: -- `cordova platform add ios` if you want to export your game to iOS. +- `cordova platform add ios@7.1` if you want to export your game to iOS. - `cordova platform add android@13` if you want to export your game to Android. This will create new folders on your project's directory: diff --git a/docs/gdevelop5/publishing/index.md b/docs/gdevelop5/publishing/index.md index 8780cbc2b3..93c41a571a 100644 --- a/docs/gdevelop5/publishing/index.md +++ b/docs/gdevelop5/publishing/index.md @@ -1,36 +1,41 @@ --- title: Publishing games +icon: material/cloud-upload --- # Publishing games -GDevelop allows you to publish your games to any modern platform: desktop, web and mobile. The game needs to be exported first. +GDevelop allows you to publish your games to any modern platform: desktop, web, and mobile. The game needs to be exported first. -In order to export the game, click **Share** in the GDevelop Interface. You will be presented with multiple options to choose from: +To export the game, click **Share** in the GDevelop interface. You will be presented with multiple options to choose from: ![Share game](Export.png) +
+ +
+ ## Publish and share on GDevelop's free service gd.games **[gd.games](https://gd.games)** is the gaming platform hosted by GDevelop, dedicated to games powered by GDevelop. -It's a perfect place to publish your game and share it to get feedback from players or friends. Hosting is free, and you can redirect your audience to the game page. +It's a great place to publish your game and gather feedback from players or friends. Hosting is free, and you can redirect your audience to the game page. -You can customise the link to your game, activate feedbacks and benefit from the GDevelop community of players and creators. +You can customize the link to your game, activate feedback, and benefit from the GDevelop community of players and creators. [Click here for more information on publishing your game with gd.games.](/gdevelop5/publishing/web) ## Publish your game -### Publish on Stores and other platforms +### Publish on stores and other platforms - * **[Web (for web gaming platforms)](/gdevelop5/publishing/html5_game_in_a_local_folder):** this option allows you to export your game in to a folder and upload it manually. This is perfect to share your game on [Poki](./poki), [Crazy Games](./crazy-games), Newgrounds, [Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store), [Itch.io](/gdevelop5/publishing/publishing-to-itch-io) or other web-based gaming platforms. - * **[Mobile (iOS, Android...)](/gdevelop5/publishing/android_and_ios):** this prepares your game for Android (iOS support is coming soon). Once ready, you get a link to play it on Android and [publish it to the Play Store](/gdevelop5/publishing/android_and_ios/play-store) (or App Store later for iOS) or on the [Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store). - * **[Desktop (standalone executable, Steam...)](/gdevelop5/publishing/windows-macos-linux)**: this option bundles your game as a Windows, macOS or Linux application, perfect for [Steam](/gdevelop5/publishing/publish-to-steam) or other stores. - * **[Facebook Instant Games (Messenger)](/gdevelop5/publishing/publishing-to-facebook-instant-games):** this prepare your game so that it can be uploaded on Facebook Instant Games and played on Messenger, shared with your friends and then published worldwide. + * **[Web (for web gaming platforms)](/gdevelop5/publishing/html5_game_in_a_local_folder):** This option allows you to export your game to a folder and upload it manually. This is perfect for sharing your game on [Poki](./poki), [Crazy Games](./crazy-games), Newgrounds, [Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store), [Itch.io](/gdevelop5/publishing/publishing-to-itch-io), or other web-based gaming platforms. + * **[Mobile (iOS, Android...)](/gdevelop5/publishing/android_and_ios):** This prepares your game for Android (iOS support is coming soon). Once ready, you get a link to play it on Android and [publish it to the Play Store](/gdevelop5/publishing/android_and_ios/play-store) (or App Store later for iOS) or on the [Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store). + * **[Desktop (standalone executable, Steam...)](/gdevelop5/publishing/windows-macos-linux)**: This option bundles your game as a Windows, macOS, or Linux application, perfect for [Steam](/gdevelop5/publishing/publish-to-steam) or other stores. + * **[Facebook Instant Games (Messenger)](/gdevelop5/publishing/publishing-to-facebook-instant-games):** This prepares your game so that it can be uploaded on Facebook Instant Games and played on Messenger, shared with your friends, and then published worldwide. ### Publish manually -There export options will require some manual work on your part, and are intended for advanced users: +These export options will require some manual work on your part and are intended for advanced users: - * **[Web](/gdevelop5/publishing/html5_game_in_a_local_folder):** this option is the same as in the prior category. - * **[Mobile](/gdevelop5/publishing/android_and_ios_with_cordova):** this option is going to export your game ready to be used as a Cordova project. You can then use Cordova command line tools to build your game for Android and iOS. - * **[Desktop](/gdevelop5/publishing/windows-macos-linux-with-electron):** this option is going to export your game ready to be used as an Electron project. You can then use command line tools to build your game for Windows, macOS or Linux. + * **[Web](/gdevelop5/publishing/html5_game_in_a_local_folder):** This option is the same as in the prior category. + * **[Mobile](/gdevelop5/publishing/android_and_ios_with_cordova):** This option exports your game ready to be used as a Cordova project. You can then use Cordova command line tools to build your game for Android and iOS. + * **[Desktop](/gdevelop5/publishing/windows-macos-linux-with-electron):** This option exports your game ready to be used as an Electron project. You can then use command line tools to build your game for Windows, macOS, or Linux. diff --git a/docs/gdevelop5/publishing/ios/app-store/index.md b/docs/gdevelop5/publishing/ios/app-store/index.md index d5befbba2c..1f7a893ac4 100644 --- a/docs/gdevelop5/publishing/ios/app-store/index.md +++ b/docs/gdevelop5/publishing/ios/app-store/index.md @@ -48,9 +48,9 @@ In GDevelop, click on **Add/edit** button next to the certifcate/provisioning pr - CLick on the **+** button to add a new API key. - Enter a name for your key and choose **Administrator** access. Click on **Generate**. - !!!! warning +!!! warning - The automatic upload won't work if you don't have an Authentication Key or if you have not chosen "Administrator" access. + The automatic upload won't work if you don't have an Authentication Key or if you have not chosen "Administrator" access. - Download the key that was generated thanks to the *Download* button on the right of the row showing the key. - Copy and paste in GDevelop the **Key ID** (in the row showing the key) and the **Issuer ID** (shown at the top of the page). @@ -92,4 +92,4 @@ When you want your game to be reviewed by Apple, you can do it from the App Stor Apple will ask you to fill all the informtion on the **Distribution** tab of your app: description of your game, screenshots, etc... -You can find various resources on the web explaining how to best do this. \ No newline at end of file +You can find various resources on the web explaining how to best do this. diff --git a/docs/gdevelop5/publishing/ios/index.md b/docs/gdevelop5/publishing/ios/index.md index bef129da57..aa5a3456a9 100644 --- a/docs/gdevelop5/publishing/ios/index.md +++ b/docs/gdevelop5/publishing/ios/index.md @@ -15,11 +15,11 @@ GDevelop can automatically package your game for iOS so that you can test it on It is important to verify that your game is ready to be exported for iOS: - In the game properties that are accessible from the [Project Manager](/gdevelop5/interface)), make sure to enter a valid _package name_. A package name is an identifier like this: `com.yourname.gamename`. It's like the address of a website but reversed. You can choose any package name provided that: - + - It is not used by another game or application on iOS or Android. - It is written with only letters, numbers, and dots. Only put one dot between words (for example, `com..mygame` or `..mygame` are not valid). _Limit this identifier to 2-5 words maximum._ - You properly registered it on the [App Store Connect website](./app-store), if you want to publish it on the App Store. - + - Also check that you've included the required icons. !!! warning @@ -82,7 +82,11 @@ To create a provisioning profile, go to the [Apple Developer provisioning profil ![Choose provisioning type](provisioning-profile-choose-type.png) -- Choose _XCode iOS Wildcard App ID_ and then **Continue**. +- Choose your app id and then **Continue**. You can also select _XCode iOS Wildcard App ID_ if you have it. + If you don't have an app id, follow the [instructions to create one here](./app-store). Be sure to use the exact same app id as your game package name in GDevelop. + + ![Choose app id](provisioning-profile-choose-app-id.png) + - Choose the certificate you created previously. If you don't see any certificate, you probably have mismatched the kind of certificate you created (development or distribution). - For a profile used for _testing on your devices_, you'll be asked for checking the devices that you want to test on. - Finally, click on **Continue** to create the provisioning profile. Download it. diff --git a/docs/gdevelop5/publishing/ios/provisioning-profile-choose-app-id.png b/docs/gdevelop5/publishing/ios/provisioning-profile-choose-app-id.png new file mode 100644 index 0000000000..d8ba002f23 Binary files /dev/null and b/docs/gdevelop5/publishing/ios/provisioning-profile-choose-app-id.png differ diff --git a/docs/gdevelop5/publishing/publish-to-steam/builds-upload-commit-done.png b/docs/gdevelop5/publishing/publish-to-steam/builds-upload-commit-done.png new file mode 100644 index 0000000000..2ef270b432 Binary files /dev/null and b/docs/gdevelop5/publishing/publish-to-steam/builds-upload-commit-done.png differ diff --git a/docs/gdevelop5/publishing/publish-to-steam/index.md b/docs/gdevelop5/publishing/publish-to-steam/index.md index b3e84320be..55e0c49ebf 100644 --- a/docs/gdevelop5/publishing/publish-to-steam/index.md +++ b/docs/gdevelop5/publishing/publish-to-steam/index.md @@ -36,12 +36,27 @@ You then configure a "Build" that is using the "depots". You can use the web int ![](./builds-upload-web.png) -### Issue when uploading a macOS build +After uploading, scroll down and click on "Commit", select the correct branch, and make the build live. +Finally, press "Publish" to make the build available for users. -There is an issue making the macOS application not working after uploading the macOS zip file (this is because [the Steam web uploader breaks the symlinks](https://github.com/electron-userland/electron-builder/issues/5767#issuecomment-813920169)). -Instead, you must use the **steamcmd** command line tool to upload your macOS files. +The build page should look like this: +![](./builds-upload-commit-done.png) + +### Issue when uploading a macOS build: how to properly upload your macOS game + +There is an issue making the macOS application not working after uploading the macOS zip file (this is because [the Steam web uploader breaks the symlinks](https://github.com/electron-userland/electron-builder/issues/5767#issuecomment-813920169)). This results in a **broken app**: + +- It does not launch and crashes immediately with a message related to `Electron Framework.framework`. If you click on "Report...", you will see a crash report that refers to `Termination Reason: Namespace DYLD, Code 1 Library missing` and `Library not loaded: @rpath/Electron Framework.framework/Electron Framework`. +- Worse, Steam seems to be showing a wrong message indicating that "Your current macOS version is unable to run 32-bit games". This message is misleading as GDevelop games are already built for 64-bit macOS. + +To solve this, you must always use the **steamcmd** command line tool to upload your macOS files. + +- Start by extracting the macOS zip file somewhere. Use Linux or macOS `unzip` command line tool. **Windows won't work** as it will break the "symlinks" when extracting the zip file. Extract the files in a folder called `mac`. You should have a single folder, "Your Game.app" inside this `mac` folder. + + !!! danger + + Windows, and some archiver softwares on Linux, will break the "symlinks" when extracting the zip file - making it impossible to run the app. Use `unzip` on macOS or Linux. -- Start by extracting the macOS zip file somewhere. Use Linux or macOS - Windows will break the "symlinks" when extracting the zip file. Extract the files in a folder called `mac`. You should have a single folder, "Your Game.app" inside this `mac` folder. - Create a [Build Config file](https://partner.steamgames.com/doc/sdk/uploading) called `steam-upload-config.vdf`. Put it next to the folder called `mac`. This is an example: ``` diff --git a/docs/gdevelop5/publishing/publishing-to-itch-io.md b/docs/gdevelop5/publishing/publishing-to-itch-io.md index 3412b68b77..40149df81b 100644 --- a/docs/gdevelop5/publishing/publishing-to-itch-io.md +++ b/docs/gdevelop5/publishing/publishing-to-itch-io.md @@ -8,7 +8,7 @@ title: Publish to Itch.io Creators have access to detailed analytics and about how people discover, download, or play what they've created. ------------------------------------------------------------------------- +--- ## Why itch.io? @@ -22,7 +22,7 @@ Creators have access to detailed analytics and about how people discover, downlo - You can share downloadable games for Windows, Linux, Mac, Android and also HTML5 games played in the browser. - You can**make money**without starting your own business and pay taxes. itch.io can collect the money, deal with refund requests and pay the required taxes on your behalf and you can request a payout any time. - In case you do want to start your own business, itch.io can take care of the transaction for you and transfer each purchase directly to you, but then you need to take care of Refunds and Taxes -- You can **set a fixed price** for your content, **share it freely** or accept a donation. You can also set an unique option where payment is necessary but the amount is decided by the user himself. +- You can **set a fixed price** for your pcontent, **share it freely** or accept a donation. You can also set an unique option where payment is necessary but the amount is decided by the user himself. - Revenue share is also flexible which makes itch.io the most unique, you can decide how much revenue share you want to pay to itch.io and yes you can set this value to 0 if you want and pay nothing yet itch.io still happy to host your content for free and hope if you are successful you are going to consider to pay something to them. - **No annoying Ads** on Browser games - You can now also connect itch.io with Patreon and offer access to content to those who support you through Patreon. diff --git a/docs/gdevelop5/start/pasted/20230304-181105.png b/docs/gdevelop5/start/pasted/20230304-181105.png deleted file mode 100644 index 17f9f62de0..0000000000 Binary files a/docs/gdevelop5/start/pasted/20230304-181105.png and /dev/null differ diff --git a/docs/gdevelop5/tutorials/.pages b/docs/gdevelop5/tutorials/.pages index ec7bf69cf3..6b2e308a1e 100644 --- a/docs/gdevelop5/tutorials/.pages +++ b/docs/gdevelop5/tutorials/.pages @@ -1,17 +1,17 @@ sort_type: natural nav: - Basic game making concepts: - - Basic concepts: basic-game-making-concepts.md + - Basic concepts: basic-game-making-concepts - Move objects: how-to-move-objects - - Rotate objects: how-to-rotate-objects.md + - Rotate objects: how-to-rotate-objects - Follow players with cameras: follow-player-with-camera - Keep UI on screen: keep-ui-on-screen - Work with randomness: randomness - - Find resources: resources.md + - Find resources: resources - asteroids - geometry-monster - platformer - space-shooter - - Video tutorials: videos.md + - Video tutorials: videos - More guides and How-To: - ... \ No newline at end of file diff --git a/docs/gdevelop5/tutorials/aligning-text.md b/docs/gdevelop5/tutorials/aligning-text/index.md similarity index 80% rename from docs/gdevelop5/tutorials/aligning-text.md rename to docs/gdevelop5/tutorials/aligning-text/index.md index ac0427e7f0..378f77cbbe 100644 --- a/docs/gdevelop5/tutorials/aligning-text.md +++ b/docs/gdevelop5/tutorials/aligning-text/index.md @@ -19,20 +19,20 @@ To align a single line of text, you need to set its position relative to the thi To center your text in the scene window, use the **Center X position** action with a value of `SceneWindowWidth() / 2`. This will place the center of your text object at the middle of your scene's width. -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-133207.png) -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-135738.png) +![](pasted/20220825-133207.png) +![](pasted/20220825-135738.png) Or to right-align your text, use the **X position** action with a value of `SceneWindowWidth() - OBJECT.Width()`. This will place your text object so that its right edge sits on the right side of your scene. -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-133518.png) -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-135850.png) +![](pasted/20220825-133518.png) +![](pasted/20220825-135850.png) ### Aligning text to other objects The process for aligning text to other objects is similar. Consider placing a text object on a button. Use the **Center position** action with X and Y values `OBJECT.CenterX()` and `OBJECT.CenterY()` respectively to position the center of your text object over the center of your button object. -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-134322.png) -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-140056.png) +![](pasted/20220825-134322.png) +![](pasted/20220825-140056.png) ## Aligning a multi-line text object @@ -40,8 +40,8 @@ Multi-line text objects can also be positioned as described above, but that only To change this, GDevelop comes with an **Alignment** action. Simply set it to `left`, `center` or `right` to change the alignment of your multi-line text. -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-135130.png) -![](/gdevelop5/tutorials/aligning-text/pasted/20220825-140254.png) +![](pasted/20220825-135130.png) +![](pasted/20220825-140254.png) !!! note diff --git a/docs/gdevelop5/tutorials/asteroids_example_image1.png b/docs/gdevelop5/tutorials/asteroids/asteroids_example_image1.png similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_example_image1.png rename to docs/gdevelop5/tutorials/asteroids/asteroids_example_image1.png diff --git a/docs/gdevelop5/tutorials/asteroids_example_image2.png b/docs/gdevelop5/tutorials/asteroids/asteroids_example_image2.png similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_example_image2.png rename to docs/gdevelop5/tutorials/asteroids/asteroids_example_image2.png diff --git a/docs/gdevelop5/tutorials/asteroids_example_image3.png b/docs/gdevelop5/tutorials/asteroids/asteroids_example_image3.png similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_example_image3.png rename to docs/gdevelop5/tutorials/asteroids/asteroids_example_image3.png diff --git a/docs/gdevelop5/tutorials/asteroids_example_image4_showing_the_player_movement_controls.png b/docs/gdevelop5/tutorials/asteroids/asteroids_example_image4_showing_the_player_movement_controls.png similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_example_image4_showing_the_player_movement_controls.png rename to docs/gdevelop5/tutorials/asteroids/asteroids_example_image4_showing_the_player_movement_controls.png diff --git a/docs/gdevelop5/tutorials/asteroids_gif_2_creating_the_player_sprite_and_naming_it.gif b/docs/gdevelop5/tutorials/asteroids/asteroids_gif_2_creating_the_player_sprite_and_naming_it.gif similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_gif_2_creating_the_player_sprite_and_naming_it.gif rename to docs/gdevelop5/tutorials/asteroids/asteroids_gif_2_creating_the_player_sprite_and_naming_it.gif diff --git a/docs/gdevelop5/tutorials/asteroids_gif_3_giving_the_object_physics_behavior.gif b/docs/gdevelop5/tutorials/asteroids/asteroids_gif_3_giving_the_object_physics_behavior.gif similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_gif_3_giving_the_object_physics_behavior.gif rename to docs/gdevelop5/tutorials/asteroids/asteroids_gif_3_giving_the_object_physics_behavior.gif diff --git a/docs/gdevelop5/tutorials/asteroids_gif_4_moving_player_forward.gif b/docs/gdevelop5/tutorials/asteroids/asteroids_gif_4_moving_player_forward.gif similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_gif_4_moving_player_forward.gif rename to docs/gdevelop5/tutorials/asteroids/asteroids_gif_4_moving_player_forward.gif diff --git a/docs/gdevelop5/tutorials/asteroids_gif_recording_1_check_game_resolution.gif b/docs/gdevelop5/tutorials/asteroids/asteroids_gif_recording_1_check_game_resolution.gif similarity index 100% rename from docs/gdevelop5/tutorials/asteroids_gif_recording_1_check_game_resolution.gif rename to docs/gdevelop5/tutorials/asteroids/asteroids_gif_recording_1_check_game_resolution.gif diff --git a/docs/gdevelop5/tutorials/asteroids/end_result.md b/docs/gdevelop5/tutorials/asteroids/end_result.md index 1754444176..ada8c08a4e 100644 --- a/docs/gdevelop5/tutorials/asteroids/end_result.md +++ b/docs/gdevelop5/tutorials/asteroids/end_result.md @@ -6,13 +6,13 @@ title: Asteroids ## Series 1. [Getting Started](/gdevelop5/tutorials/asteroids) -2. [Ship and Movement Controls](/gdevelop5/tutorials/asteroids/ship_and_movement_controls) -3. [Firing Mechanic](/gdevelop5/tutorials/asteroids/firing_bullet) -4. [Setting Scene](/gdevelop5/tutorials/asteroids/setting_scene) -5. [Splitting Asteroids](/gdevelop5/tutorials/asteroids/splitting_asteroids) -6. [Screen Wrap](/gdevelop5/tutorials/asteroids/screen_wrap) -7. [Fail State](/gdevelop5/tutorials/asteroids/fail_state) -8. [End Result](/gdevelop5/tutorials/asteroids/end_result) +2. [Ship and Movement Controls](ship_and_movement_controls) +3. [Firing Mechanic](firing_bullet) +4. [Setting Scene](setting_scene) +5. [Splitting Asteroids](splitting_asteroids) +6. [Screen Wrap](screen_wrap) +7. [Fail State](fail_state) +8. [End Result](end_result) !!! warning diff --git a/docs/gdevelop5/tutorials/asteroids/fail_state.md b/docs/gdevelop5/tutorials/asteroids/fail_state.md index 9575d07161..41a78d5c0a 100644 --- a/docs/gdevelop5/tutorials/asteroids/fail_state.md +++ b/docs/gdevelop5/tutorials/asteroids/fail_state.md @@ -18,7 +18,7 @@ title: Asteroids Open the "Project manager", open "Functions/Behaviors", click "Search for new extensions", search for and install the "Health" extension. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_12_installing_health_extension.gif) +![](asteroids_gif_12_installing_health_extension.gif) ## Player health @@ -26,19 +26,19 @@ Go to the Player object and give it the Health behavior, which will show up on y Give this behavior a 0.5 second cooldown, and 3 to both current and maximum health. Which will act as 3 lives. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_13_giving_player_health.gif) +![](asteroids_gif_13_giving_player_health.gif) ## Lives icon Create a tiled sprite object, pick a ship image for a "Lives" icon, and then fill in the width and height of the tiled sprite corresponding to your selected image. -![](/gdevelop5/tutorials/asteroids/fail_state/pasted/20220119-185438.png) +![](fail_state/pasted/20220119-185438.png) ## Lives icon placement Click on the "Layers" panel button on the top right section of the screen, add a new layer and call it UI. Place the "Lives" tiled sprite object into the game, within the default border of your game. With that object selected, change its layer to the newly created UI layer. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_14_putting_the_lives_icon_on_ui_layer.gif) +![](asteroids_gif_14_putting_the_lives_icon_on_ui_layer.gif) ## Losing lives @@ -55,13 +55,17 @@ This will reduce the players health count by 1 point and then adjust the width o Note that it's easiest to find the expression for "player's health", by opening the expression builder and searching "health" and selecting it. Then multiply it ( * ) by whatever the width of your tiled sprite is. -![](/gdevelop5/tutorials/asteroids/fail_state/pasted/20220119-190604.png) +!!! note + + The [resource bar](/gdevelop5/objects/resource-bar/) object can make this a bit easier. + +![](fail_state/pasted/20220119-190604.png) ## Show lives first To expand the size of the Lives tiled sprite object at the beginning of scene to display the starting lives count of 3, copy that action from the step above and paste it into the "At the beginning of scene" event, in our event sheet. -![](/gdevelop5/tutorials/asteroids/fail_state/pasted/20220119-232141.png) +![](fail_state/pasted/20220119-232141.png) ## Out of lives event @@ -73,13 +77,13 @@ Condition: Action: -"Delete the object" with Player object selected. -![](/gdevelop5/tutorials/asteroids/fail_state/pasted/20220119-191521.png) +![](fail_state/pasted/20220119-191521.png) ## Game over text Create a text object and call it "GameOver". Change its font size to 100 and its color to white, and then write "game over" in the "Initial text to display" section. Place this text object in to your game, within the default border of your screen, and change this object's layer to the UI layer you created earlier. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_15_putting_game_over_text_in_screen.gif) +![](asteroids_gif_15_putting_game_over_text_in_screen.gif) ## Game over event @@ -89,8 +93,8 @@ Go to the event sheet, open the "Beginning of scene" event group and add the fol Then open the player event group and add the following action to the "player dead" event: "Show" with the "GameOver" text object selected. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_16_show_and_hide_game_over.gif) +![](asteroids_gif_16_show_and_hide_game_over.gif) ## Finished -Now that your game is finished, be sure to check out the [Original video example](/gdevelop5/tutorials/end_result) and see what differences there are between your finished game and the example project. \ No newline at end of file +Now that your game is finished, be sure to check out the [Original video example](/gdevelop5/tutorials/asteroids/end_result) and see what differences there are between your finished game and the example project. \ No newline at end of file diff --git a/docs/gdevelop5/tutorials/asteroids/firing_bullet.md b/docs/gdevelop5/tutorials/asteroids/firing_bullet.md index ac6056c642..ceb9cd462c 100644 --- a/docs/gdevelop5/tutorials/asteroids/firing_bullet.md +++ b/docs/gdevelop5/tutorials/asteroids/firing_bullet.md @@ -22,17 +22,17 @@ Be sure to orient the bullet so it is facing to the right, just like your ship s To do this, open up Piskel and click the resize tab.\\ In this tab, set the anchor to the middle of the image and deselect "maintain aspect ratio", then change the width to be the same as the current height and click the resize button. Now that it's a square, rotate the bullet to be facing to the right, and resize the image height to be that of the original width. Then save your work. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_6_rotate_bullet.gif) +![](asteroids_gif_6_rotate_bullet.gif) ## Edit points Click the "Edit points" button for the Bullet object, and grab the origin point and move it to the center of the object. -![](/gdevelop5/tutorials/asteroids/firing_bullet/pasted/20220119-162810.png) +![](firing_bullet/pasted/20220119-162810.png) Go to your Player object and click "Edit points".\\ Add a new point and place it in the middle of your ship, close to the nose. Name this point "BulletSpawn". -![](/gdevelop5/tutorials/asteroids/asteroids_gif_7_add_bullet_spawn_point.gif) +![](asteroids_gif_7_add_bullet_spawn_point.gif) ## Create bullet @@ -48,10 +48,14 @@ Action: -"Add a force (angle)" (Common Action, not Physics Engine) using the Player object's angle and a speed of 350 pixels per second. Select permanent instead of instant. -"Z order" and use the expression builder to find the Z order of the Player object, and subtract that by 1. So the expression should read Player.ZOrder()-1. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_8_setting_up_fire_bullet.gif) +!!! warning + + The [fire bullet](/gdevelop5/extensions/fire-bullet/details) behavior gives an easier way to do this. + +![](asteroids_gif_8_setting_up_fire_bullet.gif) ## Organization Create an event group called "Player" and put all of the events you just created into this group. Make sure none of the events get placed as sub events. -![](/gdevelop5/tutorials/asteroids/firing_bullet/pasted/20220119-171618.png) +![](firing_bullet/pasted/20220119-171618.png) diff --git a/docs/gdevelop5/tutorials/asteroids/index.md b/docs/gdevelop5/tutorials/asteroids/index.md index cbe6f3d34c..8a22698aad 100644 --- a/docs/gdevelop5/tutorials/asteroids/index.md +++ b/docs/gdevelop5/tutorials/asteroids/index.md @@ -24,28 +24,28 @@ Download the art and familiarize yourself with what the pack contains. When you open the engine, you'll see this screen. Click on the button that has been highlighted in red. -![](/gdevelop5/tutorials/asteroids_example_image1.png) +![](asteroids_example_image1.png) ## Name project Give your project a name, and click on the create project button. -![](/gdevelop5/tutorials/asteroids/pasted/20220121-152746.png) +![](pasted/20220121-152746.png) ## Add a scene Add a scene by pressing on the highlighted button in the image below. Right click on that scene to rename it. Then left click on the scene to open it. -![](/gdevelop5/tutorials/asteroids_example_image2.png) +![](asteroids_example_image2.png) ## Set background color Right click on the background of the game scene, and click on "Scene properties". From there, click on the color selector and drag to select black. -![](/gdevelop5/tutorials/asteroids_example_image3.png) +![](asteroids_example_image3.png) ## Check game resolution Open the project manager, and go to the game settings.\\ Select properties, and make sure your game's resolution is 800 by 600 - or the preferred "Golden Ration" of 800x500 -![](/gdevelop5/tutorials/asteroids_gif_recording_1_check_game_resolution.gif) +![](asteroids_gif_recording_1_check_game_resolution.gif) diff --git a/docs/gdevelop5/tutorials/asteroids/screen_wrap.md b/docs/gdevelop5/tutorials/asteroids/screen_wrap.md index 1b245ef0f0..43dae17a63 100644 --- a/docs/gdevelop5/tutorials/asteroids/screen_wrap.md +++ b/docs/gdevelop5/tutorials/asteroids/screen_wrap.md @@ -20,7 +20,7 @@ In your game scene, open the "objects groups editor" panel, which is found in th From this panel, create an object group called "Everything", and add your Player object, Bullet, and each type of asteroid to this group. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_11_everything_object_group.gif) +![](asteroids_gif_11_everything_object_group.gif) ## Screen wrap @@ -40,4 +40,8 @@ And then recreate this event for the Y position, making sure to use 630 instead So if an object goes 30 pixels off screen it will have it's position moved to the opposite X or Y position depending on what part of the screen it went through. But, we multiply it by 0.95 (or 95%) so it will no longer be out of bounds when flipped. -![](/gdevelop5/tutorials/asteroids/screen_wrap/pasted/20220119-182309.png) +!!! warning + + The [screen wrap](/gdevelop5/extensions/screen-wrap/) can handle this for you. + +![](screen_wrap/pasted/20220119-182309.png) diff --git a/docs/gdevelop5/tutorials/asteroids/setting_scene.md b/docs/gdevelop5/tutorials/asteroids/setting_scene.md index 199ed40c29..1eee6f4b63 100644 --- a/docs/gdevelop5/tutorials/asteroids/setting_scene.md +++ b/docs/gdevelop5/tutorials/asteroids/setting_scene.md @@ -26,7 +26,7 @@ Action: - "Camera center Y position" with modification sign "= (set to)" and the value 0. (Leave layer and camera number as they are) - "Change camera zoom" with a value of 0.5. (Leave layer and camera number as they are) -![](/gdevelop5/tutorials/asteroids/camera_settings/pasted/20220119-172243.png) +![](camera_settings/pasted/20220119-172243.png) ## Creating asteroids @@ -41,4 +41,4 @@ Edit each of these objects so their origin points are at the center of the image Place a few of each of these objects into your scene. Remember that your camera is zoomed out and centers on the 0,0 point. This means that center of your game will be the top-left corner of the scene editor. You will likely want to place your ship object at that top-left location (0,0) -![](/gdevelop5/tutorials/asteroids/asteroids_gif_9_physics_behavior_and_place_in_scene.gif) +![](asteroids_gif_9_physics_behavior_and_place_in_scene.gif) diff --git a/docs/gdevelop5/tutorials/asteroids/ship_and_movement_controls.md b/docs/gdevelop5/tutorials/asteroids/ship_and_movement_controls.md index ff08f43ea2..937aa5462c 100644 --- a/docs/gdevelop5/tutorials/asteroids/ship_and_movement_controls.md +++ b/docs/gdevelop5/tutorials/asteroids/ship_and_movement_controls.md @@ -18,17 +18,17 @@ title: Asteroids Create a sprite object, give it a single ship animation, and name it Player. -![](/gdevelop5/tutorials/asteroids_gif_2_creating_the_player_sprite_and_naming_it.gif) +![](asteroids_gif_2_creating_the_player_sprite_and_naming_it.gif) ## Physics behavior Double click the Player sprite object. Give that object the Physics 2.0 behavior, and change the gravity value to 0. -![](/gdevelop5/tutorials/asteroids_gif_3_giving_the_object_physics_behavior.gif) +![](asteroids_gif_3_giving_the_object_physics_behavior.gif) Change the Player object's physics 2.0 behavior values to match the values in the image below. -![](/gdevelop5/tutorials/asteroids/ship_and_movement_controls/pasted/20220130-045713.png) +![](ship_and_movement_controls/pasted/20220130-045713.png) ## Align image and points @@ -36,7 +36,7 @@ Open the Player object and edit the animation through Piskel. Click to rotate th Next, edit the Player object's origin point from the Edit points screen. Drag the origin to the center of the object, so that when we apply a force to the object it will be applied at this point. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_5_rotate_image_and_points.gif) +![](asteroids_gif_5_rotate_image_and_points.gif) ## Moving forward @@ -51,10 +51,10 @@ Action: This force will be applied to the origin point. -![](/gdevelop5/tutorials/asteroids_gif_4_moving_player_forward.gif) +![](asteroids_gif_4_moving_player_forward.gif) ## Turning Create 2 more events, with the A/D keys being pressed as their conditions, but this time the action will be "Apply torque (rotational force)" and give them -0.5 or 0.5 based on the direction you would like them to go when either A or D is pressed. -![](/gdevelop5/tutorials/asteroids_example_image4_showing_the_player_movement_controls.png) +![](asteroids_example_image4_showing_the_player_movement_controls.png) diff --git a/docs/gdevelop5/tutorials/asteroids/splitting_asteroids.md b/docs/gdevelop5/tutorials/asteroids/splitting_asteroids.md index 52017623a2..01e3beae36 100644 --- a/docs/gdevelop5/tutorials/asteroids/splitting_asteroids.md +++ b/docs/gdevelop5/tutorials/asteroids/splitting_asteroids.md @@ -22,7 +22,7 @@ Right click on a blank event in that group, hover over "Add Other", and select " Click the bar on the top of this event and select your big asteroid. This will check the event for every big asteroid in the scene every frame. -![](/gdevelop5/tutorials/asteroids/asteroids_gif_10_creating_for_each_object_event_2.gif) +![](asteroids_gif_10_creating_for_each_object_event_2.gif) ## Splitting the big asteroid @@ -39,7 +39,7 @@ Action: -"Delete the object" and select the big asteroid. -"Delete the object" and select the bullet. -![](/gdevelop5/tutorials/asteroids/splitting_asteroids/pasted/20220119-174917.png) +![](splitting_asteroids/pasted/20220119-174917.png) ## Other asteroids @@ -47,4 +47,4 @@ For the medium asteroids, create the same event, but put the medium asteroid whe For the small asteroid, create the same event as above, but leave out the create, rotate, and apply force actions so that it just gets deleted. -![](/gdevelop5/tutorials/asteroids/splitting_asteroids/pasted/20220119-180128.png) +![](splitting_asteroids/pasted/20220119-180128.png) diff --git a/docs/gdevelop5/tutorials/gif_for_wiki_showing_where_the_variables_are.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gif_for_wiki_showing_where_the_variables_are.gif similarity index 100% rename from docs/gdevelop5/tutorials/gif_for_wiki_showing_where_the_variables_are.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gif_for_wiki_showing_where_the_variables_are.gif diff --git a/docs/gdevelop5/tutorials/gifs_for_wiki_applying_permanent_forces.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_applying_permanent_forces.gif similarity index 100% rename from docs/gdevelop5/tutorials/gifs_for_wiki_applying_permanent_forces.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_applying_permanent_forces.gif diff --git a/docs/gdevelop5/tutorials/gifs_for_wiki_deleting_ships_by_mouse_position.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_deleting_ships_by_mouse_position.gif similarity index 100% rename from docs/gdevelop5/tutorials/gifs_for_wiki_deleting_ships_by_mouse_position.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_deleting_ships_by_mouse_position.gif diff --git a/docs/gdevelop5/tutorials/gifs_for_wiki_showing_an_event_with_a_condition.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_an_event_with_a_condition.gif similarity index 100% rename from docs/gdevelop5/tutorials/gifs_for_wiki_showing_an_event_with_a_condition.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_an_event_with_a_condition.gif diff --git a/docs/gdevelop5/tutorials/gifs_for_wiki_showing_behaviors.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_behaviors.gif similarity index 100% rename from docs/gdevelop5/tutorials/gifs_for_wiki_showing_behaviors.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_behaviors.gif diff --git a/docs/gdevelop5/tutorials/gifs_for_wiki_showing_conditionless_event.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_conditionless_event.gif similarity index 100% rename from docs/gdevelop5/tutorials/gifs_for_wiki_showing_conditionless_event.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_conditionless_event.gif diff --git a/docs/gdevelop5/tutorials/gifs_for_wiki_showing_objects.gif b/docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_objects.gif similarity index 100% rename from docs/gdevelop5/tutorials/gifs_for_wiki_showing_objects.gif rename to docs/gdevelop5/tutorials/basic-game-making-concepts/gifs_for_wiki_showing_objects.gif diff --git a/docs/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/gdevelop5/tutorials/basic-game-making-concepts/index.md similarity index 91% rename from docs/gdevelop5/tutorials/basic-game-making-concepts.md rename to docs/gdevelop5/tutorials/basic-game-making-concepts/index.md index a958ec1011..1d8088cb76 100644 --- a/docs/gdevelop5/tutorials/basic-game-making-concepts.md +++ b/docs/gdevelop5/tutorials/basic-game-making-concepts/index.md @@ -11,7 +11,7 @@ Everything that is *displayed on the screen* is called an **"Object"**. Differen Read more about [Objects](https://wiki.gdevelop.io/gdevelop5/objects#objects). -![](/gdevelop5/tutorials/gifs_for_wiki_showing_objects.gif) +![](gifs_for_wiki_showing_objects.gif) ## Positioning Objects in the world: Coordinates @@ -23,7 +23,7 @@ The X-coordinate _decreases_ as you go to the left and _increases_ as you go to The top-left corner of your game's screen starts at X=0 and Y=0, but this will change if the camera is moved. -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20201015-145909.png) +![](pasted/20201015-145909.png) ## Angles @@ -50,14 +50,14 @@ Events are used to create the logic of your game. They are composed of condition An event without any conditions will always perform the actions. In the video below, the ship object will continuously rotate at the speed set in the **Rotate Ship** action. -![](/gdevelop5/tutorials/gifs_for_wiki_showing_conditionless_event.gif) +![](gifs_for_wiki_showing_conditionless_event.gif) If a condition is added to the event, the actions will only be performed when the condition is true. In this example, a condition for **The cursor/touch is on Ship** is added. Now the **Rotate Ship** action will only happen "if" the mouse cursor is on the ship object. -![](/gdevelop5/tutorials/gifs_for_wiki_showing_an_event_with_a_condition.gif) +![](gifs_for_wiki_showing_an_event_with_a_condition.gif) Read more about [Events](https://wiki.gdevelop.io/gdevelop5/events#events). @@ -66,7 +66,7 @@ Read more about [Events](https://wiki.gdevelop.io/gdevelop5/events#events). If an event has no conditions, the actions will apply to all objects listed in the action. For example, this event has no conditions so it will delete all objects called "Ship". -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220123-200759.png) +![](pasted/20220123-200759.png) Once a condition has been added that mentions an object, all following actions will affect only objects that matched the previous conditions. @@ -78,13 +78,13 @@ The event below has a condition that checks the horizontal (X) position of the S The list of objects that match conditions is also used by all subevents. Read more about [Object Picking](https://wiki.gdevelop.io/gdevelop5/events/object-picking). -![](/gdevelop5/tutorials/gifs_for_wiki_deleting_ships_by_mouse_position.gif) +![](gifs_for_wiki_deleting_ships_by_mouse_position.gif) !!! tip **See it in action!** 🎮 [Open this example online](https://editor.gdevelop.io/?project=example://object-selection). -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-171850.png) +![](pasted/20220124-171850.png) ## Order of events @@ -92,9 +92,9 @@ The order of [events](/gdevelop5/events) **is very important**! Events are processed from the top down. so events at the top are executed first. The following examples are **not** equivalent: -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220123-203732.png) +![](pasted/20220123-203732.png) -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220123-203822.png) +![](pasted/20220123-203822.png) * In the top example, the first event creates a "Ship" object at coordinates X: 100. Y: 200 (100;200) on the base layer. Then the next event deletes that created ship immediately. This pair of events **will not** display a ship on the screen, because the ship is deleted right after being created. * In the bottom example, the first event deletes all the "Ship" objects from the scene/screen. It then creates one "Ship" at the coordinates X: 100, Y: 200 (100;200) on the base layer. This pair of events **will** display a single ship on the screen. @@ -118,7 +118,7 @@ Events are processed from the top down. so events at the top are executed first. **Behaviors** will often come with their own variables that can be changed to customize the task it performs, but they can also be manipulated using events that are specific to that behavior. -![](/gdevelop5/tutorials/gifs_for_wiki_showing_behaviors.gif) +![](gifs_for_wiki_showing_behaviors.gif) The wiki page associated with behaviors can be found [here](https://wiki.gdevelop.io/gdevelop5/behaviors#behaviors). @@ -159,7 +159,7 @@ Some "behaviors", like the Physics engine or Pathfinding, may move the objects b **See it in action!** 🎮 [Open this example online](https://editor.gdevelop.io/?project=example://move-object-with-physics). -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-153533.png) +![](pasted/20220124-153533.png) !!! note @@ -188,7 +188,7 @@ The _scope_ of a variable determines the place a variable can be accessed. In GD * **Object** variables only concern one object. For example, a hero can have a "Health" or "Ammo" variable. -![](/gdevelop5/tutorials/gif_for_wiki_showing_where_the_variables_are.gif) +![](gif_for_wiki_showing_where_the_variables_are.gif) The wiki page associated with variables can be found [here](https://wiki.gdevelop.io/gdevelop5/all-features/variables). @@ -202,11 +202,11 @@ This can be accomplished by using //[TimeDelta()](/gdevelop5/all-features/expres For example, don't do this: -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-172740.png) +![](pasted/20220124-172740.png) But do this instead: -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20220124-172830.png) +![](pasted/20220124-172830.png) The first event is adding 20 to the variable on every frame. This means that the rate of increase of the variable may not be the same from computer to computer. We need to compensate for this variation in frame rates. diff --git a/docs/gdevelop5/tutorials/breakout-game/add-condition.jpg b/docs/gdevelop5/tutorials/breakout/add-condition.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/add-condition.jpg rename to docs/gdevelop5/tutorials/breakout/add-condition.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/add-object.jpg b/docs/gdevelop5/tutorials/breakout/add-object.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/add-object.jpg rename to docs/gdevelop5/tutorials/breakout/add-object.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/add_a_comment.jpg b/docs/gdevelop5/tutorials/breakout/add_a_comment.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/add_a_comment.jpg rename to docs/gdevelop5/tutorials/breakout/add_a_comment.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/add_bounce_action_in_event.png b/docs/gdevelop5/tutorials/breakout/add_bounce_action_in_event.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/add_bounce_action_in_event.png rename to docs/gdevelop5/tutorials/breakout/add_bounce_action_in_event.png diff --git a/docs/gdevelop5/tutorials/breakout-game/add_bounce_behaviour.png b/docs/gdevelop5/tutorials/breakout/add_bounce_behaviour.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/add_bounce_behaviour.png rename to docs/gdevelop5/tutorials/breakout/add_bounce_behaviour.png diff --git a/docs/gdevelop5/tutorials/breakout-game/add_force_to_paddle.jpg b/docs/gdevelop5/tutorials/breakout/add_force_to_paddle.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/add_force_to_paddle.jpg rename to docs/gdevelop5/tutorials/breakout/add_force_to_paddle.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/angles.png b/docs/gdevelop5/tutorials/breakout/angles.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/angles.png rename to docs/gdevelop5/tutorials/breakout/angles.png diff --git a/docs/gdevelop5/tutorials/apply_bounce.png b/docs/gdevelop5/tutorials/breakout/apply_bounce.png similarity index 100% rename from docs/gdevelop5/tutorials/apply_bounce.png rename to docs/gdevelop5/tutorials/breakout/apply_bounce.png diff --git a/docs/gdevelop5/tutorials/breakout-game/ball-start-movement.jpg b/docs/gdevelop5/tutorials/breakout/ball-start-movement.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/ball-start-movement.jpg rename to docs/gdevelop5/tutorials/breakout/ball-start-movement.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/barriers_added.jpg b/docs/gdevelop5/tutorials/breakout/barriers_added.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/barriers_added.jpg rename to docs/gdevelop5/tutorials/breakout/barriers_added.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/blank_scene.jpg b/docs/gdevelop5/tutorials/breakout/blank_scene.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/blank_scene.jpg rename to docs/gdevelop5/tutorials/breakout/blank_scene.jpg diff --git a/docs/gdevelop5/tutorials/breakout-assets.zip b/docs/gdevelop5/tutorials/breakout/breakout-assets.zip similarity index 100% rename from docs/gdevelop5/tutorials/breakout-assets.zip rename to docs/gdevelop5/tutorials/breakout/breakout-assets.zip diff --git a/docs/gdevelop5/tutorials/breakout-screenshot.png b/docs/gdevelop5/tutorials/breakout/breakout-screenshot.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-screenshot.png rename to docs/gdevelop5/tutorials/breakout/breakout-screenshot.png diff --git a/docs/gdevelop5/tutorials/breakout-game/breakout_game_shot.png b/docs/gdevelop5/tutorials/breakout/breakout_game_shot.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/breakout_game_shot.png rename to docs/gdevelop5/tutorials/breakout/breakout_game_shot.png diff --git a/docs/gdevelop5/tutorials/breakout-game/brick_colour_change.jpg b/docs/gdevelop5/tutorials/breakout/brick_colour_change.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/brick_colour_change.jpg rename to docs/gdevelop5/tutorials/breakout/brick_colour_change.jpg diff --git a/docs/gdevelop5/tutorials/brick_colours.png b/docs/gdevelop5/tutorials/breakout/brick_colours.png similarity index 100% rename from docs/gdevelop5/tutorials/brick_colours.png rename to docs/gdevelop5/tutorials/breakout/brick_colours.png diff --git a/docs/gdevelop5/tutorials/breakout-game/congratulations_message.jpg b/docs/gdevelop5/tutorials/breakout/congratulations_message.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/congratulations_message.jpg rename to docs/gdevelop5/tutorials/breakout/congratulations_message.jpg diff --git a/docs/gdevelop5/tutorials/create_empty_project.png b/docs/gdevelop5/tutorials/breakout/create_empty_project.png similarity index 100% rename from docs/gdevelop5/tutorials/create_empty_project.png rename to docs/gdevelop5/tutorials/breakout/create_empty_project.png diff --git a/docs/gdevelop5/tutorials/breakout-game/delete_a_brick.jpg b/docs/gdevelop5/tutorials/breakout/delete_a_brick.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/delete_a_brick.jpg rename to docs/gdevelop5/tutorials/breakout/delete_a_brick.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/duplicating_objects.gif b/docs/gdevelop5/tutorials/breakout/duplicating_objects.gif similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/duplicating_objects.gif rename to docs/gdevelop5/tutorials/breakout/duplicating_objects.gif diff --git a/docs/gdevelop5/tutorials/breakout-game/empty_event_button.jpg b/docs/gdevelop5/tutorials/breakout/empty_event_button.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/empty_event_button.jpg rename to docs/gdevelop5/tutorials/breakout/empty_event_button.jpg diff --git a/docs/gdevelop5/tutorials/empty_object_editor.jpg b/docs/gdevelop5/tutorials/breakout/empty_object_editor.jpg similarity index 100% rename from docs/gdevelop5/tutorials/empty_object_editor.jpg rename to docs/gdevelop5/tutorials/breakout/empty_object_editor.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg b/docs/gdevelop5/tutorials/breakout/expression_editor_button.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg rename to docs/gdevelop5/tutorials/breakout/expression_editor_button.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/external_layout_add.png b/docs/gdevelop5/tutorials/breakout/external_layout_add.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/external_layout_add.png rename to docs/gdevelop5/tutorials/breakout/external_layout_add.png diff --git a/docs/gdevelop5/tutorials/breakout-game/gameover_hide.png b/docs/gdevelop5/tutorials/breakout/gameover_hide.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/gameover_hide.png rename to docs/gdevelop5/tutorials/breakout/gameover_hide.png diff --git a/docs/gdevelop5/tutorials/breakout-game/hide_congratulations.jpg b/docs/gdevelop5/tutorials/breakout/hide_congratulations.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/hide_congratulations.jpg rename to docs/gdevelop5/tutorials/breakout/hide_congratulations.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/if_no_bricks.png b/docs/gdevelop5/tutorials/breakout/if_no_bricks.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/if_no_bricks.png rename to docs/gdevelop5/tutorials/breakout/if_no_bricks.png diff --git a/docs/gdevelop5/tutorials/breakout.md b/docs/gdevelop5/tutorials/breakout/index.md similarity index 88% rename from docs/gdevelop5/tutorials/breakout.md rename to docs/gdevelop5/tutorials/breakout/index.md index 0b19385235..9d659c2c96 100644 --- a/docs/gdevelop5/tutorials/breakout.md +++ b/docs/gdevelop5/tutorials/breakout/index.md @@ -13,7 +13,7 @@ title: How to Make a Breakout Game With this tutorial, you will learn some basic tasks in GDevelop while creating a fun game. Like the classic arcade game Breakout, you will create an array of bricks that can be broken by a bouncing ball. The player controls the ball with a paddle - once the ball drops, it's game over. -![](/gdevelop5/tutorials/breakout-screenshot.png) +![](breakout-screenshot.png) ---- @@ -29,7 +29,7 @@ With this tutorial, you will learn some basic tasks in GDevelop while creating a ## Create a new game Click **Create a new project** on the start page. Scroll down and choose a folder for your project, then select **Empty game**. -![](/gdevelop5/tutorials/create_empty_project.png) +![](create_empty_project.png) ## Add game assets !!! tip @@ -45,7 +45,7 @@ For a breakout game, you will need the following assets: * images of Power-ups (optional) Or you can download the assets used in the tutorial, -[breakout assets.zip](/gdevelop5/tutorials/breakout-assets.zip) +[breakout assets.zip](breakout-assets.zip) ---- @@ -60,11 +60,11 @@ To add a new scene: - On the **Project** panel on the left, click **+** to add a scene. -![](/gdevelop5/tutorials/breakout-game/newscene.jpg) +![](newscene.jpg) - A new scene is added to the list. Click **NewScene** to open it. -![](/gdevelop5/tutorials/breakout-game/blank_scene.jpg) +![](blank_scene.jpg) ---- @@ -74,11 +74,11 @@ Start by adding the paddle to the scene. The player moves this paddle left and r - On the **Objects** panel on the right, click **+** to add an object. -![](/gdevelop5/tutorials/breakout-game/add-object.jpg) +![](add-object.jpg) A window will appear displaying different types of objects you can add. Each type of object has its own set of features. -![](/gdevelop5/tutorials/object_types.jpg) +![](object_types.jpg) - For the paddle, you need the Sprite object type. Click **Sprite**. !!! tip @@ -87,7 +87,7 @@ A window will appear displaying different types of objects you can add. Each typ The new object is added to your scene and the Object Editor dialog box is opened. -![](/gdevelop5/tutorials/empty_object_editor.jpg) +![](empty_object_editor.jpg) Right now, your sprite object has no animations, or associated images. @@ -95,7 +95,7 @@ Right now, your sprite object has no animations, or associated images. - Click **+** in the blank thumbnail to add an image to the animation. - Select the image called "paddle.png" in your project folder and click **Open**. The image is added to the object. -![](/gdevelop5/tutorials/paddle_animation.jpg) +![](paddle_animation.jpg) - In the **Object Name** field, type **Paddle** to rename your object. @@ -115,7 +115,7 @@ To display the paddle in your game, you need to add it to your scene. Because on - To add the paddle to the scene, click and drag it from the **Objects** panel to the scene. Place it near the bottom. -![](/gdevelop5/tutorials/paddle_drag.gif) +![](paddle_drag.gif) ---- @@ -149,7 +149,7 @@ You will need to add three instances of your barrier object to your scene - a le - Create a matching barrier on the right side and position it at (770,15). - Add a final barrier at the top to connect the two. Resize it to 770 x 15, and position it at (15, 15). -![](/gdevelop5/tutorials/breakout-game/barriers_added.jpg) +![](barriers_added.jpg) ---- @@ -161,12 +161,12 @@ The player will control the paddle using the left and right arrows on the keyboa Create an event where if the player presses the left arrow on the keyboard, the paddle moves left: - Click the **NewScene (Events)** tab to open the **Events Editor**. - - Click **Add a new empty event** ![](/gdevelop5/tutorials/breakout-game/empty_event_button.jpg). + - Click **Add a new empty event** ![](empty_event_button.jpg). - Click **Add condition**. -![](/gdevelop5/tutorials/breakout-game/add-condition.jpg) +![](add-condition.jpg) - Click **Keyboard > Key pressed**. -![](/gdevelop5/tutorials/breakout-game/keyboard-key-pressed.jpg) +![](keyboard-key-pressed.jpg) - In the **Key** field, type **Left** and click **OK**. This condition is true if the player presses the left arrow on the keyboard. @@ -176,7 +176,7 @@ Now you need to add a corresponding action to the condition. The paddle should m To move objects with an applied force, you will need to specify an angle. The picture below illustrates how GDevelop understands the angle of rotation. On a horizontal axis, left is 180°, right is 0°. - ![](/gdevelop5/tutorials/breakout-game/angles.png) + ![](angles.png) - Click **Add action**. @@ -192,7 +192,11 @@ Now you need to add a corresponding action to the condition. The paddle should m - Click **OK**. -![](/gdevelop5/tutorials/breakout-game/add_force_to_paddle.jpg) +![](add_force_to_paddle.jpg) + +!!! warning + + The [top-down movement](/gdevelop5/behaviors/topdown) behavior is a better fit to move the paddle. !!! tip @@ -201,7 +205,7 @@ Now you need to add a corresponding action to the condition. The paddle should m ---- -Use the preview feature to verify your work. Click the **Launch a preview of the scene** button.![](/gdevelop5/tutorials/breakout-game/preview-button.jpg) +Use the preview feature to verify your work. Click the **Launch a preview of the scene** button.![](preview-button.jpg) Press your left arrow to move the paddle. You will find the paddle doesn't stop when it reaches the barrier - it just continues off screen. You can fix this by closing the preview window and adding another condition to the paddle movement. @@ -219,7 +223,7 @@ To add another condition to stop the paddle: - Click **OK**. -![](/gdevelop5/tutorials/breakout-game/x_position.jpg) +![](x_position.jpg) Preview your game again. The paddle should stop upon hitting the left barrier. @@ -262,11 +266,11 @@ Preview your game to make sure it works. ## Add comments to the Events Editor As you work in your Events Editor, it is a good practice to add comments for each set of events. You will be able to quickly find and understand your events as your game grows if you catalogue them as you work. - - To add a comment line, click **Add a comment**. ![](/gdevelop5/tutorials/breakout-game/add_a_comment.jpg) + - To add a comment line, click **Add a comment**. ![](add_a_comment.jpg) - Enter your comment text and use the blue bar on the left of the comment to drag and drop your comment where you want it. -![](/gdevelop5/tutorials/breakout-game/moved_comment.jpg) +![](moved_comment.jpg) ---- @@ -299,7 +303,7 @@ To make the ball move when the player presses the space bar to start: * In the **Key** field, type **Space** and click **OK**. -![](/gdevelop5/tutorials/breakout-game/space_bar.jpg) +![](space_bar.jpg) ---- @@ -310,13 +314,13 @@ To make the ball move when the player presses the space bar to start: !!! tip - You don't need to memorize all the expressions. You can open the **Expression Editor** to help you populate fields. ![](/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg) In this case, you could type **-45** in the **Angle** field then click **Expression Editor** and search by **Random**. The expression **Random integer in range** with a minimum value of -5 and a maximum value of 5 will generate RandomInRange(-5, 5) in your field. You can use it in your speed calculation as you'd like. + You don't need to memorize all the expressions. You can open the **Expression Editor** to help you populate fields. ![](expression_editor_button.jpg) In this case, you could type **-45** in the **Angle** field then click **Expression Editor** and search by **Random**. The expression **Random integer in range** with a minimum value of -5 and a maximum value of 5 will generate RandomInRange(-5, 5) in your field. You can use it in your speed calculation as you'd like. * In the **Speed (in pixels per second)** field, type **300**. Adjust this as you wish; the higher the number, the faster the object. * Click **Permanent**, since you want the ball to continue to move throughout the game. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/ball-start-movement.jpg) +![](ball-start-movement.jpg) This is a good time to add a comment, save and preview your game. The ball should move when the spacebar is pressed. @@ -337,11 +341,11 @@ To add a bounce behavior to your ball object: * Click **+** to add a new behavior to the object. * The Bounce behavior is not an installed behavior, so you need to find it. Click the** Search New Behaviors** tab. * From the list at the bottom, select **Bounce** and click **Install in project**. -![](/gdevelop5/tutorials/breakout-game/add_bounce_behaviour.png) +![](add_bounce_behaviour.png) * You can now add the new behavior to the object. Scroll down, select **Bounce**, and click **Apply**. -![](/gdevelop5/tutorials/apply_bounce.png) +![](apply_bounce.png) Your ball is now ready to bounce! @@ -369,7 +373,7 @@ To add the action causing the ball to bounce off the barrier upon collision: * In the **Objects to bounce on** field, select **Barrier**. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/add_bounce_action_in_event.png) +![](add_bounce_action_in_event.png) ---- @@ -397,7 +401,7 @@ To add your bricks: * Name this object **Brick**. Give it three separate animations using the brick-green.png, brick-red.png and brick-yellow.png files from your project folder. Name the animations accordingly. * Click **Apply**. -![](/gdevelop5/tutorials/brick_colours.png) +![](brick_colours.png) ---- @@ -408,11 +412,11 @@ You can use external layouts to create some different levels with different bric To create an external layout: - * Click on the **Project manager** button on the top left. ![](/gdevelop5/tutorials/breakout-game/project_manager.jpg) + * Click on the **Project manager** button on the top left. ![](project_manager.jpg) * Click **External layouts** and **+** to add an external layout. * Click **⋮** next to your new layout and rename it **Layout1**. -![](/gdevelop5/tutorials/breakout-game/external_layout_add.png) +![](external_layout_add.png) * Click **Layout1**. You will be asked to choose the scene in which it will be included. Choose **NewScene** - that is the scene where all the game play happens. A new tab will open that looks like your existing NewScene. * Add bricks in whatever configuration you choose. Have fun with this part - be creative! @@ -422,7 +426,7 @@ To create an external layout: To speed things up, click or select objects then hold Ctrl down, click and drag to replicate instances on the screen. Holding Ctrl+Shift keeps the new instances on the same X or Y axis. - ![](/gdevelop5/tutorials/breakout-game/duplicating_objects.gif) + ![](duplicating_objects.gif) * Create two or more new layouts and name them Layout1, Layout2, etc. @@ -449,7 +453,7 @@ Rather than attach actions to this condition, you will now create sub-events tha To start, create a new scene variable called Random_layout: - * Click on a blank space within the event you just created and click the **Add a sub-event to the selected event** button.![](/gdevelop5/tutorials/breakout-game/subevent_button.jpg) + * Click on a blank space within the event you just created and click the **Add a sub-event to the selected event** button.![](subevent_button.jpg) * In the new sub-event, click **Add action**. * Click **Variables > Value of a scene variable**. * In the **Variable** field, type **Random_layout** to create a new scene variable. @@ -457,11 +461,11 @@ To start, create a new scene variable called Random_layout: * In the **Value** field, type **Random(2)+1**. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/modify_scene_variable_value.jpg) +![](modify_scene_variable_value.jpg) !!! tip - Try using the Expression Editor to create your expressions. ![](/gdevelop5/tutorials/breakout-game/expression_editor_button.jpg) + Try using the Expression Editor to create your expressions. ![](expression_editor_button.jpg) The more you play with expressions, the more you will understand the logic behind them. Don't be afraid to experiment! @@ -476,7 +480,7 @@ To add a random layout of bricks to the beginning of the scene: * In the **Name of the external layout** field, type **"Layout" + ToString(Variable(Random_layout))**. This will randomly add one of the external layouts to the scene. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/random_layout_selection.jpg) +![](random_layout_selection.jpg) ---- @@ -492,7 +496,7 @@ To choose a random brick colour: * In the **Value** field, type **Random(2)**. * Click **OK**. -![](/gdevelop5/tutorials/modify_scene_variable_value2.png) +![](modify_scene_variable_value2.png) ---- @@ -504,7 +508,7 @@ To choose a random brick colour: * In the **Value** field, type **Variable(Brick_colour)**. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/brick_colour_change.jpg) +![](brick_colour_change.jpg) Save and preview your game. A player will now see a randomly-selected external layout with bricks in a random colour whenever the game is started. @@ -538,7 +542,7 @@ As the ball bounces off bricks, it should destroy them. Destroying an object in * In the Object field, select **Brick**. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/delete_a_brick.jpg) +![](delete_a_brick.jpg) Save and preview your game. You should be able to bounce the ball off the paddle and destroy the bricks. This is a good time to check your speed again - do you want the ball or the paddle to be faster or slower? If so, play with your speed values until you're happy with the gameplay. @@ -560,7 +564,7 @@ To add a text object to the scene: * In the **Text** field, type a congratulatory message (e.g. Congratulations! You cleared all the blocks!). Also include a line telling the player "Press Enter to play again." * Click **Apply**. -![](/gdevelop5/tutorials/breakout-game/congratulations_message.jpg) +![](congratulations_message.jpg) * Drag and drop your Congratulations object into the middle of the scene. @@ -575,7 +579,7 @@ To hide your text object at the start of the scene: * In the **Object** field, select **Congratulations**. * Click **OK**. -![](/gdevelop5/tutorials/breakout-game/hide_congratulations.jpg) +![](hide_congratulations.jpg) ---- @@ -595,13 +599,13 @@ To make your text object appear when all the bricks are destroyed: If there are 0 bricks, the ball should be deleted and the congratulations object should be made visible. Both of the actions are common actions for all objects. Add them now. -![](/gdevelop5/tutorials/breakout-game/if_no_bricks.png) +![](if_no_bricks.png) ---- You also want to give the player the option of starting a new game: - * Create a new sub-event ![](/gdevelop5/tutorials/breakout-game/subevent_button.jpg) to the event you just created where the number of brick objects is =0. + * Create a new sub-event ![](subevent_button.jpg) to the event you just created where the number of brick objects is =0. * Click **Add Condition**. * Click **Keyboard > Key pressed**. * In the **Key** field, type **Return**. (Remember the congratulations message tells the player to hit Enter to start again.) @@ -635,7 +639,7 @@ Drag and drop your GameOver object into the middle of the scene. It's OK if it's Next, go to the Events Editor to hide your GameOver object at the start of the scene. Follow the same steps to hide the GameOver object as you did for the Congratulations object. Add it as a second action to the event. -![](/gdevelop5/tutorials/breakout-game/gameover_hide.png) +![](gameover_hide.png) ---- @@ -653,7 +657,7 @@ To add a condition to check if the player has missed the ball: Add a corresponding action to make the GameOver object visible. You should also add a sub-event that causes the ball to be deleted and the game to restart if the player presses Enter. Add them now. -![](/gdevelop5/tutorials/breakout-game/player_misses_ball.png) +![](player_misses_ball.png) Save and preview your game. diff --git a/docs/gdevelop5/tutorials/breakout-game/keyboard-key-pressed.jpg b/docs/gdevelop5/tutorials/breakout/keyboard-key-pressed.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/keyboard-key-pressed.jpg rename to docs/gdevelop5/tutorials/breakout/keyboard-key-pressed.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/modify_scene_variable_value.jpg b/docs/gdevelop5/tutorials/breakout/modify_scene_variable_value.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/modify_scene_variable_value.jpg rename to docs/gdevelop5/tutorials/breakout/modify_scene_variable_value.jpg diff --git a/docs/gdevelop5/tutorials/modify_scene_variable_value2.png b/docs/gdevelop5/tutorials/breakout/modify_scene_variable_value2.png similarity index 100% rename from docs/gdevelop5/tutorials/modify_scene_variable_value2.png rename to docs/gdevelop5/tutorials/breakout/modify_scene_variable_value2.png diff --git a/docs/gdevelop5/tutorials/breakout-game/moved_comment.jpg b/docs/gdevelop5/tutorials/breakout/moved_comment.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/moved_comment.jpg rename to docs/gdevelop5/tutorials/breakout/moved_comment.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/newscene.jpg b/docs/gdevelop5/tutorials/breakout/newscene.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/newscene.jpg rename to docs/gdevelop5/tutorials/breakout/newscene.jpg diff --git a/docs/gdevelop5/tutorials/object_types.jpg b/docs/gdevelop5/tutorials/breakout/object_types.jpg similarity index 100% rename from docs/gdevelop5/tutorials/object_types.jpg rename to docs/gdevelop5/tutorials/breakout/object_types.jpg diff --git a/docs/gdevelop5/tutorials/paddle_animation.jpg b/docs/gdevelop5/tutorials/breakout/paddle_animation.jpg similarity index 100% rename from docs/gdevelop5/tutorials/paddle_animation.jpg rename to docs/gdevelop5/tutorials/breakout/paddle_animation.jpg diff --git a/docs/gdevelop5/tutorials/paddle_drag.gif b/docs/gdevelop5/tutorials/breakout/paddle_drag.gif similarity index 100% rename from docs/gdevelop5/tutorials/paddle_drag.gif rename to docs/gdevelop5/tutorials/breakout/paddle_drag.gif diff --git a/docs/gdevelop5/tutorials/breakout-game/player_misses_ball.png b/docs/gdevelop5/tutorials/breakout/player_misses_ball.png similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/player_misses_ball.png rename to docs/gdevelop5/tutorials/breakout/player_misses_ball.png diff --git a/docs/gdevelop5/tutorials/breakout-game/preview-button.jpg b/docs/gdevelop5/tutorials/breakout/preview-button.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/preview-button.jpg rename to docs/gdevelop5/tutorials/breakout/preview-button.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/project_manager.jpg b/docs/gdevelop5/tutorials/breakout/project_manager.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/project_manager.jpg rename to docs/gdevelop5/tutorials/breakout/project_manager.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/random_layout_selection.jpg b/docs/gdevelop5/tutorials/breakout/random_layout_selection.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/random_layout_selection.jpg rename to docs/gdevelop5/tutorials/breakout/random_layout_selection.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/space_bar.jpg b/docs/gdevelop5/tutorials/breakout/space_bar.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/space_bar.jpg rename to docs/gdevelop5/tutorials/breakout/space_bar.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/subevent_button.jpg b/docs/gdevelop5/tutorials/breakout/subevent_button.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/subevent_button.jpg rename to docs/gdevelop5/tutorials/breakout/subevent_button.jpg diff --git a/docs/gdevelop5/tutorials/breakout-game/x_position.jpg b/docs/gdevelop5/tutorials/breakout/x_position.jpg similarity index 100% rename from docs/gdevelop5/tutorials/breakout-game/x_position.jpg rename to docs/gdevelop5/tutorials/breakout/x_position.jpg diff --git a/docs/gdevelop5/tutorials/0endlessrunner_flow.jpg b/docs/gdevelop5/tutorials/endless-runner/0endlessrunner_flow.jpg similarity index 100% rename from docs/gdevelop5/tutorials/0endlessrunner_flow.jpg rename to docs/gdevelop5/tutorials/endless-runner/0endlessrunner_flow.jpg diff --git a/docs/gdevelop5/tutorials/bandicam20190524002201609.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam20190524002201609.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam20190524002201609.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam20190524002201609.gif diff --git a/docs/gdevelop5/tutorials/bandicam20190525005610196.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam20190525005610196.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam20190525005610196.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam20190525005610196.gif diff --git a/docs/gdevelop5/tutorials/bandicam20190526210601391.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam20190526210601391.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam20190526210601391.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam20190526210601391.gif diff --git a/docs/gdevelop5/tutorials/bandicam201905gg24124850768.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam201905gg24124850768.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam201905gg24124850768.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam201905gg24124850768.gif diff --git a/docs/gdevelop5/tutorials/bandicam20190614211720602_1_.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam20190614211720602_1_.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam20190614211720602_1_.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam20190614211720602_1_.gif diff --git a/docs/gdevelop5/tutorials/bandicam20190gg526213134987.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam20190gg526213134987.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam20190gg526213134987.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam20190gg526213134987.gif diff --git a/docs/gdevelop5/tutorials/bandicam201fg90524131437905.gif b/docs/gdevelop5/tutorials/endless-runner/bandicam201fg90524131437905.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam201fg90524131437905.gif rename to docs/gdevelop5/tutorials/endless-runner/bandicam201fg90524131437905.gif diff --git a/docs/gdevelop5/tutorials/endless_runner_resources.rar b/docs/gdevelop5/tutorials/endless-runner/endless_runner_resources.rar similarity index 100% rename from docs/gdevelop5/tutorials/endless_runner_resources.rar rename to docs/gdevelop5/tutorials/endless-runner/endless_runner_resources.rar diff --git a/docs/gdevelop5/tutorials/endlessrunnergame_intro.png b/docs/gdevelop5/tutorials/endless-runner/endlessrunnergame_intro.png similarity index 100% rename from docs/gdevelop5/tutorials/endlessrunnergame_intro.png rename to docs/gdevelop5/tutorials/endless-runner/endlessrunnergame_intro.png diff --git a/docs/gdevelop5/tutorials/endlessrunnerplatform.png b/docs/gdevelop5/tutorials/endless-runner/endlessrunnerplatform.png similarity index 100% rename from docs/gdevelop5/tutorials/endlessrunnerplatform.png rename to docs/gdevelop5/tutorials/endless-runner/endlessrunnerplatform.png diff --git a/docs/gdevelop5/tutorials/gdevelopstartscreen.png b/docs/gdevelop5/tutorials/endless-runner/gdevelopstartscreen.png similarity index 100% rename from docs/gdevelop5/tutorials/gdevelopstartscreen.png rename to docs/gdevelop5/tutorials/endless-runner/gdevelopstartscreen.png diff --git a/docs/gdevelop5/tutorials/endless-runner.md b/docs/gdevelop5/tutorials/endless-runner/index.md similarity index 76% rename from docs/gdevelop5/tutorials/endless-runner.md rename to docs/gdevelop5/tutorials/endless-runner/index.md index 2bca35a83c..c8ed0d0439 100644 --- a/docs/gdevelop5/tutorials/endless-runner.md +++ b/docs/gdevelop5/tutorials/endless-runner/index.md @@ -3,11 +3,11 @@ title: A Beginner's Tutorial to an Endless Runner Game --- # A Beginner's Tutorial to an Endless Runner Game -> ![](/gdevelop5/tutorials/endlessrunnergame_intro.png) This tutorial will help you get familiar with the way GDevelop works. In this tutorial, we are going to create a very basic endless runner game where the **platforms are generated randomly** and the player has to move to prevent being pushed outside the screen. There is also a **score system** which updates the score when the player is in action. +> ![](endlessrunnergame_intro.png) This tutorial will help you get familiar with the way GDevelop works. In this tutorial, we are going to create a very basic endless runner game where the **platforms are generated randomly** and the player has to move to prevent being pushed outside the screen. There is also a **score system** which updates the score when the player is in action. > To know the basics of how the software works, you can refer [](/gdevelop5/getting_started) for more information. -![](/gdevelop5/tutorials/gdevelopstartscreen.png) +![](gdevelopstartscreen.png) ## Download GDevelop @@ -19,11 +19,11 @@ It is advised to always check the above page for the latest versions of GDevelop #### ☆Player Sprite -![](/gdevelop5/tutorials/p1_stand.png) This is the main character that we, the user, will be controlling. The player sprite can only "Jump" to avoid the obstacles and to stay inside the screen. It has **Idle**, **Run** and **Jump** animations. +![](p1_stand.png) This is the main character that we, the user, will be controlling. The player sprite can only "Jump" to avoid the obstacles and to stay inside the screen. It has **Idle**, **Run** and **Jump** animations. #### ☆Platform/Obstacles -![](/gdevelop5/tutorials/endlessrunnerplatform.png) These are the moving blocks that Player Sprite has to avoid. These blocks will be encountered by the player randomly. +![](endlessrunnerplatform.png) These are the moving blocks that Player Sprite has to avoid. These blocks will be encountered by the player randomly. #### ☆Score Display @@ -33,17 +33,17 @@ This block of text updates and displays the score while the Player Sprite is in > > #### Download the Resources > -You will be needing game assets that you can use to make the characters, platforms, and backgrounds for the game. Find all the resources you need for this game right ![here](/gdevelop5/tutorials/endless_runner_resources.rar). +You will be needing game assets that you can use to make the characters, platforms, and backgrounds for the game. Find all the resources you need for this game right ![here](endless_runner_resources.rar). ## Step 1: Creating a New Project Once on the Start screen, click on the "Create a New Project" button. By doing so, a "Create a New Game" dialog box appears. Next, scroll down and find the "Empty Game" tab. Click on it to open a new project. -![](/gdevelop5/tutorials/screeenshot_na_test.png) +![](../shared/screeenshot_na_test.png) You can also choose to customize your Project location. -![](/gdevelop5/tutorials/store_location_for_endless_runner.png) +![](../shared/store_location_for_endless_runner.png) Click on the "Choose Folder" option to choose the location of your choice. Game project files will be stored at this location. @@ -51,7 +51,7 @@ Click on the "Choose Folder" option to choose the location of your choice. Game A game relies on scenes for different scenarios of gameplay. We can make and use multiple scenes, but for this tutorial, we only need **1 Scene**. Let's create a new Scene. -![](/gdevelop5/tutorials/new_scene_creation_for_endless_runner.png) +![](../shared/new_scene_creation_for_endless_runner.png) Click on the area where it says `Click to add a Scene` to create your first empty scene. @@ -63,9 +63,9 @@ You can customize the name of your scene by clicking on the three dots next to t Click on the scene that we had made in the previous step to open the **Scene Editor**. This is where we will be making the game elements. -![](/gdevelop5/tutorials/new_scene_for_endless_runner.png) +![](../shared/new_scene_for_endless_runner.png) -You should see the **Object** tab and the **Properties** tab. ![](/gdevelop5/tutorials/screenshot_20190523182052.png) ![](/gdevelop5/tutorials/screenshot_20190523182628.png) If by any chance, you cannot see those tabs, click on the icon shown on the left to open the "Objects" tab. Similarly, click on the icon on the right to open the "Properties" tab. +You should see the **Object** tab and the **Properties** tab. ![](screenshot_20190523182052.png) ![](screenshot_20190523182628.png) If by any chance, you cannot see those tabs, click on the icon shown on the left to open the "Objects" tab. Similarly, click on the icon on the right to open the "Properties" tab. > The latest version of GDevelop will warn you if you try to load an asset which is not in your game project location. Make sure to always put your images in the same folder as the game (or a subfolder). Otherwise, if you move your game, it will break the links to the images. Uncompress the provided archive in the folder of the game and use those images. tip @@ -73,15 +73,15 @@ You should see the **Object** tab and the **Properties** tab. ![](/gdevelop5/tut As mentioned under **Main Game Elements**, we need a character that the user can control. Note that since this is an endless runner game, we only want the character to jump to avoid the obstacles that come in the way to stay alive. -![](/gdevelop5/tutorials/screenshot_20190523183140.png) +![](screenshot_20190523183140.png) Click on the `Click to add an Object` area on the Objects tab to create your first object. A dialog box opens which shows the various types of objects. For our character, we need a **Sprite** type of object, where we can add animations for the character being **Idle**, or **Jumping**, or **Running**. -![](/gdevelop5/tutorials/screenshot_20190523183646.png) +![](screenshot_20190523183646.png) Upon clicking the "Sprite" option, a dialog box to change the properties of the Sprite object appears. We are now going to add animations for our character. To add your first animation, simply click on the `Click to add an animation` area or on the **+** button. -![](/gdevelop5/tutorials/screenshot_20190523184135.png) +![](screenshot_20190523184135.png) A new empty Animation placeholder appears. We will now load our Sprite images to create our animation. As you can notice, our Animation has an identifier `0`, We can supply a name to our animation too. @@ -89,23 +89,23 @@ For our first animation, we want to create an Idle animation. Click on the big * Choose the `p1_stand.png` image from the archive that you've downloaded and uncompressed. After you have chosen the file, the animation placeholder now looks like this. -![](/gdevelop5/tutorials/screenshot_20190523184730.png) +![](screenshot_20190523184730.png) Note that, I have given our Sprite object a name called "Player". Similarly, I have also assigned a name to our animation as "Idle". Naming is optional, but naming sprites within your project makes it organized and easy to use. Our first animation is done. Now, let's add the **Jumping** and **Running** animations. Try doing it using the images provided in the archive that you've downloaded. There will be multiple frames for the Running animation, while the Jumping animation will only have one frame according to the archived file provided. After you are done with all three animations, it will look somewhat like this. -![](/gdevelop5/tutorials/screenshot_20190523185739.png) +![](screenshot_20190523185739.png) -As you can see, the **Run** animation has multiple frames. ![](/gdevelop5/tutorials/output_xfxzmp.gif) Each frame has a separate image file. When executed, all frames are played back to back, thus creating a running animation. The Run animation will look like the action shown in the image on the left. +As you can see, the **Run** animation has multiple frames. ![](output_xfxzmp.gif) Each frame has a separate image file. When executed, all frames are played back to back, thus creating a running animation. The Run animation will look like the action shown in the image on the left. Now we are going to add a **Behavior** for our Player Sprite. Behaviors add extra capabilities to objects. Click on the Behaviours tab in the Player Sprite Dialog box. Then create a behavior by clicking on the "Click to add a behavior to the object" area. Then select **Platform Character** type of behavior. -![](/gdevelop5/tutorials/screenshot_20190524121809.png) +![](screenshot_20190524121809.png) The behavior editor menu will open up. Here, make sure to uncheck the **Default controls** feature for this behavior. The default controls property adds all necessary movements for a platformer character including moving left, right and jumping. Since we don't want our character to move left or right, but only need the Jump action, we disable this property and create the Jump movement using events. -![](/gdevelop5/tutorials/screenshot_20190524122246.png) +![](screenshot_20190524122246.png) We are now done with creating our Player Sprite. Remember to enable the **Loop** feature for the animations where multiple frames were used, i.e., for the Running animation in our case. If we don't loop it, the animation will play once and stop at the last frame. @@ -113,15 +113,15 @@ We are now done with creating our Player Sprite. Remember to enable the **Loop** A platform is an object a character can collide with and/or walk on. For our game, the platform will be the obstacles that the Player Sprite must avoid. To create a Platform object, click to add a new object on the Objects tab and choose a **Tiled Sprite** type of object. It's an image that is repeated like a mosaic. -![](/gdevelop5/tutorials/tiled_sprite_for_endless_runner.png) +![](tiled_sprite_for_endless_runner.png) After choosing the Tiled Sprite Object, we get a dialog box similar to the one for the Player Sprite we created. Click on the "Select an image" area to choose the image for our platform/obstacle. Once you are done loading the asset `Platform.png`, the dialog box will look something like this. -![](/gdevelop5/tutorials/screenshot_20190615205900.png) +![](screenshot_20190615205900.png) Notice that I have also changed the default object name to "Platform". Change your Default width to *193* and Default height to *40*, for now. Now, we need to add a **Behavior** for this object, in a way similar to when we added behavior for our Player Sprite. Go to the Behaviors tab, click to add a behavior to the object and choose **Platform** type of behavior. -![](/gdevelop5/tutorials/screenshot_20190524122730.png) +![](screenshot_20190524122730.png) Click on **Apply**, once you are done. It's now time to place our created objects into the **Scene space**. @@ -129,17 +129,17 @@ Click on **Apply**, once you are done. It's now time to place our created object Drag and drop the **Platform** and **Player** sprite from the Objects tab and place them within your scene. -![](/gdevelop5/tutorials/screenshot_20190523193203.png) +![](screenshot_20190523193203.png) This is how the Scene space looks after I have placed both the objects. Note that the black border you can see is the **Game Window** size. The elements within this space are only visible to the user. We can change the window size by going to **Project Manager**-\>**Properties**, but for now, let it be the way it is. Click on the Obstacle object in the scene space and do **Right Click**-\>**Copy** or **Ctrl**+**C** (for Windows) to copy the object. We are going to create multiple obstacles to fill the scene space. After you have copied, do **Right Click**-\>**Paste** to duplicate the object on the scene space. Do it multiple times to fill the scene. The scene now looks like this. -![](/gdevelop5/tutorials/screenshot_20190523193924.png) +![](screenshot_20190523193924.png) We need to create some more Obstacles/Platforms towards the right of the scene space for smoother random generation of obstacles. Lastly, we add a **Skybox** or background for our game. It is a **Sprite** type object. Try adding this object on your own. The asset being used here is `background.png`. The scene now looks like this. Notice the additional obstacles created. To put the background image **behind** all the other assets, we want it's **Z-Order** to be minimum. Z-Order can be changed in the **Properties** tab on the left. -![](/gdevelop5/tutorials/screenshot_20190523194718.png) +![](screenshot_20190523194718.png) Now comes the most interesting part. It's now time to make our game functional. Learn a few things about [Events](http://wiki.compilgames.net/doku.php/gdevelop5/events) before moving to the next step. @@ -147,31 +147,31 @@ Now comes the most interesting part. It's now time to make our game functional. Events are what we use to create the rules of any games in GDevelop. This is what makes GDevelop special compared to traditional game engines. Events in GDevelop allow you to visually program your game without any programming knowledge or experience, so people with any background will be able to create the actual game-play and allow players to interact with the game. -![](/gdevelop5/tutorials/screenshot_20190523232323.png) +![](screenshot_20190523232323.png) -![](/gdevelop5/tutorials/screenshot_20190523232911.png) That being said, let's make our first event. Move on to **NewScene(Events)** tab by clicking on the mentioned tab. Then click on the icon shown on the left to create an empty **Event**. +![](screenshot_20190523232911.png) That being said, let's make our first event. Move on to **NewScene(Events)** tab by clicking on the mentioned tab. Then click on the icon shown on the left to create an empty **Event**. For our first event, we want our Player Sprite to Jump when the **Up** arrow key is pressed. To do that, we need to add a condition to detect whether the Up key is pressed or not. Click on **Add a condition** and search for the "Keyboard" category. Choose **Key pressed** condition and make it check the Up key as shown below. -![](/gdevelop5/tutorials/screenshot_s20190523235134.png) +![](screenshot_s20190523235134.png) Click on **OK** to confirm and we will have our first Event condition. Next up, we need to "Add an action" that will take place if the condition is met. We want our character to jump when the specified condition is met. To add this action, search and click on **Platform Behaviour**-\>**Control**-\>**Simulate jump keypress**. -![](/gdevelop5/tutorials/screenshot_20190524000351.png) +![](screenshot_20190524000351.png) Note that the Object should be set to Player as we want the player to perform the action. Now we also want the jump animation to play while the Player Sprite jumps. To do this we add another action for the same event condition. Click on **Add an action**-\>**Sprite**-\>**Animation and images**-\>**Change the animation** and set it as shown. Note that instead of using identifier numbers, you can also use the animation name. To refer to animations using their name, you should use the **Change the animation (by name)** option instead. The name should be within quotes. -![](/gdevelop5/tutorials/screenshot_20190524000821.png) +![](screenshot_20190524000821.png) -![](/gdevelop5/tutorials/screenshot_20190524001313.png) The Events tab will look something like this now. +![](screenshot_20190524001313.png) The Events tab will look something like this now. > Adding **Comments** is a good way to keep the event editor organized. To add a comment, click on the icon shown on the left. Comments are used to describe what is being checked and performed in that particular event for debugging later.tip -![](/gdevelop5/tutorials/screenshot_20190524001533.png) +![](screenshot_20190524001533.png) -![](/gdevelop5/tutorials/screenshot_20190524003448.png) It's now time to see how the created event works. Click on the `Play` button to **Preview** the Project. A preview window opens up, where we can test the various functions in our game. The preview window shows us exactly how the game looks and performs while in action. +![](screenshot_20190524003448.png) It's now time to see how the created event works. Click on the `Play` button to **Preview** the Project. A preview window opens up, where we can test the various functions in our game. The preview window shows us exactly how the game looks and performs while in action. -![](/gdevelop5/tutorials/bandicam20190524002201609.gif) Right now, we want to test the event that we just created, i.e, making our character Jump and also playing the jump animation while jumping. Use the Up arrow key to test the jumping action. +![](bandicam20190524002201609.gif) Right now, we want to test the event that we just created, i.e, making our character Jump and also playing the jump animation while jumping. Use the Up arrow key to test the jumping action. We can see our character jumping and also the animation has now changed to the Jump animation specified. Note that the character stays in the Jump animation state even after coming back to the ground. We will handle this problem when we create other events. @@ -181,29 +181,29 @@ We can see our character jumping and also the animation has now changed to the J For the second event, we will now make the obstacles/platforms move towards the left of the screen. To do this, we need to specify a force due to which the obstacles move at a certain speed. First of all, click to add a new event just like you did for our first event. No need to specify any condition for now. Let's focus on the actions. -![](/gdevelop5/tutorials/screenshot_20190604123755.png) +![](screenshot_20190604123755.png) -![](/gdevelop5/tutorials/bandicam201905gg24124850768.gif) For our first action, click to "Add an action". Then find **Common actions for all objects**-\>**Movement**-\>**Add a Force(Angle)**. Then choose **Platform** as the object and assign it an angle **180**(specifying left direction) and a speed **250**. You can test the action we just created by using the Play button to see a preview. You can see the obstacles moving towards the left. Notice that when the Player Sprite comes in contact with the Platform/Obstacle, it also moves(slides) towards the left. We don't want our character to move when he **is on the floor** of the platform. Our next event handles that. +![](bandicam201905gg24124850768.gif) For our first action, click to "Add an action". Then find **Common actions for all objects**-\>**Movement**-\>**Add a Force(Angle)**. Then choose **Platform** as the object and assign it an angle **180**(specifying left direction) and a speed **250**. You can test the action we just created by using the Play button to see a preview. You can see the obstacles moving towards the left. Notice that when the Player Sprite comes in contact with the Platform/Obstacle, it also moves(slides) towards the left. We don't want our character to move when he **is on the floor** of the platform. Our next event handles that. ------------------------------------------------------------------------ As mentioned above, we need to fix the Player Sprite sliding issue. To do that, we will make use of a new event. Click to add a new event, and "Add a condition", **Platform Behavior**-\>**Options**-\>**Is on floor**. Choose the object to be **Player** because this is what we are trying to check, i.e, whether the character "is on floor". -![](/gdevelop5/tutorials/screenshot_20190524130158.png) +![](screenshot_20190524130158.png) Now, we need to add a corresponding action. Add an action to this event, similar to the one we added for the obstacle/platform to make it move towards left. This time, we need to make our character move towards right whenever he is on the floor of the platform. We say "move towards the right" but our character doesn't really move. It just balances the negative movement of the platform or obstacle so that the character does not slide. Try to add this action yourself. > Hint: Click on Add an action. Find **Common actions for all objects**-\>**Movement**-\>**Add a Force(Angle)**. Then choose **Player** as the object and assign it an angle **0**(specifying right direction) and a speed **250**.tip -![](/gdevelop5/tutorials/screenshot_20190604124748.png) +![](screenshot_20190604124748.png) -![](/gdevelop5/tutorials/bandicam201fg90524131437905.gif) Now you can try the preview of the events we made. You can see that now the sliding problem has been fixed and the basic game mechanics have been successfully created, that is, the character can jump to avoid the obstacles and the obstacles move constantly towards the character. Note that at this point, the obstacles are limited and the character soon runs out of platforms to jump on. We are going to work on this problem in our next event. +![](bandicam201fg90524131437905.gif) Now you can try the preview of the events we made. You can see that now the sliding problem has been fixed and the basic game mechanics have been successfully created, that is, the character can jump to avoid the obstacles and the obstacles move constantly towards the character. Note that at this point, the obstacles are limited and the character soon runs out of platforms to jump on. We are going to work on this problem in our next event. ------------------------------------------------------------------------ We also need to make the character play the **Run** animation when he is on floor. Since we have already made an event to check the "Is on floor" condition, we can simply add another action for this same event. Click **Add an action**-\>**Sprites**-\>**Animation and images**-\>**Change the animation**. Then fill in the object and the correct animation identifier to play that particular animation. For this game, we saved our Run animation at the identifier `2`. You can also use the animation name as an identifier. To refer to animations using their name, you should use the **Change the animation (by name)** option instead. If you use a name, don't forget to put the name within quotes (") as it is a string. -![](/gdevelop5/tutorials/screenshot_20190524155500.png) +![](screenshot_20190524155500.png) ------------------------------------------------------------------------ @@ -211,17 +211,17 @@ We also need to make the character play the **Run** animation when he is on floo Create a new event. In this event, we are going to make the platforms **endless**. Before moving on, go back to the scene space and analyze the X position of the **last** tile of the Platform/Obstacle. -![](/gdevelop5/tutorials/screenshot_20190524165044.png) +![](screenshot_20190524165044.png) As you can see, the X position of the last tile is *1550* for me. Don't worry if it's different for you. Whatever be the value, we will use that value to make the platforms endless. Now, `Add a condition` for this new event. Find **Common conditions for all object**-\>**Position**-\>**Compare X position of an object**. Choose the object "Platform" with Modification sign **≤ (less or equal to)** and value let's say **-200**. We are checking and **comparing** the X position of the **first** tile of the platform here. The condition is if the X position of the Platform is ≤-200, then the corresponding action will be executed. Now you may be wondering why the value __ -200__? Well, our scene space X position starts from the value *0*. We need to detect when the leftmost tile of our platform exits the scene space. We chose -200 as an arbitrary X position, which is out of the scene space. -![](/gdevelop5/tutorials/screenshot_20190614211353.png) +![](screenshot_20190614211353.png) Once the condition is in place, we are going to **Add an action**. Find **Common conditions for all object**-\>**Position**-\>**Change the X position of an object**. Now, we make use of the value of the X position of the last tile that I asked you to remember. For me, it was *1550*. Now, we choose "Platform" as the object, Modification sign as **= (equals)** and value is **1550**. Click **OK** to confirm and there we have our event completed. -![](/gdevelop5/tutorials/bandicam20190614211720602_1_.gif) What we did in this event was that we set up a **Loop** for out Obstacle/Platform tiles. As soon as a tile went out of bounds, that is out of the scene space, it was **teleported** to an X position(*1550* in my case) towards the right. Thus, the Obstacle tiles keep on looping and the game runs endlessly. +![](bandicam20190614211720602_1_.gif) What we did in this event was that we set up a **Loop** for out Obstacle/Platform tiles. As soon as a tile went out of bounds, that is out of the scene space, it was **teleported** to an X position(*1550* in my case) towards the right. Thus, the Obstacle tiles keep on looping and the game runs endlessly. --- @@ -239,13 +239,13 @@ We will now add **states** to our game. States describe the status of our game. - The third state is the "Game Over" state when the character falls off the platform. We are going to refer to this state using the value **2**. -![](/gdevelop5/tutorials/0endlessrunner_flow.jpg) +![](0endlessrunner_flow.jpg) First off, we need to set up a variable to store the current state of the game. Create a new event. **Add a condition**-\>**Scene**-\>**At the beginning of the scene**. Next, **Add an action**-\>**Variables**-\>**Value of a scene variable**. Then name your variable something, **state** for example and set it to **0**. This sets the game to the initial pre-game state at the start of the scene. -![](/gdevelop5/tutorials/screenshot_20190621003505.png) +![](screenshot_20190621003505.png) We don't want our game to start immediately. We want it to start after the user presses a key. @@ -253,7 +253,7 @@ In other words, we want the game to **start** when the value of the scene variab > Hint: In the event where we specified a force for the Platform to move, we will now add a condition. Click **Add a condition**-\>**Variables**-\>**Value of a scene variable**. Set it to check if the value is equal to **1**.tip -![](/gdevelop5/tutorials/screenshot_20190621000230.png) +![](screenshot_20190621000230.png) See the changes I made in our events: I added a new condition and made some **sub-events**. The condition of a sub-event is tested only if the parent event's condition results in `true`. In our case, if the game is in the **initial** state(event), only then will the sub-events check the respective conditions and perform their corresponding actions. @@ -261,25 +261,25 @@ To convert an event into a sub-event, you need to drag that event to put them un Sub-events **work** only if the event condition results to true. If the parent event's condition results to `false`, the sub-event conditions won't be checked and thus, their corresponding actions won't be executed even if the sub-event conditions result in `true`. -> ![](/gdevelop5/tutorials/screenshot_20190621002408.png) To add a new sub-event altogether, click to choose the event for which we are creating the sub-events. Then click on the icon shown on the left. You can find that in the Navigation Menu of GDevelop. +> ![](screenshot_20190621002408.png) To add a new sub-event altogether, click to choose the event for which we are creating the sub-events. Then click on the icon shown on the left. You can find that in the Navigation Menu of GDevelop. Now, unless the value of the scene variable is **1**, the game won't start, that is, the platforms won't move nor the player can jump. We need the user to start the game by pressing a key. To do that, add a new event. We need two conditions here. One for checking the value of the scene variable and another for detecting if the key is pressed or not. Both these conditions have already been added in some form in the other events. Try to do it yourself ;-) -![](/gdevelop5/tutorials/screenshot_20190524233235.png) +![](screenshot_20190524233235.png) > Hint: For the first condition, we need to check the value of the scene variable state. Click on **Add a condition**→**Variables**→**Value of a scene variable**. Set it to check if the value is equal to **0**. For the second condition, **Add a condition**-\>**Keyboard**-\>**Key pressed**, then set it to check for the **Up** key. tip Now, we add the action to change the game state. We want to change the value of the scene variable to 1. Click **Add an action**-\>**Variables**-\>**Value of a scene variable**. Then name your variable something, **state** for example and set it to **1**. It will look something like this. -![](/gdevelop5/tutorials/screenshot_20190524234531.png) +![](screenshot_20190524234531.png) You can now test how the game works. You will notice that the game does not start as soon as you click the Play button. You need to press the Up key to start the game. Go through what we did above once more if you did not understand what happened :-P Now, we need to work on the third state, i.e, when the game ends due to the character falling off the platform. We need to check the X and the Y positions of our character, i.e., we need to check if the character is inside the scene space. If he reaches outside, it is obvious he has fallen off the platform or has been pushed outside the screen. We check for these conditions and change the state of the game to **Game Over** state. -![](/gdevelop5/tutorials/screenshot_20190614213834.png) +![](screenshot_20190614213834.png) In this event, we use the concept of a condition and a sub-condition. Before we get more into the logic, let's first set up this condition-sub-condition ladder. **Add a condition**-\>**Advanced**-\>**Or**. This is the main condition we use. After you have confirmed and made this condition, you will notice, you can now add **sub-conditions**. Try to do it by yourself by seeing the image above. @@ -289,19 +289,19 @@ Now, let's understand what we did here. The condition we added specifies a rule Now we want to change the state of the game when this happens, so we add an action to change the value of the scene variable to **2**, the required third state. -![](/gdevelop5/tutorials/bandicam20190525005610196.gif) You can now test the game. You will notice that if you fall down or get pushed out, the movement of the obstacles stops. This shows that the game has successfully reached the **Game Over** state. In our next event, we will work on **restarting** the game, when the user presses a key. +![](bandicam20190525005610196.gif) You can now test the game. You will notice that if you fall down or get pushed out, the movement of the obstacles stops. This shows that the game has successfully reached the **Game Over** state. In our next event, we will work on **restarting** the game, when the user presses a key. --- ## Restarting the Game -![](/gdevelop5/tutorials/screenshot_20190526175455.png) We want the game to restart once the user presses a button after reaching the **Game Over** state. To achieve this, let's create a new event. We want to check whether the state of the game is **2**. If it is, then we want the user to press the **Enter/Return** key to restart the game. For this, we add two conditions, one for checking the value of the state variable and another for checking whether the Enter key is pressed. Try to add the conditions yourself or see the hint if you are stuck. +![](screenshot_20190526175455.png) We want the game to restart once the user presses a button after reaching the **Game Over** state. To achieve this, let's create a new event. We want to check whether the state of the game is **2**. If it is, then we want the user to press the **Enter/Return** key to restart the game. For this, we add two conditions, one for checking the value of the state variable and another for checking whether the Enter key is pressed. Try to add the conditions yourself or see the hint if you are stuck. > Hint: For the first condition, we need to check the value of the scene variable state. Click **Add a condition**→**Variables**→**Value of a scene variable**. Set it to check if the value is equal to **2**. For the second condition, **Add a condition**-\>**Keyboard**-\>**Key pressed**, then set it to check for the **Return** key pressed. tip Next, we need to add an action to restart the game or **scene**. To do this, **Add an action**-\> **Scene**-\> **Change the scene**. Then specify the name of our scene within quotes. Select the **Stop any other paused scenes** option. This option is not necessary for our game since it only contains one scene, but it may be beneficial for increasing the performance for games having a large number of scenes. -![](/gdevelop5/tutorials/screenshot_20190526174010.png) +![](screenshot_20190526174010.png) Now, after the **Game Over** state is reached, when the user presses the **Enter/Return** key, the game restarts and is taken to **initial** state, that is the state where the user has to press the Up button to start the game. @@ -317,61 +317,61 @@ A Score system is a necessary element in every game. Adding this to our game is Go to the Objects tab in the Scene Editor panel. Choose any object of your choice. We choose **Platform** here. Click the **three dots** beside the Platform Object tab and choose **Edit Object Variables**. A new dialog box opens up where we can add and configure variables for an object. Click the big Plus button to add a new variable. Then customize the variable name and value as shown below. -![](/gdevelop5/tutorials/screenshot_20190526181228.png) +![](screenshot_20190526181228.png) Now as you can see, we set its default value to 0. Now we need to make an action to update the score. Find the event shown below that we had already created before. -![](/gdevelop5/tutorials/screenshot_20190621000502.png) +![](screenshot_20190621000502.png) We will add this action here. Click **Add an action**. Find **Common actions for all object**-\>**Variables**-\>**Modify a variable of an object**. Then do as shown below. -![](/gdevelop5/tutorials/screenshot_20190526204732.png) +![](screenshot_20190526204732.png) We want to modify the object variable we just created. By adding this action, we tell the game to update the value continuously while the character is in action. We need a Text object to show this change in value. Go the scene editor. Add a new object of type **Text**. -![](/gdevelop5/tutorials/screenshot_20190526205106.png) +![](screenshot_20190526205106.png) Do the necessary modifications as shown above. You can customize it as you like. After you are done editing the text, click Apply. Then simply drag and drop the text object to the scene space. It will be something just like this. -![](/gdevelop5/tutorials/screenshot_20190526205123.png) +![](screenshot_20190526205123.png) Let's go back to the event we were editing. We need to add another action to update this text. Once we are back to that particular event, click **Add an Action**-\>**Text Object**-\>**Modify the text**. Now look very carefully at the image shown below. Now, the text object has a value of String type but our score variable stores number values. We need to use a library function here to convert that Integer to String and then update the text of the Text object. -![](/gdevelop5/tutorials/screenshot_20190526205906.png) +![](screenshot_20190526205906.png) -![](/gdevelop5/tutorials/bandicam20190526210601391.gif) We use the function `VariableString(variable)` to to do our job. You can learn more about library functions in their respective tutorials. You can now test the game. You can see the score updating while the player is in action. As soon as Game Over state is reached, the score stops updating. +![](bandicam20190526210601391.gif) We use the function `VariableString(variable)` to to do our job. You can learn more about library functions in their respective tutorials. You can now test the game. You can see the score updating while the player is in action. As soon as Game Over state is reached, the score stops updating. The event we modified will look something like this now. -![](/gdevelop5/tutorials/screenshot_20190526210158.png) +![](screenshot_20190526210158.png) ------------------------------------------------------------------------ Now we will add other necessary text objects for our game like a **Game Over** Text, a **Score** text, a **Press Enter to Restart** and **Press Up to Start**. For each of them, we will be creating separate **Text** objects. Similar to our previous step, add new text objects and modify the text in the object editor. Simply drag and drop them to your scene space to display them. -![](/gdevelop5/tutorials/screenshot_20190526211448.png) +![](screenshot_20190526211448.png) Notice how I made separate text objects for separate texts. But we don't want our game to show the `Game Over` text at the beginning. The Game Over text should only be visible only at the **Game Over** state, that is when the value of the state variable is **2**. Similarly, we want the Press Enter to Restart text to appear at this stage too while the other texts should be hidden. At stage 0, the Press Up to Enter text should be visible. While the player is in motion, we want to hide the texts. For this, we need to act on the visibility of these text objects. For this visibility modification, we use the action **Common action for all objects**-\> **Visibility** action. After adding all the actions at their respective places as stated above, the events editor page will look something like this. -![](/gdevelop5/tutorials/screenshot_20190526212127.png) +![](screenshot_20190526212127.png) Here at the beginning of the scene event, we have already made, we add two new actions to hide the Game Over and Restart texts. To add these actions, click **Add an action**-\> **Common action for all objects**-\> **Visibility**-\> Then Hide or Show accordingly. -![](/gdevelop5/tutorials/screenshot_20190526212329.png) +![](screenshot_20190526212329.png) Now, we also want to hide the Start text, when the game has already started. For this, we add another action to the even already created above. -![](/gdevelop5/tutorials/screenshot_20190614213634.png) +![](screenshot_20190614213634.png) Lastly, we add two events to **Show** the **Game Over** and **Restart** text when the game ends, that is when the Game Over state is reached. -![](/gdevelop5/tutorials/bandicam20190gg526213134987.gif) There we have it! You have successfully learned how to create an Endless Runner game. Making games with GDevelop is very easy once you grasp how to use the features. It took me about three days to write this tutorial in detail, while it only took me about an hour to create this game. Yes, that's how simple it is to make games in GDevelop💓 +![](bandicam20190gg526213134987.gif) There we have it! You have successfully learned how to create an Endless Runner game. Making games with GDevelop is very easy once you grasp how to use the features. It took me about three days to write this tutorial in detail, while it only took me about an hour to create this game. Yes, that's how simple it is to make games in GDevelop💓 ## Bonus: Making the Game More Challenging @@ -387,4 +387,4 @@ Do the same thing for the action where we specified speed for the player sprite Now, we want to check the value of the object variable `score`, and change the value of the scene variable `speed` accordingly. Add new events and specify the conditions to increase the speed of the platforms. An example is shown below: -![](/gdevelop5/tutorials/screenshot_20190615230009.png) +![](screenshot_20190615230009.png) diff --git a/docs/gdevelop5/tutorials/output_xfxzmp.gif b/docs/gdevelop5/tutorials/endless-runner/output_xfxzmp.gif similarity index 100% rename from docs/gdevelop5/tutorials/output_xfxzmp.gif rename to docs/gdevelop5/tutorials/endless-runner/output_xfxzmp.gif diff --git a/docs/gdevelop5/tutorials/p1_stand.png b/docs/gdevelop5/tutorials/endless-runner/p1_stand.png similarity index 100% rename from docs/gdevelop5/tutorials/p1_stand.png rename to docs/gdevelop5/tutorials/endless-runner/p1_stand.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523182052.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523182052.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523182052.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523182052.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523182628.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523182628.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523182628.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523182628.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523183140.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523183140.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523183140.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523183140.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523183646.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523183646.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523183646.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523183646.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523184135.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523184135.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523184135.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523184135.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523184730.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523184730.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523184730.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523184730.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523185739.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523185739.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523185739.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523185739.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523193203.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523193203.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523193203.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523193203.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523193924.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523193924.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523193924.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523193924.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523194718.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523194718.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523194718.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523194718.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523232323.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523232323.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523232323.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523232323.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190523232911.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190523232911.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190523232911.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190523232911.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524000351.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524000351.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524000351.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524000351.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524000821.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524000821.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524000821.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524000821.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524001313.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524001313.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524001313.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524001313.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524001533.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524001533.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524001533.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524001533.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524003448.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524003448.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524003448.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524003448.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524121809.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524121809.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524121809.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524121809.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524122246.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524122246.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524122246.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524122246.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524122730.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524122730.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524122730.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524122730.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524130158.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524130158.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524130158.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524130158.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524155500.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524155500.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524155500.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524155500.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524165044.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524165044.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524165044.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524165044.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524233235.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524233235.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524233235.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524233235.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190524234531.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190524234531.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190524234531.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190524234531.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526174010.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526174010.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526174010.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526174010.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526175455.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526175455.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526175455.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526175455.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526181228.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526181228.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526181228.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526181228.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526204732.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526204732.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526204732.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526204732.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526205106.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526205106.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526205106.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526205106.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526205123.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526205123.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526205123.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526205123.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526205906.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526205906.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526205906.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526205906.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526210158.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526210158.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526210158.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526210158.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526211448.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526211448.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526211448.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526211448.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526212127.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526212127.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526212127.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526212127.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190526212329.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190526212329.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190526212329.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190526212329.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190604123755.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190604123755.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190604123755.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190604123755.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190604124748.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190604124748.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190604124748.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190604124748.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190614211353.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190614211353.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190614211353.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190614211353.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190614213634.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190614213634.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190614213634.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190614213634.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190614213834.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190614213834.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190614213834.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190614213834.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190615205900.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190615205900.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190615205900.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190615205900.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190615230009.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190615230009.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190615230009.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190615230009.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190621000230.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190621000230.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190621000230.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190621000230.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190621000502.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190621000502.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190621000502.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190621000502.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190621002408.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190621002408.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190621002408.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190621002408.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190621003505.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_20190621003505.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190621003505.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_20190621003505.png diff --git a/docs/gdevelop5/tutorials/screenshot_s20190523235134.png b/docs/gdevelop5/tutorials/endless-runner/screenshot_s20190523235134.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_s20190523235134.png rename to docs/gdevelop5/tutorials/endless-runner/screenshot_s20190523235134.png diff --git a/docs/gdevelop5/tutorials/tiled_sprite_for_endless_runner.png b/docs/gdevelop5/tutorials/endless-runner/tiled_sprite_for_endless_runner.png similarity index 100% rename from docs/gdevelop5/tutorials/tiled_sprite_for_endless_runner.png rename to docs/gdevelop5/tutorials/endless-runner/tiled_sprite_for_endless_runner.png diff --git a/docs/gdevelop5/tutorials/falling_state_events.png b/docs/gdevelop5/tutorials/finite_state_machine/falling_state_events.png similarity index 100% rename from docs/gdevelop5/tutorials/falling_state_events.png rename to docs/gdevelop5/tutorials/finite_state_machine/falling_state_events.png diff --git a/docs/gdevelop5/tutorials/fsm_tutorial_gd5.zip b/docs/gdevelop5/tutorials/finite_state_machine/fsm_tutorial_gd5.zip similarity index 100% rename from docs/gdevelop5/tutorials/fsm_tutorial_gd5.zip rename to docs/gdevelop5/tutorials/finite_state_machine/fsm_tutorial_gd5.zip diff --git a/docs/gdevelop5/tutorials/idle_state_events.png b/docs/gdevelop5/tutorials/finite_state_machine/idle_state_events.png similarity index 100% rename from docs/gdevelop5/tutorials/idle_state_events.png rename to docs/gdevelop5/tutorials/finite_state_machine/idle_state_events.png diff --git a/docs/gdevelop5/tutorials/finite_state_machine.md b/docs/gdevelop5/tutorials/finite_state_machine/index.md similarity index 79% rename from docs/gdevelop5/tutorials/finite_state_machine.md rename to docs/gdevelop5/tutorials/finite_state_machine/index.md index 530647280f..9cfbeb18e9 100644 --- a/docs/gdevelop5/tutorials/finite_state_machine.md +++ b/docs/gdevelop5/tutorials/finite_state_machine/index.md @@ -17,19 +17,19 @@ So imagine that the player is in a “falling” state. While in the air, it sho ## Getting started -So let's get started by downloading the assets from the “[](/gdevelop5/tutorials/platformer/start)” tutorial. Create a player as a “platformer object” and some platforms (“platform” behavior) to walk and jump on as described in the above-mentioned tutorial. ![](/gdevelop5/tutorials/screenshot_scenes.png) Open the properties of the player object and create the animations “idle”, "walking","jumping" and "falling". Then create a string variable on the player object and call it “direction” with the value “right”. ![](/gdevelop5/tutorials/player_animations.png) Switch to the event editor (“main” scene) and create these external events “playerstateinit”, “playerstatefalling”, “playerstateidle”, “playerstatewalking”, “playerstatejumping”. In the events of your main scene create a new event group from the drop-down menu on the right-hand side. Name it “Player logic”. Now add a "At the beginning of the scene" condition. Add a sub-event to the condition and link in the external event sheet “playerstateinit” via the “add”/”other” button. Do the same for all the other player states. +So let's get started by downloading the assets from the “[](/gdevelop5/tutorials/platformer/start)” tutorial. Create a player as a “platformer object” and some platforms (“platform” behavior) to walk and jump on as described in the above-mentioned tutorial. ![](screenshot_scenes.png) Open the properties of the player object and create the animations “idle”, "walking","jumping" and "falling". Then create a string variable on the player object and call it “direction” with the value “right”. ![](player_animations.png) Switch to the event editor (“main” scene) and create these external events “playerstateinit”, “playerstatefalling”, “playerstateidle”, “playerstatewalking”, “playerstatejumping”. In the events of your main scene create a new event group from the drop-down menu on the right-hand side. Name it “Player logic”. Now add a "At the beginning of the scene" condition. Add a sub-event to the condition and link in the external event sheet “playerstateinit” via the “add”/”other” button. Do the same for all the other player states. !!! note - Instead of the animation, we could have created here a dedicated [Scene Variable](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/variables#declare_variables_using_the_editors) "state" to control the player state. This is more advanced but allows for better flexibility. However, the approach presented here has the benefit of bundling the logic with the corresponding animation, allowing for clarity and simplicity in the event sheet. Furthermore, you have access to the frames of the current animation/state and can trigger some logic at a certain frame inside the animation. + Instead of the animation, we could have created here a dedicated [Scene Variable](/gdevelop5/all-features/variables#declare_variables_using_the_editors) "state" to control the player state. This is more advanced but allows for better flexibility. However, the approach presented here has the benefit of bundling the logic with the corresponding animation, allowing for clarity and simplicity in the event sheet. Furthermore, you have access to the frames of the current animation/state and can trigger some logic at a certain frame inside the animation. -![](/gdevelop5/tutorials/main_events_state-linking.png) +![](main_events_state-linking.png) ## Debugging information In order to know in which state the player currently is during gameplay, create a text object and call it “debug_state”. Add it to the main scene and create the actions as below (with an empty condition), in order to display the current player state right above its head. Whenever something doesn't function the way it should, we will know which state we have to investigate to find the error. -![](/gdevelop5/tutorials/main_events_debug.png) +![](main_events_debug.png) ## Our first state “init” @@ -41,25 +41,25 @@ First of all we need to disable the default controls of the platformer behavior Next we set the animation of the player's sprite to “falling”. So in the next iteration of the game loop the events from the “falling” state will be executed. We choose the falling state here because the player was placed in the air and will eventually fall to the ground where we can transit into the idle state. -You could also use this state to (re)set the players hit points, ammo or other things. If you decide to restart the level, you can always transit back into the “init” state to reset the player attributes. ![](/gdevelop5/tutorials/init_state_events.png) +You could also use this state to (re)set the players hit points, ammo or other things. If you decide to restart the level, you can always transit back into the “init” state to reset the player attributes. ![](init_state_events.png) ## The “falling” state -Falling is the most universal state of all. Whenever you are unsure which state to transit into “falling” state is usually a good choice because it will eventually lead into a sensible other state as soon as the player collides with an object. While falling the player won't be able to perform any active actions. He will only be passively affected by the forces that were applied to him before he has entered the falling state. For example if you enter the falling state after performing a jump, you will still passively move in the direction you were jumping but you can't adjust the direction anymore. (see the exercises section at the bottom of this tutorial to change this behavior). So all we are doing in this state is to check if the player collides with the floor. If so we transit the player into the “idle” state. ![](/gdevelop5/tutorials/falling_state_events.png) +Falling is the most universal state of all. Whenever you are unsure which state to transit into “falling” state is usually a good choice because it will eventually lead into a sensible other state as soon as the player collides with an object. While falling the player won't be able to perform any active actions. He will only be passively affected by the forces that were applied to him before he has entered the falling state. For example if you enter the falling state after performing a jump, you will still passively move in the direction you were jumping but you can't adjust the direction anymore. (see the exercises section at the bottom of this tutorial to change this behavior). So all we are doing in this state is to check if the player collides with the floor. If so we transit the player into the “idle” state. ![](falling_state_events.png) ## The “idle” state -The idle state gets triggered whenever the person in front of the computer doesn't do anything. In other words no keys are pressed and the player object is just standing still. Like in the “falling” state there aren't any active actions to be performed. We just check for conditions that make us leave the “idle” state. So first of all we check if the player is on the floor. If not we transit into the falling state. Next we check if the player pressed the left or right arrow keys. If so we transit into the walking state. Last but not least the up arrow key is checked and if pressed we switch the player to the jumping state. Sounds logical doesn't it? ![](/gdevelop5/tutorials/idle_state_events.png) +The idle state gets triggered whenever the person in front of the computer doesn't do anything. In other words no keys are pressed and the player object is just standing still. Like in the “falling” state there aren't any active actions to be performed. We just check for conditions that make us leave the “idle” state. So first of all we check if the player is on the floor. If not we transit into the falling state. Next we check if the player pressed the left or right arrow keys. If so we transit into the walking state. Last but not least the up arrow key is checked and if pressed we switch the player to the jumping state. Sounds logical doesn't it? ![](idle_state_events.png) ## The “walking” state In the walking state we finally get to integrate some active actions for our player to perform. Since we use just one state for walking to the left and for walking to the right we first have to determine the direction the player has to move. So we check again which key was pressed and set the direction variable of the player accordingly once when entering the walking state. After that we will make the player move in that direction as long as it is in the walking state. -Now that the player is able to walk we'll again get to the conditions that make him leave the current state. So what could happen while we are walking? The most obvious thing would be that the walking key is released. In that case we will transit into the “idle” state. If we walk over the edge of the current platform, we transit into the “falling” state. And if the jump key is pressed, we switch into the jumping state. ![](/gdevelop5/tutorials/walking_state_events.png) +Now that the player is able to walk we'll again get to the conditions that make him leave the current state. So what could happen while we are walking? The most obvious thing would be that the walking key is released. In that case we will transit into the “idle” state. If we walk over the edge of the current platform, we transit into the “falling” state. And if the jump key is pressed, we switch into the jumping state. ![](walking_state_events.png) ## The “jumping” state -As you may have guessed, the first thing we will do is triggering the jump action once we enter the state. The force will be applied passively, so we don't have to worry about it anymore once we performed the jump. As always the last thing we need to do is find conditions that make us transit into another state. In this case we will check if the player is either not jumping or falling. If this is the case, the player gets transferred into the “falling” state. ![](/gdevelop5/tutorials/jumping_state_events.png) +As you may have guessed, the first thing we will do is triggering the jump action once we enter the state. The force will be applied passively, so we don't have to worry about it anymore once we performed the jump. As always the last thing we need to do is find conditions that make us transit into another state. In this case we will check if the player is either not jumping or falling. If this is the case, the player gets transferred into the “falling” state. ![](jumping_state_events.png) And that's about it. @@ -67,7 +67,7 @@ And that's about it. We have now split up the player logic into five different states which only handle the logic that is applicable to them and nothing more. If you want your player to gain additional abilities like flying, diving, dying or getting smashed against a wall just create a new state and handle the logic there. -You can download the whole project here. ![](/gdevelop5/tutorials/fsm_tutorial_gd5.zip) +You can download the whole project here. ![](fsm_tutorial_gd5.zip) ## Exercises diff --git a/docs/gdevelop5/tutorials/init_state_events.png b/docs/gdevelop5/tutorials/finite_state_machine/init_state_events.png similarity index 100% rename from docs/gdevelop5/tutorials/init_state_events.png rename to docs/gdevelop5/tutorials/finite_state_machine/init_state_events.png diff --git a/docs/gdevelop5/tutorials/jumping_state_events.png b/docs/gdevelop5/tutorials/finite_state_machine/jumping_state_events.png similarity index 100% rename from docs/gdevelop5/tutorials/jumping_state_events.png rename to docs/gdevelop5/tutorials/finite_state_machine/jumping_state_events.png diff --git a/docs/gdevelop5/tutorials/main_events_debug.png b/docs/gdevelop5/tutorials/finite_state_machine/main_events_debug.png similarity index 100% rename from docs/gdevelop5/tutorials/main_events_debug.png rename to docs/gdevelop5/tutorials/finite_state_machine/main_events_debug.png diff --git a/docs/gdevelop5/tutorials/main_events_state-linking.png b/docs/gdevelop5/tutorials/finite_state_machine/main_events_state-linking.png similarity index 100% rename from docs/gdevelop5/tutorials/main_events_state-linking.png rename to docs/gdevelop5/tutorials/finite_state_machine/main_events_state-linking.png diff --git a/docs/gdevelop5/tutorials/player_animations.png b/docs/gdevelop5/tutorials/finite_state_machine/player_animations.png similarity index 100% rename from docs/gdevelop5/tutorials/player_animations.png rename to docs/gdevelop5/tutorials/finite_state_machine/player_animations.png diff --git a/docs/gdevelop5/tutorials/screenshot_scenes.png b/docs/gdevelop5/tutorials/finite_state_machine/screenshot_scenes.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_scenes.png rename to docs/gdevelop5/tutorials/finite_state_machine/screenshot_scenes.png diff --git a/docs/gdevelop5/tutorials/walking_state_events.png b/docs/gdevelop5/tutorials/finite_state_machine/walking_state_events.png similarity index 100% rename from docs/gdevelop5/tutorials/walking_state_events.png rename to docs/gdevelop5/tutorials/finite_state_machine/walking_state_events.png diff --git a/docs/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md b/docs/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md index 996919d827..2470810492 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md +++ b/docs/gdevelop5/tutorials/geometry-monster/1-install-and-setup.md @@ -11,35 +11,35 @@ To get your copy of GDevelop you can visit the [Download page](https://gdevelop. You can also try an [online editor](https://editor.gdevelop.io/) right in your browser if you don't want to install anything. For this tutorial, it's still recommended to download the full version. -![](/gdevelop5/tutorials/geometry-monster/01_5.png) +![](01_5.png) Let's continue with the Windows install - click on the Windows button to start downloading an installer for this operating system. -![](/gdevelop5/tutorials/geometry-monster/04.png) +![](04.png) Click "Save" on the popup window that will appear after clicking the button - it will start the actual download of the exe file. When the installer is downloaded, navigate to the folder where it was saved and click it twice to launch the installation process. -![20220129-154639.png](/gdevelop5/tutorials/geometry-monster/1-install-and-setup/pasted/20220129-154639.png) +![](1-install-and-setup/pasted/20220129-154639.png) Wait till the process is complete, navigate to where all your new programs are installed, and double click on the GDevelop application to launch the editor. You will be greeted with the welcome screen on the start page. From here you can see game templates, tutorial videos, and other games made with the engine. -![20220129-154620.png](/gdevelop5/tutorials/geometry-monster/1-install-and-setup/pasted/20220129-154620.png) +![](1-install-and-setup/pasted/20220129-154620.png) In the top right section of this screen, you can either open an already existing project, or create a new one - let's go for that second option. -![20220129-155149.png](/gdevelop5/tutorials/geometry-monster/1-install-and-setup/pasted/20220129-155149.png) +![](1-install-and-setup/pasted/20220129-155149.png) Clicking on that will show a popup window where you can name your new project. Name it and press "create project" to begin. -![](/gdevelop5/tutorials/geometry-monster/10.png) +![](10.png) After clicking the "Create project" button we are presented with the new project, and the "Project" window should appear on the left panel. From there, select "Game settings" to enter basic configuration for our game. -![](/gdevelop5/tutorials/geometry-monster/11.png) +![](11.png) Our game's name is "Geometry Monster, window size is 640 pixels wide and 960 pixels high - this will create a gameplay area that suits the portrait mode on a mobile device which we will confirm in a second. You can enter your name or nick in the "Author" field below. -![](/gdevelop5/tutorials/geometry-monster/12_5.png) +![](12_5.png) When you scroll down, there will be an option to specify "Device orientation" - "Portrait" mode it is, so we will be able to play the game on our phones by holding them with only one hand and tapping the screen. diff --git a/docs/gdevelop5/tutorials/geometry-monster/10-more-lives.md b/docs/gdevelop5/tutorials/geometry-monster/10-more-lives.md index 78f5faa969..39b6834a9a 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/10-more-lives.md +++ b/docs/gdevelop5/tutorials/geometry-monster/10-more-lives.md @@ -13,19 +13,19 @@ This will also be a good opportunity to use **extensions**, so we don't need to Did you know that extensions are also made with events? You can inspect how they are done by clicking on one in the Project Manager and inspecting the behaviors, that are composed of events to create the actions and conditions of the behavior. -![](/gdevelop5/tutorials/geometry-monster/136.png) +![](136.png) Click on the "Project manager" icon that is located in the top left corner of the editor. -![](/gdevelop5/tutorials/geometry-monster/137.png) +![](137.png) This will open a panel where the search bar is at the bottom - click the "Search for new extensions". -![](/gdevelop5/tutorials/geometry-monster/138.png) +![](138.png) The extension we are after is called "life". -![](/gdevelop5/tutorials/geometry-monster/139.png) +![](139.png) This introduces a **behavior** called **"Health"**, which we can then manipulate in our game to manage the life of an object. Click "Install in project" to be able to use it. @@ -33,107 +33,112 @@ This introduces a **behavior** called **"Health"**, which we can then manipulate Behaviors allow to add new features and logic to your objects. They are useful to create objects by assembling a few behaviors that you can then manipulate with events. -![](/gdevelop5/tutorials/geometry-monster/140.png) +![](140.png) While we're at it, we're gonna add another useful extension - **"Flash"**. When the Monster will get hit by a bomb and lose one life, we will make him blink for a short period of time to give the extra feedback to the player about what happened. -![](/gdevelop5/tutorials/geometry-monster/141.png) +![](141.png) Install that as well. -![](/gdevelop5/tutorials/geometry-monster/142.png) +![](142.png) Now when we have both extensions installed, they should be listed in the left panel, under "Functions/Behaviors". -![](/gdevelop5/tutorials/geometry-monster/143.png) +![](143.png) Click on the "Level1" to go back to the scene editor, then in the right panel with the "Objects" double click on the "Monster" - it will open a popup. -![](/gdevelop5/tutorials/geometry-monster/144.png) +![](144.png) Click on the "Behaviors" tab, which is were you can add these behaviors to the object... -![](/gdevelop5/tutorials/geometry-monster/145.png) +![](145.png) ...and then "Add a behavior to the object". -![](/gdevelop5/tutorials/geometry-monster/146.png) +![](146.png) Our newly added, custom extension should be listed and available to use - click it. -![](/gdevelop5/tutorials/geometry-monster/147.png) +![](147.png) We're going to have the "Damage cooldown" set to `0,8` seconds (time when the Monster get hit and is indestructible, so it won't get hit again immediately by a different bomb), "Health" to `3` (current number of lives), and "Maximum health" to `3` (so the Monster will have three lives total). Click on the "Add behavior to the object" to have another one. -![](/gdevelop5/tutorials/geometry-monster/148.png) +![](148.png) The second one will be "Flash". -![](/gdevelop5/tutorials/geometry-monster/149.png) +![](149.png) The "Half period" means the time when the object is invisible, and we're going to set it to `0,1` seconds. Below that, you can see the "Health" behavior we entered previously. Click "Apply" to have them saved. -![](/gdevelop5/tutorials/geometry-monster/150.png) +![](150.png) Now click on the "Level1 (Events)", and then "Collision" label to make sure it's the active one. In the top right menu, click the "Choose and add an event" icon, and then "For each object" in the dropdown. -![](/gdevelop5/tutorials/geometry-monster/152.png) +![](152.png) This will allow us to have a specific condition "Repeat for each Obstacle object". -![](/gdevelop5/tutorials/geometry-monster/153.png) +![](153.png) Choose "Obstacle", "Collision", "Monster". This way the bombs will collide with the Monster, and we will be able to subtract the current number of lives when this happens. -![](/gdevelop5/tutorials/geometry-monster/154.png) +![](154.png) The action "Delete an object" will remove the "Obstacle". Whenever a bomb hits the Monster, it will be deleted from the game. -![](/gdevelop5/tutorials/geometry-monster/155.png) +![](155.png) Another action is going to be used to have the Monster be damaged by the bomb. "Monster", "Damage the object", `1`. This means every single time the bomb hits the Monster, he will lose one life. -![](/gdevelop5/tutorials/geometry-monster/156.png) +![](156.png) From within "Other actions" we're going to add a different sound when that happens. "Audio", "Play a sound", "Choose a new audio file" to open the file explorer window. -![](/gdevelop5/tutorials/geometry-monster/157.png) +![](157.png) Select `killed.wav` file and open it to add it to the project. -![](/gdevelop5/tutorials/geometry-monster/158.png) +![](158.png) Make sure the name of the file is there. -![](/gdevelop5/tutorials/geometry-monster/160.png) +![](160.png) While the events work, they are only changing the life of the monster in memory. Let's display a life counter on the screen! Click the "Level1" tab, and "Add a new object". -![](/gdevelop5/tutorials/geometry-monster/161.png) +![](161.png) Make it another "Sprite". -![](/gdevelop5/tutorials/geometry-monster/162.png) +![](162.png) Object's name is "Life", "Animation" is "Life3" (since the initial state of the animation have three lives), and then add the image of the hearts. -![](/gdevelop5/tutorials/geometry-monster/163.png) +![](163.png) Repeat for "Life2"... -![](/gdevelop5/tutorials/geometry-monster/164.png) +![](164.png) ...and then "Life1". -![](/gdevelop5/tutorials/geometry-monster/165.png) +![](165.png) Last one is "Life0" for when all the lives are lost. Apply the changes. -![](/gdevelop5/tutorials/geometry-monster/166.png) +!!! warning + + The [resource bar](/gdevelop5/objects/resource-bar/) object can make this a bit easier. + + +![](166.png) Drag and drop the "Life" object onto the scene and place it in the top right corner. We'll see during next chapter how to animate this "Life" object, making a "game over" screen when it reaches zero. diff --git a/docs/gdevelop5/tutorials/geometry-monster/11-game-over.md b/docs/gdevelop5/tutorials/geometry-monster/11-game-over.md index 6100601a29..68d55ee805 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/11-game-over.md +++ b/docs/gdevelop5/tutorials/geometry-monster/11-game-over.md @@ -7,67 +7,67 @@ title: 11-game-over With the Monster having [lives](/gdevelop5/tutorials/geometry-monster/10-more-lives), [collision detection](/gdevelop5/tutorials/geometry-monster/6-collision-detection) in place, and [bombs](/gdevelop5/tutorials/geometry-monster/9-adding-bombs) falling down along the shapes, we get to a point where the player can lose all the lives, and what comes then? **Game over**! -![](/gdevelop5/tutorials/geometry-monster/167.png) +![](167.png) Let's add a new object, which will again be a sprite. -![](/gdevelop5/tutorials/geometry-monster/168.png) +![](168.png) Call it "GameOver", add the respective image, and save it. -![](/gdevelop5/tutorials/geometry-monster/169.png) +![](169.png) Drag it from the objects panel onto the scene. -![](/gdevelop5/tutorials/geometry-monster/171.png) +![](171.png) Add another sprite, which will be our button to try playing the game again. Name it "ButtonTryAgain", and set the animation name to "TryAgainNormal" for the default state. Import the image. -![](/gdevelop5/tutorials/geometry-monster/172.png) +![](172.png) Add the second animation called "TryAgainHover" which will be used to indicate user has hovered the mouse cursor over the button. -![](/gdevelop5/tutorials/geometry-monster/173.png) +![](173.png) The third and the last animation is "TryAgainPressed", apply the changes. -![](/gdevelop5/tutorials/geometry-monster/174.png) +![](174.png) Drag the button onto the scene. -![](/gdevelop5/tutorials/geometry-monster/176.png) +![](176.png) Repeat this for the "ButtonMainMenu" that will take the player to the main menu we're gonna create soon as the separate scene. -![](/gdevelop5/tutorials/geometry-monster/177.png) +![](177.png) After "MainMenuNormal", the second animation name is "MainMenuHover"... -![](/gdevelop5/tutorials/geometry-monster/178.png) +![](178.png) ...and the third one "MainMenuPressed", apply the changes. -![](/gdevelop5/tutorials/geometry-monster/179.png) +![](179.png) Drag the main menu button onto the scene. -![](/gdevelop5/tutorials/geometry-monster/180.png) +![](180.png) Double click on the Monster, and add a second animation for him. -![](/gdevelop5/tutorials/geometry-monster/181.png) +![](181.png) "MonsterDead" will be used when the Monster will run out of all the available lives. -![](/gdevelop5/tutorials/geometry-monster/182.png) +![](182.png) Create the "Health" comment in "Level1 (Events)". -![](/gdevelop5/tutorials/geometry-monster/183.png) +![](183.png) Then add a new condition. -![](/gdevelop5/tutorials/geometry-monster/184.png) +![](184.png) "Monster", then "Is just damaged", and "Ok". @@ -75,23 +75,23 @@ Then add a new condition. This condition "Is just damaged" is appearing there as we previously added the "Health" behavior to the object. -![](/gdevelop5/tutorials/geometry-monster/185_1.png) +![](185_1.png) Then "Life", "Change the animation (by name)", and enter `"Life" + `, and then click on the "ABC" button on the right. Chose "Conversion", and then "Number \> Text" (this is because we want to transform the health of the player, which is a number, to a text that will be used to choose the animation to display). -![](/gdevelop5/tutorials/geometry-monster/185_2.png) +![](185_2.png) In the popup, click "123" button... -![](/gdevelop5/tutorials/geometry-monster/185_3.png) +![](185_3.png) ...and then chose "Health". -![](/gdevelop5/tutorials/geometry-monster/185_4.png) +![](185_4.png) After that you'll be asked to enter object's name and the behavior (that is automatically filled for you after selecting the object). -![](/gdevelop5/tutorials/geometry-monster/185_5.png) +![](185_5.png) Go for "Monster". "Health" will be automatically written in the second field. Click Apply. @@ -99,7 +99,7 @@ Go for "Monster". "Health" will be automatically written in the second field. Cl It's possible to have multiple behaviors of the same kind on an object! For example, a huge spaceship in a space shooter game might have multiple Health behaviors, corresponding to different parts of the spaceship. In general though, a single behavior is enough! -![](/gdevelop5/tutorials/geometry-monster/185_6.png) +![](185_6.png) Then you'll be presented with the `Monster.Health::Health()` function which will return the health variable - this expression will be converted to text. @@ -107,7 +107,7 @@ Then you'll be presented with the `Monster.Health::Health()` function which will Confused by the notation `Monster.Health::Health()`? The first Health is the name of the behavior, while the second Health correspond to the function to be called on the behavior. -![](/gdevelop5/tutorials/geometry-monster/185_7.png) +![](185_7.png) The final value of the "Animation name" will be `"Life" + ToString(Monster.Health::Health())`. @@ -115,15 +115,15 @@ The final value of the "Animation name" will be `"Life" + ToString(Monster.Healt The ToString function is important, as it's converting the health from a number to a text. Otherwise, GDevelop will try to add a text and a number, which does not make sense. -![](/gdevelop5/tutorials/geometry-monster/186.png) +![](186.png) Back to "Monster", look for the "Flash (blink)" action, and then set the duration of the blinking to `1.5` seconds, and "Ok". -![](/gdevelop5/tutorials/geometry-monster/187.png) +![](187.png) Under the "Health" comment, add another condition. -![](/gdevelop5/tutorials/geometry-monster/188.png) +![](188.png) Choose "Monster", then "Is dead", "Ok". @@ -131,57 +131,57 @@ Choose "Monster", then "Is dead", "Ok". This is again a condition provided by the "Health" behavior. -![](/gdevelop5/tutorials/geometry-monster/189.png) +![](189.png) The action for this: "Life", "Change the animation (by name)", and then "Life0", so when the Monster dies, the lives image will show no more available hearts. -![](/gdevelop5/tutorials/geometry-monster/190.png) +![](190.png) Another action: "Monster", then "Change the animation (by name)", and "MonsterDead". This will show the different image for the Monster when he runs out of lives. -![](/gdevelop5/tutorials/geometry-monster/191.png) +![](191.png) The next action we need is to remove the "Shapes" group by using "Delete an object" on it... -![](/gdevelop5/tutorials/geometry-monster/192.png) +![](192.png) ...and doing the same with the "Obstacle". -![](/gdevelop5/tutorials/geometry-monster/193.png) +![](193.png) Next up, we pick the "GameOver" sprite and "Show" it on the screen. -![](/gdevelop5/tutorials/geometry-monster/194.png) +![](194.png) Do the same with the "ButtonTryAgain"... -![](/gdevelop5/tutorials/geometry-monster/195.png) +![](195.png) ...and the "ButtonMainMenu". All those sprites will be showed on game over, but we need to hide them at the beginning of the game. -![](/gdevelop5/tutorials/geometry-monster/196.png) +![](196.png) Create a new "Game Over" comment, and add a new condition. -![](/gdevelop5/tutorials/geometry-monster/198.png) +![](198.png) Search for the "At the beginning of the scene". -![](/gdevelop5/tutorials/geometry-monster/199.png) +![](199.png) Then make an action where "Hide" is applied to the "GameOver" object. -![](/gdevelop5/tutorials/geometry-monster/200.png) +![](200.png) Do the same for the "ButtonTryAgain"... -![](/gdevelop5/tutorials/geometry-monster/201.png) +![](201.png) ...adn the "ButtonMainMenu". -![](/gdevelop5/tutorials/geometry-monster/202.png) +![](202.png) This way, when you launch the game and lose all your lives, the hearts will be almost fully transparent, shapes and bombs will disappear, Monster's animation will change to the dead one, and the Game Over message will be showed along with the Home and Try Again buttons. diff --git a/docs/gdevelop5/tutorials/geometry-monster/12-main-menu.md b/docs/gdevelop5/tutorials/geometry-monster/12-main-menu.md index 275b32255e..d3719b589d 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/12-main-menu.md +++ b/docs/gdevelop5/tutorials/geometry-monster/12-main-menu.md @@ -7,153 +7,157 @@ title: 12-main-menu To make the gaming experience complete, we should be able to have at least Main Menu and Gameplay screens. If you can make more than one scene, then having separate ones for settings, credits, or anything else shouldn't be a problem. Let's create a separate Main Menu scene then. -![](/gdevelop5/tutorials/geometry-monster/203.png) +![](203.png) Click on the "Project manager" to open up the left panel. -![](/gdevelop5/tutorials/geometry-monster/204.png) +![](204.png) Then under the "Scenes" section, where "Level1" exists, look for the "Click to add a scene" under it which will do exactly that. -![](/gdevelop5/tutorials/geometry-monster/205.png) +![](205.png) The default name is "NewScene", but you can right click on the three vertical dots to open the context menu and select "Rename". -![](/gdevelop5/tutorials/geometry-monster/206.png) +![](206.png) Name our new scene "MainMenu". -![](/gdevelop5/tutorials/geometry-monster/207.png) +![](207.png) Click on the "MainMenu" tab, then right click on the scene, and select "Scene properties". -![](/gdevelop5/tutorials/geometry-monster/208.png) +![](208.png) Change the color using the color picker - in our case it's `#560921`. -![](/gdevelop5/tutorials/geometry-monster/209.png) +![](209.png) It should look like this. Click on the right panel to add a new object, and select "Sprite". -![](/gdevelop5/tutorials/geometry-monster/211.png) +![](211.png) Object's name is "GameTitle", and the animation "GeometryMonster". Add the title image, and click on the "Behaviors". -![](/gdevelop5/tutorials/geometry-monster/212.png) +![](212.png) Click on the "Add a behavior to the object" button. -![](/gdevelop5/tutorials/geometry-monster/213.png) +![](213.png) Then search through the new behaviors list. -![](/gdevelop5/tutorials/geometry-monster/214.png) +![](214.png) -And find "movement". We will use the "Sine (or ellipsis) movement" to animate the title image, so it's not a static one and the whole main menu will look better. +And find "movement". We will use the "Ellipse movement" to animate the title image, so it's not a static one and the whole main menu will look better. -![](/gdevelop5/tutorials/geometry-monster/215.png) +![](215.png) It works the same as the extensions we used already - install it into the project. -![](/gdevelop5/tutorials/geometry-monster/216.png) +![](216.png) -Go through the list of behaviors and click on the new "Sine movement". +Go through the list of behaviors and click on the new "Ellipse movement". -![](/gdevelop5/tutorials/geometry-monster/217.png) +![](217.png) -Configure it: set the name to "GameTitle", "Amplitude of the movement on the X axis" to `20`, "Amplitude of the movement on the Y axis" to `10`, and the "Speed" to `60` degrees per second, then click "Apply". +Configure it: set the name to "GameTitle", "Radius on the X axis of the movement" to `20`, "Radius on the Y axis of the movement" to `10`, and the "Loop duration" to `6` seconds, then click "Apply". -![](/gdevelop5/tutorials/geometry-monster/219.png) +![](219.png) Now it's time to add the Start button. "New object", "Sprite". "ButtonStart" for the name, "StartNormal" for the animation, and the actual image of the button itself. -![](/gdevelop5/tutorials/geometry-monster/221.png) +![](221.png) Add another two animations with their respective images: "StartHover" and "StartPressed". -![](/gdevelop5/tutorials/geometry-monster/222_5.png) +![](222_5.png) Drag the title onto the scene, and do the same with the button. -![](/gdevelop5/tutorials/geometry-monster/224.png) +![](224.png) Go to "MainMenu (Events)", and click on the new event. -![](/gdevelop5/tutorials/geometry-monster/226.png) +![](226.png) Add a new condition: "Other conditions", then "The cursor/touch is on an object", and assign this to "ButtonStart". Don't forget to select "Invert condition" to make this work as we want it. -![](/gdevelop5/tutorials/geometry-monster/227.png) +![](227.png) Let's add the animations to that button. Select it in the left panel, click "Change the animation (by name)" in the middle one, and enter "StartNormal" in the right panel. -![](/gdevelop5/tutorials/geometry-monster/228.png) +![](228.png) Add a new condition. -![](/gdevelop5/tutorials/geometry-monster/sans_titre.png) +![](sans_titre.png) Select your "ButtonStart" object then pick the condition "The cursor/touch is on an object" and confirm. -![](/gdevelop5/tutorials/geometry-monster/231.png) +![](231.png) Repeat the steps to "Change the animation (by name)" to "StartHover". -![](/gdevelop5/tutorials/geometry-monster/232.png) +![](232.png) ...and connect it with "Mouse button pressed or touch held", "Left (primary)". -![](/gdevelop5/tutorials/geometry-monster/232_1.png) +![](232_1.png) Now "ButtonStart", "Change the animation (by name)", "StartPressed"... -![](/gdevelop5/tutorials/geometry-monster/232_2.png) +![](232_2.png) ...and "Mouse button released", "Left (primary)". -![](/gdevelop5/tutorials/geometry-monster/233.png) +!!! warning + + The [Button animation](/gdevelop5/extensions/button-states/) behavior can do all of this for you. + +![](233.png) The action this button is going to perform is changing the scene to the actual game. Search for "Change the scene", then select "Level1". -![](/gdevelop5/tutorials/geometry-monster/234.png) +![](234.png) Launch the game and see if the Main Menu behaves like expected (hovering title, working Start button), and the actual gameplay is launched after clicking the button. -![](/gdevelop5/tutorials/geometry-monster/235.png) +![](235.png) Since we now know how to switch between scenes, let's do this for the Try Again button we've created earlier on, but haven't implemented the actual action yet. Click on the "Level1 (Events)" tab, and "Add a condition". -![](/gdevelop5/tutorials/geometry-monster/236.png) +![](236.png) "Other conditions", "The cursor/touch is on an object", then "ButtonTryAgain", "Invert condition", "Ok". -![](/gdevelop5/tutorials/geometry-monster/236_1.png) +![](236_1.png) Now an action: "ButtonTryAgain", "Change the animation", "TryAgainNormal". -![](/gdevelop5/tutorials/geometry-monster/237.png) +![](237.png) Repeat for "TryAgainHover". -![](/gdevelop5/tutorials/geometry-monster/238.png) +![](238.png) "Other conditions", "Mouse button pressed or touch held", "Left (primary)". -![](/gdevelop5/tutorials/geometry-monster/239.png) +![](239.png) Repeat the action: "ButtonTryAgain", "Change the animation", "TryAgainPressed". -![](/gdevelop5/tutorials/geometry-monster/240.png) +![](240.png) Another action: "Change the scene", and set it to "Level1", so the button to try again the game will restart the actual gameplay. Now, to leave a little bit to yourself, given what you learned so far, try to add interactivity to the "ButtonMainMenu", so it will change its animation to hover when hovered over, detect left button press, change the animation to "MainMenuPressed", detect the button release, and change the scene to "MainMenu". -![](/gdevelop5/tutorials/geometry-monster/241.png) +![](241.png) At the end, it should look like on this screenshot above. -![](/gdevelop5/tutorials/geometry-monster/247.png) +![](247.png) It works! The next chapter will be all about adding the final touch to the game: [juiciness](/gdevelop5/tutorials/geometry-monster/13-juice-it). diff --git a/docs/gdevelop5/tutorials/geometry-monster/13-juice-it.md b/docs/gdevelop5/tutorials/geometry-monster/13-juice-it.md index 54c5f70ea4..2f1330ac20 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/13-juice-it.md +++ b/docs/gdevelop5/tutorials/geometry-monster/13-juice-it.md @@ -7,31 +7,31 @@ title: 13-juice-it In this last piece we're introducing little bits that can make the game really stand out: progressively increasing the difficulty level, and spawning particle effects when Monster is collecting the shapes. -![](/gdevelop5/tutorials/geometry-monster/291.png) +![](291.png) We'll start with the first one. Add a comment "Progressively increase game speed". -![](/gdevelop5/tutorials/geometry-monster/293.png) +![](293.png) Add an action "Value of a scene variable", call it "GameSpeed", set the modifications's sign to `+ (add)` and the value to `7*TimeDelta()`. -![](/gdevelop5/tutorials/geometry-monster/294.png) +![](294.png) Add another comment, but higher up on the list of events, right below the Shapes: "Move shape according to the game speed". The difficulty level increase will make the shapes fall faster. -![](/gdevelop5/tutorials/geometry-monster/295.png) +![](295.png) Edit the action and replace `100 pixels` with `Variable(GameSpeed)`. -![](/gdevelop5/tutorials/geometry-monster/296.png) +![](296.png) This will be repeated for the bomb obstacle - add a comment "Move obstacle according to the game speed"... -![](/gdevelop5/tutorials/geometry-monster/297.png) +![](297.png) ...and then replace `100 pixels` with `1.5*Variable(GameSpeed)`, so the bombs will fall even faster than the shapes. -![](/gdevelop5/tutorials/geometry-monster/298.png) +![](298.png) Test it out and play the game for a bit to see if this really works as expected. @@ -39,65 +39,65 @@ Test it out and play the game for a bit to see if this really works as expected. You can make the game easier or harder by changing the GameSpeed variable yourself. -![](/gdevelop5/tutorials/geometry-monster/299.png) +![](299.png) Now onto the particles. Click on "Add a new object" in the right panel... -![](/gdevelop5/tutorials/geometry-monster/300.png) +![](300.png) ...and select "Particles emitter". -![](/gdevelop5/tutorials/geometry-monster/301.png) +![](301.png) Those emitters will spawn small shapes as particles after the Monster collects it. Object's name will be "Shape1Explosion", kind of particles: "Textured", then select the geometry1.png image, and enter the respective values: start with `20` particles, their height will be `20` pixels, start and end opacity will be `255`, so they will be fully visible. -![](/gdevelop5/tutorials/geometry-monster/302.png) +![](302.png) Scroll down to enter more values. Be sure to select "Delete when out of particles", to the emitter will spawn all the particles assigned to it and then will be removed as not needed anymore. Set the maximum number of particles to `10`, number of particles in tank to `5`, flow to `45` particles per second, minimum emitter force applied on particles to also `45`, maximum to `85`, spray cone angle to `360` (so the emitter spawns the particles in every direction), and radius of the emitter to `10`. -![](/gdevelop5/tutorials/geometry-monster/303.png) +![](303.png) Scroll down even more. Set the gravity on particles on both X and Y axes to `0` (we don't need gravity in our game), friction on particles to `2`, particle minimum lifetime to `0,5` seconds and the maximum one to `1,5` seconds, particle start size to `100` and end size to `80` (so they get a little smaller after they are spawned), minimum rotation speed to `0` and maximum to `40` degrees per second (so some of them can rotate a bit). Confirm all that by clicking "Apply". -![](/gdevelop5/tutorials/geometry-monster/304.png) +![](304.png) Repeat the steps for the other three shapes: geometry2, geometry3, and geometry4. -![](/gdevelop5/tutorials/geometry-monster/305.png) +![](305.png) Create the sub-comment for spawning the particles, and then add a new condition. -![20220603-221000.png](/gdevelop5/tutorials/geometry-monster/13-juice-it/pasted/20220603-221000.png) +![](13-juice-it/pasted/20220603-221000.png) Select Shape1 from the list of objects, look for "Number of objects instances currently picked", and then "≠ (not equal to)" and `0` in the right panel. -![20220603-221508.png](/gdevelop5/tutorials/geometry-monster/13-juice-it/pasted/20220603-221508.png) +![](13-juice-it/pasted/20220603-221508.png) Add a new action: "Shape1Explosion" in the list of objects, look for "Create and object", and then X position to `Shape1.PointX("Center")` and Y position to `Shape1.PointY("Center")`, so they spawn in the middle of the shape they are going to replace. -![](/gdevelop5/tutorials/geometry-monster/311.png) +![](311.png) Add another action: "Shape1Explosion" again, "Size, parameter 1" and then "= (set to)" with the value `Shape1.Width()`. -![20220603-221135.png](/gdevelop5/tutorials/geometry-monster/13-juice-it/pasted/20220603-221135.png) +![](13-juice-it/pasted/20220603-221135.png) Repeat the steps for the other three shapes. -![](/gdevelop5/tutorials/geometry-monster/313.png) +![](313.png) Now we're gonna add the sub-comment for the section about deleting the shape when it's being eaten, and we're going to move the part responsible for increasing the score. -![](/gdevelop5/tutorials/geometry-monster/314.png) +![](314.png) Drag the "Delete object Shapes" part below it... -![](/gdevelop5/tutorials/geometry-monster/315.png) +![](315.png) ...so it looks like this. -![](/gdevelop5/tutorials/geometry-monster/316.png) +![](316.png) That's it! All the thirteen steps are now completed, and you've built **Geometry Monster** game from scratch, **congratulations**! diff --git a/docs/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md b/docs/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md index ef40390ee0..437888c7a5 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md +++ b/docs/gdevelop5/tutorials/geometry-monster/2-creating-first-scene.md @@ -11,15 +11,15 @@ title: 2-creating-first-scene Now when we have [installed the GDevelop editor](/gdevelop5/tutorials/geometry-monster/1-install-and-setup) and the basic configuration is in place, we can start creating. To add components to our game we have to start with a scene - it will work like a basket holding various items and showing them on screen. -![](/gdevelop5/tutorials/geometry-monster/14.png) +![](14.png) To add a new scene, click on the "Scenes" section in the left panel and when the contents are expanded, you will be presented with the "Click to add a scene" button, which is self explanatory. -![](/gdevelop5/tutorials/geometry-monster/15.png) +![](15.png) Let's call our first scene "Level1". -![](/gdevelop5/tutorials/geometry-monster/16.png) +![](16.png) After successfully creating a scene, we will be taken directly to it. Notice the tabs at the top of the editor that you can select - there's "Level1", and "Level1 (Events)" separately. In the left panel you can manipulate the properties of any of the selected instances, the actual scene contents are visible in the middle (with the gameplay area being in the portrait mode already), and an "Objects" list on the right panel. diff --git a/docs/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md b/docs/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md index 78831d79f8..50d55aea59 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md +++ b/docs/gdevelop5/tutorials/geometry-monster/3-introducing-main-character.md @@ -7,31 +7,31 @@ title: 3-introducing-main-character Now when the scene itself is ready, it looks kind of empty - let's add something to it! -![](/gdevelop5/tutorials/geometry-monster/17.png) +![](17.png) We will be able to do that by clicking on the "Add a new object" button in the "Objects" panel on the right. -![](/gdevelop5/tutorials/geometry-monster/18.png) +![](18.png) It will open a popup where a list of available options is showed. Those vary from sprites, through text, to particle emitters, shape painters, and text inputs. Select the "Sprite", which is explained as the animated object which can be used for most elements of a game. -![](/gdevelop5/tutorials/geometry-monster/19.png) +![](19.png) Another popup will appear, but now with the options to customize our new object. We will call him "Monster", and he will be our main character in the game: collecting items and being cute at the same time. -![](/gdevelop5/tutorials/geometry-monster/20.png) +![](20.png) After giving him his new name, let's add some images that will represent him on the scene and in the game. Click on the "Add an animation" button to open a file select window. -![](/gdevelop5/tutorials/geometry-monster/21.png) +![](21.png) -Navigate to the folder where the images are (you can download them from ![here](/gdevelop5/tutorials/geometry-monster-sources.zip)), select all that you want to add, and then click "Open". +Navigate to the folder where the images are (you can download them from ![here](/gdevelop5/tutorials/geometry-monster/geometry-monster-sources.zip)), select all that you want to add, and then click "Open". -![](/gdevelop5/tutorials/geometry-monster/22.png) +![](22.png) GDevelop will show the message saying those files are outside of the project folder, so the recommended next step is to allow copying them onto the project folder first before we do anything with them. Click "Ok" to do that. -![](/gdevelop5/tutorials/geometry-monster/23.png) +![](23.png) All the images we just imported will serve as the idle animation - one that is played when nothing is happening. The animation is looped, so it will look like the Monster is closing and opening his eyes every once in a while indefinitely. @@ -43,21 +43,21 @@ We will name this animation "MonsterIdle", and every new frame will be rendered You can also edit images in Piskel or preview the animation itself if you want to. -![](/gdevelop5/tutorials/geometry-monster/24.png) +![](24.png) When everything is done, click on "Apply" to save the changes. -![](/gdevelop5/tutorials/geometry-monster/25.png) +![](25.png) Now you can see our little Monster's icon in the right panel, under the "Objects" list. Isn't he cute? To make the scene look a little bit more interesting we will add a background color to it. Right click on the scene, and select "Scene properties" from the context menu. It will open a popup with some options - we are interested in setting the "Scene background color" to something on which the Monster will look stylish. -![](/gdevelop5/tutorials/geometry-monster/26.png) +![](26.png) Click on the color picker on the right and chose a color - ours is `#560921`. -![](/gdevelop5/tutorials/geometry-monster/27.png) +![](27.png) After confirming, the scene's background color will change to what was selected - success! diff --git a/docs/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md b/docs/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md index eadeddd89d..57f1859b66 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md +++ b/docs/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls.md @@ -7,43 +7,43 @@ title: 4-desktop-and-mobile-controls Since we already [introduced the Monster](/gdevelop5/tutorials/geometry-monster/3-introducing-main-character) to the game, it would be nice to be able to control him. -![](/gdevelop5/tutorials/geometry-monster/28_5.png) +![](28_5.png) Drag the Monster from the right panel containing the objects onto the scene and click on the "Level1 (Events)" tab. -![](/gdevelop5/tutorials/geometry-monster/30.png) +![](30.png) The events list is empty at the beginning - the popup message explains that events are composed of **conditions** and **actions**. -![](/gdevelop5/tutorials/geometry-monster/31.png) +![](31.png) In the top right section of the editor you will see a few icons - click on the third one from the left: light blue square with a dark blue plus sign. When you hover over it the description will say "Add a new empty event". -![](/gdevelop5/tutorials/geometry-monster/32.png) +![](32.png) When the empty event is added, click on the "Add condition" - it will open a popup. -![](/gdevelop5/tutorials/geometry-monster/33.png) +![](33.png) In the popup, you will notice there's our Monster on the list of objects, but we're not interested in him right now. Click on the "Other conditions" tab to expand the list of options. !!! note - Don't have the "Other conditions" tab? Don't panic! Go to GDevelop preferences (click on the "File" menu, or "GDevelop 5" on macOS, then "Preferences"). Activate "Use the new action/condition editor". You can then go back to the tutorial. ![](/gdevelop5/tutorials/geometry-monster/activate_new_editor.png) + Don't have the "Other conditions" tab? Don't panic! Go to GDevelop preferences (click on the "File" menu, or "GDevelop 5" on macOS, then "Preferences"). Activate "Use the new action/condition editor". You can then go back to the tutorial. ![](activate_new_editor.png) -![](/gdevelop5/tutorials/geometry-monster/34.png) +![](34.png) Other conditions include collisions, variable operations, mouse and touch controls, etc. Click on the "Keyboard" option to expand the list, and then select "Key pressed". -![](/gdevelop5/tutorials/geometry-monster/35_5.png) +![](35_5.png) This tests if a specific key has been pressed - enter "Left" into the "Key" field, then click "Ok". -![](/gdevelop5/tutorials/geometry-monster/37.png) +![](37.png) Now let's get back to our Monster - click to "Add an action". -![](/gdevelop5/tutorials/geometry-monster/38.png) +![](38.png) Select Monster, look up "Add a force", and then set the speed to `-450`. @@ -53,116 +53,120 @@ Select Monster, look up "Add a force", and then set the speed to `-450`. After you've done it, click "Ok" to confirm. -![](/gdevelop5/tutorials/geometry-monster/45.png) +![](45.png) You can see the final version of the event we just completed - with conditions on the left, and action on the right: when you press the left key, then it will move (by applying the force of `-450` units on the `X` axis and ignoring the `Y` axis with `0` value) to the left edge of the screen. +!!! warning + + The [top-down movement](/gdevelop5/behaviors/topdown) behavior is a better fit to move the monster. + **Congratulations**, the Monster is moving left! Now let's add the movement to the right - try doing that on your own following the exact same steps you did for the left movement. -![](/gdevelop5/tutorials/geometry-monster/51.png) +![](51.png) If you completed the right movement, both events with their conditions and actions should now be in place, so the Monster can move in either direction - left or right. -![](/gdevelop5/tutorials/geometry-monster/52.png) +![](52.png) Click on "Add a comment", so the extra field appear. -![](/gdevelop5/tutorials/geometry-monster/53.png) +![](53.png) Drag it at the top of both events. -![](/gdevelop5/tutorials/geometry-monster/54.png) +![](54.png) Then enter the label "Monster", so when we have way more events on the list we can clearly see which ones are for which objects. Now we're going to limit the movement of the Monster to the visible screen, so he won't be moving outside of it when we press the keyboard controls. -![](/gdevelop5/tutorials/geometry-monster/54_1.png) +![](54_1.png) Select the Monster. -![](/gdevelop5/tutorials/geometry-monster/54_2.png) +![](54_2.png) Go to Behaviors. -![](/gdevelop5/tutorials/geometry-monster/54_3.png) +![](54_3.png) Then "Add a behavior to the object". -![](/gdevelop5/tutorials/geometry-monster/54_4.png) +![](54_4.png) Click on the tab "Search for behaviors". -![](/gdevelop5/tutorials/geometry-monster/54_5.png) +![](54_5.png) From the available list chose "screen". -![](/gdevelop5/tutorials/geometry-monster/54_6.png) +![](54_6.png) It's the "Stay On Screen" custom behaviors that we're going to use for the Monster. -![](/gdevelop5/tutorials/geometry-monster/54_7.png) +![](54_7.png) Install it in our project, so it will be available to use afterwards. -![](/gdevelop5/tutorials/geometry-monster/54_8.png) +![](54_8.png) Then select it from the list. -![](/gdevelop5/tutorials/geometry-monster/54_9.png) +![](54_9.png) Insert `133` as the right margin, since this is the width of the Monster, to limit him going out of the screen to the right (since his origin is in the top left part of the sprite), and then click Apply. -![](/gdevelop5/tutorials/geometry-monster/55.png) +![](55.png) In the top right menu, click on the first item - "Launch a preview of the scene". -![](/gdevelop5/tutorials/geometry-monster/56.png) +![](56.png) It worked - the preview of Geometry Monster game is launched, and you can already control the main character! Now when we have desktop controls (moving Monster with the keyboard), it would be great to add mouse and touch support too. The game will be easier to play with the mouse, and it will also be playable on mobile. -![](/gdevelop5/tutorials/geometry-monster/56_1.png) +![](56_1.png) Add new condition. -![](/gdevelop5/tutorials/geometry-monster/56_2.png) +![](56_2.png) Look for "Mouse button pressed or touch held" in the "Other conditions", and the button to test will be "Left (primary)". -![](/gdevelop5/tutorials/geometry-monster/56_3.png) +![](56_3.png) Now add a sub-condition. -![20220129-155954.png](/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls/pasted/20220129-155954.png) +![](4-desktop-and-mobile-controls/pasted/20220129-155954.png) Select Monster, then "X position", and enter `\> (greater than)` as the "Sign of the test" and `MouseX() + 5` as the "X position". * `MouseX()` is an "expression" (also called function, like mathematical functions). It returns the position of the mouse, or touch on a touchscreen, in pixels on the X axis. * The `5` is an offset in pixels, so the Monster won't be jumping between both states if it will be clicked or touched in the center (you'll see how it's useful by doing the next event). -![](/gdevelop5/tutorials/geometry-monster/56_5.png) +![](56_5.png) Copy the action taken from the condition responsible for clicking the left button... -![](/gdevelop5/tutorials/geometry-monster/56_6.png) +![](56_6.png) ...and paste it in the condition we created. -![](/gdevelop5/tutorials/geometry-monster/56_7.png) +![](56_7.png) Then create a new sub-condition. -![20220129-160153.png](/gdevelop5/tutorials/geometry-monster/4-desktop-and-mobile-controls/pasted/20220129-160153.png) +![](4-desktop-and-mobile-controls/pasted/20220129-160153.png) Follow the same pattern: Monster, "X position", and then `\< (less than)` and `MouseX() - 5` for the offset from the other side. -![](/gdevelop5/tutorials/geometry-monster/56_9.png) +![](56_9.png) Copy and paste the action from the right key press condition and paste it here. -![](/gdevelop5/tutorials/geometry-monster/56_10.png) +![](56_10.png) Excellent! Monster should now be moving with both keyboard and mouse controls! diff --git a/docs/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md b/docs/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md index ea49e5b2ce..0bddd4a4b0 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md +++ b/docs/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes.md @@ -11,47 +11,47 @@ After successfully [implementing the movement](/gdevelop5/tutorials/geometry-mon Note that instead of having a fixed number of items placed on a scene, we will generate them in a way the game will be an actual **endless** type. -![](/gdevelop5/tutorials/geometry-monster/57.png) +![](57.png) Click on the "Add a new object" in the right panel to open a popup. -![](/gdevelop5/tutorials/geometry-monster/58.png) +![](58.png) Select a "Sprite", like we did with the Monster before. -![](/gdevelop5/tutorials/geometry-monster/59.png) +![](59.png) Name it "Shape1", and click on the "Add an animation" button. -![](/gdevelop5/tutorials/geometry-monster/60.png) +![](60.png) The animation of this object is called "NewObject1" - load an image of the triangle from the disk. The render time is not important as it's the only frame we have, same goes for looping or not. Click "Apply" to save it. -![](/gdevelop5/tutorials/geometry-monster/61.png) +![](61.png) Click on the "Add a new object" again. -![](/gdevelop5/tutorials/geometry-monster/62.png) +![](62.png) Do the same for the second shape: "Shape2" as the name, "NewObject2" as the animation, and a square image, then "Apply". -![](/gdevelop5/tutorials/geometry-monster/63.png) +![](63.png) Repeat for the circle. -![](/gdevelop5/tutorials/geometry-monster/64.png) +![](64.png) The last, fourth shape is a pentagon. -![](/gdevelop5/tutorials/geometry-monster/65.png) +![](65.png) Now all the four shapes are visible in the "Objects" list in the right panel. We will group them with the "Objects" groups editor - click on the fourth icon in the top right menu, the one that have three cubes on it. -![](/gdevelop5/tutorials/geometry-monster/66.png) +![](66.png) It will expand the current view and show an extra "Object Groups" panel on the right - click on "Group" to open a popup. -![](/gdevelop5/tutorials/geometry-monster/67.png) +![](67.png) Click on "Choose an object to add to the group", and then select all four shapes. @@ -59,57 +59,57 @@ Click on "Choose an object to add to the group", and then select all four shapes Remember to not add the Monster to that group, only the shapes. -![](/gdevelop5/tutorials/geometry-monster/69.png) +![](69.png) Keep adding the shapes until all are listed in the group, and then click "Apply". -![](/gdevelop5/tutorials/geometry-monster/70.png) +![](70.png) Now click on the three vertical dots next to the "Group" in the "Object Groups" panel to open a context menu and click "Rename". -![](/gdevelop5/tutorials/geometry-monster/71.png) +![](71.png) Rename the group to "Shapes", and confirm. -![](/gdevelop5/tutorials/geometry-monster/73.png) +![](73.png) Add a new comment to indicate this new section will be about the shapes. -![](/gdevelop5/tutorials/geometry-monster/74.png) +![](74.png) Then click on "Add a new event", and "Add condition" to open a popup. -![](/gdevelop5/tutorials/geometry-monster/76.png) +![](76.png) In the "Other conditions" tab, find "Timers and time", and click it. !!! note - Don't have the "Other conditions" tab? Don't panic! Go to GDevelop preferences (Click on the "File" (or "GDevelop 5" on macOS) menu, then "Preferences". Activate "Use the new action/condition editor". You can then go back to the tutorial. ![](/gdevelop5/tutorials/geometry-monster/activate_new_editor.png) + Don't have the "Other conditions" tab? Don't panic! Go to GDevelop preferences (Click on the "File" (or "GDevelop 5" on macOS) menu, then "Preferences". Activate "Use the new action/condition editor". You can then go back to the tutorial. ![](activate_new_editor.png) -![20220129-141256.png](/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes/pasted/20220129-141256.png) +![](5-adding-and-moving-shapes/pasted/20220129-141256.png) Then from the dropdown, select "Value of a scene timer" and enter two values. First is `1.3` in the "Time in seconds" field which will represent the number of seconds - every 1.3 seconds we will drop new shape onto the scene. Second is the "Timer's name" - set that to "ShapeCreation", and click "Ok" when you finished entering both values. -![](/gdevelop5/tutorials/geometry-monster/79.png) +![](79.png) Now when the condition is in place, let's add the action. -![](/gdevelop5/tutorials/geometry-monster/80.png) +![](80.png) Click on the "Other actions". -![](/gdevelop5/tutorials/geometry-monster/81.png) +![](81.png) Then search for the "Create an object from its name" that will be listed in the "Non-objects and other actions". -![](/gdevelop5/tutorials/geometry-monster/82.png) +![](82.png) In the right panel, look for the "Shapes" group and click it. -![](/gdevelop5/tutorials/geometry-monster/83.png) +![](83.png) The three values we will enter are: "Text representing the name of the object to create", "X position", and "Y position". Name it `"Shape" + ToString(RandomInRange(1,4))`, so that whenever a new object is created, it will be one of the four available shapes. @@ -121,21 +121,21 @@ The Y position is `-100`, so the new shape appear above the visible area, and wi Confused about the positions on screen? If you move your cursor in the scene editor, you'll see in the bottom-left the X and Y position of the cursor. Useful to get an idea of where a position is while working with events like these. -![](/gdevelop5/tutorials/geometry-monster/84.png) +![](84.png) Let's add another action to that. -![](/gdevelop5/tutorials/geometry-monster/85.png) +![](85.png) Be sure the "Shapes" are selected, then look for the "Angle" in the next panel - this will change the angle of rotation of an object. In "Modification's sign" select `= (set to)` and the value `RandomInRange(0, 360)`. Now whenever a new shape is created and dropped onto the gameplay area, it will be rotated by a random value from between `0` and `360` degrees. This will add some variety to how the shapes are presented in the game. -![](/gdevelop5/tutorials/geometry-monster/86.png) +![](86.png) Let's go even further with the customizations - click on the "Add action" once again. -![](/gdevelop5/tutorials/geometry-monster/87.png) +![](87.png) Click on "Shapes", then look for "Scale", select `= (set to)` and enter `RandomFloatInRange(0.8, 1.6)`. This will customize our shapes even more by introducing random scaling - some of them will be a little bit smaller than the original (80% of the original), and some will be bigger (160%). @@ -143,33 +143,33 @@ Click on "Shapes", then look for "Scale", select `= (set to)` and enter `RandomF Rotation and scaling is a great way to make the game more fun even though we still have only four basic shapes in play. -![](/gdevelop5/tutorials/geometry-monster/89.png) +![](89.png) Now go into the "Other actions" to look for "Timers and time", and select "Start (or reset) a scene timer". -![](/gdevelop5/tutorials/geometry-monster/90.png) +![](90.png) The timer's name is "ShapeCreation", so whenever a new shape is created, the timer is reset and we wait for 1.3 seconds before a new shape is created again, and again, indefinitely. -![20220129-141922.png](/gdevelop5/tutorials/geometry-monster/5-adding-and-moving-shapes/pasted/20220129-141922.png) +![](5-adding-and-moving-shapes/pasted/20220129-141922.png) Next create a new event above the shapes event and give it the condition "at beginning of the scene", and copy/paste the earlier create "Start (or reset) a scene timer" action for "ShapeCreation" to this new event. This will start the timer at the beginning of the game in so the shapes event will trigger the first time. -![](/gdevelop5/tutorials/geometry-monster/91.png) +![](91.png) We're almost done with the shapes. Create a comment called "Move shapes", then click on "Add a new empty event", then "Add action". -![](/gdevelop5/tutorials/geometry-monster/92.png) +![](92.png) Add an action: select "Shapes", then "Add a force (angle)", and set the "Angle" to `90`, and "Speed in pixels per second)" to `100`. -![](/gdevelop5/tutorials/geometry-monster/92_2.png) +![](92_2.png) Add another action: "Shapes", then "Rotate", and set the "Angular speed (in degrees per second)" to `90`. That's it! Not only our shapes are spawned randomly and indefinitely, and have random rotation and scaling at the beginning, but they also rotate while falling down. -![](/gdevelop5/tutorials/geometry-monster/94.png) +![](94.png) Launch the game to see all that in action - shapes should fall down the scene. It feels like something is missing, right? They go through the Monster, so we need to introduce [collision detection](/gdevelop5/tutorials/geometry-monster/6-collision-detection) to be able to collect them. diff --git a/docs/gdevelop5/tutorials/geometry-monster/6-collision-detection.md b/docs/gdevelop5/tutorials/geometry-monster/6-collision-detection.md index edc1f81cf9..181995ccc1 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/6-collision-detection.md +++ b/docs/gdevelop5/tutorials/geometry-monster/6-collision-detection.md @@ -7,23 +7,23 @@ title: 6-collision-detection The shapes are falling down, but they do not interact with the Monster. We'd like to be able to control the Monster and allow him to collect the falling shapes - that's what **collision detection** is for. -![](/gdevelop5/tutorials/geometry-monster/95.png) +![](95.png) Add a new comment and call it "Collision". -![](/gdevelop5/tutorials/geometry-monster/96.png) +![](96.png) Then, add a new condition. -![](/gdevelop5/tutorials/geometry-monster/97.png) +![](97.png) As always, make sure "Shapes" are selected, then look for "Collision" (which will test the collision between two objects). In the right panel enter the "Monster" and click "Ok". -![](/gdevelop5/tutorials/geometry-monster/99.png) +![](99.png) We have the condition, now's the time to add an action. -![](/gdevelop5/tutorials/geometry-monster/100.png) +![](100.png) "Shapes", then look for "Delete an object", and "Ok". diff --git a/docs/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md b/docs/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md index ae9fb5fe90..dad21921be 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md +++ b/docs/gdevelop5/tutorials/geometry-monster/7-sounds-fun.md @@ -7,23 +7,23 @@ title: 7-sounds-fun [Collision detection](/gdevelop5/tutorials/geometry-monster/6-collision-detection) on its own was short and sweet, but when Monster and the shape collides, nothing happens beside the shape being destroyed. We can take the advantage of that condition and add something extra - **sound**. -![](/gdevelop5/tutorials/geometry-monster/101.png) +![](101.png) Let's select the "Monster", and search for "Audio" in "Other actions". -![](/gdevelop5/tutorials/geometry-monster/102.png) +![](102.png) Click on it to see the dropdown and go for "Play a sound". In the right panel, click "Choose a new audio file". -![](/gdevelop5/tutorials/geometry-monster/103.png) +![](103.png) It will open a popup where you'll be able to choose and load an audio file that will be played when the shape will be collected by the Monster. For us, it's called `monster.wav`. -![](/gdevelop5/tutorials/geometry-monster/104.png) +![](104.png) If you selected it correctly, you should see the name of the sound file that will be used. -![](/gdevelop5/tutorials/geometry-monster/105.png) +![](105.png) !!! note diff --git a/docs/gdevelop5/tutorials/geometry-monster/8-tracking-score.md b/docs/gdevelop5/tutorials/geometry-monster/8-tracking-score.md index dc73df1908..3527dc8192 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/8-tracking-score.md +++ b/docs/gdevelop5/tutorials/geometry-monster/8-tracking-score.md @@ -9,7 +9,7 @@ It's great to have [sound](/gdevelop5/tutorials/geometry-monster/7-sounds-fun) a To start, let's add an action after the actions to delete a Shape and play a sound, that we've been adding in the previous chapters. Choose "Add an action" there. -![](/gdevelop5/tutorials/geometry-monster/107.png) +![](107.png) Click on the "Other actions", look for "Variables", and select "Value of a scene variable". Then in the right panel set the "Variable" name to "Score", "Modification's sign" to `+ (add)`, and the "Value" to `1`. This means whenever a shape is collected by the Monster, the shape will disappear and the player will get one point. @@ -19,19 +19,19 @@ Click on the "Other actions", look for "Variables", and select "Value of a scene We now have the ability to track the score, but the player can't see it. To show the score, we will need a new text object. -![](/gdevelop5/tutorials/geometry-monster/108.png) +![](108.png) Click on the "Level1" tab, then "Add a new object". -![](/gdevelop5/tutorials/geometry-monster/109.png) +![](109.png) From the popup, select the "Text". -![](/gdevelop5/tutorials/geometry-monster/110.png) +![](110.png) Now enter the properties: "Object Name" is "Score", and we also set the size of the text to `30`, color to `yellow`, and we're making it "bold". The text itself is "Score: ". -![](/gdevelop5/tutorials/geometry-monster/112.png) +![](112.png) Go to the "Level1 (Events)" tab, click "Add an action", and in the popup select our new "Score" variable, look for "Modify the text", and in the right panel select "Modification's sign" to `= (set to)`, with the text `"Score: " + ToString(Variable(Score))`. @@ -41,31 +41,31 @@ It will update the "Score" text with the current variable value whenever a shape As mentioned earlier, this is somewhat incomplete because if the monster collides with two objects at the very same moment, the event actions will be run only once, so only one point will be added to the score. We need to tell GDevelop to run the actions for each and every shape that was in collision at any given point. Let's do that! -![](/gdevelop5/tutorials/geometry-monster/113_5.png) +![](113_5.png) Now click on the "Choose and add an event", and then "For each object". -![](/gdevelop5/tutorials/geometry-monster/115.png) +![](115.png) Enter the name of the object, which in our case will be a group called "Shapes". -![](/gdevelop5/tutorials/geometry-monster/116.png) +![](116.png) Be sure to drag the "Shapes" in collision with Monster there so it's repeated for every "Shape" object. -![](/gdevelop5/tutorials/geometry-monster/117.png) +![](117.png) Finally, drag all the actions into the new "For Each" event. -![](/gdevelop5/tutorials/geometry-monster/118.png) +![](118.png) You can remove the empty event afterwards. -![](/gdevelop5/tutorials/geometry-monster/119_5.png) +![](119_5.png) Now switch to the "Level1" tab, find the "Score" object in the right panel, and drag it onto the scene. -![](/gdevelop5/tutorials/geometry-monster/121.png) +![](121.png) Launch the game to test if counting the score and showing the updated info works as expected. diff --git a/docs/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md b/docs/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md index 303bc029d8..acff89787a 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md +++ b/docs/gdevelop5/tutorials/geometry-monster/9-adding-bombs.md @@ -7,27 +7,27 @@ title: 9-adding-bombs It's great to have the core mechanic of collecting the shapes in place, but it gets boring quite quickly, and it's way too easy. What if we could increase the difficulty level by introducing objects that you shouldn't collect? Behold: **bombs**! -![](/gdevelop5/tutorials/geometry-monster/122.png) +![](122.png) Click to "Add a new object"... -![](/gdevelop5/tutorials/geometry-monster/123.png) +![](123.png) ...and select the "Sprite". -![](/gdevelop5/tutorials/geometry-monster/124.png) +![](124.png) "Object's name" will be "Obstacle", same goes for the name of the animation. We have two frames of the animation to show, and it will last for `0,1` seconds, looped. -![](/gdevelop5/tutorials/geometry-monster/125.png) +![](125.png) Add another comment, and call it "Obstacle". -![](/gdevelop5/tutorials/geometry-monster/127.png) +![](127.png) Add new condition, search the "Other conditions". -![20220129-143434.png](/gdevelop5/tutorials/geometry-monster/9-adding-bombs/pasted/20220129-143434.png) +![](9-adding-bombs/pasted/20220129-143434.png) Within "Timers and time", select "Value of a scene timer". In the right panel, enter "Time in seconds" which will be `5`, select "greater than", and enter "Timer's name" as "ObstacleCreation". @@ -37,31 +37,31 @@ This will create a new timer that will spawn a bomb independently from spawning Feel free to change this value to make the game harder. We'll see in a next chapter how to speed up bombs as the time is passing - to make the game more challenging. You could also use a variable instead of a number, so that you can change during the game the time between the creation of bombs! -![](/gdevelop5/tutorials/geometry-monster/129.png) +![](129.png) Now the action - select the "Obstacle", search for "Create an object", and set the "X position" to `RandomInRange(80, 640-80)`, and "Y position" to `-100`. It's the exact same approach as with shapes. -![](/gdevelop5/tutorials/geometry-monster/131.png) +![](131.png) The second action to add is "Start (or reset) a scene timer" in "Timers and time", and then "ObstacleCreation" as the name. -![20220129-144239.png](/gdevelop5/tutorials/geometry-monster/9-adding-bombs/pasted/20220129-144239.png) +![](9-adding-bombs/pasted/20220129-144239.png) Next create a new event above the obstacle event and give it the condition “at beginning of the scene”, and copy/paste the earlier create “Start (or reset) a scene timer” action for “ObstacleCreation” to this new event. This will start the timer at the beginning of the game in so the obstacle event will trigger the first time. -![20220129-144332.png](/gdevelop5/tutorials/geometry-monster/9-adding-bombs/pasted/20220129-144332.png) +![](9-adding-bombs/pasted/20220129-144332.png) It should look like this above after you successfully complete the steps. If it is, add another action. -![](/gdevelop5/tutorials/geometry-monster/133.png) +![](133.png) Remember about having the "Obstacle" selected, then look for "Add a force (angle)", enter `90` into the "Angle" field, and `100` into the "Speed". -![](/gdevelop5/tutorials/geometry-monster/134.png) +![](134.png) We'll make sure the bomb is in front of the shapes, and not behind them - to do that, we're gonna use *Z order*. It's a way to tell the game how we want the objects to be rendered. "Obstacle", then "Z order", then `= (set to)` and `4`. -![](/gdevelop5/tutorials/geometry-monster/135.png) +![](135.png) Launch the game and see the shapes falling down the screen, with bombs appearing once every few shapes and falling independently. Collecting shapes give you points, while bombs do nothing yet. diff --git a/docs/gdevelop5/tutorials/game-preview.png b/docs/gdevelop5/tutorials/geometry-monster/game-preview.png similarity index 100% rename from docs/gdevelop5/tutorials/game-preview.png rename to docs/gdevelop5/tutorials/geometry-monster/game-preview.png diff --git a/docs/gdevelop5/tutorials/geometry-monster-banner.png b/docs/gdevelop5/tutorials/geometry-monster/geometry-monster-banner.png similarity index 100% rename from docs/gdevelop5/tutorials/geometry-monster-banner.png rename to docs/gdevelop5/tutorials/geometry-monster/geometry-monster-banner.png diff --git a/docs/gdevelop5/tutorials/geometry-monster-sources.zip b/docs/gdevelop5/tutorials/geometry-monster/geometry-monster-sources.zip similarity index 100% rename from docs/gdevelop5/tutorials/geometry-monster-sources.zip rename to docs/gdevelop5/tutorials/geometry-monster/geometry-monster-sources.zip diff --git a/docs/gdevelop5/tutorials/geometry-monster/index.md b/docs/gdevelop5/tutorials/geometry-monster/index.md index 313450bdb2..50d3388da7 100644 --- a/docs/gdevelop5/tutorials/geometry-monster/index.md +++ b/docs/gdevelop5/tutorials/geometry-monster/index.md @@ -5,11 +5,11 @@ title: Geometry Monster Welcome to the **Geometry Monster** game tutorial. In this series of articles you will learn how to create a hyper-casual game suitable for mobile devices. -![](/gdevelop5/tutorials/geometry-monster-banner.png) +![](geometry-monster-banner.png) From creating the main character and animating it, through adding controls and collectible objects, to collision detection, tracking the score and having multiple lives. We will also implement multiple scenes including main menu and gameplay, sound effects, and difficulty level that increase over time. -![](/gdevelop5/tutorials/game-preview.png) +![](game-preview.png) ## Table Of Contents @@ -30,7 +30,7 @@ From creating the main character and animating it, through adding controls and c ## Get the sources -[Open the project online](https://editor.gdevelop.io/?project=example://geometry-monster) or get the [sources of the Geometry Monster game](/gdevelop5/tutorials/geometry-monster-sources.zip) containing all the images you need to finish the game, and the old project's json file used to write this tutorial if you'd like to check everything yourself. +[Open the project online](https://editor.gdevelop.io/?project=example://geometry-monster) or get the [sources of the Geometry Monster game](/gdevelop5/tutorials/geometry-monster/geometry-monster-sources.zip) containing all the images you need to finish the game, and the old project's json file used to write this tutorial if you'd like to check everything yourself. diff --git a/docs/gdevelop5/tutorials/how-to-jump-fall-animation.png b/docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer/how-to-jump-fall-animation.png similarity index 100% rename from docs/gdevelop5/tutorials/how-to-jump-fall-animation.png rename to docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer/how-to-jump-fall-animation.png diff --git a/docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer.md b/docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer/index.md similarity index 90% rename from docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer.md rename to docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer/index.md index 1e3b40882b..63fdbb0e40 100644 --- a/docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer.md +++ b/docs/gdevelop5/tutorials/how-to-animate-jump-fall-platformer/index.md @@ -6,7 +6,7 @@ title: How to animate the jump and the fall of a character in a platform game If you use the platform engine for your character, it's easy to animate your character according to its state. For this, use the conditions of the platformer behavior: -![](/gdevelop5/tutorials/how-to-jump-fall-animation.png) +![](how-to-jump-fall-animation.png) Note that we use **Trigger once**, to only change the animation when first entering into a new state. This is useful because the character can be simultaneously falling *and* jumping. \ No newline at end of file diff --git a/docs/gdevelop5/tutorials/bad_behavior.png b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/bad_behavior.png similarity index 100% rename from docs/gdevelop5/tutorials/bad_behavior.png rename to docs/gdevelop5/tutorials/how-to-debug-poor-performance/bad_behavior.png diff --git a/docs/gdevelop5/tutorials/bad_event_optimisation.png b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/bad_event_optimisation.png similarity index 100% rename from docs/gdevelop5/tutorials/bad_event_optimisation.png rename to docs/gdevelop5/tutorials/how-to-debug-poor-performance/bad_event_optimisation.png diff --git a/docs/gdevelop5/tutorials/fps-counter.jpg b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/fps-counter.jpg similarity index 100% rename from docs/gdevelop5/tutorials/fps-counter.jpg rename to docs/gdevelop5/tutorials/how-to-debug-poor-performance/fps-counter.jpg diff --git a/docs/gdevelop5/tutorials/good_event_optimisation.png b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/good_event_optimisation.png similarity index 100% rename from docs/gdevelop5/tutorials/good_event_optimisation.png rename to docs/gdevelop5/tutorials/how-to-debug-poor-performance/good_event_optimisation.png diff --git a/docs/gdevelop5/tutorials/how-to-debug-poor-performance.md b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/index.md similarity index 96% rename from docs/gdevelop5/tutorials/how-to-debug-poor-performance.md rename to docs/gdevelop5/tutorials/how-to-debug-poor-performance/index.md index 49e775f8c9..433195173d 100644 --- a/docs/gdevelop5/tutorials/how-to-debug-poor-performance.md +++ b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/index.md @@ -21,7 +21,7 @@ If your game is running slowly, it's a good idea to look at these common consume Try adding an FPS (frames per second) counter to your game. This will allow you to measure if your optimizations are increasing the performance of your game. You can do this by modifying a text object, and setting it to **"FPS: " + ToString(ceil(1/TimeDelta()))** or: -![](/gdevelop5/tutorials/fps-counter.jpg) +![](fps-counter.jpg) !!! tip @@ -31,7 +31,7 @@ Try adding an FPS (frames per second) counter to your game. This will allow you To count the number of particles used in a game, create an object group that contains all particle emitters. Then use a ForEach event to count the particles made by every particle emitter instance and save that number in a variable. Then use a text object to display that number on the screen. -![](/gdevelop5/tutorials/particle-counter-events.jpg) +![](particle-counter-events.jpg) !!! note @@ -53,7 +53,7 @@ The **Trigger once** condition causes conditions preceding it in the same event For example, if you want to create an object every time a click is done, this is what you should _not_ do: -![](/gdevelop5/tutorials/bad_event_optimisation.png) +![](bad_event_optimisation.png) * What is expected to happen: When the left mouse button is pressed, an object is created called **MyObject**. * What actually happens: As long as the mouse left button is pressed, **MyObject** instances are created. @@ -61,7 +61,7 @@ For example, if you want to create an object every time a click is done, this is This is problematic because when the mouse button is pressed, it is likely held down for longer than a single frame like 0.3 seconds. During this period of time the event is called multiple times, and the object is created more than once. To fix that we can use the **Trigger once** condition: -![](/gdevelop5/tutorials/good_event_optimisation.png) +![](good_event_optimisation.png) Now, the condition will trigger only once while it is true. That means that the event will fire only once every time it's condition goes from unfulfilled to fulfilled. It resolves the problem above as the condition will fire only the first frame of the click, and will wait for the click to end before letting the click event fire again. @@ -73,7 +73,7 @@ Behaviors take performance, especially the _Pathfinding_ and _Physic Engine 2.0_ Let's take as an example the following situation: I want 100 enemies to move to a position close to them every 2 seconds, and to take into account the wall obstacles. This would be an intuitive but wrong way to do it: -![](/gdevelop5/tutorials/bad_behavior.png) +![](bad_behavior.png) If you do this, all objects will move, including the off-screen ones. !!! tip diff --git a/docs/gdevelop5/tutorials/particle-counter-events.jpg b/docs/gdevelop5/tutorials/how-to-debug-poor-performance/particle-counter-events.jpg similarity index 100% rename from docs/gdevelop5/tutorials/particle-counter-events.jpg rename to docs/gdevelop5/tutorials/how-to-debug-poor-performance/particle-counter-events.jpg diff --git a/docs/gdevelop5/tutorials/how-to-display-big-background.md b/docs/gdevelop5/tutorials/how-to-display-big-background/index.md similarity index 100% rename from docs/gdevelop5/tutorials/how-to-display-big-background.md rename to docs/gdevelop5/tutorials/how-to-display-big-background/index.md diff --git a/docs/gdevelop5/tutorials/how-to-make-togglable-states-with-variables.md b/docs/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/how-to-make-togglable-states-with-variables.md similarity index 76% rename from docs/gdevelop5/tutorials/how-to-make-togglable-states-with-variables.md rename to docs/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/how-to-make-togglable-states-with-variables.md index 2814cccad3..9940b173e5 100644 --- a/docs/gdevelop5/tutorials/how-to-make-togglable-states-with-variables.md +++ b/docs/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/how-to-make-togglable-states-with-variables.md @@ -9,13 +9,13 @@ Sometimes you need to toggle a state, for example a door can be opened or closed First you must create Conditions that trigger when you want to toggle the state of the variable. For the sake of this example, we will use the left mouse button is released and check if the cursor is on top of a checkbox: -![](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/pasted/20210525-181423.png) +![](pasted/20210525-181423.png) ## 2. Adding States Now add subevents that contain Actions for each state. In this example, the only difference when changing the state is the animation of the checkbox. However, if the checkbox were to for example create or delete an object when activated, this would be done there as well. -![](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/pasted/20210525-181401.png) +![](pasted/20210525-181401.png) ## 3. Toggling the state @@ -25,7 +25,7 @@ Now all that is left to do is the toggling. To do this, there are multiple metho This method is one of the easiest and cleanest. However, it only works when using a *boolean* state, meaning you can only use it on 2 states. -![](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/pasted/20210525-181554.png) +![](pasted/20210525-181554.png) ### 3.2 Option 2: Using a state variable @@ -35,16 +35,16 @@ This method allows using as many states as you wish, but takes more code to writ First, you will need to add a variable that holds the current state, and modify it each time the state changes: -![](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/pasted/20210525-181942.png) +![](pasted/20210525-181942.png) #### 3.2.2 Looping back Finally, add an event to make sure the state is in the range of valid states before processing the state change: -![](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/pasted/20210525-182309.png) +![](pasted/20210525-182309.png) #### 3.2.3 Using more than two states Here is an example of using this technique on more than two states: -![](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables/pasted/20210525-182605.png) \ No newline at end of file +![](pasted/20210525-182605.png) \ No newline at end of file diff --git a/docs/gdevelop5/tutorials/how-to-rotate-objects.md b/docs/gdevelop5/tutorials/how-to-rotate-objects/index.md similarity index 95% rename from docs/gdevelop5/tutorials/how-to-rotate-objects.md rename to docs/gdevelop5/tutorials/how-to-rotate-objects/index.md index 0cb8c1f66b..2aa3486a06 100644 --- a/docs/gdevelop5/tutorials/how-to-rotate-objects.md +++ b/docs/gdevelop5/tutorials/how-to-rotate-objects/index.md @@ -17,7 +17,7 @@ An object can be instantly rotated with the **Angle** action. The action needs a Objects can be rotated at a given speed using the action **Rotate toward position**. Its position parameters can be set to `Object.X()` and `Object.Y()` to turn in the direction of an object. -Object can also be rotated to a given angle with the **Rotate toward angle**. The angle can be `0` to face left, `90` to face down, `180` to face right, `270` to face up or any other value. +Object can also be rotated to a given angle with the **Rotate toward angle**. The angle can be `0` to face right, `90` to face down, `180` to face left, `270` to face up or any other value. ![](/gdevelop5/objects/gdevelop_co.png) diff --git a/docs/gdevelop5/tutorials/how-to-use-gdevelop-as-a-team.md b/docs/gdevelop5/tutorials/how-to-use-gdevelop-as-a-team/index.md similarity index 100% rename from docs/gdevelop5/tutorials/how-to-use-gdevelop-as-a-team.md rename to docs/gdevelop5/tutorials/how-to-use-gdevelop-as-a-team/index.md diff --git a/docs/gdevelop5/tutorials/index.md b/docs/gdevelop5/tutorials/index.md index 9e6accd096..c092c9cb2d 100644 --- a/docs/gdevelop5/tutorials/index.md +++ b/docs/gdevelop5/tutorials/index.md @@ -8,22 +8,22 @@ These tutorials are step-by-step guides that explain how to create a game from s !!! tip - If you're using GDevelop for the first time, it's recommended to start with these tutorials + If you're using GDevelop for the first time, we recommend starting with these tutorials: - **[Basic game making concepts: What you need to know to start with GDevelop](/gdevelop5/tutorials/basic-game-making-concepts)** -- **[Create a physics based Asteroids game](/gdevelop5/tutorials/asteroids)** +- **[Create a physics-based Asteroids game](/gdevelop5/tutorials/asteroids)** - **[Geometry Monster: a complete, simple mobile game](/gdevelop5/tutorials/geometry-monster)** - **[Create a platform game](/gdevelop5/tutorials/platformer)** - **[Create a space shooter game](/gdevelop5/tutorials/space-shooter)** Community tutorials: -- [Understand and use the Noise generator extension for procedural Generation](/gdevelop5/tutorials/procedural-generation) +- [Understand and use the Noise generator extension for procedural generation](/gdevelop5/tutorials/procedural-generation) - [Create a simple Tank Shooter game](/gdevelop5/tutorials/tank-shooter) - [Create a simple Endless Runner game](/gdevelop5/tutorials/endless-runner) - [Endless car game](/gdevelop5/tutorials/roadrider) - [Create a simple Breakout game](/gdevelop5/tutorials/breakout) -- [Create a top down shooter game](/gdevelop5/tutorials/topdown-shooter) +- [Create a top-down shooter game](/gdevelop5/tutorials/topdown-shooter) Recommended reads to go further: @@ -33,30 +33,30 @@ Recommended reads to go further: # GDevelop short guides ("how to") -The following guides provide explanations for certain parts of GDevelop. They also show you some advanced mechanics for designing your games: +The following guides provide explanations for specific parts of GDevelop. They also show you advanced mechanics for designing your games: - **[How to create a behavior for an object](/gdevelop5/tutorials/how-to-make-behavior)** - [How to move objects in your game (all the different solutions)](/gdevelop5/tutorials/how-to-move-objects) -- [How to animate the jump and the fall of a character in a platformer game](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) +- [How to animate the jump and fall of a character in a platformer game](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) - [How to display a big background in your game](/gdevelop5/tutorials/how-to-display-big-background) - [How to debug poor game performance](/gdevelop5/tutorials/how-to-debug-poor-performance) - [How to reduce the size of your game](/gdevelop5/tutorials/reduce-size-game) - [How to handle complex logic – The finite state machine (FSM)](/gdevelop5/tutorials/finite_state_machine) - [How to make togglable states](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables) -- [How to use GDevelop as a team (multiple developers and teammates)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team) -- [How to use Piskel to Import a Sprite Sheet Image](/gdevelop5/tutorials/piskel-sprite-sheets) +- [How to use GDevelop as a team (multiple developers and teammates)](/gdevelop5/tutorials/how-to-use-gdevelop-as-a-team) +- [How to use Piskel to import a sprite sheet image](/gdevelop5/tutorials/piskel-sprite-sheets) - [How to backup and maintain your project using GitHub and GitHub Desktop](/gdevelop5/tutorials/using-github-desktop) -- [How to Change the Event Sheet's Action and Condition Editor Mode](/gdevelop5/tutorials/change-event-editor-mode) -- [How to add realtime leaderboards to your game](/gdevelop5/tutorials/leaderboards) +- [How to change the Event Sheet's Action and Condition Editor Mode](/gdevelop5/tutorials/change-event-editor-mode) +- [How to add real-time leaderboards to your game](/gdevelop5/tutorials/leaderboards) - [How to align text](/gdevelop5/tutorials/aligning-text) -- [How to follow the player (or an object) with the camera?](/gdevelop5/tutorials/follow-player-with-camera) -- [How to rotate objects?](/gdevelop5/tutorials/how-to-rotate-objects) +- [How to follow the player (or an object) with the camera](/gdevelop5/tutorials/follow-player-with-camera) +- [How to rotate objects](/gdevelop5/tutorials/how-to-rotate-objects) --- # GDevelop video tutorials -Check out the [official GDevelop Channel here](https://www.youtube.com/channel/UCmoHIfIerKCZkOOt6zr9inw)! +Check out the [official GDevelop YouTube channel here](https://www.youtube.com/channel/UCmoHIfIerKCZkOOt6zr9inw)! - See the [full list of video tutorials](/gdevelop5/tutorials/videos) @@ -64,6 +64,6 @@ Check out the [official GDevelop Channel here](https://www.youtube.com/channel/U # Resources -Links to 3rd party websites where you can find sprites, music and sound effects for your games and game examples, templates and software to help you with game development. +Links to third-party websites where you can find sprites, music, and sound effects for your games, as well as game examples, templates, and software to help you with game development. -- [resources](/gdevelop5/tutorials/resources) +- [Resources](/gdevelop5/tutorials/resources) diff --git a/docs/gdevelop5/tutorials/leaderboards-1.png b/docs/gdevelop5/tutorials/leaderboards/leaderboards-1.png similarity index 100% rename from docs/gdevelop5/tutorials/leaderboards-1.png rename to docs/gdevelop5/tutorials/leaderboards/leaderboards-1.png diff --git a/docs/gdevelop5/tutorials/leaderboards.md b/docs/gdevelop5/tutorials/leaderboards/leaderboards.md similarity index 93% rename from docs/gdevelop5/tutorials/leaderboards.md rename to docs/gdevelop5/tutorials/leaderboards/leaderboards.md index 781a73968a..2b9126ae5d 100644 --- a/docs/gdevelop5/tutorials/leaderboards.md +++ b/docs/gdevelop5/tutorials/leaderboards/leaderboards.md @@ -47,7 +47,7 @@ service cloud.firestore { } } ``` -![](/gdevelop5/tutorials/leaderboards-1.png) +![](leaderboards-1.png) To set security rules, navigate to the editor via the [Firebase console](https://console.firebase.google.com/). @@ -72,7 +72,7 @@ To set security rules, navigate to the editor via the [Firebase console](https:/ ## 3. Adding scores to the database from GDevelop To add a score, it is pretty simple. All you need to do is put the data in a structure with the shape chosen and upload it! -![](/gdevelop5/tutorials/leaderboards/pasted/20210530-213318.png) +![](pasted/20210530-213318.png) ## 4. Fetching the scores from the database with GDevelop @@ -81,23 +81,23 @@ Fetching the scores requires making a query to only download a few scores, and o ### 4.1 Creating a query For the sake of this tutorial, we will load the 50 best scores. This can be achieved by adding the "Order by descending" and "Limit to 50 first" query filters. Then, we will watch the query to download the scores and have them update in real time. -![](/gdevelop5/tutorials/leaderboards/pasted/20210530-213842.png) +![](pasted/20210530-213842.png) ### 4.2 Awaiting the data Now, we need to await the data fetching, as Firebase is asynchronous. This can be simply done using this event: -![](/gdevelop5/tutorials/leaderboards/pasted/20210530-214148.png) +![](pasted/20210530-214148.png) It will trigger once Firebase marked the operation as complete by putting "ok" inside the status variable, and we will set it back to 0. This last step is done to trigger the event once each time Firebase finishes fetching new scores, to allow processing the realtime updates. ### 4.3 Processing the data To process the data, the easiest method is to use a "For each child variable" event: -![](/gdevelop5/tutorials/leaderboards/pasted/20210530-214520.png) +![](pasted/20210530-214520.png) This allows to access the document via the variable `doc` inside that event and the position in the list via the variable `i`. For example, to access the position of a player you can use `Variable(i) + 1`. The `+ 1` is used as arrays start from 0, but leaderboards usually start from place 1. To access the score, in the context of this tutorial, you could use `Variable(doc.data.score)`, and to access the username `VariableString(doc.data.name)`. To display it all in a text object for example, we can use this: -![](/gdevelop5/tutorials/leaderboards/pasted/20210530-215054.png) +![](pasted/20210530-215054.png) diff --git a/docs/gdevelop5/tutorials/bandicam20g190529161603928.gif b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/bandicam20g190529161603928.gif similarity index 100% rename from docs/gdevelop5/tutorials/bandicam20g190529161603928.gif rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/bandicam20g190529161603928.gif diff --git a/docs/gdevelop5/tutorials/enemyblack1.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/enemyblack1.png similarity index 100% rename from docs/gdevelop5/tutorials/enemyblack1.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/enemyblack1.png diff --git a/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft.md b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/index.md similarity index 64% rename from docs/gdevelop5/tutorials/nilarjun-space-shooter-draft.md rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/index.md index ada6e349da..d058eb5227 100644 --- a/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft.md +++ b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/index.md @@ -3,7 +3,7 @@ title: A Beginner's Tutorial to a Space Shooter Game --- # A Beginner's Tutorial to a Space Shooter Game -![](/gdevelop5/tutorials/bandicam20g190529161603928.gif) This tutorial will help you to get familiar with the way GDevelop works. In this tutorial, we are going to create a very basic space shooter game where the **enemies are generated randomly** and the player has to destroy them in order to get a higher score. There will be a target score for each level, which on being reached will take you to the next level. +![](bandicam20g190529161603928.gif) This tutorial will help you to get familiar with the way GDevelop works. In this tutorial, we are going to create a very basic space shooter game where the **enemies are generated randomly** and the player has to destroy them in order to get a higher score. There will be a target score for each level, which on being reached will take you to the next level. To know the basics of how the software works, you can refer [](/gdevelop5/getting_started) for more information. In this tutorial, we will use separate scenes to build a start screen and the level scene. *The first part of this tutorial aims at creating the **Game Menu**. * @@ -15,11 +15,11 @@ If you do not have GDevelop, download it from the official website : [GDevelop A #### ☆Player Sprite -![](/gdevelop5/tutorials/playership3_red.png) This is the main character/object that we, the user, will be controlling. The Player Sprite or Player Ship can only **move sideways** to avoid the enemies or to aim at them. It can **launch projectiles** to damage the enemies to get a higher score. +![](playership3_red.png) This is the main character/object that we, the user, will be controlling. The Player Sprite or Player Ship can only **move sideways** to avoid the enemies or to aim at them. It can **launch projectiles** to damage the enemies to get a higher score. #### ☆Enemies -![](/gdevelop5/tutorials/enemyblack1.png)![](/gdevelop5/tutorials/meteorgrey_big3.png) These will be the randomly generated **enemy ships** and **asteroids**. They need to be destroyed by the Player ship to get a higher score. These enemies also damage the Player on colliding with it. +![](enemyblack1.png)![](meteorgrey_big3.png) These will be the randomly generated **enemy ships** and **asteroids**. They need to be destroyed by the Player ship to get a higher score. These enemies also damage the Player on colliding with it. #### ☆Score Display @@ -29,19 +29,19 @@ This block of text updates and displays the score when an enemy is successfully Since our player only moves sideways, we need to **move** the background instead which gives a feeling that the player ship is moving forwards. -> === Download the Resources === For making the game, you will need assets that you can use to make the player sprite, enemies and backgrounds. Find all the resources you need for this game right ![here](/gdevelop5/tutorials/space_shooter.rar). +> === Download the Resources === For making the game, you will need assets that you can use to make the player sprite, enemies and backgrounds. Find all the resources you need for this game right ![here](space_shooter.rar). ## Step 1: Creating a New Project Once on the Start screen, click on the "Create a New Project" button. On doing so, a "Create a New Game" dialog box appears. Next, scroll down and find the "Empty Game" tab. Click on it to open a new project. -![](/gdevelop5/tutorials/screeenshot_na_test.png) +![](../shared/screeenshot_na_test.png) -![](/gdevelop5/tutorials/store_location_for_endless_runner.png) You can also choose to customize your Project location to store the project at a location of your choice. Click on **Choose Folder** Option to choose a storage location you want. Game configuration files (with an extension .json) will be stored at this location. +![](../shared/store_location_for_endless_runner.png) You can also choose to customize your Project location to store the project at a location of your choice. Click on **Choose Folder** Option to choose a storage location you want. Game configuration files (with an extension .json) will be stored at this location. ## Step 2: Creating a New Scene -![](/gdevelop5/tutorials/new_scene_creation_for_endless_runner.png) A game relies on scenes for different scenarios of gameplay. We can make and use multiple scenes, but for this tutorial, we will be working with **2 Scenes**. Let's get started and create the scenes required for this game. +![](../shared/new_scene_creation_for_endless_runner.png) A game relies on scenes for different scenarios of gameplay. We can make and use multiple scenes, but for this tutorial, we will be working with **2 Scenes**. Let's get started and create the scenes required for this game. Click on the area where it says "Click to add a Scene" to create your first empty scene. @@ -53,9 +53,9 @@ You can customize the name of your scene by clicking on the **three dots** next In this part of the tutorial, we are going to create a Staring Menu for our game. Click on the first scene you made in the previous step to open the **Scene Editor**, where we will be making the game elements. -![](/gdevelop5/tutorials/new_scene_for_endless_runner.png) +![](../shared/new_scene_for_endless_runner.png) -You should see the **Object** tab and the **Properties** tab. ![](/gdevelop5/tutorials/screenshot_20190523182052.png) ![](/gdevelop5/tutorials/screenshot_20190523182628.png) If by any chance, you cannot see those tabs, click on the icon shown on the left to open the "Objects" tab. Similarly, click on the icon on the right to open the "Properties" tab. +You should see the **Object** tab and the **Properties** tab. ![](../endless-runner/screenshot_20190523182052.png) ![](../endless-runner/screenshot_20190523182628.png) If by any chance, you cannot see those tabs, click on the icon shown on the left to open the "Objects" tab. Similarly, click on the icon on the right to open the "Properties" tab. > The game menu we are going to create, will have some **text objects** to display the name of the game, and a **button** to start the game. tip @@ -63,11 +63,11 @@ You should see the **Object** tab and the **Properties** tab. ![](/gdevelop5/tut First of all let's add a basic design to our Menu Scene. We will now use the assets that were provided to you earlier in this tutorial. Let's add our first **Object**. -![](/gdevelop5/tutorials/screenshot_20190529171724.png) +![](screenshot_20190529171724.png) Click on the **Click to add an Object** area on the Objects tab to create your first object. The dialog box which opens shows the various types of objects. For our first object, let's choose a background. We use a [Panel Sprite](/gdevelop5/objects/panel_sprite) type of object for our background. A **Panel Sprite** type object can be stretched as required. -![](/gdevelop5/tutorials/screenshot_20190529172242.png) +![](screenshot_20190529172242.png) Upon clicking the **Panel Sprite** option a dialog box, to change the properties of this object, appears. When you first add a new object, it will given a default name such as **NewObject**. You can rename this to better organize your Object space. Notice that I have changed my object's name to **Background**. Choose the black background from the assets provided and click on **Apply**. @@ -75,9 +75,9 @@ Upon clicking the **Panel Sprite** option a dialog box, to change the properties Now, simply drag and drop the Background object to the **Scene Space**. You will notice that there is a greyish black border in the scene space. That is the **Game Window**. Objects outside of this window exist but cannot be seen while playing the game. Resize/Rescale the Panel Sprite object to fill the entire Game Window. The scene editor will look something like the image shown below. -![](/gdevelop5/tutorials/screenshot_f20190601164918.jpg) +![](screenshot_f20190601164918.jpg) -![](/gdevelop5/tutorials/screenshot_20v190601170006.jpg) In a similar way, add more image assets and design your Game menu screen. Design involves creativity and imagination, so keep trying variations of designs to see which looks the best for your game. You will notice I added two **Text Objects** for displaying **Space Adventures**. To add Text objects, click on add a new object and choose type **Text**. You can customize it as you like. After you are done editing the text, click Apply. Then simply drag and drop the text object to the scene space. +![](screenshot_20v190601170006.jpg) In a similar way, add more image assets and design your Game menu screen. Design involves creativity and imagination, so keep trying variations of designs to see which looks the best for your game. You will notice I added two **Text Objects** for displaying **Space Adventures**. To add Text objects, click on add a new object and choose type **Text**. You can customize it as you like. After you are done editing the text, click Apply. Then simply drag and drop the text object to the scene space. ------------------------------------------------------------------------ @@ -85,23 +85,23 @@ We will now add a **Button** which when clicked will **start** the game. In tech First off, we create a button using the same **Panel Sprite** object we used earlier. It's a part of UI (User Interface) which is very important as it makes the game look better. Add another **text object** which displays "Start" and place it on the button UI. It will look something like this. -![](/gdevelop5/tutorials/screenshot_20190601171608.png) +![](screenshot_20190601171608.png) Now, it's time to make the button functional. We will now start working with events. Events are what we use to create the rules of any games in GDevelop. This is what makes GDevelop special compared to traditional game engines. Events in GDevelop allow you to visually program your game without any programming knowledge or experience, so people with any background will be able to create the actual game-play and allow players to interact with the game. -![](/gdevelop5/tutorials/screenshot_20190523232911.png) That being said, let's make our first event. Move on to **NewScene(Events)** tab by clicking on the mentioned tab. Then click on the icon shown on the left to create an empty **Event**. +![](../endless-runner/screenshot_20190523232911.png) That being said, let's make our first event. Move on to **NewScene(Events)** tab by clicking on the mentioned tab. Then click on the icon shown on the left to create an empty **Event**. ------------------------------------------------------------------------ For our first condition, we want to detect whether the cursor is over the Start button. To do that, we need to add a condition. Click on **Add a condition** and search for the **Mouse and Touch** category. Choose **The cursor/touch is on an object** condition and select the object this condition corresponds to. It's the **Start** object, in this case. -![](/gdevelop5/tutorials/screenshot_20190619200607.png) +![](screenshot_20190619200607.png) Similarly, add another condition to detect a mouse button press. Click on **Add a condition** and search for the **Mouse and Touch** category. Choose the **Mouse button pressed or touch held** option and select the **Left(primary)** button to test. -![](/gdevelop5/tutorials/screenshot_20190619201230.png) +![](screenshot_20190619201230.png) The two conditions combined checks for the **left mouse button press** on the **Start** object. Now, we need to add an action which changes the current scene to the game-play scene. @@ -109,9 +109,9 @@ To add this action, search and click on **Scene**→**Change the Scene**. Then t The event now looks something like this: -![](/gdevelop5/tutorials/screenshot_20190619202830.png) +![](screenshot_20190619202830.png) -![](/gdevelop5/tutorials/screenshot_20190524003448.png) It's now time to see how the created event actually works. Click on the `Play` button to **Preview** the Project. A preview window opens up, where we can test the various functions in our game. The preview window shows us exactly how the game looks and performs while in action. +![](../endless-runner/screenshot_20190524003448.png) It's now time to see how the created event actually works. Click on the `Play` button to **Preview** the Project. A preview window opens up, where we can test the various functions in our game. The preview window shows us exactly how the game looks and performs while in action. You will notice that when you click on the Start button, it takes you to the new empty scene. diff --git a/docs/gdevelop5/tutorials/meteorgrey_big3.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/meteorgrey_big3.png similarity index 100% rename from docs/gdevelop5/tutorials/meteorgrey_big3.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/meteorgrey_big3.png diff --git a/docs/gdevelop5/tutorials/playership3_red.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/playership3_red.png similarity index 100% rename from docs/gdevelop5/tutorials/playership3_red.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/playership3_red.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190529171724.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190529171724.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190529171724.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190529171724.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190529172242.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190529172242.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190529172242.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190529172242.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190601171608.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190601171608.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190601171608.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190601171608.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190619200607.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190619200607.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190619200607.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190619200607.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190619201230.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190619201230.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190619201230.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190619201230.png diff --git a/docs/gdevelop5/tutorials/screenshot_20190619202830.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190619202830.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20190619202830.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20190619202830.png diff --git a/docs/gdevelop5/tutorials/screenshot_20v190601170006.jpg b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20v190601170006.jpg similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_20v190601170006.jpg rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_20v190601170006.jpg diff --git a/docs/gdevelop5/tutorials/screenshot_f20190601164918.jpg b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_f20190601164918.jpg similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_f20190601164918.jpg rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/screenshot_f20190601164918.jpg diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player-1.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-1.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player-1.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-1.png diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player-2.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-2.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player-2.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-2.png diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player-3.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-3.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player-3.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-3.png diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player-4.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-4.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player-4.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-4.png diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player-5.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-5.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player-5.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-5.png diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player-6.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-6.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player-6.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player-6.png diff --git a/docs/gdevelop5/tutorials/space-shooter-add-player.gif b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player.gif similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-add-player.gif rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-add-player.gif diff --git a/docs/gdevelop5/tutorials/space-shooter-assets.zip b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-assets.zip similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-assets.zip rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-assets.zip diff --git a/docs/gdevelop5/tutorials/space-shooter-create-project.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-create-project.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-create-project.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-create-project.png diff --git a/docs/gdevelop5/tutorials/space-shooter-create-scene.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-create-scene.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-create-scene.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-create-scene.png diff --git a/docs/gdevelop5/tutorials/space-shooter-empty-project.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-empty-project.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-empty-project.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-empty-project.png diff --git a/docs/gdevelop5/tutorials/space-shooter-game-settings.gif b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-game-settings.gif similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-game-settings.gif rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-game-settings.gif diff --git a/docs/gdevelop5/tutorials/space-shooter-grid.gif b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-grid.gif similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-grid.gif rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-grid.gif diff --git a/docs/gdevelop5/tutorials/space-shooter-rename-scene.png b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-rename-scene.png similarity index 100% rename from docs/gdevelop5/tutorials/space-shooter-rename-scene.png rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space-shooter-rename-scene.png diff --git a/docs/gdevelop5/tutorials/space_shooter.rar b/docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space_shooter.rar similarity index 100% rename from docs/gdevelop5/tutorials/space_shooter.rar rename to docs/gdevelop5/tutorials/nilarjun-space-shooter-draft/space_shooter.rar diff --git a/docs/gdevelop5/tutorials/piskel-sprite-sheets.md b/docs/gdevelop5/tutorials/piskel-sprite-sheets/index.md similarity index 95% rename from docs/gdevelop5/tutorials/piskel-sprite-sheets.md rename to docs/gdevelop5/tutorials/piskel-sprite-sheets/index.md index 414e6662ad..f605245645 100644 --- a/docs/gdevelop5/tutorials/piskel-sprite-sheets.md +++ b/docs/gdevelop5/tutorials/piskel-sprite-sheets/index.md @@ -46,7 +46,7 @@ To complete this method, the following requirements must be met: - There are four frames, and the sheet is set up to have even distance. This means the frame size needs to be adjusted to 1/4th 512 pixels wide, or 128 pixels. - After adjusting the frame size, the boxes evenly split up each frame of animation. -![](/gdevelop5/tutorials/piksel-sprite-sheets/pasted/20200330-024341.png) +![](pasted/20200330-024341.png) ## Import the Sprite sheet @@ -56,4 +56,4 @@ To complete this method, the following requirements must be met: 1. Make any further needed adjustments needed. 1. Click **Save**. The animation will be created for the sprite object. 1. Repeat as needed for each additional animation and sprite sheet. -![](/gdevelop5/tutorials/piksel-sprite-sheets/pasted/20200330-025608.png) +![](pasted/20200330-025608.png) diff --git a/docs/gdevelop5/tutorials/piksel-sprite-sheets/pasted/20200330-024341.png b/docs/gdevelop5/tutorials/piskel-sprite-sheets/pasted/20200330-024341.png similarity index 100% rename from docs/gdevelop5/tutorials/piksel-sprite-sheets/pasted/20200330-024341.png rename to docs/gdevelop5/tutorials/piskel-sprite-sheets/pasted/20200330-024341.png diff --git a/docs/gdevelop5/tutorials/piksel-sprite-sheets/pasted/20200330-025608.png b/docs/gdevelop5/tutorials/piskel-sprite-sheets/pasted/20200330-025608.png similarity index 100% rename from docs/gdevelop5/tutorials/piksel-sprite-sheets/pasted/20200330-025608.png rename to docs/gdevelop5/tutorials/piskel-sprite-sheets/pasted/20200330-025608.png diff --git a/docs/gdevelop5/tutorials/platformer/part-4.md b/docs/gdevelop5/tutorials/platformer/part-4.md index a44655b70f..b68e006b9f 100644 --- a/docs/gdevelop5/tutorials/platformer/part-4.md +++ b/docs/gdevelop5/tutorials/platformer/part-4.md @@ -54,6 +54,10 @@ To trigger the "Jumping" animation: 5. In the **Animation name** field, enter the name of the "Jumping" animation. You must wrap this name in double quotes (i.e. `"Jumping"`). 6. Click **OK**. +!!! warning + + The [platformer character animator](/gdevelop5/extensions/platformer-character-animator/) behavior can change the animations automatically. + ![](/gdevelop5/tutorials/platformer/part-4-02.jpg) Based on these changes, jumping triggers the animation. @@ -135,4 +139,4 @@ If you preview the game, the "Running" animation plays as the player moves. ## Next steps -Read [Part 5: Add Collectible Coins to the Game](/gdevelop5/tutorials/platformer/part-5). \ No newline at end of file +Read [Part 5: Add Collectible Coins to the Game](/gdevelop5/tutorials/platformer/part-5). diff --git a/docs/gdevelop5/tutorials/platformer/part-8.md b/docs/gdevelop5/tutorials/platformer/part-8.md index 9399869beb..3882ea8eda 100644 --- a/docs/gdevelop5/tutorials/platformer/part-8.md +++ b/docs/gdevelop5/tutorials/platformer/part-8.md @@ -32,6 +32,10 @@ To create an object for the checkpoint: When the player reaches a checkpoint, you can use variables to save the coordinates of that checkpoint. Then, when the player dies, you can send them back to those coordinates. +!!! warning + + The [checkpoints](/gdevelop5/extensions/checkpoints/) behavior can make this easier to do. + You can access the X and Y coordinates of an object with the following syntax: ``` diff --git a/docs/gdevelop5/tutorials/reduce-size-game.md b/docs/gdevelop5/tutorials/reduce-size-game/index.md similarity index 100% rename from docs/gdevelop5/tutorials/reduce-size-game.md rename to docs/gdevelop5/tutorials/reduce-size-game/index.md diff --git a/docs/gdevelop5/tutorials/resources.md b/docs/gdevelop5/tutorials/resources/index.md similarity index 95% rename from docs/gdevelop5/tutorials/resources.md rename to docs/gdevelop5/tutorials/resources/index.md index a21398150c..fe0b0be7d7 100644 --- a/docs/gdevelop5/tutorials/resources.md +++ b/docs/gdevelop5/tutorials/resources/index.md @@ -126,10 +126,3 @@ List of websites where you can find sprites, music, sound effects for your games * [XnConvert](https://www.xnview.com/en/xnconvert/) (Free - batch image converter) * [Converseen](http://converseen.fasterland.net/) (Free - batch image converter) * [RIOT Image](https://riot-optimizer.com/) (Free Image compressor optimizer) - -## JavaScript libraries - - * [ResponsiveVoice](https://responsivevoice.org/) (Text to Speech synthesiser) - * [PlayerIO](https://playerio.com/) (Online Multiplayer Service) - * [WOW Scores](https://wowscores.com/) (Leaderboards API for GDevelop 5) - * [Crimson Games IO](https://www.crimsongames.io/) (Game Publisher & Leaderboards API) diff --git a/docs/gdevelop5/tutorials/add-scene-button2.png b/docs/gdevelop5/tutorials/roadrider/add-scene-button2.png similarity index 100% rename from docs/gdevelop5/tutorials/add-scene-button2.png rename to docs/gdevelop5/tutorials/roadrider/add-scene-button2.png diff --git a/docs/gdevelop5/tutorials/annotation_2019-07-04_220443.png b/docs/gdevelop5/tutorials/roadrider/annotation_2019-07-04_220443.png similarity index 100% rename from docs/gdevelop5/tutorials/annotation_2019-07-04_220443.png rename to docs/gdevelop5/tutorials/roadrider/annotation_2019-07-04_220443.png diff --git a/docs/gdevelop5/tutorials/annotation_2019-07-05_171958.png b/docs/gdevelop5/tutorials/roadrider/annotation_2019-07-05_171958.png similarity index 100% rename from docs/gdevelop5/tutorials/annotation_2019-07-05_171958.png rename to docs/gdevelop5/tutorials/roadrider/annotation_2019-07-05_171958.png diff --git a/docs/gdevelop5/tutorials/annotation_2019-07-06_124410.png b/docs/gdevelop5/tutorials/roadrider/annotation_2019-07-06_124410.png similarity index 100% rename from docs/gdevelop5/tutorials/annotation_2019-07-06_124410.png rename to docs/gdevelop5/tutorials/roadrider/annotation_2019-07-06_124410.png diff --git a/docs/gdevelop5/tutorials/choose-and-add-event.png b/docs/gdevelop5/tutorials/roadrider/choose-and-add-event.png similarity index 100% rename from docs/gdevelop5/tutorials/choose-and-add-event.png rename to docs/gdevelop5/tutorials/roadrider/choose-and-add-event.png diff --git a/docs/gdevelop5/objects/group-group.png b/docs/gdevelop5/tutorials/roadrider/group-group.png similarity index 100% rename from docs/gdevelop5/objects/group-group.png rename to docs/gdevelop5/tutorials/roadrider/group-group.png diff --git a/docs/gdevelop5/objects/groups-button.png b/docs/gdevelop5/tutorials/roadrider/groups-button.png similarity index 100% rename from docs/gdevelop5/objects/groups-button.png rename to docs/gdevelop5/tutorials/roadrider/groups-button.png diff --git a/docs/gdevelop5/tutorials/roadrider.md b/docs/gdevelop5/tutorials/roadrider/index.md similarity index 82% rename from docs/gdevelop5/tutorials/roadrider.md rename to docs/gdevelop5/tutorials/roadrider/index.md index 31f91e50b5..66648c866e 100644 --- a/docs/gdevelop5/tutorials/roadrider.md +++ b/docs/gdevelop5/tutorials/roadrider/index.md @@ -4,23 +4,23 @@ title: Road Rider - Endless car game tutorial # Road Rider - Endless car game tutorial This tutorial will help you get more familiar with GDevelop. Our primary focus in this tutorial will be to make an endless car game. The player should dodge the cars on the road. The game will also have a score such that it is automatically updated as we get past the cars. -![](/gdevelop5/tutorials/peek_2019-05-30_19-46.gif) +![](peek_2019-05-30_19-46.gif) ## Download GDevelop If you do not have GDevelop yet, you can download it from [GDevelop's official website.](https://gdevelop.io/download/) It is available for Windows, macOS as well as Linux. After downloading GDevelop you can proceed with the installation/extraction followed by the launching of GDevelop. -> You need to have assets that will be used to create objects for this game. You can [download them here.](/gdevelop5/tutorials/road-rider-resources.zip) Download and extract the .zip file to the directory that you have chosen as the location of our game. +> You need to have assets that will be used to create objects for this game. You can [download them here.](road-rider-resources.zip) Download and extract the .zip file to the directory that you have chosen as the location of our game. ## Create a new project Click on `CREATE A NEW PROJECT` on the Start Page. -![](/gdevelop5/linux-start-page.png) +![](linux-start-page.png) Click on `Empty game` (you might have to scroll down to find this option) in the dialog box that appears and choose the location where you want to save your project. -![](/gdevelop5/tutorials/annotation_2019-07-04_220443.png) +![](annotation_2019-07-04_220443.png) ## Create a new scene @@ -30,17 +30,17 @@ As soon as we click on Empty game we see a panel on the left side of our screen. Create a new scene using the `Click to add a scene` option from the drop-down that appears. Our new scene has been created. Go to your new scene by clicking on `NewScene`. -![](/gdevelop5/tutorials/add-scene-button2.png) +![](add-scene-button2.png) ## Create a new object Choose the `Click to add an object` option from the `Objects` panel on the right side. -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.32.40.png) +![](../platform-game/screen_shot_2017-09-24_at_23.32.40.png) Choose `Sprite` from the `Add a new object` pop-up. This will be followed by the appearance of a dialog box. -![](/gdevelop5/tutorials/annotation_2019-07-05_171958.png) +![](annotation_2019-07-05_171958.png) The object is called NewObject by default - you can see the name at the top of the dialog. It's a good idea to give a descriptive name to each object so that you can understand what they are when dealing with them in events. In our case, use the field to set the name to _Car_. @@ -48,56 +48,56 @@ Let's add an animation to the object. Animations are containing images that are To add an animation to the object, click on the **+** symbol beside `Click to add an animation`. -![](/gdevelop5/tutorials/add-animation.png) +![](../shared/add-animation.png) Add the image named 'car.png' as animation and click on the `APPLY` option. -![](/gdevelop5/screenshot_from_2019-05-20_13-54-57.png) +![](screenshot_from_2019-05-20_13-54-57.png) Similarly, add a new Sprite object _Highway_ which consists of the image 'highway.png' as the animation. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_00-58-55.png) +![](screenshot_from_2019-05-22_00-58-55.png) Our next step will be to add the 4 cars as different Sprite objects. These will be the objects that we need to dodge. We can name them _Blue_, _Gray_, _Green_ and _Pink_ which would have the image 'blue-car.png', 'gray-car.png', 'green-car.png' and 'pink-car.png' for their respective animations. From now on, we will address these cars as 'Traffic cars'. -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-41-27.png) +![](screenshot_from_2019-05-30_20-41-27.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-03.png) +![](screenshot_from_2019-05-30_20-42-03.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-30.png) +![](screenshot_from_2019-05-30_20-42-30.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-54.png) +![](screenshot_from_2019-05-30_20-42-54.png) Create a new Sprite object _Tree_ which has 'tree.png' for its animation. This object will be used for the trees that will be created on either side of the road as we're progressing in the game. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_00-57-11.png) +![](screenshot_from_2019-05-22_00-57-11.png) Create a new Sprite object _Explosion_ and select all the images from 'Explosion1.png' to 'Explosion8.png'. -![](/gdevelop5/screenshot_from_2019-05-20_14-14-45.png) +![](screenshot_from_2019-05-20_14-14-45.png) Your scene by the end of this step should contain 8 objects. -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_21-22-38.png) +![](screenshot_from_2019-05-30_21-22-38.png) ## Adding top-down movement to the car Adding a top-down movement behavior to the car will allow us to set its maximum speed as well as the acceleration and deceleration of the car. This will allow the car to slowly gain the speed rather than starting with the maximum speed. For this, we will have to open the `Object Editor`. To do this, you can either double-click on the _Car_ object from the object side panel or click on the three-dot-menu beside the object and click on edit object. -![](/gdevelop5/tutorials/annotation_2019-07-06_124410.png) +![](annotation_2019-07-06_124410.png) Click on the `BEHAVIORS` tab at the top of the panel and click on the **+** button beside `Click to add a behavior to the object`. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_19-44-47.png) +![](screenshot_from_2019-05-22_19-44-47.png) Choose `Top-down movement` in the `Add a new behavior to the object` pop-up. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_19-42-06.png) +![](screenshot_from_2019-05-22_19-42-06.png) This opens a wide variety of options to alter. You can see the default values for the related to the behavior. Set the deceleration to 400 and untick the boxes having the options `Rotate object` and `Default controls` and click `APPLY`. Rest of the default values are fine for our game. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_19-37-09.png) +![](screenshot_from_2019-05-22_19-37-09.png) ## Creating a new event An event is a pair of conditions and actions. When a given set of conditions is true, the corresponding action or set of actions is performed. @@ -106,40 +106,40 @@ While making this game we will encounter a few events with no conditions and one To add a new event, open the `NEWSCENE (EVENTS)` tab from the top -![](/gdevelop5/tutorials/scene-events-tab.png) +![](../shared/scene-events-tab.png) From the events editor toolbar choose the option that says `Add a new empty event`. -![](/gdevelop5/add-event-button.png) +![](../shared/add-event-button.png) This will create a new event with an empty condition and an empty action. -![](/gdevelop5/screenshot_from_2019-05-20_14-49-49.png) +![](screenshot_from_2019-05-20_14-49-49.png) ## Create instances of Car and Highway To create an instance of the _Car_ object we can drag and drop the object from the Objects panel to the scene and give it the coordinates of our choice. -![](/gdevelop5/tutorials/peek_2019-05-26_11-58.gif) +![](peek_2019-05-26_11-58.gif) If you need to alter the coordinates of the object after getting it on the scene, you can do so by the drag and drop method, but by dragging the object on the scene. Another method to move the object is by changing the X and Y-coordinates in the Object properties panel on the left side. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_01-25-21-1.png) +![](screenshot_from_2019-05-22_01-25-21-1.png) You can choose the values of your choice but if you want results similar to that of the tutorial, you are expected to have the same values. Similarly, to create an instance of _Highway_ you can drag and drop the object to the scene and set its X and Y-coordinates. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_01-55-46.png) +![](screenshot_from_2019-05-22_01-55-46.png) A user can use the preview feature provided by GDevelop. Using this feature, you can see how the game behaves in the real world. You can preview your project by clicking on `Launch a preview of the scene` icon above the scene. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_01-58-08.png) +![](screenshot_from_2019-05-22_01-58-08.png) You should see something similar to the image shown below. -![](/gdevelop5/tutorials/screenshot_from_2019-05-31_17-24-28.png) +![](screenshot_from_2019-05-31_17-24-28.png) We see a few problems: @@ -157,20 +157,20 @@ To make the car visible, we need to know the reason for it being hidden under th In our case, we can assign a Z Order of 1 to the _Highway_ and 2 to the _Car_. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_02-20-14.png) +![](screenshot_from_2019-05-22_02-20-14.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_02-21-37.png) +![](screenshot_from_2019-05-22_02-21-37.png) ### Creating the bottom part of the Highway To create the bottom part of the _Highway_, we can elongate the height of our object _Highway_. To do this, you can click and drag the white box at the corner of the _Highway_. -![](/gdevelop5/tutorials/peek_2019-05-26_12-33.gif) +![](peek_2019-05-26_12-33.gif) Another way to do this is to tick the box beside `Custom size` option in the Properties panel and enter the height and width of your choice. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_02-41-35.png) +![](screenshot_from_2019-05-22_02-41-35.png) ### Getting our game to the center of the window To get our game to the center of the preview window, we will create our first event. @@ -193,7 +193,7 @@ This action needs to be true for all frames, i.e. for all conditions. And so tha To add an action, click on the `Add action` option. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-01-43.png) +![](screenshot_from_2019-05-22_12-01-43.png) To choose an action, you can either choose it from the various drop-down menus available or you can use the search bar at the top. @@ -201,11 +201,11 @@ For example, to change the position of the camera, you can go to Layers and Came Because we want to set the X position equal - neither less nor more - to 267.5, choose the **= (set to)** option in `Modification's sign`. In the `Value` field, you can enter the desired X coordinate of the camera. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-22-36.png) +![](screenshot_from_2019-05-22_12-22-36.png) Else, you can search for the action in the top `Search` bar. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-33-40.png) +![](screenshot_from_2019-05-22_12-33-40.png) Click `OK`. @@ -213,11 +213,11 @@ You can now see the added action in the Events Editor. To set the Y position of the camera center, click on `Add action` in the same event. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-29-55.png) +![](screenshot_from_2019-05-22_12-29-55.png) You can now follow a similar procedure for Y position as you did for X position but make sure that this time you choose the `Camera center Y position` option and enter the Y coordinate. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_14-54-19.png) +![](screenshot_from_2019-05-22_14-54-19.png) To make sure that all your progress has been saved, click on `Save` in the `File` menu or press Ctrl + S. @@ -232,13 +232,13 @@ As we can deduce from the above statement, the condition of the events will be l We will start with the event that has the condition of left key press. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_15-09-13.png) +![](screenshot_from_2019-05-22_15-09-13.png) For the action, when the left key is pressed, the _Car_ should have a movement on the left side. This can be easily done using an action `Simulate left key press` that would simulate the left side movement for the object selected (_Car_). But make sure to use the action with the same behavior as your object (top-down movement). So, we need to choose it from the `Top-down movement` drop-down. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_15-18-20.png) +![](screenshot_from_2019-05-22_15-18-20.png) Now we need to give our _Car_ the desired rotation for a better visual experience. If we just give rotation to the object it will rotate up to 180 degrees. @@ -248,13 +248,13 @@ But before we move ahead, we also need to assign the `Angular speed` for the rot Remember that the angular speed will be the same for both the key presses. It cannot be negative because it is the "Angular speed", and speed cannot be negative. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-18-34.png) +![](screenshot_from_2019-05-22_16-18-34.png) We can repeat a similar event for right key press. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-05.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-37.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-52-25.png) +![](screenshot_from_2019-05-22_16-42-05.png) +![](screenshot_from_2019-05-22_16-42-37.png) +![](screenshot_from_2019-05-22_16-52-25.png) If you preview your project, you should be able to control your _Car_ using the left and right arrow keys. @@ -265,11 +265,11 @@ We need to return the car to an angle of 0 degrees when none of the arrow keys a To achieve this, we add a new event and try to add the above 2 conditions, i.e. right key press inverted and left key press inverted. We add a condition `Left key is pressed` and turn on the switch below that says `Invert conditions`. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_17-14-21.png) +![](screenshot_from_2019-05-22_17-14-21.png) In the same event, we add a similar inverted condition for right key press. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_17-19-07.png) +![](screenshot_from_2019-05-22_17-19-07.png) For the action, we will make an action for rotating it towards 0 degrees with an angular velocity of choice similar to what we did for the non-inverted conditions of key press. @@ -277,7 +277,7 @@ For the action, we will make an action for rotating it towards 0 degrees with an Make sure to include both the conditions in the SAME EVENT because we want the vehicle to return to 0 degrees only when neither left nor right arrow key is pressed. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_17-46-07.png) +![](screenshot_from_2019-05-22_17-46-07.png) Now, the car moves and rotates to an extent when an arrow key is pressed and rotates back to the original angle when the keys are released. @@ -288,17 +288,17 @@ For a fixed time interval, we can use the `Timer` feature that GDevelop provides After entering the time you need to enter the name of the timer. It can be any name of your choice but remember to fill it within quotes. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_14-34-32.png) +![](screenshot_from_2019-05-23_14-34-32.png) For the first action, we can make use of a `Scene Variable`. A variable allows you to store number or text in the computer memory and a scene variable allows you to store a number or text only when a particular scene is active. You can [read more about variables here.](/gdevelop5/all-features/variables) To create a new variable, go to the Scene Editor, right-click on the background and click on `Scene properties`. From the pop-up that appears, click on the `EDIT SCENE VARIABLES` button. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_00-53-39.png) +![](screenshot_from_2019-06-03_00-53-39.png) Now click on the **+** button on the bottom-right of the new dialog, enter a name for your variable and click `APPLY`. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-03-11.png) +![](screenshot_from_2019-06-03_01-03-11.png) We will name our scene variable 'CarLeft'. To assign a value to your scene variable, use the action `Value of a scene variable`. Enter the name of the variable you created in the `Variable` field. @@ -306,58 +306,58 @@ To create the cars at random, we can assign a value using the expression "Random We'll use the expression `RandomInRange(1, 2)` such that whenever the expression returns 1, we will create a blue car in the first (leftmost) lane and whenever it returns 2, we will create a gray car in the second lane. Therefore, set the `Modification's sign` to **= (set to)** and the value to "RandomInRange(1, 2)". -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-14-42.png) +![](screenshot_from_2019-06-03_01-14-42.png) You can add a similar action for a variable _CarRight_ which can be used to create traffic cars on the right side of the highway. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_03-14-25.png) +![](screenshot_from_2019-06-03_03-14-25.png) Before adding events to check the value of our scene variable _Car1_, we will add one more action in the same event which will set the value of our timer to 0. To do this, we will use the `Start (or reset) a timer` action. -![](/gdevelop5/tutorials/screenshot_from_2019-06-05_14-25-13.png) +![](screenshot_from_2019-06-05_14-25-13.png) This is what our Events Editor should look like: -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-24-49.png) +![](screenshot_from_2019-06-03_01-24-49.png) To check the value of _Car1_ and to create the corresponding traffic cars at the same moment as the _CarTimer_ is reset, we will add a sub-event for each condition. A sub-event is performed only if the parent event's condition is true. You can [read more about events here.](/gdevelop5/events) You can create a sub-event by clicking on the `Create a sub-event to the selected event` button at the top. -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.05.49.png) +![](../platform-game/screen_shot_2017-09-26_at_22.05.49.png) This will create a sub-event for the selected event. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_22-09-38.png) +![](screenshot_from_2019-06-03_22-09-38.png) In the condition of the sub-event, we will check if the value of _CarLeft_ is equal to 1. To do this, we will add the `Value of a scene variable` condition. Enter the variable name _CarLeft_ in the `Variable` field, set the `Sign of the test` to **= (equal to)** and fill '1' in the `Value to compare` field. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-41-24.png) +![](screenshot_from_2019-06-03_01-41-24.png) For the action, you can create the object _Blue_ at the X coordinate of the first lane (70) and Y coordinate such that the object is created well above the window so that by the time it reaches the window with an acceleration of 1000 it reaches its constant maximum speed else the user might see the car accelerating in the window. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-42-00.png) +![](screenshot_from_2019-06-03_02-42-00.png) You can add a similar sub-event for _Gray_ with the condition checking if the value of _Car1_ is 2. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-46-17.png) +![](screenshot_from_2019-06-03_02-46-17.png) If the condition is true, we will add an action to create _Gray_ at the X position of the second lane (175) and Y coordinate -500. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-50-59.png) +![](screenshot_from_2019-06-03_02-50-59.png) Similar to what we did for variable _CarLeft_, we will now check the value of _CarRight_ and create _Green_ at (280, -500) if the value of _CarRight_ is 1. If the value is 2, we will create _Pink_ at the position (385, -500). Here is the resulting events sheet so far. If you are on the same page as the tutorial, you can save your game and proceed. -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-59-41.png) +![](screenshot_from_2019-06-03_02-59-41.png) ## Adding surrounding trees to the game After adding the traffic cars to be dodged, we will now add the surrounding trees which will simulate a moving background. We will use the object _Tree_ for this purpose. To create object _Tree_ we use another timer _TreeTimer_, similar to how we used _TrafficTimer_. We will use these trees for moving background simulation by moving them in the backwards direction on both sides of the road. -![](/gdevelop5/screenshot_from_2019-06-05_16-15-04.png) +![](screenshot_from_2019-06-05_16-15-04.png) We will set their Y coordinates such that they are created above the screen and for better viewing experience, you can create them at different Y positions so that they are not perfectly aligned. @@ -365,15 +365,15 @@ We will set the X coordinates for both trees on both the sides such that the tre For the left side of the _Highway_ we will set the X position to -150 pixels and the Y position to -400 pixels. -![](/gdevelop5/screenshot_from_2019-06-05_17-01-40.png) +![](screenshot_from_2019-06-05_17-01-40.png) For the right side, the X position will be set to 535 pixels and Y position to -500 pixels. -![](/gdevelop5/screenshot_from_2019-06-05_17-05-13.png) +![](screenshot_from_2019-06-05_17-05-13.png) We need to add one more action to reset the _TreeTimer_ to 0 when it is greater than 1 second. -![](/gdevelop5/tutorials/screenshot_from_2019-06-05_16-36-47.png) +![](screenshot_from_2019-06-05_16-36-47.png) ## Moving the trees In the game, we need to move the trees such that they never stop, i.e. without any condition. So we add an event and add action to that event without any conditions. @@ -382,7 +382,7 @@ Our trees should move in the direction opposite to that of the _Car_ so that we Add the action `Add a force` to the _Tree_. The movement of the car should be in the vertical direction only. There should not be a horizontal component of the force applied to it. So the speed on the X axis should be set to 0 and the speed on the Y axis will be set to 300 pixels/second. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_16-55-28.png) +![](screenshot_from_2019-05-23_16-55-28.png) ## Moving the traffic cars To move the traffic cars, we can add events with no conditions and add a vertical force. But if we try to do it in a way similar to what we did for _Tree_, we will have to add these events for each and every car individually. To simplify this, we can use the `Object Groups` feature provided by GDevelop. @@ -393,41 +393,41 @@ _Blue_ and _Gray_ that should move on the left side of the highway will have the To open the `Groups Editor`, click on the `Open the objects groups editor` icon in the toolbar. -![](/gdevelop5/objects/groups-button.png) +![](groups-button.png) This will open the object groups list. All the object groups in the scene will be visible on the list. To add a new object group to the list, click on the **+** sign beside `Click to add a new group`. This will add a new group to the list. -![](/gdevelop5/objects/group-group.png) +![](group-group.png) To rename the group name, click on the three-dot-menu or right click on the object group name and choose "Rename". We will name the group _TrafficLeft_. Now add another group and rename it to _TrafficRight_. -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-17-54.png) +![](screenshot_from_2019-06-06_00-17-54.png) To add objects to _TrafficLeft_, click on the group name. A new dialog will appear. -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-29-42.png) +![](screenshot_from_2019-06-06_00-29-42.png) Click on the `Choose an object to add to the group` field and choose the object _Blue_ followed by _Gray_ and click APPLY. This object group represents the cars on the left side of the highway. -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_20-24-37.png) +![](screenshot_from_2019-06-08_20-24-37.png) Similarly, add _Green_ and _Pink_ to the group _TrafficRight_. -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_20-25-43.png) +![](screenshot_from_2019-06-08_20-25-43.png) To move the cars we will now add an event with no conditions. We will now add a downward acting force to _TrafficLeft_ and _TrafficRight_. Objects in _TrafficLeft_ are cars that move in the same direction as _Car_. So these cars should move at a pace slower than _Tree_ so it looks like the cars are moving faster than the background but slower than _Car_. We will apply a force of 100 pixels/second in the Y direction for _TrafficLeft_. The X component should be 0. -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-37-29.png) +![](screenshot_from_2019-06-06_00-37-29.png) On the other hand, objects in _TrafficRight_ move in the direction opposite to that of _Car_. So these cars should move faster than _Tree_ so that they look like moving in the backward direction. We will apply a force of 500 pixels/second in the Y direction for _TrafficRight_. -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_19-56-14.png) +![](screenshot_from_2019-06-08_19-56-14.png) On starting a preview of the project, you might not be able to see the traffic cars yet. You can solve this problem by setting a Z order for the objects in the same event. To use the action for all the objects at once, create a new object group _Traffic_. Add all the objects to the group. -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_20-29-50.png) +![](screenshot_from_2019-06-08_20-29-50.png) !!! note @@ -435,11 +435,11 @@ On starting a preview of the project, you might not be able to see the traffic c Set the Z order of _Traffic_ higher than the Z order for _Highway_. -![](/gdevelop5/screenshot_from_2019-06-06_00-44-32.png) +![](screenshot_from_2019-06-06_00-44-32.png) You may now check the events we have created so far and then save your game. -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-52-22.png) +![](screenshot_from_2019-06-06_00-52-22.png) Before moving on to the event for a collision between _Car_ and _Traffic_, we notice that the car's motion is not limited to the road. @@ -454,19 +454,19 @@ The force applied to the car should be greater than or equal to the maximum spee Our first event will include a condition that checks if the X position of the _Car_ is less than 60 px. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-12.png) +![](screenshot_from_2019-05-23_17-40-12.png) If the condition is satisfied, a force greater than or equal to the maximum speed of the car should be applied in the opposite direction. Therefore, a force greater than or equal to 200 pixels/second should be applied on the _Car_ along the X-axis. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-33.png) +![](screenshot_from_2019-05-23_17-40-33.png) Similarly, we need to add another event, with the condition to check if the X position of the _Car_ is more than 395 px. -![](/gdevelop5/screenshot_from_2019-06-06_01-07-54.png) +![](screenshot_from_2019-06-06_01-07-54.png) If the condition is true, a force with a magnitude higher than 200 pixels/second should be applied in the negative X direction. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-12-36.png) +![](screenshot_from_2019-05-23_18-12-36.png) If you preview the game, you should now be able to see _Tree_ and all the objects in the group _Traffic_ and the motion of the car should be constrained between the yellow lines. @@ -477,7 +477,7 @@ In the next event we create, we need to set the condition such that it checks a For this, you can use the `Collision` condition and set the objects to _Car_ and _Traffic_. -![](/gdevelop5/screenshot_from_2019-06-06_01-21-32.png) +![](screenshot_from_2019-06-06_01-21-32.png) In case of this condition being true, we need to create an object _Explosion_. You can use the action `Create an object` and fill _Explosion_ in the `Object to create` field. @@ -487,7 +487,7 @@ We need to create this object at the coordinates same as that for _Car_. To achi "Car.X()" and "Car.Y()" denote the X and Y position of the _Car_ respectively. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-30-10.png) +![](screenshot_from_2019-05-23_18-30-10.png) If you watch the preview, there encounter a few minor issues: @@ -499,26 +499,26 @@ We will now solve these problems. Make sure that you add these actions for the s * To make the _Explosion_ visible, add an event to set the Z Order of the object _Explosion_ so that it is higher than that of the _Highway_ -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-37-12.png) +![](screenshot_from_2019-05-23_18-37-12.png) * To remove the instance of _Car_ we shall now add an event to delete the object _Car_. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-42-15.png) +![](screenshot_from_2019-05-23_18-42-15.png) * Similar to what we did for _Car_, to remove an instance of _Traffic_ we can delete the object _Traffic_ too. -![](/gdevelop5/screenshot_from_2019-06-06_01-25-59.png) +![](screenshot_from_2019-06-06_01-25-59.png) You can watch the preview now. Our game is ALMOST complete. We cannot say that the game is complete until we can see the score made by an individual. ## Setting the background color The gray background does not really suit the game. As there will be trees on both sides of the road, the green color might be the best. To do so, you can right-click anywhere on the scene and select `Scene properties`. Click on the box below `Scene background color` that says `Click to choose`. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_18-04-16.png) +![](screenshot_from_2019-05-22_18-04-16.png) You can choose the color of your choice and click `OK` in the `Scene properties`. -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_18-27-13.png) +![](screenshot_from_2019-05-22_18-27-13.png) ## Displaying score in the scene To display the score, we will make an event such that when any object in the group _Traffic_ passes a predefined position, the value of the score is updated. To do this, we need to use the help of a scene variable. @@ -527,15 +527,15 @@ Let's start with creating an object _Score_. For this, you need to go to the Scene Editor and create a new object and choose `Text` from the `Add a new object` table. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_19-03-50.png) +![](screenshot_from_2019-05-23_19-03-50.png) You can rename the object to _Score_ and choose the text properties from the `Properties` panel. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_19-06-51.png) +![](screenshot_from_2019-05-23_19-06-51.png) You can now drag and drop the _Score_ object on the screen. You can also change the coordinates of the object from the `Properties` panel. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_19-14-05.png) +![](screenshot_from_2019-05-23_19-14-05.png) The score in our game will be shown as a number. You cannot directly add a number to a number stored in `Text`. @@ -543,27 +543,27 @@ But you can do it using a variable. To update the score, we need to add a number To repeat it for each object in _Traffic_, we will make a `For each object` event. To make a `For each object` condition, click on the `Choose and add an event` icon at the top. -![](/gdevelop5/tutorials/choose-and-add-event.png) +![](choose-and-add-event.png) From the menu that appears, choose the `For each object` option. We need to repeat this event for each _Traffic_, so choose _Traffic_ for the object to be repeated. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-09-36.png) +![](screenshot_from_2019-05-23_21-09-36.png) Because we want to update our variable every time _Traffic_ crosses a position, we will have to add a condition to check if the position of _Traffic_ is greater than or equal to 700. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-20-00.png) +![](screenshot_from_2019-05-23_21-20-00.png) Our action will be to create and change the value of a scene variable. Create a new scene variable _Points_ similar to how we created variables _CarLeft_ and _CarRight_. -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_19-55-23.png) +![](screenshot_from_2019-06-06_19-55-23.png) Now, we will add an action `Value of a scene variable`. Enter the variable you created in the `Variable` field. Every time the _Traffic_ passes the Y-position of 700, we will add 100 to the _Score_. Therefore, we set the `Modification's sign` to **+ (add)** and the `Value` to 100. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-49-42.png) +![](screenshot_from_2019-05-23_21-49-42.png) To send this value to our _Score_ we will make an event with no condition because our score should always denote the value of our variable. @@ -579,7 +579,7 @@ To do this, we will write ""Score: " + ToString(Variable(Points))" in the `Text` Even though the second part of `Text` is addressed as a function in the above paragraph, remember that the end result of the function will be a string. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_22-34-19.png) +![](screenshot_from_2019-05-23_22-34-19.png) If we now preview the game, we'll see that the _Score_ keeps on updating with every frame. This is because the condition checks if the Y position of _Traffic_ is greater than or equal to 700. @@ -587,7 +587,7 @@ To solve this problem as well as to optimize the game by freeing up memory, we w This action will free up some amount of memory as well as help us solve the _Score_ problem by deleting the tree in the very next frame of _Traffic_ crossing a Y position of 700. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-56-15.png) +![](screenshot_from_2019-05-23_21-56-15.png) Now if you preview the game, you will see that the score keeps updating even after the collision between _Car_ and _Traffic_ takes place. For this, we can add another condition in the tree deleting event that would check if the object _Car_ is visible. @@ -595,17 +595,17 @@ Now if you preview the game, you will see that the score keeps updating even aft There is a difference between the visibility of an object and its existence. An object might not be visible but may exist but if an object ceases to exist (like the _Car_ in our case), it directly implies that it is not visible. -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_22-40-45.png) +![](screenshot_from_2019-05-23_22-40-45.png) To optimize our game for the long run, we can also use a similar `For each object` event for deleting _Tree_ The condition of the event will be to check if Y position of _Tree_ is more than 700 while the action would be to delete the object _Tree_. -![](/gdevelop5/tutorials/screenshot_from_2019-05-24_00-03-41.png) +![](screenshot_from_2019-05-24_00-03-41.png) This is what our Event Editor should look like: -![](/gdevelop5/tutorials/screenshot_from_2019-05-24_00-12-11.png) +![](screenshot_from_2019-05-24_00-12-11.png) You have now created an infinite car game in which the score gets updated as we pass by the trees. diff --git a/docs/gdevelop5/linux-start-page.png b/docs/gdevelop5/tutorials/roadrider/linux-start-page.png similarity index 100% rename from docs/gdevelop5/linux-start-page.png rename to docs/gdevelop5/tutorials/roadrider/linux-start-page.png diff --git a/docs/gdevelop5/tutorials/peek_2019-05-26_11-58.gif b/docs/gdevelop5/tutorials/roadrider/peek_2019-05-26_11-58.gif similarity index 100% rename from docs/gdevelop5/tutorials/peek_2019-05-26_11-58.gif rename to docs/gdevelop5/tutorials/roadrider/peek_2019-05-26_11-58.gif diff --git a/docs/gdevelop5/tutorials/peek_2019-05-26_12-33.gif b/docs/gdevelop5/tutorials/roadrider/peek_2019-05-26_12-33.gif similarity index 100% rename from docs/gdevelop5/tutorials/peek_2019-05-26_12-33.gif rename to docs/gdevelop5/tutorials/roadrider/peek_2019-05-26_12-33.gif diff --git a/docs/gdevelop5/tutorials/peek_2019-05-30_19-46.gif b/docs/gdevelop5/tutorials/roadrider/peek_2019-05-30_19-46.gif similarity index 100% rename from docs/gdevelop5/tutorials/peek_2019-05-30_19-46.gif rename to docs/gdevelop5/tutorials/roadrider/peek_2019-05-30_19-46.gif diff --git a/docs/gdevelop5/tutorials/road-rider-resources.zip b/docs/gdevelop5/tutorials/roadrider/road-rider-resources.zip similarity index 100% rename from docs/gdevelop5/tutorials/road-rider-resources.zip rename to docs/gdevelop5/tutorials/roadrider/road-rider-resources.zip diff --git a/docs/gdevelop5/screenshot_from_2019-05-20_13-54-57.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-20_13-54-57.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-05-20_13-54-57.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-20_13-54-57.png diff --git a/docs/gdevelop5/screenshot_from_2019-05-20_14-14-45.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-20_14-14-45.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-05-20_14-14-45.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-20_14-14-45.png diff --git a/docs/gdevelop5/screenshot_from_2019-05-20_14-49-49.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-20_14-49-49.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-05-20_14-49-49.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-20_14-49-49.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_00-57-11.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_00-57-11.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_00-57-11.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_00-57-11.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_00-58-55.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_00-58-55.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_00-58-55.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_00-58-55.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_01-25-21-1.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_01-25-21-1.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_01-25-21-1.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_01-25-21-1.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_01-55-46.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_01-55-46.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_01-55-46.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_01-55-46.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_01-58-08.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_01-58-08.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_01-58-08.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_01-58-08.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_02-20-14.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_02-20-14.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_02-20-14.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_02-20-14.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_02-21-37.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_02-21-37.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_02-21-37.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_02-21-37.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_02-41-35.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_02-41-35.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_02-41-35.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_02-41-35.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-01-43.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-01-43.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-01-43.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-01-43.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-22-36.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-22-36.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-22-36.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-22-36.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-29-55.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-29-55.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-29-55.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-29-55.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-33-40.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-33-40.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_12-33-40.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_12-33-40.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_14-54-19.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_14-54-19.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_14-54-19.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_14-54-19.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_15-09-13.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_15-09-13.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_15-09-13.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_15-09-13.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_15-18-20.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_15-18-20.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_15-18-20.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_15-18-20.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-18-34.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-18-34.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-18-34.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-18-34.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-05.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-42-05.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-05.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-42-05.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-37.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-42-37.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-37.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-42-37.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-52-25.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-52-25.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_16-52-25.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_16-52-25.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_17-14-21.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_17-14-21.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_17-14-21.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_17-14-21.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_17-19-07.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_17-19-07.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_17-19-07.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_17-19-07.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_17-46-07.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_17-46-07.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_17-46-07.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_17-46-07.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_18-04-16.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_18-04-16.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_18-04-16.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_18-04-16.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_18-27-13.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_18-27-13.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_18-27-13.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_18-27-13.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_19-37-09.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_19-37-09.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_19-37-09.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_19-37-09.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_19-42-06.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_19-42-06.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_19-42-06.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_19-42-06.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-22_19-44-47.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_19-44-47.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-22_19-44-47.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-22_19-44-47.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_14-34-32.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_14-34-32.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_14-34-32.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_14-34-32.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_16-55-28.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_16-55-28.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_16-55-28.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_16-55-28.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-12.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_17-40-12.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-12.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_17-40-12.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-33.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_17-40-33.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-33.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_17-40-33.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-12-36.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-12-36.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-12-36.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-12-36.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-30-10.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-30-10.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-30-10.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-30-10.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-37-12.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-37-12.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-37-12.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-37-12.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-42-15.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-42-15.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_18-42-15.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_18-42-15.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_19-03-50.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_19-03-50.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_19-03-50.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_19-03-50.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_19-06-51.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_19-06-51.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_19-06-51.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_19-06-51.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_19-14-05.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_19-14-05.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_19-14-05.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_19-14-05.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-09-36.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-09-36.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-09-36.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-09-36.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-20-00.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-20-00.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-20-00.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-20-00.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-49-42.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-49-42.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-49-42.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-49-42.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-56-15.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-56-15.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_21-56-15.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_21-56-15.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_22-34-19.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_22-34-19.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_22-34-19.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_22-34-19.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-23_22-40-45.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_22-40-45.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-23_22-40-45.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-23_22-40-45.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-24_00-03-41.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-24_00-03-41.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-24_00-03-41.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-24_00-03-41.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-24_00-12-11.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-24_00-12-11.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-24_00-12-11.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-24_00-12-11.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-41-27.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-41-27.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-41-27.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-41-27.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-03.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-42-03.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-03.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-42-03.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-30.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-42-30.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-30.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-42-30.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-54.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-42-54.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-54.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_20-42-54.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-30_21-22-38.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_21-22-38.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-30_21-22-38.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-30_21-22-38.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-05-31_17-24-28.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-31_17-24-28.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-05-31_17-24-28.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-05-31_17-24-28.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_00-53-39.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_00-53-39.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_00-53-39.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_00-53-39.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-03-11.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-03-11.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-03-11.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-03-11.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-14-42.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-14-42.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-14-42.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-14-42.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-24-49.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-24-49.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-24-49.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-24-49.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-41-24.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-41-24.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_01-41-24.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_01-41-24.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-42-00.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-42-00.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-42-00.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-42-00.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-46-17.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-46-17.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-46-17.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-46-17.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-50-59.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-50-59.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-50-59.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-50-59.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-59-41.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-59-41.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_02-59-41.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_02-59-41.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_03-14-25.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_03-14-25.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_03-14-25.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_03-14-25.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-03_22-09-38.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_22-09-38.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-03_22-09-38.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-03_22-09-38.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-05_14-25-13.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_14-25-13.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-05_14-25-13.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_14-25-13.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-05_16-15-04.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_16-15-04.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-05_16-15-04.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_16-15-04.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-05_16-36-47.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_16-36-47.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-05_16-36-47.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_16-36-47.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-05_17-01-40.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_17-01-40.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-05_17-01-40.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_17-01-40.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-05_17-05-13.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_17-05-13.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-05_17-05-13.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-05_17-05-13.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-17-54.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-17-54.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-17-54.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-17-54.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-29-42.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-29-42.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-29-42.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-29-42.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-37-29.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-37-29.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-37-29.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-37-29.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-06_00-44-32.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-44-32.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-06_00-44-32.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-44-32.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-52-22.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-52-22.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-06_00-52-22.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_00-52-22.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-06_01-07-54.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_01-07-54.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-06_01-07-54.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_01-07-54.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-06_01-21-32.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_01-21-32.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-06_01-21-32.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_01-21-32.png diff --git a/docs/gdevelop5/screenshot_from_2019-06-06_01-25-59.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_01-25-59.png similarity index 100% rename from docs/gdevelop5/screenshot_from_2019-06-06_01-25-59.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_01-25-59.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-06_19-55-23.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_19-55-23.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-06_19-55-23.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-06_19-55-23.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-08_19-56-14.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_19-56-14.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-08_19-56-14.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_19-56-14.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-08_20-24-37.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_20-24-37.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-08_20-24-37.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_20-24-37.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-08_20-25-43.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_20-25-43.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-08_20-25-43.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_20-25-43.png diff --git a/docs/gdevelop5/tutorials/screenshot_from_2019-06-08_20-29-50.png b/docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_20-29-50.png similarity index 100% rename from docs/gdevelop5/tutorials/screenshot_from_2019-06-08_20-29-50.png rename to docs/gdevelop5/tutorials/roadrider/screenshot_from_2019-06-08_20-29-50.png diff --git a/docs/gdevelop5/tutorials/add-animation.png b/docs/gdevelop5/tutorials/shared/add-animation.png similarity index 100% rename from docs/gdevelop5/tutorials/add-animation.png rename to docs/gdevelop5/tutorials/shared/add-animation.png diff --git a/docs/gdevelop5/add-event-button.png b/docs/gdevelop5/tutorials/shared/add-event-button.png similarity index 100% rename from docs/gdevelop5/add-event-button.png rename to docs/gdevelop5/tutorials/shared/add-event-button.png diff --git a/docs/gdevelop5/tutorials/new_scene_creation_for_endless_runner.png b/docs/gdevelop5/tutorials/shared/new_scene_creation_for_endless_runner.png similarity index 100% rename from docs/gdevelop5/tutorials/new_scene_creation_for_endless_runner.png rename to docs/gdevelop5/tutorials/shared/new_scene_creation_for_endless_runner.png diff --git a/docs/gdevelop5/tutorials/new_scene_for_endless_runner.png b/docs/gdevelop5/tutorials/shared/new_scene_for_endless_runner.png similarity index 100% rename from docs/gdevelop5/tutorials/new_scene_for_endless_runner.png rename to docs/gdevelop5/tutorials/shared/new_scene_for_endless_runner.png diff --git a/docs/gdevelop5/scene-events-tab.png b/docs/gdevelop5/tutorials/shared/scene-events-tab.png similarity index 100% rename from docs/gdevelop5/scene-events-tab.png rename to docs/gdevelop5/tutorials/shared/scene-events-tab.png diff --git a/docs/gdevelop5/tutorials/screeenshot_na_test.png b/docs/gdevelop5/tutorials/shared/screeenshot_na_test.png similarity index 100% rename from docs/gdevelop5/tutorials/screeenshot_na_test.png rename to docs/gdevelop5/tutorials/shared/screeenshot_na_test.png diff --git a/docs/gdevelop5/tutorials/store_location_for_endless_runner.png b/docs/gdevelop5/tutorials/shared/store_location_for_endless_runner.png similarity index 100% rename from docs/gdevelop5/tutorials/store_location_for_endless_runner.png rename to docs/gdevelop5/tutorials/shared/store_location_for_endless_runner.png diff --git a/docs/gdevelop5/tutorials/space-shooter/2-move-player.md b/docs/gdevelop5/tutorials/space-shooter/2-move-player.md index 677979e088..c52d2ccc81 100644 --- a/docs/gdevelop5/tutorials/space-shooter/2-move-player.md +++ b/docs/gdevelop5/tutorials/space-shooter/2-move-player.md @@ -36,6 +36,10 @@ Click "Add Condition." Then there will be a popup menu to select your conditions Then, click on **Add Action** in the same event and select **Player** since we want to move the Player. On the menu, select **Add a force angle** and enter the angle as **0**, the speed as **400**. +!!! warning + + The [top-down movement](/gdevelop5/behaviors/topdown) behavior is a better fit to move the spaceship. + ![](/gdevelop5/tutorials/space-shooter/space-shooter-add-action.gif) If you click the Run button on the upper left, you can try pressing the **right arrow** and see that **the player moves right**! Now, we will add other buttons to move the player in every direction. diff --git a/docs/gdevelop5/tutorials/add-action.png b/docs/gdevelop5/tutorials/tank-shooter/add-action.png similarity index 100% rename from docs/gdevelop5/tutorials/add-action.png rename to docs/gdevelop5/tutorials/tank-shooter/add-action.png diff --git a/docs/gdevelop5/add-behavior-button.png b/docs/gdevelop5/tutorials/tank-shooter/add-behavior-button.png similarity index 100% rename from docs/gdevelop5/add-behavior-button.png rename to docs/gdevelop5/tutorials/tank-shooter/add-behavior-button.png diff --git a/docs/gdevelop5/add-comment-button.png b/docs/gdevelop5/tutorials/tank-shooter/add-comment-button.png similarity index 100% rename from docs/gdevelop5/add-comment-button.png rename to docs/gdevelop5/tutorials/tank-shooter/add-comment-button.png diff --git a/docs/gdevelop5/tutorials/add-condition.png b/docs/gdevelop5/tutorials/tank-shooter/add-condition.png similarity index 100% rename from docs/gdevelop5/tutorials/add-condition.png rename to docs/gdevelop5/tutorials/tank-shooter/add-condition.png diff --git a/docs/gdevelop5/tutorials/add-force-angle-action.png b/docs/gdevelop5/tutorials/tank-shooter/add-force-angle-action.png similarity index 100% rename from docs/gdevelop5/tutorials/add-force-angle-action.png rename to docs/gdevelop5/tutorials/tank-shooter/add-force-angle-action.png diff --git a/docs/gdevelop5/tutorials/add-force-angle-parameter-permanent.png b/docs/gdevelop5/tutorials/tank-shooter/add-force-angle-parameter-permanent.png similarity index 100% rename from docs/gdevelop5/tutorials/add-force-angle-parameter-permanent.png rename to docs/gdevelop5/tutorials/tank-shooter/add-force-angle-parameter-permanent.png diff --git a/docs/gdevelop5/tutorials/add-scene-button.png b/docs/gdevelop5/tutorials/tank-shooter/add-scene-button.png similarity index 100% rename from docs/gdevelop5/tutorials/add-scene-button.png rename to docs/gdevelop5/tutorials/tank-shooter/add-scene-button.png diff --git a/docs/gdevelop5/tutorials/add-second-action.png b/docs/gdevelop5/tutorials/tank-shooter/add-second-action.png similarity index 100% rename from docs/gdevelop5/tutorials/add-second-action.png rename to docs/gdevelop5/tutorials/tank-shooter/add-second-action.png diff --git a/docs/gdevelop5/objects/add-symbol.png b/docs/gdevelop5/tutorials/tank-shooter/add-symbol.png similarity index 100% rename from docs/gdevelop5/objects/add-symbol.png rename to docs/gdevelop5/tutorials/tank-shooter/add-symbol.png diff --git a/docs/gdevelop5/tutorials/add_new_object.png b/docs/gdevelop5/tutorials/tank-shooter/add_new_object.png similarity index 100% rename from docs/gdevelop5/tutorials/add_new_object.png rename to docs/gdevelop5/tutorials/tank-shooter/add_new_object.png diff --git a/docs/gdevelop5/tutorials/all-events-with-comments.png b/docs/gdevelop5/tutorials/tank-shooter/all-events-with-comments.png similarity index 100% rename from docs/gdevelop5/tutorials/all-events-with-comments.png rename to docs/gdevelop5/tutorials/tank-shooter/all-events-with-comments.png diff --git a/docs/gdevelop5/tutorials/all-events.png b/docs/gdevelop5/tutorials/tank-shooter/all-events.png similarity index 100% rename from docs/gdevelop5/tutorials/all-events.png rename to docs/gdevelop5/tutorials/tank-shooter/all-events.png diff --git a/docs/gdevelop5/tutorials/animation-finished-event.png b/docs/gdevelop5/tutorials/tank-shooter/animation-finished-event.png similarity index 100% rename from docs/gdevelop5/tutorials/animation-finished-event.png rename to docs/gdevelop5/tutorials/tank-shooter/animation-finished-event.png diff --git a/docs/gdevelop5/objects/sprite/unused-images/animation-properties.png b/docs/gdevelop5/tutorials/tank-shooter/animation-properties.png similarity index 100% rename from docs/gdevelop5/objects/sprite/unused-images/animation-properties.png rename to docs/gdevelop5/tutorials/tank-shooter/animation-properties.png diff --git a/docs/gdevelop5/tutorials/at-the-beginning-of-the-scene-condition.png b/docs/gdevelop5/tutorials/tank-shooter/at-the-beginning-of-the-scene-condition.png similarity index 100% rename from docs/gdevelop5/tutorials/at-the-beginning-of-the-scene-condition.png rename to docs/gdevelop5/tutorials/tank-shooter/at-the-beginning-of-the-scene-condition.png diff --git a/docs/gdevelop5/tutorials/beginner-tutorial-screenshot.png b/docs/gdevelop5/tutorials/tank-shooter/beginner-tutorial-screenshot.png similarity index 100% rename from docs/gdevelop5/tutorials/beginner-tutorial-screenshot.png rename to docs/gdevelop5/tutorials/tank-shooter/beginner-tutorial-screenshot.png diff --git a/docs/gdevelop5/tutorials/beginner-tutorial.zip b/docs/gdevelop5/tutorials/tank-shooter/beginner-tutorial.zip similarity index 100% rename from docs/gdevelop5/tutorials/beginner-tutorial.zip rename to docs/gdevelop5/tutorials/tank-shooter/beginner-tutorial.zip diff --git a/docs/gdevelop5/behaviors-tab.png b/docs/gdevelop5/tutorials/tank-shooter/behaviors-tab.png similarity index 100% rename from docs/gdevelop5/behaviors-tab.png rename to docs/gdevelop5/tutorials/tank-shooter/behaviors-tab.png diff --git a/docs/gdevelop5/tutorials/bullet_origin_point.png b/docs/gdevelop5/tutorials/tank-shooter/bullet_origin_point.png similarity index 100% rename from docs/gdevelop5/tutorials/bullet_origin_point.png rename to docs/gdevelop5/tutorials/tank-shooter/bullet_origin_point.png diff --git a/docs/gdevelop5/tutorials/change-origin-point-position.png b/docs/gdevelop5/tutorials/tank-shooter/change-origin-point-position.png similarity index 100% rename from docs/gdevelop5/tutorials/change-origin-point-position.png rename to docs/gdevelop5/tutorials/tank-shooter/change-origin-point-position.png diff --git a/docs/gdevelop5/tutorials/check-animation-finished-event-parameter.png b/docs/gdevelop5/tutorials/tank-shooter/check-animation-finished-event-parameter.png similarity index 100% rename from docs/gdevelop5/tutorials/check-animation-finished-event-parameter.png rename to docs/gdevelop5/tutorials/tank-shooter/check-animation-finished-event-parameter.png diff --git a/docs/gdevelop5/choose-folder-button.png b/docs/gdevelop5/tutorials/tank-shooter/choose-folder-button.png similarity index 100% rename from docs/gdevelop5/choose-folder-button.png rename to docs/gdevelop5/tutorials/tank-shooter/choose-folder-button.png diff --git a/docs/gdevelop5/tutorials/collision-between-object-condition-parameters.png b/docs/gdevelop5/tutorials/tank-shooter/collision-between-object-condition-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/collision-between-object-condition-parameters.png rename to docs/gdevelop5/tutorials/tank-shooter/collision-between-object-condition-parameters.png diff --git a/docs/gdevelop5/tutorials/collision-check-event.png b/docs/gdevelop5/tutorials/tank-shooter/collision-check-event.png similarity index 100% rename from docs/gdevelop5/tutorials/collision-check-event.png rename to docs/gdevelop5/tutorials/tank-shooter/collision-check-event.png diff --git a/docs/gdevelop5/tutorials/comment.png b/docs/gdevelop5/tutorials/tank-shooter/comment.png similarity index 100% rename from docs/gdevelop5/tutorials/comment.png rename to docs/gdevelop5/tutorials/tank-shooter/comment.png diff --git a/docs/gdevelop5/tutorials/create-enemy-event.png b/docs/gdevelop5/tutorials/tank-shooter/create-enemy-event.png similarity index 100% rename from docs/gdevelop5/tutorials/create-enemy-event.png rename to docs/gdevelop5/tutorials/tank-shooter/create-enemy-event.png diff --git a/docs/gdevelop5/tutorials/create-explosion-event-parameters.png b/docs/gdevelop5/tutorials/tank-shooter/create-explosion-event-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/create-explosion-event-parameters.png rename to docs/gdevelop5/tutorials/tank-shooter/create-explosion-event-parameters.png diff --git a/docs/gdevelop5/tutorials/create-explosion-new-expression.png b/docs/gdevelop5/tutorials/tank-shooter/create-explosion-new-expression.png similarity index 100% rename from docs/gdevelop5/tutorials/create-explosion-new-expression.png rename to docs/gdevelop5/tutorials/tank-shooter/create-explosion-new-expression.png diff --git a/docs/gdevelop5/create-new-project-window.png b/docs/gdevelop5/tutorials/tank-shooter/create-new-project-window.png similarity index 100% rename from docs/gdevelop5/create-new-project-window.png rename to docs/gdevelop5/tutorials/tank-shooter/create-new-project-window.png diff --git a/docs/gdevelop5/tutorials/create-object-action-parameters.png b/docs/gdevelop5/tutorials/tank-shooter/create-object-action-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/create-object-action-parameters.png rename to docs/gdevelop5/tutorials/tank-shooter/create-object-action-parameters.png diff --git a/docs/gdevelop5/tutorials/create-object-action.png b/docs/gdevelop5/tutorials/tank-shooter/create-object-action.png similarity index 100% rename from docs/gdevelop5/tutorials/create-object-action.png rename to docs/gdevelop5/tutorials/tank-shooter/create-object-action.png diff --git a/docs/gdevelop5/tutorials/create-rotate-move-enemies-event.png b/docs/gdevelop5/tutorials/tank-shooter/create-rotate-move-enemies-event.png similarity index 100% rename from docs/gdevelop5/tutorials/create-rotate-move-enemies-event.png rename to docs/gdevelop5/tutorials/tank-shooter/create-rotate-move-enemies-event.png diff --git a/docs/gdevelop5/tutorials/custom-point-name-position.png b/docs/gdevelop5/tutorials/tank-shooter/custom-point-name-position.png similarity index 100% rename from docs/gdevelop5/tutorials/custom-point-name-position.png rename to docs/gdevelop5/tutorials/tank-shooter/custom-point-name-position.png diff --git a/docs/gdevelop5/tutorials/custom-point-preview.png b/docs/gdevelop5/tutorials/tank-shooter/custom-point-preview.png similarity index 100% rename from docs/gdevelop5/tutorials/custom-point-preview.png rename to docs/gdevelop5/tutorials/tank-shooter/custom-point-preview.png diff --git a/docs/gdevelop5/tutorials/custom-text-font.png b/docs/gdevelop5/tutorials/tank-shooter/custom-text-font.png similarity index 100% rename from docs/gdevelop5/tutorials/custom-text-font.png rename to docs/gdevelop5/tutorials/tank-shooter/custom-text-font.png diff --git a/docs/gdevelop5/tutorials/default-points.png b/docs/gdevelop5/tutorials/tank-shooter/default-points.png similarity index 100% rename from docs/gdevelop5/tutorials/default-points.png rename to docs/gdevelop5/tutorials/tank-shooter/default-points.png diff --git a/docs/gdevelop5/tutorials/delete-turret-on-collision-event.png b/docs/gdevelop5/tutorials/tank-shooter/delete-turret-on-collision-event.png similarity index 100% rename from docs/gdevelop5/tutorials/delete-turret-on-collision-event.png rename to docs/gdevelop5/tutorials/tank-shooter/delete-turret-on-collision-event.png diff --git a/docs/gdevelop5/behaviors/destroyoutside/unused/destroy-outside-screen-behavior-inlist.png b/docs/gdevelop5/tutorials/tank-shooter/destroy-outside-screen-behavior-inlist.png similarity index 100% rename from docs/gdevelop5/behaviors/destroyoutside/unused/destroy-outside-screen-behavior-inlist.png rename to docs/gdevelop5/tutorials/tank-shooter/destroy-outside-screen-behavior-inlist.png diff --git a/docs/gdevelop5/tutorials/destroy-turret-event.png b/docs/gdevelop5/tutorials/tank-shooter/destroy-turret-event.png similarity index 100% rename from docs/gdevelop5/tutorials/destroy-turret-event.png rename to docs/gdevelop5/tutorials/tank-shooter/destroy-turret-event.png diff --git a/docs/gdevelop5/tutorials/edit-point-button.png b/docs/gdevelop5/tutorials/tank-shooter/edit-point-button.png similarity index 100% rename from docs/gdevelop5/tutorials/edit-point-button.png rename to docs/gdevelop5/tutorials/tank-shooter/edit-point-button.png diff --git a/docs/gdevelop5/tutorials/edit-text-object.png b/docs/gdevelop5/tutorials/tank-shooter/edit-text-object.png similarity index 100% rename from docs/gdevelop5/tutorials/edit-text-object.png rename to docs/gdevelop5/tutorials/tank-shooter/edit-text-object.png diff --git a/docs/gdevelop5/empty-game-button.png b/docs/gdevelop5/tutorials/tank-shooter/empty-game-button.png similarity index 100% rename from docs/gdevelop5/empty-game-button.png rename to docs/gdevelop5/tutorials/tank-shooter/empty-game-button.png diff --git a/docs/gdevelop5/tutorials/enemy-animation-speed.png b/docs/gdevelop5/tutorials/tank-shooter/enemy-animation-speed.png similarity index 100% rename from docs/gdevelop5/tutorials/enemy-animation-speed.png rename to docs/gdevelop5/tutorials/tank-shooter/enemy-animation-speed.png diff --git a/docs/gdevelop5/tutorials/enemy-animation.png b/docs/gdevelop5/tutorials/tank-shooter/enemy-animation.png similarity index 100% rename from docs/gdevelop5/tutorials/enemy-animation.png rename to docs/gdevelop5/tutorials/tank-shooter/enemy-animation.png diff --git a/docs/gdevelop5/tutorials/enemy-moving-rotating-exploding.png b/docs/gdevelop5/tutorials/tank-shooter/enemy-moving-rotating-exploding.png similarity index 100% rename from docs/gdevelop5/tutorials/enemy-moving-rotating-exploding.png rename to docs/gdevelop5/tutorials/tank-shooter/enemy-moving-rotating-exploding.png diff --git a/docs/gdevelop5/tutorials/enemy-turret-move-object-toward-another-instant.png b/docs/gdevelop5/tutorials/tank-shooter/enemy-turret-move-object-toward-another-instant.png similarity index 100% rename from docs/gdevelop5/tutorials/enemy-turret-move-object-toward-another-instant.png rename to docs/gdevelop5/tutorials/tank-shooter/enemy-turret-move-object-toward-another-instant.png diff --git a/docs/gdevelop5/tutorials/explosion-animation-speed.png b/docs/gdevelop5/tutorials/tank-shooter/explosion-animation-speed.png similarity index 100% rename from docs/gdevelop5/tutorials/explosion-animation-speed.png rename to docs/gdevelop5/tutorials/tank-shooter/explosion-animation-speed.png diff --git a/docs/gdevelop5/tutorials/gameover-screenshot.png b/docs/gdevelop5/tutorials/tank-shooter/gameover-screenshot.png similarity index 100% rename from docs/gdevelop5/tutorials/gameover-screenshot.png rename to docs/gdevelop5/tutorials/tank-shooter/gameover-screenshot.png diff --git a/docs/gdevelop5/tutorials/hide-object-event-parameter.png b/docs/gdevelop5/tutorials/tank-shooter/hide-object-event-parameter.png similarity index 100% rename from docs/gdevelop5/tutorials/hide-object-event-parameter.png rename to docs/gdevelop5/tutorials/tank-shooter/hide-object-event-parameter.png diff --git a/docs/gdevelop5/tutorials/hide-object-event.png b/docs/gdevelop5/tutorials/tank-shooter/hide-object-event.png similarity index 100% rename from docs/gdevelop5/tutorials/hide-object-event.png rename to docs/gdevelop5/tutorials/tank-shooter/hide-object-event.png diff --git a/docs/gdevelop5/tutorials/tank-shooter.md b/docs/gdevelop5/tutorials/tank-shooter/index.md similarity index 85% rename from docs/gdevelop5/tutorials/tank-shooter.md rename to docs/gdevelop5/tutorials/tank-shooter/index.md index 7728e21736..e4762ba409 100644 --- a/docs/gdevelop5/tutorials/tank-shooter.md +++ b/docs/gdevelop5/tutorials/tank-shooter/index.md @@ -5,7 +5,7 @@ title: Tank shooter - Beginner tutorial This tutorial will help you to get familiar with the way GDevelop works. You will create a very simple game. In this game, the enemies will move toward the player. The player will be able to shoot the enemies. The enemies will explode when they are hit with the player's bullets. -![](/gdevelop5/tutorials/beginner-tutorial-screenshot.png) +![](beginner-tutorial-screenshot.png) To get an overview of the software I recommend that you read the [Getting Started](/gdevelop5/getting_started) page first. @@ -15,27 +15,33 @@ If you do not have GDevelop, download it from the official website : [gdevelop-a Always download GD from this page to be sure that you have the latest version. Once you have installed GDevelop, launch it. The Interface's "Start" page will be displayed: -![](/gdevelop5/start_page.png) +![](start_page.png) + #### Download the source -You can download the finished project from here [beginner tutorial.zip](/gdevelop5/tutorials/beginner-tutorial.zip) . Downloading the finished project helps you to see how the game has been created. Having it as an example in case you get stuck or don't understand something, is a good way to to check your progress. + +You can download the finished project from here [beginner tutorial.zip](beginner-tutorial.zip) . Downloading the finished project helps you to see how the game has been created. Having it as an example in case you get stuck or don't understand something, is a good way to to check your progress. + #### Create a new project + Click "Create New Project" on the "Start" page. Next, you have the option to create a new project using a template or create an "Empty game" project. -![](/gdevelop5/create-new-project-window.png) +![](create-new-project-window.png) For this tutorial, you need an empty game project but before selecting this option, you need to choose a folder where your game will be saved. On the bottom of the "Create a new game" page you will find the "Choose Folder" area. You may need to scroll down to see this option. Keep the default location or select the location where you'd like to save your game. -![](/gdevelop5/tutorials/select-project-folder.png) +![](select-project-folder.png) To select a custom location, select/click the "Choose Folder" button. Browse the file system on your computer. Locate the folder that you want to use. -![](/gdevelop5/choose-folder-button.png) +![](choose-folder-button.png) Once you have a folder selected, select/click the blank "Empty Game" project option in the list. -![](/gdevelop5/empty-game-button.png) +![](empty-game-button.png) + #### Create a new scene + Creating a new scene is first on your list of things to do. Click/select the "Click to add a scene" button in the Project manager: -![](/gdevelop5/tutorials/add-scene-button.png) +![](add-scene-button.png) Next, click on the NewScene you have just created. It will open the "Scene" editor. @@ -50,117 +56,119 @@ Once you have downloaded this file, extract its content into the folder where yo The player will be controlling a turret to shoot the enemies. In the Scene "Objects" editor choose "Add a new object". -![](/gdevelop5/tutorials/add_new_object.png) +![](add_new_object.png) A new window list of options will popup. Choose the type of the object that will be created. -![](/gdevelop5/objects/object-types.png) +![](object-types.png) First, create a sprite object. Select "Sprite" from the popup list. Next, the object properties panel will be displayed. If you don't see the properties panel, right click on the NewObject in the Object editor and select "Edit object" from the popup list there. Finally, we want to add an animation to the object. Click/select the "add animation" button in the properties window. -![](/gdevelop5/tutorials/add-animation.png) +![](../shared/add-animation.png) You will now see the animation properties of the object. -![](/gdevelop5/objects/animation-properties.png) +![](animation-properties.png) -You need to add the turret image as an animation. Click the big plus symbol ![](/gdevelop5/tutorials/plusaddobject.png). Browse to the project folder. Find the image aaguntopdown.png. +You need to add the turret image as an animation. Click the big plus symbol ![](plusaddobject.png). Browse to the project folder. Find the image aaguntopdown.png. The image will be displayed in the window. -![](/gdevelop5/tutorials/turret-animation-window.png) +![](turret-animation-window.png) Lastly, click "Apply" to save the changes. Rename the object. Right click on the turret object in the Scene "Object" editor. Select "Rename" from the popup list that is displayed. Type the name "turret" for the new name. This allows us to later refer to this object using the name "turret". -![](/gdevelop5/tutorials/rename-turret.png) +![](rename-turret.png) #### Add turret to the scene To add the "turret" to the scene, select/click the turret in the Scene "Object" editor then click in the "Scene" editor. This action will create a "turret" in the scene. The "turret" can then be selected, moved around and rotated. -![](/gdevelop5/tutorials/turret-selected-inscene.png) +![](turret-selected-inscene.png) #### First events + We are now going to create the "Events" used to animate the entire game. In the first event, the "turret" must be rotated toward the player's mouse. Select the "Events" editor by clicking on the " NEWSCENE (EVENTS)" tab: -![](/gdevelop5/tutorials/scene-events-tab.png) +![](../shared/scene-events-tab.png) You will see a toolbar on the top of the "Events" editor screen. Select/click the "Add event" button on the toolbar to create a new event. If you forget how each tool on the toolbar is used, hover your mouse over the tool image to see a popup help description for the tool. -![](/gdevelop5/add-event-button.png) +![](../shared/add-event-button.png) The new "Event" is created, with an empty condition and an empty action. The "condition" is located on the left side of the screen. The "action" is located on the right side of the screen. Put your cursor over the "action" on the right. Select/click "add action": -![](/gdevelop5/tutorials/add-action.png) +![](add-action.png) Now, you are going to write your first action. This action will turn the "turret" toward the mouse. After click/selecting the "Add Action", a new list panel will appear. Choose the action "Common action for all objects". A drop-down list of more options will appear. Select/click "Angle". Another drop-down list will be shown. Select/click "Rotate toward the position". -![](/gdevelop5/tutorials/rotate-toward-position-action.png) +![](rotate-toward-position-action.png) When "Rotate toward the position" is selected, another list of choices will open on the right side of the selector panel. It displays the name of the action as well as the parameters for the action. Fill in the first parameter by selecting/clicking on "Object". "turret" will pop up from a list of the available objects. Select "turret" from the list. -![](/gdevelop5/tutorials/select-turret-object-parameter.png) +![](select-turret-object-parameter.png) For the next parameters, enter `MouseX()` and `MouseY()` so that the object turns toward the mouse position. When the game is launched, these two expressions will get the current X and Y position of the mouse. For the "angular speed", enter 0. "Angular speed 0" means that immediate rotation of your object will occur. That is what we need to rotate the "turret". To control the speed of the rotation of an object, enter a smaller value for "angular speed". For example, to slow your "turret" object down, enter something like a value of 100. At this point the parameters of this event will look like this: -![](/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png) +![](rotate-toward-pos-event-parameters.png) We have been using expressions to get the X and Y positions of the mouse. You can find more expressions in the "expression" editor by clicking on the blue icon next to the value fields: -![](/gdevelop5/tutorials/platform-game/expression-icon.png) +![](../platform-game/expression-icon.png) When you click the "expression" editor icon, you can search for all of the available expressions. The expressions are sorted into categories. -![](/gdevelop5/tutorials/platform-game/expression-editor.png) +![](../platform-game/expression-editor.png) To save the changes that you have made to the "expression" editor, select/click the "OK" button that is located on the bottom right corner of the panel. Now you can run a preview by pressing the "preview" button on the toolbar located above the Scene. -![](/gdevelop5/preview-button.png) +![](preview-button.png) The "turret" will now rotate toward the position of the mouse. If the rotation isn't working, look closely at the above steps again or refer to the finished tutorial. -![](/gdevelop5/tutorials/turret-rotate-toward-mouse.png) +![](turret-rotate-toward-mouse.png) + #### Shoot bullets with the turret We want the player to be able to shoot bullets at the enemies. To set this up, you will need a new "bullet" object. In the Scene "Objects" list located on the right side of the GD interface, mouse click on the "turret" object. Choose "add a new object" or, alternatively, mouse click the "add new object" button. -![](/gdevelop5/tutorials/turret-add-new-object.png) +![](turret-add-new-object.png) Choose "Sprite" from the popup list panel. Now, add animation by selecting the add button. Choose the "Bullet.png" image. Rename the new object "bullet". If you need additional help adding a new object, refer to the "turret" object explanation above. The next event needed will check to see if the left mouse button is clicked/pressed. If it is pressed/clicked, the action will create the bullets that will be fired. To create the bullets, go to the "NEWSCENE (EVENTS)" tab. Add a new event. Again, if you need additional help, refer to the "turret" event above. "Create a new object" will be the first action in the event. This action is available in the "Common actions for all objects" "Objects" panel. -![](/gdevelop5/tutorials/create-object-action.png) +![](create-object-action.png) When “Create a new object” is selected, another list of choices will open on the right side of the selector panel. It displays the name of the action as well as the parameters for the action. Fill in the first parameter by selecting/clicking on “Object”.“bullet” will pop up from a list of the available objects. Select “bullet” from the list. -![](/gdevelop5/tutorials/create-object-action-parameters.png) +![](create-object-action-parameters.png) Since there is only one layer in the game, the layer parameter is not required. Click on Ok to finalize the action. Then add another action after this first action. Do _not_ create another event. Click "Add action" below the first action! -![](/gdevelop5/tutorials/add-second-action.png) +![](add-second-action.png) This time, choose the action called "Common action for all objects" "Movement", "Add a force ( Angle )". -![](/gdevelop5/tutorials/add-force-angle-action.png) +![](add-force-angle-action.png) GDevelop provides a built-in forces system. This system allows you to easily move the game objects. In our case, when the bullet is fired, the action will be used to move the bullet toward the mouse. As the first parameter(Object), enter "bullet" so that GDevelop will move the bullet just created in the previous action. For the "Angle of movement", we'll put the same angle as the turret. Enter "turret.Angle()" in the 2nd parameter. For the 3rd parameter, enter "400". The bullet will move with a speed of 400 pixels per seconds. Finally, click on the "Permanent" option. This last parameter tells to the force to be constantly applied to the bullet. After the movement is started, this parameter keeps the bullet moving. -![](/gdevelop5/tutorials/add-force-angle-parameter-permanent.png) +![](add-force-angle-parameter-permanent.png) Our two actions are launched when the player is firing. i.e: Pressing the left button of the mouse. To create this event in the "Event" editor, we need to add a condition to the event, click/ select "Add condition". -![](/gdevelop5/tutorials/add-condition.png) +![](add-condition.png) Choose the condition "Mouse and touch" "Mouse button pressed or touch held". -![](/gdevelop5/tutorials/mouse-button-pressed-condition.png) +![](mouse-button-pressed-condition.png) On the right side panel popup, click the Button to test parameter. Select "Left" from the list -![](/gdevelop5/tutorials/mouse-button-pressed-parameter.png) +![](mouse-button-pressed-parameter.png) Finally, close the window by clicking the "OK" button. The condition is now added to the event. @@ -171,62 +179,65 @@ If you preview the game now, you'll see that we have two problems: To address the first issue of the bullets firing too fast, we are going to use a timer. Add a second condition to the last event we've created. Choose the condition "Value of a scene timer" inside category "Timers and Time". -![](/gdevelop5/tutorials/timer-value-condition.png) +![](timer-value-condition.png) The panel appears on the right. The first parameter, "Object", indicates the name of the object. Leave it blank. The second parameter, "Timer's name", is the name of the timer. Enter “firerate”. //Do not forget the quotes around the timer's name!// Enter 0.25 in the third parameter, "Time in seconds". -![](/gdevelop5/tutorials/timer-value-condition-parameters.png) +![](timer-value-condition-parameters.png) We aren't done yet! We want to shoot bullets every 0.25 seconds. To do that, we need to reset the timer to start from 0 after 0.25 seconds. So let's add an action: "Timers and time" "Start (or reset) a scene timer". This action will be placed just below our "movement" action in the same event. -![](/gdevelop5/tutorials/reset-timer-action.png) +![](reset-timer-action.png) Enter “firerate” as the parameter which is the name of our timer ( again, be aware of the quotes! ). -![](/gdevelop5/tutorials/reset-timer-action-parameter.png) +![](reset-timer-action-parameter.png) This pair of conditions and actions will ensure that the actions used to fire the bullet are repeated when at least 0.25 seconds have elapsed since the last bullet was created. -![](/gdevelop5/tutorials/shoot-bullet-event1.png) +![](shoot-bullet-event1.png) We must now set up the way that the bullets are fired from the canon of the turret. In order to do that, we are going to add a custom point to our "turret" object. We then create the bullets in the position of that point. Let's open the object properties by right-clicking the "turret" object on the right side of the Scene Interface screen. Select Edit object from the popup list. This selection brings up the window where we add animations to our objects. We will see a button called "EDIT POINTS". -![](/gdevelop5/tutorials/edit-point-button.png) +![](edit-point-button.png) After clicking the button, we can see that our object currently has 2 points by default, the "Origin" point, and the "Centre" Point. -![](/gdevelop5/tutorials/default-points.png) +![](default-points.png) We can not rename these points but we can change their default position. In this case, we will add one more point to the object. Let's click the "add" button (plus symbol) to add a custom point to our "turret" object. We immediately see the new point added to the list. It can be identified by the name "Point" and position 0,0. Let's rename this point to "Canon" and set the X position to be 110 and the Y position to be 35 -![](/gdevelop5/tutorials/custom-point-name-position.png) +![](custom-point-name-position.png) Now, when we preview the game, we will see our custom point located at the end of our canon -![](/gdevelop5/tutorials/custom-point-preview.png) +![](custom-point-preview.png) Close the window and apply the changes. The only thing is left to do is to tell GDevelop to fire the bullets from the "Canon" point of the "turret" object. So in our "create bullet" action, we need to change turret.X() and turret.Y() expressions, to `turret.PointX("Canon")` and `turret.PointY("Canon")`. We can change them by clicking the expressions inside the editor. -![](/gdevelop5/tutorials/replace-expression-in-editor.png) +![](replace-expression-in-editor.png) //Don't forget the capital C in Canon as the name of the points are case sensitive.// If we run the preview now, our bullets should be fired from the 'Canon" of the "turret" but you may notice, at times, the bullet is a bit offset. This happens because the origin point of the bullet is at the top left corner. The same way we did with the Canon point for the turret, change the position of the Origin point of the bullet to be in the middle. -![](/gdevelop5/tutorials/bullet_origin_point.png) +![](bullet_origin_point.png) + #### Creating enemies attacking the turret + First, we must create the objects used for the enemies: Add an object to the object list ( Right-click on an existing object > Add an object. Choose a Sprite object as before. ). Name it "enemy". Edit the object (right click in the list and select Edit object from the list) next add an animation to the object and two images: tank2fr1.png and tank2fr2.png. -![](/gdevelop5/tutorials/enemy-animation.png) +![](enemy-animation.png) Then, change the time between the images to 0.05 and change the animation to Loop to make the animation repeat. -![](/gdevelop5/tutorials/enemy-animation-speed.png) +![](enemy-animation-speed.png) Click "Apply" when you are done. #### Stop! Save time! Before going any further, remember to save frequently: Click File and then Save to save your project. -![](/gdevelop5/tutorials/save-project.png) +![](save-project.png) #### Enemy AI + Let's go back to the game. We want the enemies to move toward the turret. Go to the "Event" editor and Add a new event. We want to create an enemy every second. Add a condition, that can be found in category "Timers and time", called "Value of a scene timer". Enter 1 as the "Time in seconds" and "EnemyCreation" for the "Timer's name". //Don't forget the quotes when you enter the name of the timer.// @@ -240,56 +251,56 @@ For the Y position, enter -50. This value will create the enemies outside of the Finally, let's add an action to reset the timer ( "Timers and time", "Start (or reset) a scene timer"). Enter “EnemyCreation” as the name of the timer. Again, don't forget the quotes when you enter the name of the timer. At this point, our event will look like this: -![](/gdevelop5/tutorials/create-enemy-event.png) +![](create-enemy-event.png) If we run a preview now, we won't notice anything. Since the enemies are created off the screen, they can't be seen. In order to see the enemy, we need to move the enemies toward the player. To do this, add another event. This event has no condition. Choose "Add action". Select "Common action for all objects", "Movement" and choose "Add a force to move toward an object". -![](/gdevelop5/tutorials/move-object-toward-other-event.png) +![](move-object-toward-other-event.png) On the right side panel of the "Add a force to move toward an object", select "enemy" for the first parameter. Select "turret" for the second parameter. Enter 150 pixels per second for speed. Since the force will be applied at every single frame of the game (as there are no conditions), choose "Instant" for this force. -![](/gdevelop5/tutorials/enemy-turret-move-object-toward-another-instant.png) +![](enemy-turret-move-object-toward-another-instant.png) Now, if we run a preview, we will see that our enemies moving toward the turret. However, you might notice that the enemies don't actually rotate toward the turret. Let's do something about that. Add a second action after the movement: "Common action for all objects", "Angle", "Rotate toward position". For the first parameter on the right of the panel, select "enemy". We want to rotate the enemy. For the X and Y position, we are going to use an expression to get the Centre point of the turret and make the enemies rotate toward that point with an angular speed of 0. An angular speed of 0 causes immediate object rotation. -![](/gdevelop5/tutorials/rotate-object-toward-position.png) +![](rotate-object-toward-position.png) At this point, our enemy event will look like this: -![](/gdevelop5/tutorials/create-rotate-move-enemies-event.png) +![](create-rotate-move-enemies-event.png) If we run the preview now, our enemies will move and rotate toward the turret. -![](/gdevelop5/tutorials/turret-screenshot-enemies-moving.png) +![](turret-screenshot-enemies-moving.png) #### Adding explosions It's time to destroy the tanks! First, when a bullet collides with a tank, we need an explosion at the position of the tank. Add a new sprite object, name it "explosion", and add all the images to the animation beginning with Explosion_ -![](/gdevelop5/tutorials/select-all-explosion-images.png) +![](select-all-explosion-images.png) After all the images are added to the animation, set the time between the images to 0.01 seconds. -![](/gdevelop5/tutorials/explosion-animation-speed.png) +![](explosion-animation-speed.png) Save the animation by clicking/selecting "Apply". Next, we want to create the explosion when the bullet is in a collision with the enemy. Add a new blank condition: "Common conditions for all objects", "Collision", Collision -![](/gdevelop5/tutorials/collision-check-event.png) +![](collision-check-event.png) On the right sided panel, select "bullet" for the first parameter. For the second parameter, select "enemy". -![](/gdevelop5/tutorials/collision-between-object-condition-parameters.png) +![](collision-between-object-condition-parameters.png) Add an action to create the explosion object in the same way that we created the bullets and the enemies. For X and Y position, use the expression enemy.X() and enemy.Y(). This expression is going to get the X and Y position of the enemy object that is in collision with the bullet. -![](/gdevelop5/tutorials/create-explosion-event-parameters.png) +![](create-explosion-event-parameters.png) Finally, add the action after creating the explosion Common actions for all objects > Object > Delete an object and on the right side for parameter select the object enemy as we want to delete the enemy. Add the same action again, to also delete the bullet right after the enemy is deleted. At this point, our event should look like this -![](/gdevelop5/tutorials/enemy-moving-rotating-exploding.png) +![](enemy-moving-rotating-exploding.png) If you run a preview now, you will notice a couple of problems: @@ -297,9 +308,9 @@ If you run a preview now, you will notice a couple of problems: * Second, the created explosion object remains in the scene. To solve the first problem of the "explosion" objects remaining in the scene, we need to delete the explosion object after the animations are finished. Add a new empty event and the condition "Sprite", "Animations and Images", "Animation finished". -![](/gdevelop5/tutorials/animation-finished-event.png) +![](animation-finished-event.png) For the parameter on the right popup panel, select the "explosion" object. When the "explosion" object is finished, we want to delete the animation for the explosion. -![](/gdevelop5/tutorials/check-animation-finished-event-parameter.png) +![](check-animation-finished-event-parameter.png) To delete the animation "explosion" object, add the action, "delete the explosion object". To solve the second problem, we first need to understand its cause. @@ -309,13 +320,13 @@ To solve this issue, we need to change the position of the "Origin" point of the You need to edit the "explosion" object by right-clicking the object and selecting "Edit object" from the list. In the next window, select "Edit Points". Now, change the X and Y position of the "Origin" point to 120. This sets the point to the middle of the "explosion" image. -![](/gdevelop5/tutorials/change-origin-point-position.png) +![](change-origin-point-position.png) Finally, instead of creating the "explosion" object at the "Origin" point of the "enemy", it is necessary to create the object at the Centre Point. Change the expression in the create explosion action from `enemy.X()` to `enemy.PointX("Centre")` and from `enemy.Y()` to `enemy.PointY("Centre")` -![](/gdevelop5/tutorials/create-explosion-new-expression.png) +![](create-explosion-new-expression.png) If we run a preview now, our enemies will explode realistically from the center of the object. -![](/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png) +![](turret-screenshot-enemies-are-exploding.png) #### Adding more explosions and a Game Over Until now, the player could not die. When an enemy tank is hitting the player's turret, we want the turret to be destroyed. Add a new event. Follow the same procedure that you followed to create an event to destroy the enemies. @@ -323,49 +334,50 @@ Add a new event. Follow the same procedure that you followed to create an event * Add a condition to test for a collision between a tank and the turret. * Create an explosion at the turret position. * Add an action to destroy the turret. -![](/gdevelop5/tutorials/delete-turret-on-collision-event.png) +![](delete-turret-on-collision-event.png) Additionally, it would be interesting to display a “Game Over” text when the turret is destroyed: Add a new object using the Scene Objects list. This time, choose a "Text" object. Name it "GameOver". -![](/gdevelop5/tutorials/select-text-object-from-list.png) +![](select-text-object-from-list.png) Edit the "GameOver" object by right-clicking on the object. Select "Edit object" from the popup list. Now, change the text to "Game Over", the text color to red, and the text size to 40. -![](/gdevelop5/tutorials/edit-text-object.png) +![](edit-text-object.png) We can also set a custom font by simply entering the path of the font. In this case, our font is located in the project folder. We only need to enter the name of the font file: -![](/gdevelop5/tutorials/custom-text-font.png) +![](custom-text-font.png) Finally, add the "Game Over" text object to the scene. The next step is to hide the text object. Then, if there is no turret in the scene, (meaning the turret is destroyed) we will display it. Add a new blank event and add the condition "Scene", "At the beginning of the scene". -![](/gdevelop5/tutorials/at-the-beginning-of-the-scene-condition.png) +![](at-the-beginning-of-the-scene-condition.png) This condition has no parameters. The only thing it does is execute the action once at the beginning of the scene. Next, add the action to the "At the beginning of the scene" event. Use: "Common Actions for all objects", "Visibility", "Hide". -![](/gdevelop5/tutorials/hide-object-event.png) +![](hide-object-event.png) For parameter select the GameOver object as we want to hide this object -![](/gdevelop5/tutorials/hide-object-event-parameter.png) +![](hide-object-event-parameter.png) If there is no turret in the scene, we want to show the "GameOver" text object. Add a new empty event. Add the condition "Common conditions for all objects", "Objects", "Objects count". -![](/gdevelop5/tutorials/objects-count-condition.png) +![](objects-count-condition.png) For the first parameter on the right side select the turret object, for the sign of test select the equal sign and for the value of test enter 0 as we want to test if the number of the turret in the scene is 0. -![](/gdevelop5/tutorials/object-count-condition-parameters.png) +![](object-count-condition-parameters.png) And what we want to do is show the text GameOver if there is no turret in the scene, so add the action Common action for all objects > Visibility > Show and for parameter we want to select the GameOver object. -![](/gdevelop5/tutorials/destroy-turret-event.png) +![](destroy-turret-event.png) Finally, an interesting effect is to stop the game and display Game Over with a little delay. Add a second condition "Timers and time", Value of a scene timer". For time parameter enter 0.1 and for the name parameter enter "GameOver". Add a second action: "Timers and time", "Change time scale". Enter 0 as the parameter to stop the game and display the Game Over text after 0.1 seconds. This is what all the events should look like at this point. -![](/gdevelop5/tutorials/all-events.png) +![](all-events.png) You can preview the game and should see that once the turret is destroyed, with a little delay the Game Over text is displayed and the game is stopped. -![](/gdevelop5/tutorials/gameover-screenshot.png) +![](gameover-screenshot.png) + #### Optimizing the game When a bullet is outside of the screen area, we no longer need the bullet. Even off screen, the bullets still have movement. The collisions between the bullet and the tank are also being checked. Every device has limited resources in memory and processing power. We are wasting valuable resources by continuing to check the conditions and actions of the objects when they are off screen. Our game could slow down, crash, and/or become unplayable when it reaches the limit of the device memory that we are playing the game on. @@ -375,13 +387,13 @@ We could add an event to destroy the bullets when they are too far from the turr In the Scene "Objects" list, right click on the "bullet" object. From the popup selector, choose "Edit object". The "Properties Panel" will open. Select/click the "Behaviors" tab. The "Behaviors" tab displays all the behaviors that we have added to our object. It is empty now. -![](/gdevelop5/behaviors-tab.png) +![](behaviors-tab.png) -Click on the "Click to add a behavior to the object" button ![](/gdevelop5/objects/add-symbol.png) -![](/gdevelop5/add-behavior-button.png) +Click on the "Click to add a behavior to the object" button ![](add-symbol.png) +![](add-behavior-button.png) Next select from the list the Destroy outside screen behavior -![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) +![](destroy-outside-screen-behavior-inlist.png) Next, you are going to see the behavior is added to the list. Normally if the behavior has any parameters, it is also displayed here so you can change it. But this behavior has no parameters as the only thing it does is destroy the object when it outside the screen. Click Apply and we are done. @@ -390,11 +402,11 @@ If you run the preview now, probably you won't notice any difference as the game One last thing is to add a background. This will give the game a more finished look. Add a new Sprite object. Name it "background". Add the "background.jpg" image to the object. Next, you can add the object to the scene as usual. Make sure it fills the entire scene. To make it easier, you can enable the grid using the button on the top and it should help with positioning the object. -![](/gdevelop5/toggle-grid-button.png) +![](toggle-grid-button.png) Notice that the background object covers all of the other objects. To solve this problem, we need to change the Z-order of the object. While the background object is selected, on the left of the Scene Editor screen, you will see a "Properties" list. If you don't see the "Properties" list, you can open it using the "Properties" button on the toolbar that is located at the top of the GD interface. -![](/gdevelop5/object-properties-button.png) +![](object-properties-button.png) We can change all kinds of properties using the Property Editor. The position, angle, and size of the object can be changed. In this case, we want to change the Z-order. -![](/gdevelop5/objects/object-zorder-properties.png) +![](object-zorder-properties.png) Change the value of the Z-order to a low number. For the background, we will use a negative number - 1. The reason for the negative value is that when we are creating the bullets, enemies, and explosions we are creating them at Z-order 0 by default. We need to position the background below 0 otherwise we won't see anything but the turret in our game. Another way to fix it is to tell GDevelop to position the tanks and explosions and bullets on a higher Z-order. We can position the background at 0 but it is something that you the developer need to decide for your self. Every problem can have a number of different solutions. @@ -404,13 +416,13 @@ You are done! The game is complete and ready to be shared. So, our game is done. It is playable. What if you want to share the source with someone else? Let's say you are working in a team. Someone on the team would like to make modifications to the game. How does that person know where to look for the events of the enemies, the bullets, or the turret? It may sound silly to you. Most of the events in GDevelop are self-explanatory. Our game is simple enough to see what is happening. However, imagine a situation where you have a game made out of hundreds or thousands of events. This is where comments come in handy. We can leave reminders in the game for others and also for ourselves. Trust me, even though you are the one who made the game, in a big complex game, even you won't remember where to find different things. This is especially true months later. _Always use comments regardless of how of the size of the project._ It is just good programming practice. To add comments to your game, you can simply click the "add comment" button on the toolbar located at the top of the "Events" screen. -![](/gdevelop5/add-comment-button.png) +![](add-comment-button.png) You will see a yellow box in the "Events" editor. When you click/select the box you can start writing a comment. -![](/gdevelop5/tutorials/comment.png) +![](comment.png) You can change the position of each event and comment by moving the mouse over the blue edge on the left and dragging it up and down. Your first comments will look something like this: -![](/gdevelop5/tutorials/all-events-with-comments.png) +![](all-events-with-comments.png) #### Let's discover GDevelop by yourself You can browse the other [tutorials](/gdevelop5/tutorials) and read the [getting started](/gdevelop5/getting_started) page. diff --git a/docs/gdevelop5/tutorials/mouse-button-pressed-condition.png b/docs/gdevelop5/tutorials/tank-shooter/mouse-button-pressed-condition.png similarity index 100% rename from docs/gdevelop5/tutorials/mouse-button-pressed-condition.png rename to docs/gdevelop5/tutorials/tank-shooter/mouse-button-pressed-condition.png diff --git a/docs/gdevelop5/tutorials/mouse-button-pressed-parameter.png b/docs/gdevelop5/tutorials/tank-shooter/mouse-button-pressed-parameter.png similarity index 100% rename from docs/gdevelop5/tutorials/mouse-button-pressed-parameter.png rename to docs/gdevelop5/tutorials/tank-shooter/mouse-button-pressed-parameter.png diff --git a/docs/gdevelop5/tutorials/move-object-toward-other-event.png b/docs/gdevelop5/tutorials/tank-shooter/move-object-toward-other-event.png similarity index 100% rename from docs/gdevelop5/tutorials/move-object-toward-other-event.png rename to docs/gdevelop5/tutorials/tank-shooter/move-object-toward-other-event.png diff --git a/docs/gdevelop5/tutorials/object-count-condition-parameters.png b/docs/gdevelop5/tutorials/tank-shooter/object-count-condition-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/object-count-condition-parameters.png rename to docs/gdevelop5/tutorials/tank-shooter/object-count-condition-parameters.png diff --git a/docs/gdevelop5/object-properties-button.png b/docs/gdevelop5/tutorials/tank-shooter/object-properties-button.png similarity index 100% rename from docs/gdevelop5/object-properties-button.png rename to docs/gdevelop5/tutorials/tank-shooter/object-properties-button.png diff --git a/docs/gdevelop5/objects/object-types.png b/docs/gdevelop5/tutorials/tank-shooter/object-types.png similarity index 100% rename from docs/gdevelop5/objects/object-types.png rename to docs/gdevelop5/tutorials/tank-shooter/object-types.png diff --git a/docs/gdevelop5/objects/object-zorder-properties.png b/docs/gdevelop5/tutorials/tank-shooter/object-zorder-properties.png similarity index 100% rename from docs/gdevelop5/objects/object-zorder-properties.png rename to docs/gdevelop5/tutorials/tank-shooter/object-zorder-properties.png diff --git a/docs/gdevelop5/tutorials/objects-count-condition.png b/docs/gdevelop5/tutorials/tank-shooter/objects-count-condition.png similarity index 100% rename from docs/gdevelop5/tutorials/objects-count-condition.png rename to docs/gdevelop5/tutorials/tank-shooter/objects-count-condition.png diff --git a/docs/gdevelop5/tutorials/plusaddobject.png b/docs/gdevelop5/tutorials/tank-shooter/plusaddobject.png similarity index 100% rename from docs/gdevelop5/tutorials/plusaddobject.png rename to docs/gdevelop5/tutorials/tank-shooter/plusaddobject.png diff --git a/docs/gdevelop5/preview-button.png b/docs/gdevelop5/tutorials/tank-shooter/preview-button.png similarity index 100% rename from docs/gdevelop5/preview-button.png rename to docs/gdevelop5/tutorials/tank-shooter/preview-button.png diff --git a/docs/gdevelop5/tutorials/rename-turret.png b/docs/gdevelop5/tutorials/tank-shooter/rename-turret.png similarity index 100% rename from docs/gdevelop5/tutorials/rename-turret.png rename to docs/gdevelop5/tutorials/tank-shooter/rename-turret.png diff --git a/docs/gdevelop5/tutorials/replace-expression-in-editor.png b/docs/gdevelop5/tutorials/tank-shooter/replace-expression-in-editor.png similarity index 100% rename from docs/gdevelop5/tutorials/replace-expression-in-editor.png rename to docs/gdevelop5/tutorials/tank-shooter/replace-expression-in-editor.png diff --git a/docs/gdevelop5/tutorials/reset-timer-action-parameter.png b/docs/gdevelop5/tutorials/tank-shooter/reset-timer-action-parameter.png similarity index 100% rename from docs/gdevelop5/tutorials/reset-timer-action-parameter.png rename to docs/gdevelop5/tutorials/tank-shooter/reset-timer-action-parameter.png diff --git a/docs/gdevelop5/tutorials/reset-timer-action.png b/docs/gdevelop5/tutorials/tank-shooter/reset-timer-action.png similarity index 100% rename from docs/gdevelop5/tutorials/reset-timer-action.png rename to docs/gdevelop5/tutorials/tank-shooter/reset-timer-action.png diff --git a/docs/gdevelop5/tutorials/rotate-object-toward-position.png b/docs/gdevelop5/tutorials/tank-shooter/rotate-object-toward-position.png similarity index 100% rename from docs/gdevelop5/tutorials/rotate-object-toward-position.png rename to docs/gdevelop5/tutorials/tank-shooter/rotate-object-toward-position.png diff --git a/docs/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png b/docs/gdevelop5/tutorials/tank-shooter/rotate-toward-pos-event-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png rename to docs/gdevelop5/tutorials/tank-shooter/rotate-toward-pos-event-parameters.png diff --git a/docs/gdevelop5/tutorials/rotate-toward-position-action.png b/docs/gdevelop5/tutorials/tank-shooter/rotate-toward-position-action.png similarity index 100% rename from docs/gdevelop5/tutorials/rotate-toward-position-action.png rename to docs/gdevelop5/tutorials/tank-shooter/rotate-toward-position-action.png diff --git a/docs/gdevelop5/tutorials/save-project.png b/docs/gdevelop5/tutorials/tank-shooter/save-project.png similarity index 100% rename from docs/gdevelop5/tutorials/save-project.png rename to docs/gdevelop5/tutorials/tank-shooter/save-project.png diff --git a/docs/gdevelop5/tutorials/select-all-explosion-images.png b/docs/gdevelop5/tutorials/tank-shooter/select-all-explosion-images.png similarity index 100% rename from docs/gdevelop5/tutorials/select-all-explosion-images.png rename to docs/gdevelop5/tutorials/tank-shooter/select-all-explosion-images.png diff --git a/docs/gdevelop5/tutorials/select-project-folder.png b/docs/gdevelop5/tutorials/tank-shooter/select-project-folder.png similarity index 100% rename from docs/gdevelop5/tutorials/select-project-folder.png rename to docs/gdevelop5/tutorials/tank-shooter/select-project-folder.png diff --git a/docs/gdevelop5/tutorials/select-text-object-from-list.png b/docs/gdevelop5/tutorials/tank-shooter/select-text-object-from-list.png similarity index 100% rename from docs/gdevelop5/tutorials/select-text-object-from-list.png rename to docs/gdevelop5/tutorials/tank-shooter/select-text-object-from-list.png diff --git a/docs/gdevelop5/tutorials/select-turret-object-parameter.png b/docs/gdevelop5/tutorials/tank-shooter/select-turret-object-parameter.png similarity index 100% rename from docs/gdevelop5/tutorials/select-turret-object-parameter.png rename to docs/gdevelop5/tutorials/tank-shooter/select-turret-object-parameter.png diff --git a/docs/gdevelop5/tutorials/shoot-bullet-event1.png b/docs/gdevelop5/tutorials/tank-shooter/shoot-bullet-event1.png similarity index 100% rename from docs/gdevelop5/tutorials/shoot-bullet-event1.png rename to docs/gdevelop5/tutorials/tank-shooter/shoot-bullet-event1.png diff --git a/docs/gdevelop5/start_page.png b/docs/gdevelop5/tutorials/tank-shooter/start_page.png similarity index 100% rename from docs/gdevelop5/start_page.png rename to docs/gdevelop5/tutorials/tank-shooter/start_page.png diff --git a/docs/gdevelop5/tutorials/timer-value-condition-parameters.png b/docs/gdevelop5/tutorials/tank-shooter/timer-value-condition-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/timer-value-condition-parameters.png rename to docs/gdevelop5/tutorials/tank-shooter/timer-value-condition-parameters.png diff --git a/docs/gdevelop5/tutorials/timer-value-condition.png b/docs/gdevelop5/tutorials/tank-shooter/timer-value-condition.png similarity index 100% rename from docs/gdevelop5/tutorials/timer-value-condition.png rename to docs/gdevelop5/tutorials/tank-shooter/timer-value-condition.png diff --git a/docs/gdevelop5/toggle-grid-button.png b/docs/gdevelop5/tutorials/tank-shooter/toggle-grid-button.png similarity index 100% rename from docs/gdevelop5/toggle-grid-button.png rename to docs/gdevelop5/tutorials/tank-shooter/toggle-grid-button.png diff --git a/docs/gdevelop5/tutorials/turret-add-new-object.png b/docs/gdevelop5/tutorials/tank-shooter/turret-add-new-object.png similarity index 100% rename from docs/gdevelop5/tutorials/turret-add-new-object.png rename to docs/gdevelop5/tutorials/tank-shooter/turret-add-new-object.png diff --git a/docs/gdevelop5/tutorials/turret-animation-window.png b/docs/gdevelop5/tutorials/tank-shooter/turret-animation-window.png similarity index 100% rename from docs/gdevelop5/tutorials/turret-animation-window.png rename to docs/gdevelop5/tutorials/tank-shooter/turret-animation-window.png diff --git a/docs/gdevelop5/tutorials/turret-rotate-toward-mouse.png b/docs/gdevelop5/tutorials/tank-shooter/turret-rotate-toward-mouse.png similarity index 100% rename from docs/gdevelop5/tutorials/turret-rotate-toward-mouse.png rename to docs/gdevelop5/tutorials/tank-shooter/turret-rotate-toward-mouse.png diff --git a/docs/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png b/docs/gdevelop5/tutorials/tank-shooter/turret-screenshot-enemies-are-exploding.png similarity index 100% rename from docs/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png rename to docs/gdevelop5/tutorials/tank-shooter/turret-screenshot-enemies-are-exploding.png diff --git a/docs/gdevelop5/tutorials/turret-screenshot-enemies-moving.png b/docs/gdevelop5/tutorials/tank-shooter/turret-screenshot-enemies-moving.png similarity index 100% rename from docs/gdevelop5/tutorials/turret-screenshot-enemies-moving.png rename to docs/gdevelop5/tutorials/tank-shooter/turret-screenshot-enemies-moving.png diff --git a/docs/gdevelop5/tutorials/turret-selected-inscene.png b/docs/gdevelop5/tutorials/tank-shooter/turret-selected-inscene.png similarity index 100% rename from docs/gdevelop5/tutorials/turret-selected-inscene.png rename to docs/gdevelop5/tutorials/tank-shooter/turret-selected-inscene.png diff --git a/docs/gdevelop5/tutorials/animation4.gif b/docs/gdevelop5/tutorials/topdown-shooter/animation4.gif similarity index 100% rename from docs/gdevelop5/tutorials/animation4.gif rename to docs/gdevelop5/tutorials/topdown-shooter/animation4.gif diff --git a/docs/gdevelop5/tutorials/assets.zip b/docs/gdevelop5/tutorials/topdown-shooter/assets.zip similarity index 100% rename from docs/gdevelop5/tutorials/assets.zip rename to docs/gdevelop5/tutorials/topdown-shooter/assets.zip diff --git a/docs/gdevelop5/tutorials/topdown-shooter/index.md b/docs/gdevelop5/tutorials/topdown-shooter/index.md index c8d8747e9a..22d580d6e1 100644 --- a/docs/gdevelop5/tutorials/topdown-shooter/index.md +++ b/docs/gdevelop5/tutorials/topdown-shooter/index.md @@ -23,7 +23,7 @@ You are reading Part 1 of the Top-Down Shooter Tutorial. This tutorial will help you to begin to use **GDevelop**. You will create a **Top-Down Shooter** game where the player shoots and kills the enemy. Note that you can read the [Getting Started](/gdevelop5/getting_started/) page to get an overview of the software. It explains the main concepts and describes the interface of **GDevelop**. -You can get the completed project ![here](/gdevelop5/tutorials/topdownexample.zip). You can get all assets ![here](/gdevelop5/tutorials/assets.zip). +You can get the completed project ![here](topdownexample.zip). You can get all assets ![here](assets.zip). --- @@ -50,7 +50,7 @@ To add a new scene: 2. Select **Click to add a scene** to create a new scene 3. Click on the scene to open it - ![](/gdevelop5/tutorials/animation4.gif) \GDevelop runs the scene from the top at the beginning of the game. So, if you want to show the menu at the beginning of the game, keep the menu at the top of the scene list. + ![](animation4.gif) \GDevelop runs the scene from the top at the beginning of the game. So, if you want to show the menu at the beginning of the game, keep the menu at the top of the scene list. ### Step 4. Add our Player @@ -78,7 +78,7 @@ Behavior is like a script of an object. An object acts according to the behavior 4. Select **Top-Down Movement** 5. Click on **OK** -![](/gdevelop5/tutorials/menu.png) +![](menu.png) ### Step 6. Preview your game diff --git a/docs/gdevelop5/tutorials/menu.png b/docs/gdevelop5/tutorials/topdown-shooter/menu.png similarity index 100% rename from docs/gdevelop5/tutorials/menu.png rename to docs/gdevelop5/tutorials/topdown-shooter/menu.png diff --git a/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart2.md b/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart2.md index 18498073f2..0120f829dc 100644 --- a/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart2.md +++ b/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart2.md @@ -44,7 +44,7 @@ Now that we are going to make a Gun, we need to do this: Add an object Choose Sp 9. Click on **Close** 10. Click on **Apply** -![](/gdevelop5/tutorials/topdown-shooter/bhvvtyei8k.gif) Now, we have specified our Centre of sprite we can now move on. +![](bhvvtyei8k.gif) Now, we have specified our Centre of sprite we can now move on. ### Step 2. Keep gun around player @@ -62,7 +62,7 @@ We have created our **Gun**. Now, we should stick our **Gun** with Player. To do 10. Give both modification signs a sign of **"="**. 11. Click on **OK**. -![](/gdevelop5/tutorials/topdown-shooter/zgnhw4lkrl.gif) Now, the gun follows the Player or we can say it sticks to the Player. +![](zgnhw4lkrl.gif) Now, the gun follows the Player or we can say it sticks to the Player. ### Step 3. Aim towards mouse @@ -75,7 +75,7 @@ It cannot be called a shooter game if we don't know how to aim. So to aim: 5. In the Y position textbox, write **MouseY()** 6. Click on **OK** -![](/gdevelop5/tutorials/topdown-shooter/ti1ygjyqdt.gif) +![](ti1ygjyqdt.gif) ### Step 4. Shoot @@ -89,7 +89,7 @@ If we want to shoot, we need a bullet. So let's make a bullet: 6. Select "**Bullet-1.png**" asset 7. Click on **Apply** -![](/gdevelop5/tutorials/topdown-shooter/yg1d9zcayp.gif) +![](yg1d9zcayp.gif) So we have made a **Bullet** sprite. But that's not enough. We also need to specify from where does the **Bullet** appears. And for that, we need a point in our **Gun**. To make a point: @@ -101,7 +101,7 @@ So we have made a **Bullet** sprite. But that's not enough. We also need to spec 6. Click on **Close** 7. Click on **Apply** -![](/gdevelop5/tutorials/topdown-shooter/obaofmna4t.gif) +![](obaofmna4t.gif) Now we need to shoot it. To shoot: @@ -119,7 +119,7 @@ Now we need to shoot it. To shoot: 12. Choose the mouse button you want the **Player** to press for shooting 13. Click **OK** -![](/gdevelop5/tutorials/topdown-shooter/coffeehanjanun.gif) +![](coffeehanjanun.gif) Now, we can shoot while we click. diff --git a/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart3.md b/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart3.md index a0be7f682d..61ba089f5d 100644 --- a/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart3.md +++ b/docs/gdevelop5/tutorials/topdown-shooter/topdown-shooterpart3.md @@ -64,7 +64,7 @@ Now, to set **Health Bar** on the layer: 1. Now, click on **Health Bar** 2. Click on layer selection and choose the layer **UI** -![](/gdevelop5/tutorials/topdown-shooter/healthui.gif) +![](healthui.gif) ### Step 3. Making a variable for our Player to represent health @@ -75,7 +75,7 @@ Now we are at creating a **Health Bar** for our **Player**. To make a **Health B 3. Give it a default value 4. Click on **OK** -![](/gdevelop5/tutorials/topdown-shooter/anim23.gif) +![](anim23.gif) ### Step 4. Displaying Health in a Health Bar diff --git a/docs/gdevelop5/tutorials/topdownexample.zip b/docs/gdevelop5/tutorials/topdown-shooter/topdownexample.zip similarity index 100% rename from docs/gdevelop5/tutorials/topdownexample.zip rename to docs/gdevelop5/tutorials/topdown-shooter/topdownexample.zip diff --git a/docs/gdevelop5/tutorials/add-force-angle-parameters.png b/docs/gdevelop5/tutorials/unused/add-force-angle-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/add-force-angle-parameters.png rename to docs/gdevelop5/tutorials/unused/add-force-angle-parameters.png diff --git a/docs/gdevelop5/tutorials/create-then-delete-square.png b/docs/gdevelop5/tutorials/unused/create-then-delete-square.png similarity index 100% rename from docs/gdevelop5/tutorials/create-then-delete-square.png rename to docs/gdevelop5/tutorials/unused/create-then-delete-square.png diff --git a/docs/gdevelop5/tutorials/delete-square.png b/docs/gdevelop5/tutorials/unused/delete-square.png similarity index 100% rename from docs/gdevelop5/tutorials/delete-square.png rename to docs/gdevelop5/tutorials/unused/delete-square.png diff --git a/docs/gdevelop5/tutorials/delete-then-create-square.png b/docs/gdevelop5/tutorials/unused/delete-then-create-square.png similarity index 100% rename from docs/gdevelop5/tutorials/delete-then-create-square.png rename to docs/gdevelop5/tutorials/unused/delete-then-create-square.png diff --git a/docs/gdevelop5/tutorials/move-object-toward-another-parameters.png b/docs/gdevelop5/tutorials/unused/move-object-toward-another-parameters.png similarity index 100% rename from docs/gdevelop5/tutorials/move-object-toward-another-parameters.png rename to docs/gdevelop5/tutorials/unused/move-object-toward-another-parameters.png diff --git a/docs/gdevelop5/tutorials/moveobjectwithphysics.png b/docs/gdevelop5/tutorials/unused/moveobjectwithphysics.png similarity index 100% rename from docs/gdevelop5/tutorials/moveobjectwithphysics.png rename to docs/gdevelop5/tutorials/unused/moveobjectwithphysics.png diff --git a/docs/gdevelop5/tutorials/objectselection-pickobject.png b/docs/gdevelop5/tutorials/unused/objectselection-pickobject.png similarity index 100% rename from docs/gdevelop5/tutorials/objectselection-pickobject.png rename to docs/gdevelop5/tutorials/unused/objectselection-pickobject.png diff --git a/docs/gdevelop5/tutorials/scene-events-tab.png b/docs/gdevelop5/tutorials/unused/scene-events-tab.png similarity index 100% rename from docs/gdevelop5/tutorials/scene-events-tab.png rename to docs/gdevelop5/tutorials/unused/scene-events-tab.png diff --git a/docs/gdevelop5/tutorials/toggles1.png b/docs/gdevelop5/tutorials/unused/toggles1.png similarity index 100% rename from docs/gdevelop5/tutorials/toggles1.png rename to docs/gdevelop5/tutorials/unused/toggles1.png diff --git a/docs/gdevelop5/tutorials/update-life-no-timedelta.png b/docs/gdevelop5/tutorials/unused/update-life-no-timedelta.png similarity index 100% rename from docs/gdevelop5/tutorials/update-life-no-timedelta.png rename to docs/gdevelop5/tutorials/unused/update-life-no-timedelta.png diff --git a/docs/gdevelop5/tutorials/update-life-timedelta.png b/docs/gdevelop5/tutorials/unused/update-life-timedelta.png similarity index 100% rename from docs/gdevelop5/tutorials/update-life-timedelta.png rename to docs/gdevelop5/tutorials/unused/update-life-timedelta.png diff --git a/docs/gdevelop5/tutorials/using-github-desktop.md b/docs/gdevelop5/tutorials/using-github-desktop/index.md similarity index 97% rename from docs/gdevelop5/tutorials/using-github-desktop.md rename to docs/gdevelop5/tutorials/using-github-desktop/index.md index c38faf6ef5..df3c2335d2 100644 --- a/docs/gdevelop5/tutorials/using-github-desktop.md +++ b/docs/gdevelop5/tutorials/using-github-desktop/index.md @@ -62,7 +62,7 @@ The following should be completed before creating the game project in GDevelop. ### Step 3 - Create the first branch -1. Within GitHub Desktop, click the **Current branch** drop down. ![](/gdevelop5/tutorials/using-github-desktop/pasted/20200710-024151.png) +1. Within GitHub Desktop, click the **Current branch** drop down. ![](pasted/20200710-024151.png) 1. Click **New Branch**. The **Create a branch** window will display. 1. Type the name for the branch. Commonly this will be the name of a feature or function currently being worked on. - e.g. If working on level graphics, consider naming each separate branch for the level _currently_ being worked on such as Level-1. Remember, spaces in GitHub names aren't allowed. If a space is used, GitHub will automatically replace it with a hyphen. @@ -77,5 +77,5 @@ The following should be completed before creating the game project in GDevelop. 1. Once the focus of the branch is completed, a pull request must be created to merge all of the changes. [Follow the process here to create the pull request.](https://docs.github.com/en/desktop/contributing-to-projects/creating-an-issue-or-pull-request#creating-a-new-pull-request) 1. After the pull request is created, it must be merged to the master branch. [Follow this process to merge the pull request on the GitHub website.](https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/merging-a-pull-request) - 1. Going forward, new branches should be created as the game project moves on to each new feature or bugfix. Because Github allows for restoring the game code only to different commits, commits to branches should be completed frequently. Here are some examples of how frequently commits are completed in just one day, along with descriptions to easily identify what is changed: ![](/gdevelop5/tutorials/using-github-desktop/pasted/20200710-030250.png) + 1. Going forward, new branches should be created as the game project moves on to each new feature or bugfix. Because Github allows for restoring the game code only to different commits, commits to branches should be completed frequently. Here are some examples of how frequently commits are completed in just one day, along with descriptions to easily identify what is changed: ![](pasted/20200710-030250.png) 1. If changes are ever completed in error, GitHub and GitHub desktop allows to restore from the change history.[Complete this process if a restore is needed.](https://docs.github.com/en/desktop/contributing-to-projects/reverting-a-commit) diff --git a/docs/gdevelop5/tutorials/videos.md b/docs/gdevelop5/tutorials/videos/index.md similarity index 99% rename from docs/gdevelop5/tutorials/videos.md rename to docs/gdevelop5/tutorials/videos/index.md index ef3712a567..9dc2b8c879 100644 --- a/docs/gdevelop5/tutorials/videos.md +++ b/docs/gdevelop5/tutorials/videos/index.md @@ -38,7 +38,7 @@ title: Video Tutorials ## Use objects -- **[GDevelop Intro Tutorial: Object Types](https://www.youtube.com/watch?v=KpLAYMSgoDI)** +- **[GDevelop Intro Tutorial: Object Types](https://www.youtube.com/watch?v=r_Z8N9asT14)** - [How to create a water/surface reflection](https://youtu.be/TJYVjn5jYjU) - [How to use Orbiting objects to create a spinner](https://youtu.be/WbH7ChC9g0w) - [How to use the Screen Wrap Extension](https://youtu.be/it-dIjfmQJs) diff --git a/docs/hi/gdevelop5/community/season-of-docs.md b/docs/hi/gdevelop5/community/season-of-docs.md deleted file mode 100644 index 60d89725f9..0000000000 --- a/docs/hi/gdevelop5/community/season-of-docs.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: GDevelop Season of Docs ---- -# GDevelop Season of Docs - -![](/gdevelop5/community/seasonofdocs_logo_secondarygrey_72ppi.png) - -डॉक्स का सीज़न खुले स्रोत और तकनीकी लेखक समुदायों को एक साथ लाने की एक पहल है। - -GDevelop एक ओपन-सोर्स **गेम डेवलपमेंट** सॉफ्टवेयर है, जिससे कोई भी गेम बना सकता है। GDevelop को अद्वितीय और उपयोग करने में आसान बनाता है [events](https://gdevelop.io/). Events एक प्रोग्रामिंग भाषा सीखने के बिना, आपके खेल के तर्क को व्यक्त करने का एक शक्तिशाली तरीका है। कोशिश करना चाहेंगे? [ऑनलाइन संस्करण का प्रयास करें](https: //editor.gdevelop.io) या [पूर्ण सॉफ्टवेयर डाउनलोड करें](https://gdevelop.io/download/)! - -इस साल, हम GDevelop प्रलेखन में सुधार करने के लिए एक **तकनीकी लेखक** का उल्लेख करना पसंद करेंगे! हमारे पास कुछ विचार हैं जो वास्तव में हमारे उपयोगकर्ताओं की मदद कर सकते हैं। - -प्रत्येक माह हजारों उपयोगकर्ता GDevelop के साथ गेम बना रहे हैं। कई उपयोगकर्ता पहली बार गेम निर्माण की खोज कर रहे हैं। अन्य लोग इंजन के साथ [प्रभावशाली खेल](https://gdevelop.io/games-showcase/) बनाने के अधिक अनुभवी उपयोगकर्ता हैं। - -## विचार - -!!! tip - - वे विचार संपूर्ण *नहीं* हैं। अपने स्वयं के विचार का सुझाव देने के लिए स्वतंत्र महसूस करें! या विचारों को अपने में मिला लें। - -**एक नया ट्यूटोरियल 🚀** - - * गेम बनाने के तरीके के बारे में बताते हुए एक नया चरण-दर-चरण ट्यूटोरियल लिखें। विकी पर हमारे पास पहले से ही दो पूर्ण ट्यूटोरियल हैं, लेकिन वे काफी बुनियादी हैं। - * एक उदाहरण के रूप में [मौजूदा ट्यूटोरियल](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/platform-game/start) देखें। - * खेल का विषय कुछ भी हो सकता है जो दिलचस्प लगता है: अंतरिक्ष शूटर, अंतहीन चल रहे खेल, महल्वेनिया-जैसे, बीट'एम अप ... आदि। मेंटर्स आपको सॉफ्टवेयर और गेम बनाने के साथ शुरू करने में मदद करेंगे। - -> यह एक महत्वपूर्ण छोटे खेल को खोजने के लिए महत्वपूर्ण होगा ताकि एक ट्यूटोरियल इसे शुरू से अंत तक कवर कर सके - लेकिन इसके लिए अच्छा दिखने और दिलचस्प होने की आवश्यकता है! (*Itch.io* या *opengameart.org* जैसी वेबसाइटों पर एसेट पैक हैं जिनका हम उपयोग कर सकते हैं।) - -**विकी पृष्ठों में सुधार 📚** - - * मौजूदा दस्तावेज़ीकरण में यह जाँच कर सुधार करें कि प्रत्येक वस्तु, घटना, व्यवहार को प्रलेखन द्वारा कवर किया गया है और प्रत्येक पृष्ठ को नए उदाहरणों, लिंक और स्पष्टीकरण के साथ बेहतर बनाता है। - * [ऑब्जेक्ट](http://wiki.compilgames.net/doku.php/gdevelop5/objects), [व्यवहार](http://wiki.compilgames.net/doku.php/gdevelop5/behaviors), [ईवेंट](http://wiki.compilgames.net/doku.php/gdevelop5/events) और [अन्य सभी फ़ीचर](http://wiki.compilgames.net/doku.php/gdevelop5/all-features) पेज देखें। - * ये पृष्ठ बहुत उपयोगी होंगे क्योंकि सॉफ्टवेयर में सभी सुविधाओं के लिए संपादक के अंदर "सहायता" लिंक हैं। उपयोगकर्ता हेल्प पर क्लिक करके किसी भी फीचर के बारे में अधिक जान सकेंगे। - -**बेहतर विस्तार डेवलपर गाइड ** - - * एक्सटेंशन GDevelop का एक महत्वपूर्ण हिस्सा हैं। वे सबसे अधिक सुविधाएँ प्रदान करते हैं जो उपयोगकर्ता अपने गेम में उपयोग करते हैं। सॉफ़्टवेयर के लिए एक नया एक्सटेंशन बनाने के तरीके को समझाने के लिए [GitHub](https://github.com/4ian/GDevelop/blob/master/new/README-extensions.md) पर प्रलेखन सुधारें। - * इसे भी देखें [विकी पेज](http://wiki.compilgames.net/doku.php/gdevelop5/extending-gdevelop)। यह नए लोगों को खेल इंजन में योगदान करने के लिए प्रोत्साहित करने में मदद करेगा। - -**विभिन्न प्लेटफार्मों पर खेल प्रकाशित करने के लिए प्रलेखन और ट्यूटोरियल 🌍** - - * मार्केटप्लेस, गेमिंग वेबसाइट और ऐप स्टोर पर गेम प्रकाशित करने के बारे में अधिक प्रलेखन बनाएं। यह एक बहुत ही महत्वपूर्ण विषय है। उपयोगकर्ता गेम बनाना पसंद करते हैं, लेकिन अगर यह प्रकाशित नहीं हुआ है तो एक गेम समाप्त नहीं हुआ है! - * पहले से ही कुछ [प्रलेखन विकी पर](http://wiki.compilgames.net/doku.php/gdevelop5/publishing) है, लेकिन अधिक कदम-दर-चरण ट्यूटोरियल और बाज़ार के बारे में विस्तृत विवरण (Kongregate, Itch.io , फेसबुक इंस्टेंट गेम्स ...) या ऐप स्टोर बहुत उपयोगी होंगे! - - -> ये लेख / प्रलेखन यहां तक कि GDevelop ऐप में ही कसकर एकीकृत किए जा सकते हैं। GDevelop में Mentors अपडेट कर सकेंगे। - - -## GDevelop के ओपन-सोर्स प्रोजेक्ट, संगठन और आकाओं के बारे में - -GDevelop कोष [GitHub](https://github.com/4ian/GDevelop) पर उपलब्ध है। आप सॉफ़्टवेयर के बारे में अधिक जानने और इसे डाउनलोड करने के लिए [वेबसाइट](https://gdevelop.io/) भी ब्राउज़ कर सकते हैं। - -📣 डॉक्स के सीज़न में भाग लेने की घोषणा [Twitter](https://twitter.com/GDevelopApp/status/1120410655675359234) और [Facebook](https://www.facebook.com/GDevelopApp/pps/10157106427160768) पर की गई थी। - -👋 Mentors होंगे [4ian](https://github.com/4ian) और [Blurymind](https://github.com/blurymind)। 4ian GDevelop का मूल लेखक है और Blurymind सॉफ्टवेयर में एक सक्रिय योगदानकर्ता है। [Forum](https://forum.gdevelop.io) या [the Discord](https://discord.gg/rjdYHvj) पर आपको समुदाय के अन्य सदस्यों से भी समर्थन मिलेगा! - -##मेरी दिलचस्पी है! हम कैसे शुरू करें? - -यदि आपके कोई प्रश्न हैं, तो बेझिझक 4ian पर पहुँचें (मेरे [GitHub](https://github.com/4ian) पेज पर ईमेल देखें, मुझे मंच पर डीएम भेजें या मुझे एक ट्वीट भेजें)। - -Google के डॉक्स सीजन पर [Technical Writer](https://developers.google.com/season-of-docs/docs/tech-writer-guide) के लिए पेज पढ़ें। अन्वेषण चरण के बाद, 28 मई को परिष्करण, आधिकारिक आवेदन जमा किए जा सकते हैं। - -GDevelop की मदद करने पर विचार करने के लिए धन्यवाद!❤️ - -## अक्सर पूछे जाने वाले प्रश्न - -**क्या मेरे लिए डॉक्स के Google सीजन में GDevelop में योगदान करना संभव है, यह देखते हुए कि मुझे कोडिंग या तकनीकी लेखन में कोई पूर्व अनुभव नहीं है, लेकिन अतीत में GDevelop का उपयोग किया है?** - -हाँ! आप आधिकारिक तौर पर परियोजना शुरू होने से पहले इसका इस्तेमाल करते हुए GDevelop से परिचित होंगे। अगस्त में इसके लिए विशेष रूप से एक अवधि है जिसे "सामुदायिक संबंध" कहा जाता है। - -**मुझे किसी परियोजना के लिए योगदान करने में अपनी रुचि कैसे व्यक्त करनी चाहिए और इसे किसके प्रति व्यक्त करना चाहिए?** - -एक आधिकारिक आवेदन जमा करें! यहां लिंक खोजें: https://developers.google.com/season-of-docs/docs/tech-writer-guide - -**प्रस्ताव में क्या होना चाहिए? प्रस्ताव का प्रारूप क्या है?** - -यहां पढ़ें गाइड: https://developers.google.com/season-of-docs/docs/tech-writer-application-ts - -* अपने अनुभव के बारे में थोड़ी जानकारी और आप कौन हैं। हमें बताएं कि क्या आपके पास **GDevelop** (मौजूदा ट्यूटोरियल, गेम, आदि ...) या ** गेम डेवलपमेंट ** के साथ सामान्य रूप से अनुभव है? -* आप क्या करना चाहते हैं, यह क्यों दिलचस्प है, आप क्या शामिल करेंगे, आदि का विवरण ... -* जीएसओडी के लिए GDevelop परियोजना निश्चित रूप से -* मानक-लंबाई -* होगी। -* कोई विशेष प्रारूप नहीं - आप तकनीकी लेखक हैं, इसलिए आपके लिए यह तय करना है कि सबसे अच्छा क्या है :) - -**क्या मुझे दी गई सहायता से परियोजना के बजाय प्रलेखन की दिशा में योगदान होगा?** - -बिल्कुल, प्रलेखन GDevelop के लिए महत्वपूर्ण है, इसलिए सॉफ्टवेयर के लेखक / अनुचर आपको समर्थन करने में सक्षम होंगे और मदद करने के लिए तकनीकी लेखक के साथ नियमित रूप से संवाद करेंगे। - -**कितने तकनीकी लेखक भाग ले पाएंगे?** - -दुर्भाग्य से, केवल 1. ध्यान दें कि ट्यूटोरियल में भाग लेना और प्रलेखन पहले से ही संभव है! यदि आप विकी पर एक खाता बनाते हैं, तो आप उन्हें सुधारने या ट्यूटोरियल के लिए नए पृष्ठ बनाने के लिए मौजूदा पृष्ठों को संपादित कर सकते हैं। - -**GDevelop को क्या चाहिए?** - -लोगों के लिए विभिन्न खेल बनाने के लिए अधिक प्रलेखन और ट्यूटोरियल, मुख्य रूप से :) विचारों की सूची देखें। सबसे अच्छी बात यह है कि लोग क्या पूछ रहे हैं यह देखने के लिए मंच को ब्राउज़ करें। मंच उन मुख्य मुद्दों पर प्रकाश डालता है जिनका सामना उपयोगकर्ता करते हैं। - -नए उपयोगकर्ताओं के लिए चरण-दर-चरण ट्यूटोरियल सबसे उपयोगी लगता है। - -**तकनीकी लेखकों के लिए आप कौन से विशिष्ट कौशल खोज रहे हैं?** - -प्रोग्रामिंग कौशल की आवश्यकता नहीं है, लेकिन ये होना अच्छा होगा: - -* गलतियों के बिना एक पठनीय तरीके से अंग्रेजी लिखने की क्षमता -* खेल निर्माण कौशल (GDevelop के साथ या बिना) - उदाहरण के लिए एक नया, दिलचस्प ट्यूटोरियल बनाने के लिए महत्वपूर्ण होगा। -* GDevelop का उपयोग करने की क्षमता -* खेल बनाने वाले समुदाय के साथ अच्छी बातचीत (GDevelop या व्यापक खेल विकास समुदाय) - -**क्या आप मुझे उस दिशा में मार्गदर्शन कर सकते हैं, जिसे मुझे प्रस्ताव में शामिल करना चाहिए?** - -नहीं :) एक तकनीकी लेखक के रूप में, यह आपके ऊपर है कि आप अपने मन को GDevelop पारिस्थितिकी तंत्र और मौजूदा प्रलेखन के आसपास बनायें, और, परियोजना के विचारों (या अपने स्वयं के विचारों) के अनुसार, यह वर्णन करें कि आपको क्या करना सबसे अच्छा लगता है। 👍 \ No newline at end of file diff --git a/docs/hi/gdevelop5/getting_started.md b/docs/hi/gdevelop5/getting_started.md deleted file mode 100644 index 8a08e18222..0000000000 --- a/docs/hi/gdevelop5/getting_started.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: getting_started ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -#शुरू करना - -GDevelop is a free, open-source, and cross-platform game creation tool that anyone can use to create games *without* programming skills. - -This guide explains how to get up and running with GDevelop. - -## Step 1: Install GDevelop - -GDevelop is available for all major operating systems, including the latest versions of Windows, macOS, and Linux. To download GDevelop, visit \[gdevelop.io/download\](). - -The installation instructions depend on the operating system. - -* **Windows**: double-click the executable. This installs GDevelop, launches the app, and adds an icon to the Desktop. * **macOS**: - -1. Open the DMG file. -2. Drag "GDevelop.app" into the "~/Applications" directory. - -* **Linux**: - -1. Open a terminal. -2. Make the AppImage file executable by typing `chmod a+x GDevelop*.AppImage`. -3. Run it: `./GDevelop*.AppImage` (or double click on the file). - -!!! note - - There's an online version of GDevelop available at \[editor.gdevelop.io\](). In general though, we recommend using the desktop version. - -## Step 2: Create a new project - -1\. Launch GDevelop. 2. Click **Create a new project**. 3. Choose a location for the project. 4. Select one of the projects from the **Starters** tab, such as **Platformer** or **8-bit Space Shooter**, or start a game from scratch by selecting the **Empty** project. - -![](/gdevelop5/getting-started-create-new-project.jpg) - -The projects in the **Starters** tab demonstrate how to create entire games, while the projects in the **Examples** tab demonstrate how to create specific features. - -## Step 3: Preview the game - -If a project has at least one scene, which all of the starter projects do, a **Preview** button is available via the toolbar. This button launches a preview of the game. - -![](/gdevelop5/getting-started-preview-button.jpg) - -## Next step - -Read the [Platformer Tutorial](/gdevelop5/tutorials/platformer/start). You'll learn how to create a platforming game from absolute scratch and discover many of GDevelop's fundamental concepts, such as objects, events, and expressions. diff --git a/docs/hi/gdevelop5/index.md b/docs/hi/gdevelop5/index.md deleted file mode 100644 index fa26925b29..0000000000 --- a/docs/hi/gdevelop5/index.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 प्रलेखन - -GDevelop एक मुफ़्त, ओपन-सोर्स और क्रॉस-प्लेटफ़ॉर्म गेम निर्माण उपकरण है जिसका उपयोग कोई भी प्रोग्रामिंग कौशल के बिना गेम बनाने के लिए कर सकता है। इस प्रलेखन में वह सब कुछ है जो आपको GDevelop के साथ गेम बनाने के लिए जानना होगा - भले ही आपने पहले कभी गेम नहीं बनाया हो। - -![](/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - -# अगला कदम - -* यदि आपने GDevelop को इंस्टॉल नहीं किया है, तो [शुरू करना की मार्गदर्शक](/gdevelop5/getting_started) पढ़ें। -* यदि आपने पहले कभी गेम नहीं बनाया है, तो [बेसिक गेम मेकिंग कॉन्सेप्ट की मार्गदर्शक](/gdevelop5/tutorials/basic-game-making-concepts) पढ़ें। -* यदि आप एक गेम बनाना शुरू करने के लिए तैयार हैं, तो [ट्यूटोरियल खोज करें](/gdevelop5/tutorials) खोज करें diff --git a/docs/hi/gdevelop5/interface.md b/docs/hi/gdevelop5/interface.md deleted file mode 100644 index b6ef9a8848..0000000000 --- a/docs/hi/gdevelop5/interface.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: interface ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# GDevelop interface - -The working interface of GDevelop is based around editors that are displayed in tabs. These editors allow you to change different parts of your game. - -![20200509-231255.png](/gdevelop5/interface/pasted/20200509-231255.png) - -## Start Page - -The Start Page is displayed when you first launch GDevelop. It is here that you create your projects, load previously saved projects, or load tutorials. - -![](/gdevelop5/gdevelopstart.png) - -At the startup, GDevelop will check for new updates. If a new update is available, the update will automatically be downloaded (unless deactivated in preferences). - -You can see [the progress by clicking on About GDevelop](/gdevelop5/interface/updates). - -## Project Manager - -When a project is opened, you can click on the top-left button to access to the project manager. ![](/gdevelop5/project-manager-button.png) - -The project manager shows the structure of your game: - -![](/gdevelop5/interface/pasted/20200406-000213.png) - -Using the project manager, you can add new elements to your game and open editors. Learn more about [the content of the project manager here](/gdevelop5/interface/project-manager). - -## Scene editor - -When opening a scene (or an external layout), a scene editor opens. This is where you can design and build your game levels and menus by creating and adding objects to the scene. The first scene in list is the first scene loaded when game is launched. - -[Learn more about using scene editors](/gdevelop5/interface/scene-editor). - -## Events editor - -When opening a scene (or when opening external events), an events editor is also opened. This is where you can use the events to create the actual gameplay and allow players to interact with your game and play it. The events editor is a tool that allow you to visually program your game without any specific programming knowledge or experience. - -Learn more about [its usage on this page](/gdevelop5/interface/events-editor) or check [the help about events](/gdevelop5/events). - -## Top menus - -The menu at the top of the screen (only on the desktop version) allows you to open, save, and [publish a game](/gdevelop5/publishing). They are located in the Project Manager on the web version. - -You can also open GDevelop preferences or see [the profile associated with your GDevelop account](/gdevelop5/interface/profile). - -## Interface Themes - -You can choose a different theme for the interface, according to your taste. To change the theme, navigate to **File**-\>**Preferences**. - -See, [preferences](/gdevelop5/preferences) - -You can also create themes of your own to use and share. Learn more about creating a theme [here](/gdevelop5/all-features/themes). diff --git a/docs/hi/gdevelop5/tutorials.md b/docs/hi/gdevelop5/tutorials.md deleted file mode 100644 index fbeb63244f..0000000000 --- a/docs/hi/gdevelop5/tutorials.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: GDevelop 5 ट्यूटोरियल ---- -# GDevelop 5 ट्यूटोरियल - -ये ट्यूटोरियल स्टेप बाई स्टेप गाइड हैं जो बताते हैं कि स्क्रैच से गेम कैसे बनाया जाता है: - -!!! tip - - यदि आप पहली बार GDevelop का उपयोग कर रहे हैं, तो इन ट्यूटोरियल के साथ शुरू करने की सिफारिश की जाती है - - * **[बुनियादी गेम बनाने की अवधारणाएं: आपको GDevelop के साथ शुरू करने के लिए क्या जानने की आवश्यकता है](/gdevelop5/tutorials/basic-game-making-concepts)** - * **[एक मंच खेल बनाएँ](/gdevelop5/tutorials/platformer)** - * **[ज्यामिति दानव: एक पूर्ण, सरल मोबाइल गेम](/gdevelop5/tutorials/geometry-monster)** - -सामुदायिक ट्यूटोरियल: - - * [एक साधारण टैंक शूटर खेल बनाएँ](/gdevelop5/tutorials/tank-shooter) - * [एक सरल अंतहीन धावक खेल बनाएँ](/gdevelop5/tutorials/endless-runner) - * [एक साधारण ब्रेकआउट गेम बनाएं](/gdevelop5/tutorials/roadrider) - ----- - -# GDevelop लघु गाइड ("कैसे करें") -निम्नलिखित गाइड GDevelop के कुछ भागों के लिए स्पष्टीकरण प्रदान करते हैं। वे आपको अपने गेम डिजाइन करने के लिए कुछ उन्नत मैकेनिक्स भी दिखाते हैं: - - * [अपने गेम में ऑब्जेक्ट्स को कैसे स्थानांतरित करें (सभी अलग-अलग समाधान)](/gdevelop5/tutorials/how-to-move-objects) - * [कैसे एक प्लेटफ़ॉर्मर खेल में एक चरित्र के कूद और गिरावट चेतन करने के लिए](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) - * [अपने खेल में एक बड़ी पृष्ठभूमि कैसे प्रदर्शित करें](/gdevelop5/tutorials/how-to-display-big-background) - * [कैसे खराब खेल प्रदर्शन को डीबग करें](/gdevelop5/tutorials/how-to-debug-poor-performance) - * [भंडारण कार्रवाई की व्याख्या की](/gdevelop5/tutorials/storage-action-explained) - * [अपने खेल के आकार को कैसे कम करें](/gdevelop5/tutorials/reduce-size-game) - * [जटिल तर्क को कैसे संभालना है - परिमित राज्य मशीन (FSM)](/gdevelop5/tutorials/finite_state_machine) - * [एक टीम के रूप में GDevelop का उपयोग कैसे करें (कई डेवलपर्स और टीम के साथी)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team) - ----- - -# अन्य गाइड -नीचे दिए गए गाइड गेम के विकास संबंधी स्पष्टीकरण प्रदान करते हैं। वे GDevelop के लिए विशिष्ट नहीं हैं। - - * [अपने खेल को itch.io पर प्रकाशित करें](/gdevelop5/publishing/publishing-to-itch-io) - * [अपने गेम को अमेज़न ऐप स्टोर पर प्रकाशित करें](/gdevelop5/publishing/publishing-to-amazon-app-store) - * [आपका गेम टू गेम जोल्ट प्रकाशित करना](/gdevelop5/publishing/publishing-to-gamejolt-store) - * [अपने खेल को Kongregate के लिए प्रकाशित करना](/gdevelop5/publishing/publishing-to-kongregate-store) - ----- - -# GDevelop वीडियो ट्यूटोरियल - - * देखें [समुदाय निर्मित वीडियो ट्यूटोरियल की सूची](/gdevelop5/tutorials/videos) - - ----- - -# साधन -3 पार्टी वेबसाइटों के लिंक जहां आप खेल के विकास में मदद करने के लिए अपने खेल और खेल उदाहरणों, टेम्पलेट्स और सॉफ्टवेयर के लिए स्प्राइट, संगीत और ध्वनि प्रभाव पा सकते हैं। - - * [संसाधनों की सूची](/gdevelop5/tutorials/resources) \ No newline at end of file diff --git a/docs/index.md b/docs/index.md index 090d60886a..39863d9749 100644 --- a/docs/index.md +++ b/docs/index.md @@ -1,20 +1,20 @@ --- title: GDevelop documentation hide: - - navigation - - toc - - footer + - navigation + - toc + - footer + - feedback --- # GDevelop documentation: guides, tutorials and help You can find here the full documentation for GDevelop: guides, tutorials and help about using the app, as well as the reference of its features. - [Open the documentation](gdevelop5/index.md){ .md-button .md-button--primary .full-width } [Download or try GDevelop](https://gdevelop.io/download){ .md-button .full-width } [Get started with GDevelop](gdevelop5/getting_started/index.md){ .md-button .full-width } -[Basic game making concepts](gdevelop5/tutorials/basic-game-making-concepts.md){ .md-button .full-width } \ No newline at end of file +[Basic game making concepts](gdevelop5/tutorials/basic-game-making-concepts/index.md){ .md-button .full-width } diff --git a/docs/ja/gdevelop5/all-features/advanced-conditions.md b/docs/ja/gdevelop5/all-features/advanced-conditions.md deleted file mode 100644 index 1753648877..0000000000 --- a/docs/ja/gdevelop5/all-features/advanced-conditions.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: 高度な条件 ---- -# 高度な条件 - -## かつ(And)論理操作 -![](/gdevelop5/all-features/and.png) - -イベントで「**かつ**」条件を使用すると、すべての副条件が真である場合のみ、アクションを実行します。もし一つでも副条件が偽だったら、アクションは実行されません。 -!!! note - - 「**かつ**」条件はふつう、「**または**」条件の内部で使われます。同じイベントボックス内に 2 つの条件を並べると、それだけで「**かつ**」条件を使ったのと同じ意味になるため、「かつ」条件単独でわざわざ使うことは、あまりありません。 - - - -## または(Or)論理操作 -![](/gdevelop5/all-features/or-condition.png) - -イベントで「**または**」条件を使用すると、一つでも副条件が真であれば、アクションを実行します。もし真になる副条件が一つもなければ、アクションは実行されません。 - -!!! warning - - 「または」条件は、[GDevelop のオブジェクトフィルタリングロジック](http://wiki.compilgames.net/doku.php/ja/gdevelop5/tutorials/basic-game-making-concepts#イベントとそれがいかにしてオブジェクトを選択するか)に関して特殊な振る舞いをします。条件判定の対象になったオブジェクトは、条件に合致しない場合は_選択されません_。そのため、これらのオブジェクトを対象にしたアクションは動作しないことがあります。状況によっては、「すべてのインスタンスを選択する」アクションを併用することで問題が解決するかもしれません。そうでなければ、「または」条件を置き換える必要があります。 - -## ではない(Not)論理操作 -![](/gdevelop5/all-features/not-condition.png) - -イベントで「**ではない**」条件を使用すると、副条件の結果を反転した結果を返します。副条件が真であれば偽を返し、副条件が偽であれば真を返します。 - -## 一度だけ実行する -![](/gdevelop5/all-features/trigger-once-condition.png) - -「**真のあいだ一度だけ実行する**」条件を使用すると、条件が真になっているあいだ、そのイベントのアクションを一度だけ実行します。たとえばキーが押された時に一回だけ何かしたいが、キーが連続何フレームに渡って押され続けるか予測できない(1 フレームだけしか押されないとは言い切れない)というような場合に使います。 - -!!! warning - - この条件はオブジェクトに適用されます。インスタンスには適用されません。個々のインスタンスについて一度だけトリガーさせる必要がある場合は、代わりにインスタンス変数を使ってください。 - -## 二つの数値を比べる -![](/gdevelop5/all-features/compare-two-numbers-condition.png) - -**二つの数値を比べる**条件は、2 つの数値/式をテスト記号に基づいて比較します。テストをパスした場合は、条件が真を返し、対応するアクションが実行されます。 - -たとえば最初の数値が 5 でテスト記号が「<(未満)」、2 番目の数値に 7 が入力されたとします。この場合、5 は 7 未満なので条件は真を返します。 - -## 二つの文字列を比べる -![](/gdevelop5/all-features/compare-two-strings-condition.png) - -**二つの文字列を比べる**条件は、2 つの文字列/式をテスト記号に基づいて比較します。テストをパスした場合は、条件が真を返し、対応するアクションが実行されます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/audio.md b/docs/ja/gdevelop5/all-features/audio.md deleted file mode 100644 index 3b97625c20..0000000000 --- a/docs/ja/gdevelop5/all-features/audio.md +++ /dev/null @@ -1,64 +0,0 @@ ---- -title: オーディオ ---- -# オーディオ - -音楽やサウンドの再生は、どんなゲームでも欠かせない要素です。GDevelop には音楽ファイルの再生に関連する条件とアクションが用意されています。 - -## サウンドや音楽ファイルを再生する - -!!! warning - - サウンドや音楽ファイルを再生する前に、プレイヤーがゲームを操作する必要があります(オーディオのアンロックは、ただ画面をクリック/タッチするだけで十分です)。これはブラウザーの制限事項で、回避策はありません。最終的に公開するゲームでは、最初のシーンに「続けるには何かキーを押すか画面をタッチしてください」というメッセージを表示することをお勧めします。 - -音楽ファイルを再生する一番簡単な方法は、「**サウンドを再生する**」や「**音楽ファイルを再生する**」アクションを実行することです。 -どちらのアクションも最初のパラメーターに再生したいファイルを指定します。 - -サウンドと音楽の違いはもっぱらその長さと容量の大きさに起因していて、音楽の方がふつう時間が長くサイズの大きいファイルになります。サウンドはたいていの場合、数秒ていどの長さです。GDevelop で推奨している音楽ファイルのフォーマットは次の通りです。 - -* サウンドには `wav` -* 音楽には `mp3` - -ゲームを Web で公開するなら、ブラウザーによっては他のファイルフォーマットを使える場合があります。たとえば `ogg` です。`ogg` は音楽用の `mp3` に代わる優れた代替フォーマットです。残念ながら、すべてのブラウザーがこれに対応しているわけではありません。くわしくは [Wikipedia](https://en.wikipedia.org/wiki/HTML5_audio#Supported_audio_coding_formats) を参照してください。 - -!!! note - - 音楽ファイルを選択すると、それはゲーム起動時に読み込むためにゲームのリソースに追加されます。 - ゲームのサイズを軽くするためには、ゲームで使用しなくなった音楽ファイルを削除するようにしてください。 - - -## シーンの切り替え時に音楽やサウンドを再生し続ける - -新しいシーンの開始時には、デフォルトで音楽とサウンドが停止します。途切れずに再生を続けたい場合は、シーンのプロパティを開き(シーンエディターでシーンを右クリック)、次のチェックボックスのチェックを外してください。 -![](/gdevelop5/all-features/scene_properties.png) - - - -## チャンネルを使用する - -「**サウンドを再生する**」や「**音楽ファイルを再生する**」アクションを実行すると、音楽ファイルがすぐに再生されます。再生を完了すると、メモリーから削除されます。ただしリピート再生した場合は別です。音楽ファイルをリピート再生すると、それは永遠に流れ続けます(エンドレスループ)。音楽やサウンドを止めるには、そのためのアクションが必要です。 - -より細かい制御が必要な場合は、「**チャンネルでサウンドを再生する**」や「**チャンネルで音楽ファイルを再生する**」アクションを使ってください。このアクションは先ほどと同じ使い方ですが、一点だけチャンネル識別子に番号を指定するという違いがあります。チャンネル識別子は後ほど、他のアクションや条件で再利用します。「チャンネル識別子」は、サウンドがチャンネルで再生中かどうかをチェックしたり、再生中の音楽の何かのプロパティを変更するのに使われます。これを使うと、たとえばプレイヤーの近くに敵がいるかどうかに応じて、音楽の音量を動的に変更することが可能になります。 - -## 音量 - -サウンドと音楽はデフォルトで音量 100% で再生されます。これは最大音量です。サウンドや音楽を開始するときに、その音量を指定することができます(0~100)。 - -また「ゲームグローバル音量」アクションを使ってゲーム全体のオーディオ音量を変更できます。値 0 は無音で、サウンドや音楽が何も聞こえない状態を指します。このアクションはプレイヤーにミュートを許可したり、ゲームの音量を調整させるのに便利です。たとえばゲームの設定画面を用意して、そこでゲームの音量を設定項目として提示することができます。またモバイルゲームではゲームサウンドをミュートするためのボタンが用意されていることがよくあります。 - -## パフォーマンスに関する留意事項 - -音楽やサウンドの初回再生時は、ファイルを読み込むためのタイムラグが発生します。この遅延を避けることが必須の場合は、それを使用するシーンの開始時に音楽やサウンドを再生してしまいましょう。ただし音量は 0 にします。これによって、音楽やサウンドの読み込みが強制されます。そしてオーディオデータがメモリー上にキャッシュされます。その後、関連アクションを実行したときにはすぐに反応するでしょう。 - -## サウンド/音楽の状態に関する詳細 - -**チャンネルでサウンド/音楽ファイルを再生する**アクションを実行すると、まだメモリーに**読み込んでいる途中**であったとしても、**「再生中」** という状態が設定されます。 - -そのため(チャンネルの)「サウンドは再生中である」条件はこの時点で真になります。(チャンネルの)「サウンドは停止している」条件は偽で、(同じくチャンネルの)「サウンドは一時停止している」条件も偽です。 -サウンドの読み込みが完了すると、デバイス上で実際の再生が開始されます(音が聞こえるようになります)。 - -サウンドは次のいずれかのときに停止します。 - -* **最後**まで再生し終わって、リピート再生が設定されていない -* **読み込み時にエラーが発生した**(数ミリ秒のあいだ再生してから、その後で読み込みできないために停止したものと見なされる) -* **アクション**を実行して、チャンネル内のサウンドか音楽を停止した \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/common-conversions.md b/docs/ja/gdevelop5/all-features/common-conversions.md deleted file mode 100644 index 1a71dc16f4..0000000000 --- a/docs/ja/gdevelop5/all-features/common-conversions.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 一般的な変換 ---- -# 一般的な変換 - -このカテゴリーは、角度の変換や数値とテキストの相互変換をサポートします。 - -## 角度の変換 - -角度は度とラジアンのどちらの単位でも表現できます。円の角度は 360 度または 2π ラジアンと形容されます。同様に、半円は 180 度または π ラジアンと形容されます。 - -数式の中で `ToRad` か `ToDeg` を使うと、ラジアンと度をお互いに変換できます。 - -![](/wiki/pres_coord2.png) - -## 数値とテキストの相互変換 - -文字列フィールドにはテキストのみを入力できます。同様に、数値フィールドには数値のみを入力できます。 - -数式中に文字列を入力するには、「テキスト→数値」式で文字列を数値に変換する必要があります。もし文字列中に数字以外の文字が含まれていた場合、式は非数を表す「NaN」(Not a Number)を返します。 - -逆に文字列式中に数値を入力するには、「数値→テキスト」式で数値を文字列に変換する必要があります。このとき数値が 1e+21 以上であれば、式は科学表記(指数表記)の値を返します。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/expressions-reference.md b/docs/ja/gdevelop5/all-features/expressions-reference.md deleted file mode 100644 index 0f7b971678..0000000000 --- a/docs/ja/gdevelop5/all-features/expressions-reference.md +++ /dev/null @@ -1,1096 +0,0 @@ ---- -title: 式リファレンス ---- -# 式リファレンス - -次の 2 つのボタンのどちらかが脇に表示されているフィールドには、式を入力できます。 - -![](/gdevelop5/field_expressions.png) - - * 左のボタンは「文字列式」(テキスト)を表します - * 右のボタンは「数式」(数値)を表します - -このページは GDevelop で利用できるすべての式を、それが属する拡張機能や -オブジェクト、ビヘイビア別に分類したリファレンスです。`Object` と表記されている部分は、実際のオブジェクト名を入力する場所です。**[式の書き方についての詳細は、こちらを参照してください。](/ja/gdevelop5/all-features/expressions)** - -!!! note - - 式は、数学と同じように関数と呼ばれるときもあります。 - -## すべてのオブジェクト向け機能 - -GDevelop の全オブジェクト共通の機能です。[くわしい説明を読む](/ja/gdevelop5/objects) - -| 式 | 説明 || -|----|-----|----| -| `Count(object)` | イベントで現在選択されている指定オブジェクトの個数 || -|| _object_ | オブジェクト | - -| 式 | 説明 || -|----|-----|----| -| `Object.Angle()` | オブジェクトの現在の角度(度) || -| `Object.AngleToObject(object)` | 2 オブジェクト間の角度を計算する。もし任意の位置に対する角度を調べたい場合は、AngleToPosition を使ってください。| | -|| _object_ | オブジェクト | -| `Object.AngleToPosition(number, number)` | オブジェクトの中心と対象位置のあいだの角度を計算する。もし 2 オブジェクト間の角度を調べたい場合は、AngleToObject を使ってください。|| -|| _number_ | 対象の X 位置 | -|| _number_ | 対象の Y 位置 | -| `Object.Distance(object)` | 2 つのオブジェクト間の距離 || -|| _object_ | オブジェクト | -| `Object.DistanceToPosition(number, number)` | オブジェクトと対象位置のあいだの距離 || -|| _number_ | 対象の X 位置 | -|| _number_ | 対象の Y 位置 | -| `Object.ForceAngle()` | フォースの平均角度 || -| `Object.ForceLength()` | フォースの平均長さ(大きさ) || -| `Object.ForceX()` | フォースの平均 X 座標 || -| `Object.ForceY()` | フォースの平均 Y 座標 || -| `Object.Height()` | オブジェクトの高さ || -| `Object.Layer()` | オブジェクトが属しているレイヤー名を返す || -| `Object.ObjectName()` | オブジェクト名を返す || -| `Object.ObjectTimerElapsedTime(string)` | タイマーの値 || -|| _string_ | タイマーの名称 | -| `Object.SqDistance(object)` | 2 つのオブジェクト間の 2 乗距離 || -|| _object_ | オブジェクト | -| `Object.SqDistanceToPosition(number, number)` | Square distance between an object and a position || -|| _number_ | 対象の X 位置 | -|| _number_ | 対象の Y 位置 | -| `Object.Variable(objectvar)` | オブジェクトの変数 || -|| _objectvar_ | 変数 | -| `Object.VariableChildCount(objectvar)` | オブジェクトから子要素の数を取得する || -|| _objectvar_ | 変数 | -| `Object.VariableString(objectvar)` | オブジェクトの変数のテキスト || -|| _objectvar_ | 変数 | -| `Object.Width()` | オブジェクトの幅 || -| `Object.X()` | オブジェクトの X 位置 || -| `Object.Y()` | オブジェクトの Y 位置 || -| `Object.ZOrder()` | オブジェクトの Z オーダー || - ---- - - - -## スプライト - -ゲームのほとんどの要素に使用できるアニメーション対応オブジェクトです。[くわしい説明を読む](/ja/gdevelop5/objects/sprite) - -| 式 | 説明 || -|----|-----|----| -| `Object.Animation()` | オブジェクトのアニメーション || -| `Object.AnimationName()` | オブジェクトのアニメーション名 || -| `Object.AnimationSpeedScale()` | アニメーションの速度スケール || -| `Object.Direction()` | オブジェクトの方向 || -| `Object.Opacity()` | 不透明度 || -| `Object.PointX(string)` | ポイントの X 位置 || -|| _string_ | ポイントの名前 | -| `Object.PointY(string)` | ポイントの Y 位置 || -|| _string_ | ポイントの名前 | -| `Object.ScaleX()` | オブジェクトの幅スケール || -| `Object.ScaleY()` | オブジェクトの高さスケール || -| `Object.Sprite()` | オブジェクトのアニメーションフレーム || - ---- - - -## 標準的な変換 - -数値、テキスト、単位量へ変換する式です。[くわしい説明を読む](/ja/gdevelop5/all-features/common-conversions) - -| 式 | 説明 || -|----|-----|----| -| `LargeNumberToString(number)` | 科学的表記を使わずに式の結果をテキストに変換する || -|| _number_ | テキストに変換される式 | -| `ToDeg(number)` | ラジアンで表現された角度を度に変換する || -|| _number_ | ラジアン表記の角度 | -| `ToNumber(string)` | テキストを数値に変換する || -|| _string_ | 数値に変換するテキスト | -| `ToRad(number)` | 度で表現された角度をラジアンに変換する || -|| _number_ | 度表記の角度 | -| `ToString(number)` | 式の結果をテキストに変換する || -|| _number_ | テキストに変換される式 | - ---- - - -## 変数機能 - -変数を処理するアクション、条件、式です。プレイヤーのスコアや残ライフ数といった単純な変数から、インベントリや Web リクエストの結果のような任意データを含む複雑な変数まで、幅広く取り扱います。[くわしい説明を読む](/ja/gdevelop5/all-features/variables) - -| 式 | 説明 || -|----|-----|----| -| `GlobalVariable(globalvar)` | グローバル変数の数値 || -|| _globalvar_ | グローバル変数の名前 | -| `GlobalVariableChildCount(globalvar)` | グローバル変数の子要素の数を取得する || -|| _globalvar_ | 変数 | -| `GlobalVariableString(globalvar)` | グローバル変数のテキスト || -|| _globalvar_ | 変数 | -| `Variable(scenevar)` | シーン変数の数値 || -|| _scenevar_ | 変数 | -| `VariableChildCount(scenevar)` | シーン変数の子要素の数を取得する || -|| _scenevar_ | 変数 | -| `VariableString(scenevar)` | シーン変数のテキスト || -|| _scenevar_ | 変数 | - ---- - - -## マウスとタッチ - -マウスとタッチスクリーン上のタッチの両方を処理する条件とアクションです。マウス関連の条件は、デフォルトでタッチにも反応するように設定されています。これはゲームで両方に対応するのを簡単にするための措置ですが、マウスとタッチを個別のイベントで処理したい場合は、その設定を無効にもできます。[くわしい説明を読む](/ja/gdevelop5/all-features/mouse-touch) - -| 式 | 説明 || -|----|-----|----| -| `LastEndedTouchId()` | 最後に終わったタッチの識別子 || -| `LastTouchId()` | 最終タッチの識別子 || -| `MouseWheelDelta()` | スクロールホイールによる変位 || -| `MouseX(layer, camera)` | カーソル X 位置 || -|| _layer_ | レイヤ― _省略可_| -|| _camera_ | カメラ _省略可_| -| `MouseY(layer, camera)` | カーソル Y 位置 || -|| _layer_ | レイヤ― _省略可_| -|| _camera_ | カメラ _省略可_| -| `TouchX(number, layer, camera)` | タッチ X 位置 || -|| _number_ | タッチ識別子 | -|| _layer_ | レイヤ― _省略可_| -|| _camera_ | カメラ _省略可_| -| `TouchY(number, layer, camera)` | タッチ Y 位置 || -|| _number_ | タッチ識別子 | -|| _layer_ | レイヤ― _省略可_| -|| _camera_ | カメラ _省略可_| - ---- - - -## キーボード機能 - -ゲームをキーボード入力に対応させます。タッチスクリーンのオンスクリーンキーボードには対応していません。モバイル/タッチスクリーンデバイス用のゲームの場合は、代わりにタッチ関連の条件を使ってください。[くわしい説明を読む](/ja/gdevelop5/all-features/keyboard) - -| 式 | 説明 || -|----|-----|----| -| `LastPressedKey()` | キーボードの最後に押されたキー名を取得する || - ---- - - -## シーンマネジメント機能 - -ゲーム中にシーンを操作するためのアクションと条件です。 - -| 式 | 説明 || -|----|-----|----| -| `CurrentSceneName()` | 現在のシーン名 || -| `Random(number)` | ランダムな整数 || -|| _number_ | 最大値 | -| `RandomFloat(number)` | ランダムな浮動小数点数 || -|| _number_ | 最大値 | -| `RandomFloatInRange(number, number)` | 指定範囲内でランダムな浮動小数点数 || -|| _number_ | 最小値 | -|| _number_ | 最大値 | -| `RandomInRange(number, number)` | 指定範囲内でランダムな整数 || -|| _number_ | 最小値 | -|| _number_ | 最大値 | -| `RandomWithStep(number, number, number)` | ステップ値刻みのランダム値 || -|| _number_ | 最小値 | -|| _number_ | 最大値 | -|| _number_ | ステップ値 | - ---- - - -## 時間 - -タイマーの実行や現在時刻の取得、タイムスケールの変更(ゲーム実行速度に影響し、スローモーションエフェクトに有用)を行うアクションと条件です。[くわしい説明を読む](/ja/gdevelop5/all-features/timers) - -| 式 | 説明 || -|----|-----|----| -| `Time(string)` | 現在の時間 || -|| _string_ | 時間:hour - 分:min - 秒: sec - 月間通算日(1日=1):mday - 月(1月=0):mon - 1900年からの経過年数:year - 日曜日からの経過日数(日曜=0):wday - 年間通算日(1月1日=1):yday - タイムスタンプ(ms):timestamp | -| `TimeDelta()` | 前のフレームが画面にレンダーされてからの経過時間 || -| `TimeFromStart()` | シーンの最初からの経過時間 || -| `TimerElapsedTime(string)` | シーンタイマーの値 || -|| _string_ | タイマーの名称 | - ---- - - -## 数学的ツール - -式で使用する数学関数のセットです。 - -| 式 | 説明 || -|----|-----|----| -| `AngleBetweenPositions(number, number, number, number)` | 2 点間の角度を計算する。|| -|| _number_ | 最初の点の X 位置 | -|| _number_ | 最初の点の Y 位置 | -|| _number_ | 2 番目の点の X 位置 | -|| _number_ | 2 番目の点の Y 位置 | -| `AngleDifference(number, number)` | 二つの角度間の差 || -|| _number_ | 最初の角度 | -|| _number_ | 2 番目の角度 | -| `DistanceBetweenPositions(number, number, number, number)` | 2 点間の距離を計算する。|| -|| _number_ | 最初の点の X 位置 | -|| _number_ | 最初の点の Y 位置 | -|| _number_ | 2 番目の点の X 位置 | -|| _number_ | 2 番目の点の Y 位置 | -| `abs(number)` | 絶対値 || -|| _number_ | 式 | -| `acos(number)` | アークコサイン(逆余弦) || -|| _number_ | 式 | -| `acosh(number)` | ハイパーボリックアークコサイン(双曲線逆余弦) || -|| _number_ | 式 | -| `asin(number)` | アークサイン(逆正弦) || -|| _number_ | 式 | -| `asinh(number)` | ハイパーボリックアークサイン(双曲線逆正弦) || -|| _number_ | 式 | -| `atan(number)` | アークタンジェント(逆正接) || -|| _number_ | 式 | -| `atan2(number, number)` | 2 引数アークタンジェント(atan2) || -|| _number_ | Y | -|| _number_ | X | -| `atanh(number)` | ハイパーボリックアークタンジェント(双曲線逆正接) || -|| _number_ | 式 | -| `cbrt(number)` | 平方根 || -|| _number_ | 式 | -| `ceil(number)` | 値を整数に切り上げる || -|| _number_ | 式 | -| `clamp(number, number, number)` | 値を指定範囲に制限する || -|| _number_ | 値 | -|| _number_ | 最小値 | -|| _number_ | 最大値 | -| `cos(number)` | コサイン(余弦) || -|| _number_ | 式 | -| `cosh(number)` | ハイパーボリックコサイン(双曲線余弦) || -|| _number_ | 式 | -| `cot(number)` | コタンジェント(余接) || -|| _number_ | 式 | -| `csc(number)` | コセカント(余割) || -|| _number_ | 式 | -| `exp(number)` | 指数 || -|| _number_ | 式 | -| `floor(number)` | 値を整数に切り下げる || -|| _number_ | 式 | -| `lerp(number, number, number)` | a から b 間の x を線形補間する || -|| _number_ | (式 a+(b-a) * x における)a | -|| _number_ | (式 a+(b-a) * x における)b | -|| _number_ | (式 a+(b-a) * x における)x | -| `log(number)` | 対数 || -|| _number_ | 式 | -| `log10(number)` | 底 10 の対数 || -|| _number_ | 式 | -| `log2(number)` | 底 2 の対数 || -|| _number_ | 式 | -| `max(number, number)` | 2 つの数値の最大値 || -|| _number_ | 最初の式 | -|| _number_ | 2 番目の式 | -| `min(number, number)` | 2 つの数値の最小値 || -|| _number_ | 最初の式 | -|| _number_ | 2 番目の式 | -| `mod(number, number)` | 剰余(x mod y) || -|| _number_ | (x mod y における)x | -|| _number_ | (x mod y における)y | -| `normalize(number, number, number)` | 値を 0 から 1 のあいだで再配置する|| -|| _number_ | 値 | -|| _number_ | 最小値 | -|| _number_ | 最大値 | -| `nthroot(number, number)` | N 乗根(ルート) || -|| _number_ | 数値 | -|| _number_ | N | -| `pow(number, number)` | 指数 n で累乗(べき乗)する || -|| _number_ | 数値 | -|| _number_ | 指数(「x の n 乗」における n) | -| `round(number)` | 丸め(四捨五入) || -|| _number_ | 式 | -| `sec(number)` | セカント(正割) || -|| _number_ | 式 | -| `sign(number)` | 数値の符号(1、-1、0) || -|| _number_ | 式 | -| `sin(number)` | サイン(正弦) || -|| _number_ | 式 | -| `sinh(number)` | ハイパーボリックサイン(双曲線正弦) || -|| _number_ | 式 | -| `sqrt(number)` | 平方根 || -|| _number_ | 式 | -| `tan(number)` | タンジェント(正接) || -|| _number_ | 式 | -| `tanh(number)` | ハイパーボリックタンジェント(双曲線正接) || -|| _number_ | 式 | -| `trunc(number)` | 小数点以下を切り捨て || -|| _number_ | 式 | - ---- - - -## カメラとレイヤー機能 - -各シーンは複数のレイヤーで構成できます。これらの条件とアクションでゲーム中にレイヤーを操作できます。具体的には、レイヤーのカメラをあるオブジェクトの中心や指定位置に合わせることができます。[くわしい説明を読む](/ja/gdevelop5/interface/scene-editor/layers-and-cameras) - -| 式 | 説明 || -|----|-----|----| -| `CameraHeight(layer, number)` | レイヤーのカメラの高さ || -|| _layer_ | レイヤー | -|| _number_ | カメラ番号(デフォルト:0) | -| `CameraRotation(layer, number)` | レイヤーのカメラの角度 || -|| _layer_ | レイヤ― _省略可_| -|| _number_ | カメラ番号(デフォルト:0) _省略可_| -| `CameraWidth(layer, number)` | レイヤーのカメラの幅 || -|| _layer_ | レイヤー | -|| _number_ | カメラ番号(デフォルト:0) | -| `CameraX(layer, number)` | カメラ X 位置 || -|| _layer_ | レイヤ― _省略可_| -|| _number_ | カメラ番号(デフォルト:0) _省略可_| -| `CameraY(layer, number)` | カメラ Y 位置 || -|| _layer_ | レイヤ― _省略可_| -|| _number_ | カメラ番号(デフォルト:0) _省略可_| -| `CameraZoom(layer, number)` | レイヤーのカメラのズーム値 || -|| _layer_ | レイヤ― _省略可_| -|| _number_ | カメラ番号(デフォルト:0) _省略可_| -| `LayerDefaultZOrder(layer)` | レイヤーのデフォルト Z オーダー || -|| _layer_ | レイヤー | -| `LayerTimeScale(layer)` | タイムスケール || -|| _layer_ | レイヤー | - ---- - - -## オーディオ - -GDevelop はオーディオファイルを再生するための条件とアクションを提供しています。長い音楽と短い効果音の両方に使えます。[くわしい説明を読む](/ja/gdevelop5/all-features/audio) - -| 式 | 説明 || -|----|-----|----| -| `GlobalVolume()` | ゲームグローバルボリューム値 || -| `MusicChannelPitch(number)` | 音楽のピッチ || -|| _number_ | チャンネル | -| `MusicChannelPlayingOffset(number)` | 音楽再生位置 || -|| _number_ | チャンネル | -| `MusicChannelVolume(number)` | 音楽ボリューム || -|| _number_ | チャンネル | -| `SoundChannelPitch(number)` | サウンドのピッチ || -|| _number_ | チャンネル | -| `SoundChannelPlayingOffset(number)` | サウンド再生位置 || -|| _number_ | チャンネル | -| `SoundChannelVolume(number)` | サウンドボリューム || -|| _number_ | チャンネル | - ---- - - -## 基本的インターネット機能 - -Web リクエストの送信、外部「API」との通信、その他ネットワーク関連のタスクを処理する機能です。[くわしい説明を読む](/ja/gdevelop5/all-features/network) - -| 式 | 説明 || -|----|-----|----| -| `GlobalVarToJSON(globalvar)` | グローバル変数を JSON に変換する || -|| _globalvar_ | 文字列化するグローバル変数 | -| `ObjectVarToJSON(object, objectvar)` | オブジェクト変数を JSON に変換する || -|| _object_ | 変数を持つオブジェクト | -|| _objectvar_ | 文字列化するオブジェクト変数 | -| `ToJSON(scenevar)` | シーン変数を JSON に変換する || -|| _scenevar_ | 文字列化するシーン変数 | - ---- - - -## ウィンドウ機能 - -ゲームウィンドウを操作するアクションと条件です。ゲームを実行するプラットフォームによっては、一部の機能を利用できない場合があります。[くわしい説明を読む](/ja/gdevelop5/all-features/window) - -| 式 | 説明 || -|----|-----|----| -| `SceneWindowHeight()` | シーンウィンドウ(または HTML5 ゲームのシーンキャンバス)の高さ || -| `SceneWindowWidth()` | シーンウィンドウ(または HTML5 ゲームのシーンキャンバス)の幅 || -| `ScreenHeight()` | Height of the screen (or the page for HTML5 games in browser) || -| `ScreenWidth()` | 画面(またはブラウザー内の HTML5 ゲームのページ)の幅 || -| `WindowTitle()` | ウィンドウタイトル || - ---- - - -## テキスト操作 - -文字列(テキスト)操作関連の式を提供します。 - -| 式 | 説明 || -|----|-----|----| -| `FromCodePoint(number)` | コードポイントを文字に変換する || -|| _number_ | コードポイント | -| `NewLine()` | 改行を挿入する || -| `StrAt(string, number)` | 指定位置の文字を取得する || -|| _string_ | テキスト | -|| _number_ | 文字の位置(最初の文字は位置 0) | -| `StrFind(string, string)` | テキスト内検索(見つかった位置を返す、見つからなければ -1) || -|| _string_ | テキスト | -|| _string_ | 検索語句 | -| `StrFindFrom(string, string, number)` | 指定位置からテキスト内検索(見つかった位置を返す、見つからなければ -1) || -|| _string_ | テキスト | -|| _string_ | 検索語句 | -|| _number_ | 検索開始位置 | -| `StrFindLast(string, string)` | 末尾からテキスト内検索(見つかった語句の先頭位置を返す、見つからなければ -1) || -|| _string_ | テキスト | -|| _string_ | 検索語句 | -| `StrFindLastFrom(string, string, number)` | 末尾からテキスト内検索(見つかった語句の先頭位置が指定位置までのものを返す、見つからなければ -1)(訳注:指定位置は検索範囲の終点ではない点に注意) || -|| _string_ | テキスト | -|| _string_ | 検索語句 | -|| _number_ | 見つかった語句の先頭位置の上限 | -| `StrLength(string)` | テキストの長さ(文字数) || -|| _string_ | テキスト | -| `StrRepeat(string, number)` | テキストをリピートする || -|| _string_ | リピートするテキスト | -|| _number_ | リピート回数 | -| `SubStr(string, number, number)` | 部分文字列を取得する || -|| _string_ | テキスト | -|| _number_ | 部分文字列の開始位置(最初の文字は位置 0) | -|| _number_ | 部分文字列の長さ(文字数) | -| `ToLowerCase(string)` | テキストを小文字にする || -|| _string_ | テキスト | -| `ToUpperCase(string)` | テキストを大文字にする || -|| _string_ | テキスト | - ---- - - -## 高度な制御機能 - -イベントで使用する高度な制御機能です。 - -| 式 | 説明 || -|----|-----|----| -| `GetArgumentAsNumber(string)` | 関数パラメーター(引数とも呼ぶ)の値を取得する || -|| _string_ | パラメーター名 | -| `GetArgumentAsString(string)` | 関数パラメーター(引数とも呼ぶ)のテキストを取得する || -|| _string_ | パラメーター名 | - ---- - - - -## プラットフォーム(プラットフォームビヘイビア拡張機能より) - -プラットフォーマーキャラクターがその上を走れるプラットフォームです。[くわしい説明を読む](/ja/gdevelop5/behaviors/platformer) - -_このビヘイビアには式がありません。_ - - -## プラットフォーマーキャラクター(プラットフォームビヘイビア拡張機能より) - -プラットフォーム上をジャンプしたり走ったりできる操作可能なキャラクターです。[くわしい説明を読む](/ja/gdevelop5/behaviors/platformer) - -| 式 | 説明 || -|----|-----|----| -| `Object.PlatformerObject::Acceleration()` | 加速度 || -| `Object.PlatformerObject::CurrentFallSpeed()` | 現在の落下速度 || -| `Object.PlatformerObject::CurrentJumpSpeed()` | 現在のジャンプ速度 || -| `Object.PlatformerObject::CurrentSpeed()` | 現在の速度 || -| `Object.PlatformerObject::Deceleration()` | 減速度 || -| `Object.PlatformerObject::Gravity()` | オブジェクトに適用された重力を取得する || -| `Object.PlatformerObject::JumpSpeed()` | ジャンプ速度 || -| `Object.PlatformerObject::JumpSustainTime()` | ジャンプボタンを押し続けているあいだ、ジャンプの初速を持続できる時間です。|| -| `Object.PlatformerObject::LadderClimbingSpeed()` | はしごを登る速度を取得する || -| `Object.PlatformerObject::MaxFallingSpeed()` | 最大落下速度を取得する || -| `Object.PlatformerObject::MaxSpeed()` | 最大速度 || - ---- - - - -## 画面外に出たら破棄(画面外で破棄ビヘイビア拡張機能より) - -画面境界の外に出たらオブジェクトを自動的に破棄します。[くわしい説明を読む](/ja/gdevelop5/behaviors/destroyoutside) - -_このビヘイビアには式がありません。_ - - ---- - - - -## タイルスプライト(タイルスプライトオブジェクト拡張機能より) - -領域全体に画像を敷き並べて表示します。[くわしい説明を読む](/ja/gdevelop5/objects/tiled_sprite) - -| 式 | 説明 || -|----|-----|----| -| `Object.Opacity()` | 不透明度 || - ---- - - - -## ドラッグ対応オブジェクト(ドラッグ対応ビヘイビア拡張機能より) - -オブジェクトをマウス(またはタッチ)で動かせるようにします。[くわしい説明を読む](/ja/gdevelop5/behaviors/draggable) - -_このビヘイビアには式がありません。_ - - ---- - - - -## トップダウン移動(4 または 8 方向)(トップダウン移動拡張機能より) - -オブジェクトを上下左右に(オプションで斜めにも)移動できるようにします。[くわしい説明を読む](/ja/gdevelop5/behaviors/topdown) - -| 式 | 説明 || -|----|-----|----| -| `Object.TopDownMovement::Acceleration()` | オブジェクトの加速度 || -| `Object.TopDownMovement::Angle()` | 移動角度(度) || -| `Object.TopDownMovement::AngleOffset()` | オブジェクトに適用された回転オフセット(訳注:移動時にオブジェクトのどの側が進行方向を向くか) || -| `Object.TopDownMovement::AngularMaxSpeed()` | オブジェクトの最大角速度 || -| `Object.TopDownMovement::Deceleration()` | オブジェクトの減速度 || -| `Object.TopDownMovement::MaxSpeed()` | オブジェクトの最大速度 || -| `Object.TopDownMovement::Speed()` | オブジェクトの速度 || -| `Object.TopDownMovement::XVelocity()` | X 軸方向の移動速度 || -| `Object.TopDownMovement::YVelocity()` | Y 軸方向の移動速度 || - ---- - - - -## テキスト(テキストオブジェクト拡張機能より) - -テキストを画面に表示します。[くわしい説明を読む](/ja/gdevelop5/objects/text) - -| 式 | 説明 || -|----|-----|----| -| `Object.Angle()` | 角度 || -| `Object.Opacity()` | テキストオブジェクトの不透明度 || -| `Object.Padding()` | パディング || -| `Object.ScaleX()` | テキストオブジェクトの X スケール || -| `Object.ScaleY()` | テキストオブジェクトの Y スケール || -| `Object.String()` | テキスト || - ---- - - - -## パーティクルエミッター(パーティクルシステム拡張機能より) - -小さなパーティクルを大量に表示するビジュアルエフェクトです。[くわしい説明を読む](/ja/gdevelop5/objects/particles_emitter) - -| 式 | 説明 || -|----|-----|----| -| `Object.EmitterAngle()` | エミッション角度 || -| `Object.EmitterAngleA()` | エミッション角度 A || -| `Object.EmitterAngleB()` | エミッション角度 B || -| `Object.EmitterForceMax()` | 最大放出力 || -| `Object.EmitterForceMin()` | 最小放出力 || -| `Object.Flow()` | フロー || -| `Object.NbParticles()` | パーティクル数 || -| `Object.ParticleAlpha1()` | 透明度のパラメーター 1 || -| `Object.ParticleAlpha2()` | 透明度のパラメーター 2 || -| `Object.ParticleBlue1()` | 青色のパラメーター 1 || -| `Object.ParticleBlue2()` | 青色のパラメーター 2 || -| `Object.ParticleGravityAngle()` | 重力角度 || -| `Object.ParticleGravityLength()` | 重力値 || -| `Object.ParticleGravityX()` | パーティクルの X 重力 || -| `Object.ParticleGravityY()` | パーティクルの Y 重力 || -| `Object.ParticleGreen1()` | 緑色のパラメーター 1 || -| `Object.ParticleGreen2()` | 緑色のパラメーター 2 || -| `Object.ParticleLifeTimeMax()` | パーティクルの最大生存時間 || -| `Object.ParticleLifeTimeMin()` | パーティクルの最小生存時間 || -| `Object.ParticleRed1()` | 赤色のパラメーター 1 || -| `Object.ParticleRed2()` | 赤色のパラメーター 2 || -| `Object.ParticleSize1()` | サイズのパラメーター 1 || -| `Object.ParticleSize2()` | サイズのパラメーター 2 || -| `Object.RendererParam1()` | レンダリングのパラメーター 1 || -| `Object.RendererParam2()` | レンダリングのパラメーター 2 || -| `Object.Tank()` | 容量 || -| `Object.Texture()` | パーティクルに表示する画像の名前 || -| `Object.ZoneRadius()` | エミッション領域の半径 || - ---- - - - -## パネルスプライト(9 パッチ)(パネルスプライト(9 パッチ)オブジェクト拡張機能より) - -画像を格子状に9分割し、角以外を引き延ばして表示します。[くわしい説明を読む](/ja/gdevelop5/objects/panel_sprite) - -| 式 | 説明 || -|----|-----|----| -| `Object.Opacity()` | 不透明度 || - ---- - - - -## アンカー - -ウインドウ境界にオブジェクトをアンカーするビヘイビアです。[くわしい説明を読む](/ja/gdevelop5/behaviors/anchor) - -_このビヘイビアには式がありません。_ - - ---- - - - -## シェイプペインター - -シンプルな図形を画面に描画します。[くわしい説明を読む](/ja/gdevelop5/objects/shape_painter) - -| 式 | 説明 || -|----|-----|----| -| `Object.FillColorBlue()` | 塗りつぶし色の青成分 || -| `Object.FillColorGreen()` | 塗りつぶし色の緑成分 || -| `Object.FillColorRed()` | 塗りつぶし色の赤成分 || -| `Object.FillOpacity()` | 塗りつぶし色の不透明度 || -| `Object.OutlineColorBlue()` | 輪郭線の青成分 || -| `Object.OutlineColorGreen()` | 輪郭線の緑成分 || -| `Object.OutlineColorRed()` | 輪郭線の赤成分 || -| `Object.OutlineOpacity()` | 輪郭線の不透明度 || -| `Object.OutlineSize()` | 輪郭線の太さ || - ---- - - - -## テキスト入力(テキスト入力オブジェクト拡張機能より) - -キーボード入力されたテキストを保持する非表示のオブジェクトです。[くわしい説明を読む](/ja/gdevelop5/objects/text_entry) - -| 式 | 説明 || -|----|-----|----| -| `Object.String()` | キーボードから入力されたテキスト || - ---- - - -## インベントリ - -メモリ内アイテムを扱うインベントリをゲームに追加するためのアクションと条件を提供します。[くわしい説明を読む](/ja/gdevelop5/all-features/inventory) - -| 式 | 説明 || -|----|-----|----| -| `Inventory::Count(string, string)` | インベントリ内のアイテム数を取得する || -|| _string_ | インベントリ名 | -|| _string_ | アイテム名 | - ---- - - - -## 経路探索(経路探索ビヘイビア拡張機能より) - -障害物として設定されたすべてのオブジェクトを避けてオブジェクトを移動します。[くわしい説明を読む](/ja/gdevelop5/behaviors/pathfinding) - -| 式 | 説明 || -|----|-----|----| -| `Object.Pathfinding::Acceleration()` | パス上のオブジェクトの加速度 || -| `Object.Pathfinding::AngleOffset()` | パス上のオブジェクトに適用された回転オフセット || -| `Object.Pathfinding::AngularMaxSpeed()` | パス上のオブジェクトの最大角速度 || -| `Object.Pathfinding::CellHeight()` | 仮想グリッドの高さ || -| `Object.Pathfinding::CellWidth()` | 仮想グリッドの幅 || -| `Object.Pathfinding::DestinationX()` | 目的地の X 位置 || -| `Object.Pathfinding::DestinationY()` | 目的地の Y 位置 || -| `Object.Pathfinding::ExtraBorder()` | パス上のオブジェクトに適用された追加境界 || -| `Object.Pathfinding::GetNodeX(number)` | 次の中間地点の X 位置を取得する || -|| _number_ | ノードインデックス(0 からスタート) | -| `Object.Pathfinding::GetNodeY(number)` | 次の中間地点の Y 位置を取得する || -|| _number_ | ノードインデックス(0 からスタート) | -| `Object.Pathfinding::LastNodeX()` | 前の中間地点の X 位置 || -| `Object.Pathfinding::LastNodeY()` | 前の中間地点の Y 位置 || -| `Object.Pathfinding::MaxSpeed()` | パス上のオブジェクトの最高速度 || -| `Object.Pathfinding::NextNodeIndex()` | 次に到着する中間地点のインデックスを取得する || -| `Object.Pathfinding::NextNodeX()` | 次の中間地点の X 位置を取得する || -| `Object.Pathfinding::NextNodeY()` | 次の中間地点の Y 位置を取得する || -| `Object.Pathfinding::NodeCount()` | パス上の中間地点の数を取得する || -| `Object.Pathfinding::Speed()` | パス上のオブジェクトの速度 || - -## 経路探索の障害物(経路探索ビヘイビア拡張機能より) - -オブジェクトを経路探索の障害物として設定します。[くわしい説明を読む](/ja/gdevelop5/behaviors/pathfinding) - -| 式 | 説明 || -|----|-----|----| -| `Object.PathfindingObstacle::Cost()` | 障害物コスト || - ---- - - - -## 物理エンジン(物理エンジン拡張機能より(非推奨)) - -まるで物理法則に従っているかのようにオブジェクトを移動します。ゲームを新規作成する場合は、物理エンジン 2.0 の方を使ってください。[くわしい説明を読む](/ja/gdevelop5/behaviors/physics) - -| 式 | 説明 || -|----|-----|----| -| `Object.Physics::AngularDamping()` | 角度減衰 || -| `Object.Physics::AngularVelocity()` | 角速度 || -| `Object.Physics::LinearDamping()` | 線形減衰 || -| `Object.Physics::LinearVelocity()` | 線速度 || -| `Object.Physics::LinearVelocityX()` | X コンポーネント || -| `Object.Physics::LinearVelocityY()` | Y コンポーネント || -| `Object.Physics::PolygonScaleX()` | 衝突ポリゴンの X スケール || -| `Object.Physics::PolygonScaleY()` | 衝突ポリゴンの Y スケール || - ---- - - -## 高度なウィンドウ管理 - -ゲームウィンドウの配置や OS との連携に関連した高度な機能を提供します。 - -| 式 | 説明 || -|----|-----|----| -| `AdvancedWindow::WindowOpacity()` | ウィンドウの現在の不透明度を返す(0 から 1 までの数値、1 は完全に不透明)|| -| `AdvancedWindow::WindowX()` | ウィンドウの現在の X 位置を返す|| -| `AdvancedWindow::WindowY()` | ウィンドウの現在の Y 位置を返す|| - ---- - - - -## BBText(BBCode テキストオブジェクト拡張機能より) - -BBCode マークアップに対応したリッチテキストラベルを表示します(テキストの一部を太字や斜体にしたり、色を変えたり影を付けることができます)。[くわしい説明を読む](/ja/gdevelop5/objects/bbtext) - -| 式 | 説明 || -|----|-----|----| -| `Object.GetBBText()` | BBCode テキストを取得する || -| `Object.GetFontFamily()` | 基本フォントファミリーを取得する || -| `Object.GetFontSize()` | 基本フォントサイズを取得する || -| `Object.GetOpacity()` | 基本の不透明度を取得する || -| `Object.GetWrappingWidth()` | 折り返し幅を取得する || - ---- - - -## デバイスセンサー - -モバイル端末のセンサーにアクセスできるようにします。[くわしい説明を読む](/ja/gdevelop5/all-features/device-sensors) - -| 式 | 説明 || -|----|-----|----| -| `DeviceSensors::AccelerationX()` | X 軸のデバイス加速度(m/s²)を取得する || -| `DeviceSensors::AccelerationY()` | Y 軸のデバイス加速度(m/s²)を取得する || -| `DeviceSensors::AccelerationZ()` | Z 軸のデバイス加速度(m/s²)を取得する || -| `DeviceSensors::OrientationAbsolute()` | 端末の方向が絶対方向(相対ではない)かどうかを取得する || -| `DeviceSensors::OrientationAlpha()` | 端末方向のアルファ値(コンパス)を取得する || -| `DeviceSensors::OrientationBeta()` | 端末方向のベータ値を取得する || -| `DeviceSensors::OrientationGamma()` | 端末方向のガンマ値を取得する || -| `DeviceSensors::RotationAlpha()` | 端末回転のアルファ値を取得する || -| `DeviceSensors::RotationBeta()` | 端末回転のベータ値を取得する || -| `DeviceSensors::RotationGamma()` | 端末回転のガンマ値を取得する || - ---- - - -## ダイアログツリー(実験的) - -Yarn Spinner を使ったダイアログツリーを制御します。複数選択肢を伴う複雑なダイアログ(せりふ)を作成するのに使います。Yarn Spinner エディターが GDevelop に組み込まれているため、GDevelop から別のアプリに切り替えることなくダイアログを編集できます。[くわしい説明を読む](/ja/gdevelop5/all-features/dialogue-tree) - -| 式 | 説明 || -|----|-----|----| -| `DialogueTree::BranchTag(number)` | 実行中のダイアログの現在のブランチから指定したインデックスのタグを取得する || -|| _number_ | タグインデックス番号 | -| `DialogueTree::BranchTags()` | 実行中のダイアログの現在のブランチからタグを取得する || -| `DialogueTree::BranchText()` | 現在のブランチの完全な生テキストを取得する || -| `DialogueTree::BranchTitle()` | 実行中のダイアログの現在のブランチからタイトルを取得する || -| `DialogueTree::ClippedLineText()` | タイプライターエフェクトでクリップされたダイアログラインテキストを取得する。タイプライターエフェクトは「クリップテキストをスクロールする」アクションで制御します。|| -| `DialogueTree::CommandParameter(number)` | <> 形式のコマンド呼び出しのパラメーターを取得する || -|| _number_ | パラメーターのインデックス番号 _省略可_| -| `DialogueTree::CommandParametersCount()` | 現在渡されたコマンドのパラメーター数を取得する || -| `DialogueTree::HorizontalOptionsList(string)` | オプションラインタイプから利用可能なすべてのオプションのテキストを横型リストとして取得する。オプションで選択カーソル文字列(デフォルトは ->)を指定できます。 || -|| _string_ | オプションの選択カーソル | -| `DialogueTree::LineText()` | 現在のダイアログラインテキストを返す || -| `DialogueTree::Option(number)` | オプションラインタイプから指定したオプション番号のオプションテキストを取得する。番号は 0 から始まります。|| -|| _number_ | オプションインデックス番号 | -| `DialogueTree::OptionsCount()` | オプションラインタイプ内のオプション番号を取得する || -| `DialogueTree::SelectedOptionIndex()` | 現在選択されているオプション番号を取得する。オプション選択マーカーを正しい場所にレンダーするために使います。|| -| `DialogueTree::TagParameter(number)` | ブランチのタグ条件で見つかったタグからパラメーターを取得する || -|| _number_ | パラメーターのインデックス番号 _省略可_| -| `DialogueTree::Variable(string)` | ダイアログ状態の値を取得する || -|| _string_ | 変数名 | -| `DialogueTree::VerticalOptionsList(string)` | オプションラインタイプから利用可能なすべてのオプションのテキストを縦型リストとして取得する。オプションで選択カーソル文字列(デフォルトは ->)を指定できます。 || -|| _string_ | オプションの選択カーソル | -| `DialogueTree::VisitedBranchTitles()` | 訪問済みブランチのリストを取得する || - ---- - - -## Facebook インスタントゲーム - -ゲームがスコアを送信し、Facebook インスタントゲームプラットフォームと通信できるようにします。[くわしい説明を読む](/ja/gdevelop5/publishing/publishing-to-facebook-instant-games) - -| 式 | 説明 || -|----|-----|----| -| `FacebookInstantGames::PlayerId()` | プレイヤーの固有識別子を取得する || -| `FacebookInstantGames::PlayerName()` | プレイヤー名を取得する || - ---- - - -## ファイルシステム - -OS のファイルシステムにアクセスします。[くわしい説明を読む](/ja/gdevelop5/all-features/filesystem) - -| 式 | 説明 || -|----|-----|----| -| `FileSystem::DesktopPath()` | デスクトップフォルダーのパスを取得する|| -| `FileSystem::DirectoryName(string)` | パスから最後のファイル名を取り除いた、ディレクトリを表す部分パスを返す|| -|| _string_ | ファイルまたはディレクトリのパス | -| `FileSystem::DocumentsPath()` | ドキュメントフォルダーのパスを取得する|| -| `FileSystem::ExecutableFolderPath()` | ゲーム実行フォルダーのパスを取得する|| -| `FileSystem::ExecutablePath()` | ゲーム実行ファイルのパスを取得する|| -| `FileSystem::ExtensionName(string)` | 指定したパスが表すファイルの拡張子を、ピリオドを含む形で返す。たとえば「.txt」。|| -|| _string_ | ファイルのパス | -| `FileSystem::FileName(string)` | ファイル名を返す。拡張子があれば、それも含みます。|| -|| _string_ | ファイルのパス | -| `FileSystem::PathDelimiter()` | OS のパス区切り文字を取得する|| -| `FileSystem::PicturesPath()` | 画像フォルダーのパスを取得する|| -| `FileSystem::TempPath()` | 一時フォルダーのパスを取得する|| -| `FileSystem::UserHomePath()` | ユーザーホームフォルダーのパスを取得する|| -| `FileSystem::UserdataPath()` | ユーザーデータフォルダー(アプリケーション設定用)のパスを取得する|| - ---- - - -## Firebase - -ゲームで Google Firebase サービス(データベース、関数、ストレージ…)を使えるようにします。[くわしい説明を読む](/ja/gdevelop5/all-features/firebase) - -| 式 | 説明 || -|----|-----|----| -| `Firebase::GetAccountCreationTime()` | アカウントの作成日時を取得する。|| -| `Firebase::GetAuthToken(string)` | ユーザー認証トークンを取得する。トークンは認証の証拠です。|| -|| _string_ | 設定名 | -| `Firebase::GetLastLoginTime()` | ユーザーの前回ログイン日時を取得する。|| -| `Firebase::GetPhoneNumber()` | ユーザーの電話番号を取得する。|| -| `Firebase::GetPhotoURL()` | ユーザーのプロファイル画像の URL を取得する。|| -| `Firebase::GetRefreshToken()` | ユーザーのリフレッシュトークンを取得する。高度な使用法です。|| -| `Firebase::GetRemoteConfigNumber(string)` | Firebase のリモート設定を数値で取得する。|| -|| _string_ | 設定名 | -| `Firebase::GetRemoteConfigString(string)` | Firebase のリモート設定を文字列で取得する。|| -|| _string_ | 設定名 | -| `Firebase::GetTenantID()` | ユーザーのテナント ID を取得する。高度な使用法です。|| -| `Firebase::GetUserDisplayName()` | ユーザーの表示名を取得する。|| -| `Firebase::GetUserEmail()` | ユーザーのメールアドレスを取得する。|| -| `Firebase::GetUserUID()` | ユーザーの固有識別子を取得する。名前やメールアドレスの代わりに、こちらをユーザーへのリンクデータに使ってください。|| - ---- - - - -## ライト(ライト拡張機能より) - -半径と色をカスタマイズできるライトをシーンに表示します。 これを作成した後、光をさえぎるオブジェクトにはライト障害物ビヘイビアを追加します。 - -_このオブジェクトには式がありません。_ - - -## ライト障害物ビヘイビア(ライト拡張機能より) - -このビヘイビアはオブジェクトをライト障害物にします。ライトオブジェクトから放射された光はこのオブジェクトにさえぎられます。 - -_このビヘイビアには式がありません。_ - - ---- - - -## ピアツーピア(P2P)通信(実験的) - -ゲームインスタンスが WebRTC(P2P)経由でメッセージをリモート通信できるようにします。[くわしい説明を読む](/ja/gdevelop5/all-features/p2p) - -| 式 | 説明 || -|----|-----|----| -| `P2P::GetEventData(string)` | 前回トリガーされた指定イベントで受信したデータを返す || -|| _string_ | イベント名 | -| `P2P::GetEventSender(string)` | イベントをトリガーしたピアの ID を返す || -|| _string_ | イベント名 | -| `P2P::GetID()` | 現在のゲームインスタンスのクライアント ID を取得する || -| `P2P::GetLastConnectedPeer()` | 新たに接続を開始したピアの ID を取得する|| -| `P2P::GetLastDisconnectedPeer()` | 前回接続を終了したピアの ID を取得する|| -| `P2P::GetLastError()` | 前回の P2P エラー内容を取得する || - ---- - - - -## 物理エンジン 2.0 - -重力、フォース、ジョイントなどを使ってリアルな物体の物理運動をシミュレートします。[もっとくわしく](/ja/gdevelop5/behaviors/physics2) - -| 式 | 説明 || -|----|-----|----| -| `Object.Physics2::AngularDamping()` | オブジェクトの角度減衰を取得する|| -| `Object.Physics2::AngularVelocity()` | オブジェクトの角速度を取得する|| -| `Object.Physics2::Density()` | オブジェクトの密度を取得する|| -| `Object.Physics2::DistanceJointDampingRatio(number)` | 距離ジョイントの減衰率 || -|| _number_ | ジョイント ID | -| `Object.Physics2::DistanceJointFrequency(number)` | 距離ジョイントのバネの硬さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::DistanceJointLength(number)` | 距離ジョイントの長さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::Friction()` | オブジェクトの摩擦を取得する|| -| `Object.Physics2::FrictionJointMaxForce(number)` | 摩擦ジョイントの最大出力 || -|| _number_ | ジョイント ID | -| `Object.Physics2::FrictionJointMaxTorque(number)` | 摩擦ジョイントの最大トルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::GearJointFirstJoint(number)` | 歯車ジョイントの最初のジョイント || -|| _number_ | ジョイント ID | -| `Object.Physics2::GearJointRatio(number)` | 歯車ジョイントの比率 || -|| _number_ | ジョイント ID | -| `Object.Physics2::GearJointSecondJoint(number)` | 歯車ジョイントの 2 番目のジョイント || -|| _number_ | ジョイント ID | -| `Object.Physics2::GravityScale()` | オブジェクトの重力スケールを取得する|| -| `Object.Physics2::GravityX()` | X 軸上のワールド重力 || -| `Object.Physics2::GravityY()` | Y 軸上のワールド重力 || -| `Object.Physics2::JointFirstAnchorX(number)` | ジョイントの最初のアンカーの X 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::JointFirstAnchorY(number)` | ジョイントの最初のアンカーの Y 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::JointReactionForce(number)` | ジョイントの反動力 || -|| _number_ | ジョイント ID | -| `Object.Physics2::JointReactionTorque(number)` | ジョイントの反動トルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::JointSecondAnchorX(number)` | ジョイントの 2 番目のアンカーの X 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::JointSecondAnchorY(number)` | ジョイントの 2 番目のアンカーの Y 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::LinearDamping()` | オブジェクトの線形減衰を取得する|| -| `Object.Physics2::LinearVelocity()` | オブジェクトの線速度を取得する|| -| `Object.Physics2::LinearVelocityX()` | オブジェクトの X 軸上の線速度を取得する|| -| `Object.Physics2::LinearVelocityY()` | オブジェクトの Y 軸上の線速度を取得する|| -| `Object.Physics2::MassCenterX()` | 質量中心の X 位置 || -| `Object.Physics2::MassCenterY()` | 質量中心の Y 位置 || -| `Object.Physics2::MotorJointAngularOffset(number)` | モータージョイントの角度オフセット || -|| _number_ | ジョイント ID | -| `Object.Physics2::MotorJointCorrectionFactor(number)` | モータージョイントの補正係数 || -|| _number_ | ジョイント ID | -| `Object.Physics2::MotorJointMaxForce(number)` | モータージョイントの最大出力 || -|| _number_ | ジョイント ID | -| `Object.Physics2::MotorJointMaxTorque(number)` | モータージョイントの最大トルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::MotorJointOffsetX(number)` | モータージョイントのオフセット X || -|| _number_ | ジョイント ID | -| `Object.Physics2::MotorJointOffsetY(number)` | モータージョイントのオフセット Y || -|| _number_ | ジョイント ID | -| `Object.Physics2::MouseJointDampingRatio(number)` | マウスジョイントの減衰率 || -|| _number_ | ジョイント ID | -| `Object.Physics2::MouseJointFrequency(number)` | マウスジョイントのバネの硬さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::MouseJointMaxForce(number)` | マウスジョイントの最大出力 || -|| _number_ | ジョイント ID | -| `Object.Physics2::MouseJointTargetX(number)` | マウスジョイント目標の X 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::MouseJointTargetY(number)` | マウスジョイント目標の Y 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointAxisAngle(number)` | 直動ジョイントの軸角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointMaxMotorForce(number)` | 直動ジョイントの最大モーター出力 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointMaxTranslation(number)` | 直動ジョイントの最大移動量 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointMinTranslation(number)` | 直動ジョイントの最小移動量 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointMotorForce(number)` | 直動ジョイントのモーター出力 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointMotorSpeed(number)` | 直動ジョイントのモーター速度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointReferenceAngle(number)` | 直動ジョイントの基準角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointSpeed(number)` | 直動ジョイントの速度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PrismaticJointTranslation(number)` | 直動ジョイントの現在移動量 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointFirstGroundAnchorX(number)` | 滑車ジョイントの最初の接地アンカーの X 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointFirstGroundAnchorY(number)` | 滑車ジョイントの最初の接地アンカーの Y 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointFirstLength(number)` | 滑車ジョイントの最初の長さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointRatio(number)` | 滑車ジョイントの比率 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointSecondGroundAnchorX(number)` | 滑車ジョイントの 2 番目の接地アンカーの X 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointSecondGroundAnchorY(number)` | 滑車ジョイントの 2 番目の接地アンカーの Y 位置 || -|| _number_ | ジョイント ID | -| `Object.Physics2::PulleyJointSecondLength(number)` | 滑車ジョイントの 2 番目の長さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::Restitution()` | オブジェクトの反発を取得する|| -| `Object.Physics2::RevoluteJointAngle(number)` | 回転ジョイントの現在角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointMaxAngle(number)` | 回転ジョイントの最大角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointMaxMotorTorque(number)` | 回転ジョイントの最大モータートルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointMinAngle(number)` | 回転ジョイントの最小角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointMotorSpeed(number)` | 回転ジョイントのモーター速度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointMotorTorque(number)` | 回転ジョイントのモータートルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointReferenceAngle(number)` | 回転ジョイントの基準角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::RevoluteJointSpeed(number)` | 回転ジョイントの角速度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::RopeJointMaxLength(number)` | ロープジョイントの最大長 || -|| _number_ | ジョイント ID | -| `Object.Physics2::TimeScale()` | ワールドタイムスケール || -| `Object.Physics2::WeldJointDampingRatio(number)` | 溶接ジョイントの減衰率 || -|| _number_ | ジョイント ID | -| `Object.Physics2::WeldJointFrequency(number)` | 溶接ジョイントのバネの硬さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::WeldJointReferenceAngle(number)` | 溶接ジョイントの基準角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointAxisAngle(number)` | 車輪ジョイントの軸角度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointDampingRatio(number)` | 車輪ジョイントの減衰率 || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointFrequency(number)` | 車輪ジョイントのバネの硬さ || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointMaxMotorTorque(number)` | 車輪ジョイントの最大モータートルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointMotorSpeed(number)` | 車輪ジョイントのモーター速度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointMotorTorque(number)` | 車輪ジョイントのモータートルク || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointSpeed(number)` | 車輪ジョイントの速度 || -|| _number_ | ジョイント ID | -| `Object.Physics2::WheelJointTranslation(number)` | 車輪ジョイントの現在移動量 || -|| _number_ | ジョイント ID | - ---- - - - -## タイルマップ - -Tiled エディター(https://www.mapeditor.org/ から別途ダウンロード)製のタイルベースのマップを表示します。[くわしい説明を読む](/ja/gdevelop5/objects/tilemap) - -| 式 | 説明 || -|----|-----|----| -| `Object.AnimationFps()` | アニメーション速度(フレーム数/秒)を取得する || -| `Object.AnimationSpeedScale()` | アニメーション速度スケールを取得する || -| `Object.LayerIndex()` | 表示中のレイヤーインデックスを取得する || - ---- - - - -## Tween(Tween 拡張機能より) - -オブジェクトの位置や角度、スケール、その他のプロパティをスムーズにアニメーションさせます。[くわしい説明を読む](/ja/gdevelop5/behaviors/tween) - -| 式 | 説明 || -|----|-----|----| -| `Object.Tween::Progress(string)` | Tween の進捗度(0.0~1.0) || -|| _string_ | Tween 識別子 | - ---- - - - -## 動画 - -動画を表示します。[くわしい説明を読む](/ja/gdevelop5/objects/video) - -| 式 | 説明 || -|----|-----|----| -| `Object.CurrentTime()` | 動画オブジェクトの現在位置を返す(秒)|| -| `Object.Duration()` | 動画オブジェクトの長さを返す(秒)|| -| `Object.Opacity()` | 動画オブジェクトの不透明度を返す || -| `Object.PlaybackSpeed()` | 動画オブジェクトの再生速度を返す || -| `Object.Volume()` | 0(ミュート)から100(最大)のあいだで、動画の音量を取得する|| \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/expressions.md b/docs/ja/gdevelop5/all-features/expressions.md deleted file mode 100644 index f736d486c4..0000000000 --- a/docs/ja/gdevelop5/all-features/expressions.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: 式 ---- -# 式 - -[イベント](/ja/gdevelop5/events)に条件やアクションを追加するとき、フィールドによっては次のアイコンが隣に表示されているものがあります。 - -![](/gdevelop5/all-features/number_expression.png) - -![](/gdevelop5/all-features/text_expression.png) - -これらのアイコンは、そのフィールドに_式_を入力できることを示します。 - -式には複数の種類があります。 - -- [数値](/#数値) -- [テキスト](/#テキスト) -- [関数](/#関数) - -!!! note - - 関数を使って数値をテキストに、あるいはテキストを数値に変換できます。 - -!!! tip - - GDevelop が標準で提供する関数式の一覧は[expressions reference](/gdevelop5/all-features/expressions-reference)で確認できます。 - -## 数値 - -次のアイコンが隣に表示されているフィールドには、_数値_式を入力できます。 - -![](/gdevelop5/all-features/number_expression.png) - -数値式は、数値を表します。 - -数値式の例を以下に示します。 - -- `0` -- `-10` -- `25.5` - -数学記号を使った加減乗除も可能です。 - -- `2+2` -- `3-1` -- `10*10` -- `99/3` - -演算子の一覧は下記の通りです。 - -- `+`(加算) -- `-`(減算) -- `*`(乗算) -- `/`(除算) - -!!! tip - - ひとつの式の中で複数の演算子を使えます。 - -## テキスト - -次のアイコンが隣に表示されているフィールドには、_テキスト_式を入力できます。 - -![](/gdevelop5/all-features/text_expression.png) - -テキスト式はテキストの文字列を表します。 - -テキスト式の例を以下に示します。 - - -- `"これはテキスト式です"` -- `"GDevelop 最高!"` - -すべてのテキスト式は二重引用符でくくる必要があります。二重引用符を忘れると、GDevelop は値を関数とみなして処理しようとするので、ほとんどの場合エラーになるでしょう。 - -複数のテキストを連結するときは `+` 演算子を使います。たとえば `"Hello" + "World"` は `"HelloWorld"` になります。これ以外の演算子は、テキストに使えません。 - -## 関数 - -算術演算子だけでは対応できないような複雑な値を計算する必要が、ゲームではよくあります。たとえばイベントがプレイヤーの位置に影響するため、プレイヤーの X 座標と Y 座標を動的に計算しなければならないというような状況です。 - -ここで_関数_が登場します。 - -関数を使うと、ゲームの最中に複雑な値を動的に計算することができます。たとえば `X` 関数と `Y` 関数は、[オブジェクト](/gdevelop5/objects)の座標を計算します。 - -``` -オブジェクト名.X() -オブジェクト名.Y() -``` - -関数の使用は、関数*呼び出し*としてもよく知られています。 - -!!! tip - - 表計算ソフトの数式やプログラミング言語の関数、数学の関数になじみがある場合は、GDevelop の関数も同じようなものと思ってかまいません。 - -### 構文 - -関数には 3 つの種類があります。 - -- オブジェクトに伴わない関数 -- オブジェクトに伴う関数 -- オブジェクトとビヘイビアに伴う関数 - -それぞれ構文が(少し)違います。 - -#### オブジェクトに伴わない関数 - -関数によってはオブジェクトや[ビヘイビア](/ja/gdevelop5/behaviors)と無関係に存在するものがあります。この関数の呼び出しにはオブジェクトもビヘイビアも必要ありません。 - -以下に例を示します。 - -- `CurrentSceneName()` - 現在のシーンの名前を取得します。 -- `FileSystem::DesktopPath()` - 「デスクトップ」ディレクトリのパスを取得します。 -- `ToNumber()` - 文字列を数値に変換します。 - -!!! note - - GDevelop は `::` 構文を関数の*名前空間*に使います。たとえばファイルシステムに関連する関数はすべて、`FileSystem::` が前につきます。これは関連性のある関数同士をまとめる役に立っています。`::` 構文は関数の動作には特に影響しません。 - -#### オブジェクトに伴う関数 - -関数にはオブジェクト経由で呼び出されるものがあります。これはつまり、関数が特定のオブジェクトのデータに影響を与えるか、そのデータを使って処理をしているということです。 - -以下に例を示します。 - -- `.Angle()` - オブジェクトの角度(度単位)を取得します。 -- `.Layer()` - オブジェクトが配置されているレイヤーの名前を取得します。 -- `.ObjectName()` - オブジェクトの名前を取得します。 - -#### オブジェクトとビヘイビアに伴う関数 - -関数にはオブジェクトのビヘイビア経由で呼び出されるものがあります。これはつまり、その関数があるオブジェクトに添付された特定のビヘイビアのデータを読み書きするということです。 - -以下に例を示します。 - -* `.Pathfinding::Speed()` -* `.Physics2::Friction()` -* `.PlatformerObject::Gravity()` - -### 引数 - -関数には_引数_(argument)を受け取るものがあります。(訳注:GDevelop ではふつうパラメーターと呼ばれますが、同じ意味です)引数は次のような値のことです。 - -- 関数に渡すことができる -- 関数の戻り値に影響を与える - -たとえば `ToString` 関数は数値を文字列に変換しますが、外部から数値を渡さないと意味がありません。ここで渡す数値が引数です。次の例では数値 `42` が引数です。 - -``` -ToNumber(42) -``` - -`MouseX` 関数のように、複数の引数を受け取るものもあります。 - -``` -MouseX(layer, camera) -``` - -関数が複数の引数を受け取る場合は、引数のあいだをカンマで区切り、決められた順番で渡す必要があります。 - -### 戻り値 - -関数が計算した結果の値のことを_戻り値_と呼び、関数の呼び出し元に値を返却することを戻り値_を返す_といいます。これは関数の出力部に相当します。たとえばオブジェクトの X 座標が `42` であれば、`ObjectName.X()` 関数は `42` を返します。 - -関数は数値か文字列を返すことができます。戻り値の型は関数がどのフィールドで使えるかに影響します。たとえば `ToString` 関数は文字列を返すため数値用のフィールドには使えませんし、`ToNumber` 関数は数値を返すので文字列用のフィールドには使えません。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/gamepad.md b/docs/ja/gdevelop5/all-features/gamepad.md deleted file mode 100644 index 8f5efb9fe9..0000000000 --- a/docs/ja/gdevelop5/all-features/gamepad.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: ゲームパッド ---- -# ゲームパッド - -ゲームをプレイするときに、ゲームパッド、ジョイスティック、ゲームコントローラーを使えます。**XBox**、**Playstation**、**汎用** コントローラーに対応しています。 - -この機能は**ゲームパッド拡張機能**をプロジェクトに追加すると有効になります。その後、条件か式の中でゲームパッドが接続されているかどうかやボタンを押したか、ボタンを放したか、スティックを押したかなどをテストできます。 - -!!! tip - - **やってみよう!** 🎮 - [このサンプルをオンライン](https://editor.gdevelop.io/?project=example://multiplayer-platformer-with-gamepads)で開きます。 - -## ゲームパッド拡張機能をインストールする - -まずプロジェクトマネージャーの[新しい拡張機能を検索]を選びます。 -![](/gdevelop5/all-features/gamepad/pasted/20201204-123420.png) - -キーワード「Gamepad」で検索し、ヒットした **Gamepad (controllers)** 拡張機能を選んで[プロジェクトにインストール]をクリックします。 -![](/gdevelop5/all-features/gamepad/pasted/20201204-123451.png) - -これでゲームパッドの条件を使えるようになりました。[その他の条件]リストに「Gamepad (controllers)」カテゴリーが追加されているはずです。 - -![](/gdevelop5/all-features/gamepad/pasted/20201204-123605.png) - -## 接続中のゲームパッドを検出する - -コンピューターや携帯端末に接続したゲームパッドには、1 から 4 までの番号が割り振られます。 - -* シングルプレイヤー向けのゲームであれば、通常は常にゲームパッド 1 を条件に使います。 -* マルチプレイヤー向けのゲームであれば、*Gamepad connected* 条件を使ってどのゲームパッドが接続されているかを調べるといいでしょう。それからプレイヤーの選んだゲームパッドの番号を変数に保存しておきます。あるいは最初のプレイヤーにはゲームパッド 1 を、他のプレイヤーにはゲームパッド 2 を固定で割り当てることもできます。 - -## どのボタンを押したか調べる - -押されているボタンを検出するには、*Gamepad button pressed*(または *released*)条件を使います。 -この条件を使うときは、表示される説明を読んで、対応しているボタン名を確認してください。 - -### いろいろな種類のコントローラーに対応する - -Playstation と Xbox のコントローラーはボタン名が違います。 - -両方のコントローラーに(さらにそれ以外にも)対応するのは簡単です。**または**(OR)条件を使って、その内部にそれぞれのコントローラーに対応する個別条件を追加するだけです。 - -![](/gdevelop5/multiple_controller_gamepads_extension.png) - -## スティックに対応する - -スティックはいろいろな方向に押すことができて、一般にプレイヤーキャラクターを動かすために使われます。[式](/ja/gdevelop5/all-features/expressions) `Gamepads::AxisValue` を使うと、スティックが「どのていど」押し込まれているかをあらわす数値を取得できます。 - -その数値をオブジェクトに与えるフォースに設定したり、ゲームプレイに変化をもたらすものなら何にでも応用できます。 - -![](/gdevelop5/all-features/gamepad/pasted/20201204-124545.png) - -## ゲームパッドを振動させる - -*Gamepad vibration* アクションを使ってゲームパッドを振動させられます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/index.md b/docs/ja/gdevelop5/all-features/index.md deleted file mode 100644 index eb50b0aa20..0000000000 --- a/docs/ja/gdevelop5/all-features/index.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: その他の機能 ---- -# その他の機能 - -GDevelopの一部の機能は、オブジェクトやビヘイビアによっては提供されません。代わりに、アクション、条件、または式から直接使用できます。これらは、ゲームエンジンまたは [拡張機能](/gdevelop5/extensions/search)のいずれかで構築され、シーンにオブジェクトとして設定する必要はありません。 - -例えばオーディオエンジン、タイマー、またはストレージのサポートなどの場合です。GDevelopで、これらの機能に関するヘルプを入手するには、次の一覧を参照してください。 - -* [Admob](/gdevelop5/all-features/admob) -* [高度な条件](/gdevelop5/all-features/advanced-conditions) -* [オーディオ](/gdevelop5/all-features/audio) -* [衝突](/gdevelop5/all-features/collisions) -* [センサーデバイス](/gdevelop5/all-features/device-sensors) -* [振動デバイス](/gdevelop5/all-features/device-vibration) -* [計算式](/gdevelop5/all-features/expressions) -* [ファイルシステム](/gdevelop5/all-features/filesystem) -* [装備一覧](/gdevelop5/all-features/inventory) -* [キーボード](/gdevelop5/all-features/keyboard) -* [リンクされたオブジェクト](/gdevelop5/all-features/linked-objects) -* [マウスとタッチパネル](/gdevelop5/all-features/mouse-touch) -* [ネットワーク](/gdevelop5/all-features/network) -* [スクリーンショット](/gdevelop5/all-features/screenshot) -* [Shopify](/gdevelop5/all-features/shopify) -* [ストレージ](/gdevelop5/all-features/storage) -* [タイマー](/gdevelop5/all-features/timers) -* [変数](/gdevelop5/all-features/variables) - -他にも高度な機能があります。 - -* [高度なテーマの作成](/gdevelop5/all-features/themes) -* [関数一覧](/gdevelop5/all-features/functions) - -[コミュニティ拡張機能で新しい機能を検索](/gdevelop5/extensions/search)したり、[独自の機能セット(動作、アクション、条件、または式)](/gdevelop5/extensions/create)を作成したりする こともできます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/keyboard.md b/docs/ja/gdevelop5/all-features/keyboard.md deleted file mode 100644 index 819dcac0d8..0000000000 --- a/docs/ja/gdevelop5/all-features/keyboard.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: キーボード ---- -# キーボード - -GDevelop はすべてのキーボード入力に対応しています。特定のキーを押しているか放したかを調べる条件も利用できます。 - -## 何かのキーを押している - -この条件は、何かのキーを押している場合に、対応するアクションを実行します。 - -## キーを押している - -この条件は、指定したキーを押している場合に、対応するアクションを実行します。 - -## キーを放した - -この条件は、指定したキーを放した直後に一度だけ、対応するアクションを実行します。 - -## キーを押している(テキスト式) - -キー名をテキスト式の形式で指定したキーを押しているかどうかをテストします。たとえば左矢印キーを押しているかどうかを調べたい場合は、"Left" と入力します。 - -!!! danger - - キー名は忘れずに二重引用符でくくってください。 - -![](/gdevelop5/all-features/annotation_2019-06-20_191229.png) - -## キーを放した(テキスト式) - -キー名をテキスト式の形式で指定したキーを放した直後かどうかをテストします。たとえば左矢印キーを放した直後かどうかを調べたい場合は、"Left" と入力します。 - -![](/gdevelop5/all-features/annotation_2019-06-20_191302.png) - -## 最後に押されたキー - -式「最後に押されたキー」は、最後に押されたキーを文字列形式で返します。たとえば最後に押されたキーが左矢印キーだった場合は、"Left" を返します。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/mouse-touch.md b/docs/ja/gdevelop5/all-features/mouse-touch.md deleted file mode 100644 index bdc41ad312..0000000000 --- a/docs/ja/gdevelop5/all-features/mouse-touch.md +++ /dev/null @@ -1,36 +0,0 @@ ---- -title: マウスとタッチイベントの処理 ---- -# マウスとタッチイベントの処理 - -GDevelop はタッチとマウス入力に標準で対応しています。 - -## 一番簡単な方法:「カーソル/タッチはオブジェクト上にある」条件を使う - -「**カーソル/タッチはオブジェクト上にある**」条件を使うと、マウスカーソルまたはスクリーンタッチが指定したオブジェクトの上にあるかどうかをチェックできます。 - -カーソル/タッチがオブジェクト上にあった場合は、イベント内の次の条件やアクションのために対象オブジェクトが選択されます。 - -「**カーソル/タッチはオブジェクト上にある**」条件は、「マウスボタンを押しているかタッチしている」や「マウスボタンを放した直後」条件と一緒に使うことができます。タッチはデフォルトで左クリックを再現します。このデフォルト設定で、ユーザーがボタンやオブジェクトをタッチした場合とマウスで左クリックした場合の両方を検出できます。 - -![](/gdevelop5/all-features/touch-left-click.png) - -また `MouseX` や `MouseY` のような式を使って、そのシーンのカーソルの位置を取得できます。 - -![](/gdevelop5/all-features/mousex-mousey.png) - -## より複雑な方法:マウスやタッチの位置を条件でチェックする - -タッチとカーソルのイベントを区別したい場合は、「タッチでのマウスカーソル移動を有効化/無効化する」アクションで「いいえ」を指定して無効化します。これを実行すると、タッチはマウスの左クリックを再現しなくなります。この状態で「マウスボタンを押しているかタッチしている」条件を使用しても、タッチを検出しません。 - -タッチとカーソルのイベントを分離した状態でも、依然として式 `MouseX` と `MouseY` でマウスカーソルの位置を取得できます。ただしこの式にはもはやタッチの位置が反映されないため、タッチの位置は別の式で取得する必要があります(`TouchX` と `TouchY`)。 - -マルチタッチも扱えます。タッチ識別子を変数に格納しておき、タッチの位置を返す式か条件にそれを渡します。くわしくは次の例を参照してください。 - -![](/gdevelop5/all-features/mulititoucheventexample.png) - -!!! tip - - **やってみよう!** 🎮 - - Open this example online: https://editor.gdevelop.io?project=example://multitouch \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/screenshot.md b/docs/ja/gdevelop5/all-features/screenshot.md deleted file mode 100644 index 396195e466..0000000000 --- a/docs/ja/gdevelop5/all-features/screenshot.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: スクリーンショット拡張機能 ---- -# スクリーンショット拡張機能 - -この拡張機能は実行中のゲームのスクリーンショットを指定したフォルダー内に保存します。 - -注:GDevelop 5.0.0-beta92 からスクリーンショットアクションは拡張機能ではなく標準機能になりました。単にアクションで「スクリーンショット」を検索するか、[その他のアクション]-[スクリーンショット]-[スクリーンショットを撮る]を選択してください。 - -### アクション - -#### スクリーンショットを撮る - -現在のゲームウィンドウ全体のスクリーンショットを *png* 形式のファイルとして保存します。 - -##### パラメーター: - -**保存するファイルのパス**:スクリーンショットを保存するファイルのパス。 - -ファイルシステム上の絶対パスを指定します(Windows の場合は "C:\MyFolder\MyScreenshot.png" のような文字列)。 - -相対パスには対応していません。 - -!!! note - - 対応するすべてのプラットフォームで動作するゲームを作るためには、特殊フォルダーとパス区切り文字をファイルシステム拡張機能から取得して、組み合わせる必要があります。*ピクチャ*、*ドキュメント*、*デスクトップ*といった一般的に使用される特殊フォルダーのパスは、この方法で実行時に確定します。くわしくは[こちらの記事](/gdevelop5/all-features/filesystem)を参照してください。 - -## 例 - -保存するファイルのパスを作成する式の例です。 - -``` () + () + "my_screenshot.png" ``` - -パラメーターに上記を指定すると、スクリーンショットは Windows、Linux、macOS の*ピクチャ*フォルダーに保存されます。 diff --git a/docs/ja/gdevelop5/all-features/storage.md b/docs/ja/gdevelop5/all-features/storage.md deleted file mode 100644 index c3b0b9a8a8..0000000000 --- a/docs/ja/gdevelop5/all-features/storage.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: ストレージ ---- -# ストレージ - -ゲームには、データの保存が付きものです。プレイヤーの進捗状況なんかが、そうですね。くわしい説明と事例については、[こちらのガイド](/gdevelop5/tutorials/storage-action-explained)を参照してください。 - -!!! note - - ストレージアクションは、すべてのデータを**内部ストレージ**に格納します(ゲーム終了後も保存されます)。ファイルを読み書きしたい場合は、[ファイルシステムに関するページ](/gdevelop5/all-features/filesystem)を読んでください(Windows、macOS、Linux 限定)。 - -## プレビュー中にストレージをクリアする - -データはプレビューウィンドウの内部ストレージに永続的に格納されます。プレビューのあいだはもちろんのこと、GDevelop が終了した後も存続します(エクスポートしたゲームと同じです)。 - -ゲームのプレビュー目的によっては、データをリセットしたい場合もあるでしょう。初回の起動状態を確認したい場合などが、そうです。その場合は、次の手順でストレージをクリアーします。 - - - プレビューウィンドウ上部のメニューバーから**表示** -> **デベロッパーツールの表示切替**を選択します。 - - デベロッパーツールはふつうコンソールタブが選択された状態で開き、何かのメッセージが表示されています。 - - **アプリケーション**タブをクリックします。プレビューウィンドウのサイズによっては、タブが表示されていないかもしれません。その場合はプレビューウィンドウの幅を広げていくと、上部にアプリケーションタブが出現します。 - - アプリケーションタブを選択したあとに表示される左側のサイドバーの **Storage** -> **Local Storage** -> **file:** が格納データを管理する場所です。 - - 「file:」を左マウスボタンでクリックすると、ストレージに格納されたデータの詳細が表示されます。 - - データをクリアーするには、「file:」を右マウスボタンでクリックし「**Clear**」を選びます。 - -これでプレビューウィンドウを閉じます。次にプレビューウィンドウを開きなおしたときには、データが消えた状態で開きます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/themes.md b/docs/ja/gdevelop5/all-features/themes.md deleted file mode 100644 index e78ee9e462..0000000000 --- a/docs/ja/gdevelop5/all-features/themes.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: themes ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# Creating Themes in GDevelop - -Creating new and interesting themes in GDevelop requires some knowledge of CSS. Knowledge of Javascript and React coding is a definite advantage, but not necessarily a requirement. Creating a theme is a way to give back to the GDevelop community. It is also a way to learn more about the inner workings or GDevelop. Mostly though, it is fun, and allows you to exercise a different sort of creativity! - -### Some 'gotchas' when developing a new theme. - - If you are familiar with CSS, it is relatively simple to switch out theme colors. However, you will need to dig a lot deeper into the program's inner workings to change the colors of the icons and some of the text/string features. \When developing your theme, you will also need to keep in mind that the Events/Table Editor group comments background color of yellow cannot, as of this writing, be changed. That means that your color theme should be created to work well with a bold yellow background color (#E8DC59) in the Events/Table comments. The blues of the included icons should also be considered when designing your new theme. It is more difficult to change their colors but it can be accomplished with some additional coding. You can add a CSS filter to the toolbar icons in order to change their color to match your theme. Other icons changes will still have to be coded. - -![](/gdevelop5/all-features/yelloweventscomment.png) - -### Where to Start - -Modifying a theme means that you will be working with the source code of GDevelop. You will need to have a way to view and modify the source code. This can be done using a simple text editor, but a much easier and efficient way is to use an integrated development environment (IDE). An IDE is an application that provides a myriad of tools that help computer programmers in software development. The creator of GDevelop, Florian Rival, recommends Visual Studio Code. It is a free IDE that can be used on Linux, MacOS, and Windows. For the purpose of this document, I will use Visual Studio Code as the editor. There are many IDEs. Each one has its own strengths and weaknesses. Use the one that you understand and enjoy. - -I am not going to go into all of the details about setting up the development environment. It is well defined on GDevelop git-hub. You will need to be somewhat familiar with installing and using npm, yarn, brew, or similar tools from the command line/terminal. If you have never done this, there are many tutorials on the internet. It is a good learning experience on its own. - -## The Files - -After you have loaded GDevelop into your IDE, you will see numerous files. To find the current Themes included, go to "newIDE/src/UI/Theme/". There you will find the themes, that are included with GDevelop. At the time of this writing, you will see two themes: - -- DefaultTheme -- DarkTheme - -![](/gdevelop5/all-features/gdthemefileslocation.png) - -Next, decide whether your new theme will be light or dark. If it is light, copy the entire DefaultTheme and paste it into the Theme folder. Likewise, if you want to work with darker colors, copy the DarkTheme and paste it into the Theme folder. Depending on your IDE, you may need to use your file manager to duplicate the file outside of your IDE and then reload it. - -Rename the newly copied theme folder to your own theme's description. A short description is best. ie Sunrise, Sunset, etc. - -![](/gdevelop5/all-features/sunrisethemefolder.png) - -## Working with the new theme - -Now that you have your newly copied theme, you will see four files included in the theme's folder: ![](/gdevelop5/all-features/sunrisethemefiles.png) - -You can change the theme colors in each of these files. - -Notice also, that there is an index.js file that resides in the Theme folder but outside of the themes. You will also be using this file. - -![](/gdevelop5/all-features/index.js.png) - -### index.js is the place to start your theme. - -In order for the new theme to be recognized and displayed in GDevelop Preferences, you need to place some coding information into index.js. For this explanation, I will continue to use the name "Sunrise" for the new theme's name. Substitute your theme's name for "Sunrise". - -The code below demonstrates what the main index.js file should look like after adding the Sunrise theme: - -` //imports and exports the new Sunrise theme - import Sunrise from './Sunrise'; - import DarkTheme from './DarkTheme'; - import DefaultTheme from './DefaultTheme'; - -export const themes = { - 'GDevelop default': DefaultTheme, - Sunrise: Sunrise, - Dark: DarkTheme, -}; - -export const getTheme = themeName => - themes[themeName] || themes['GDevelop default']; - ` Now, when you run GDevelop, you will see your new theme referenced in "Preferences": ![](/gdevelop5/all-features/preferencessunrise.png) For additional information check out the link that is included in GDevelop: ![](/gdevelop5/all-features/gdpreferencesthemehelp.png) - -Read **[Part 2 of Creating Themes here](gdevelop5/all-features//2-themes.txt)**! diff --git a/docs/ja/gdevelop5/all-features/timers.md b/docs/ja/gdevelop5/all-features/timers.md deleted file mode 100644 index fafc4b59d3..0000000000 --- a/docs/ja/gdevelop5/all-features/timers.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: タイマー ---- -# タイマー - -### シーンタイマー - -条件とアクションを使うと**シーン**タイマーを起動できます。そしてタイマーが特定の時間になったらアクションを実行することができます。 -おそらく最もよく目にするイディオムは、条件でタイマーの経過時間を比較し、アクションでタイマーを 0 にリセットするという組み合わせでしょう。使う前には常にタイマーをリセットすることを推奨します。もし条件やアクションが存在しないタイマーを参照した場合、それは自動的にメモリー上に作成されます。 - -タイマーには自由に名前をつけられます。_タイマーの名前はテキスト/文字列式のため、二重引用符で括る必要があります。_ - -もう少し高度なタイマーの例を挙げましょう。タイマーを使ってプレイヤーをダメージから短時間守ります。無敵時間の長さは `player_undestroyable_time` 変数に設定されています。 - -![](/gdevelop5/all-features/timer-and-variable.png) - -!!! tip - - **やってみよう!** 🎮 - 次のサンプルをオンラインで実行してみましょう:https://editor.gdevelop.io?project=example://asteroids - -## オブジェクトタイマー - -シーンだけでなく、ゲームオブジェクトとそのインスタンスにもタイマーがあります。オブジェクトの各インスタンスごとに、専用のタイマーがメモリー上に保持されます。他のインスタンスとの共用ではない、独立した個別タイマーです。この機能を使うと、あるオブジェクトのインスタンスアクションを X 秒おきに実行するというようなことができます。 - -オブジェクトタイマーはシーンタイマーと同じ手順で設定します。[タイマーをスタート(またはリセット)]アクションでオブジェクトのインスタンスタイマーを初期化します。 - -![](/gdevelop5/all-features/start-object-timer.png) - -シーンタイマーと同様に、オブジェクトタイマーの名前もテキスト/文字列式になります。//二重引用符で括ってください。// -上図のアクションはスプライトオブジェクトの各インスタンスごとに "`color`" という名前のタイマーを作成し、それをスタートします。 - -今度はタイマーの値をチェックしてみましょう。 - -![](/gdevelop5/all-features/object-timers.png) - -上図の条件は "`color`" タイマーの経過時間がオブジェクト変数よりも大きいかどうかをチェックします(式を使ってオブジェクト変数の値を取得できます)。その結果、オブジェクト変数 "`color_time`" よりも経過時間の大きいタイマー値を持つすべてのスプライトインスタンスが選択されます。それからスプライトの色をランダムな色に変更し、オブジェクトタイマーをリセットします。 - -オブジェクト変数を使ってオブジェクトタイマーをチェックするのは便利です。たとえば敵のインスタンスが複数あり、それぞれオブジェクトタイマーを使って異なる間隔で銃を撃ってくるものとします。"`発砲間隔`" 変数とタイマー値を比較して、タイマーが大きければ発砲する仕組みです。ここで、ある敵が「銃パワーアップ」アイテムに接触したとしましょう。その敵の "`発砲間隔`" 変数の値を通常より小さく変更すると、それだけで前より短い間隔で攻撃してくるようになります。 - -!!! tip - - **やってみよう!** 🎮 - 次のサンプルをオンラインで実行してみましょう:https://editor.gdevelop.io?project=example://objects-timers - -![](/gdevelop5/all-features/fireratetimerexamplenew.png) - -## 高度な話題:変数でタイマーをシミュレートする - -シーンタイマーとオブジェクトタイマーは便利です。しかしときには、変数でタイマーをシミュレートする必要が発生するかもしれません。複雑なタスクの場合は、ありえます。この方法は、タイマーを使うよりも柔軟性があります。変数を使うと、値を増やすだけでなく、減らすこともできます。//もしシーンにあるオブジェクトの全インスタンスについて個別にタイマーを持たせたいなら、`TimeDelta` 式と一緒に変数を使うといいでしょう//。 - -![](/gdevelop5/all-features/increase-variable-timer.png) - -上のユースケースでは、1 秒あたり 1000 単位の速度を変数に加算しています。1 秒あたり 1000 単位ということは、この「タイマー」はミリ秒相当の分解能になります。 - -次の例では、変数(Damage Timer)と比較して 0.5 秒後であればアクションを実行し、そのあと「タイマー」をリセットしています。 - -![](/gdevelop5/all-features/reset-variable-timer.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/variables/global-variables.md b/docs/ja/gdevelop5/all-features/variables/global-variables.md deleted file mode 100644 index 76f59f1d78..0000000000 --- a/docs/ja/gdevelop5/all-features/variables/global-variables.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: グローバル変数 ---- -# グローバル変数 - -グローバル変数とは、次のような変数です。 - -- ゲームを実行しているあいだ、ずっとメモリー上に存在する -- ゲームのどのシーンからもアクセスできる - -プレイヤーのスコアのような、ゲーム全体を通して常にアクセスされるデータを格納するのに向いています。グローバル変数は、ゲームを終了したときにはじめてメモリーから削除されます。 - -## グローバル変数の作成 - -1. [project manager](/ja/gdevelop5/interface/project-manager)を開きます。 -2. **ゲーム設定**パネルを展開します。 -3. **グローバル変数**を選択します。 -4. **追加**をクリックします。 -5. 変数の名前を入力します。 -6. (オプションで)変数の既定値を入力します。 -7. **適用**を選択します。 - -!!! tip - - 変数の名前にはドット/ピリオド(.)とカンマ(,)を使えません。変数名には英数字のみを使うことをおすすめします。 - -## グローバル変数を式の中で使う - -グローバル変数は[式](/ja/gdevelop5/all-features/expressions)の中で使うことができます。構文は変数のデータ型によって異なります。以下に例を示しますが、山括弧でくくられたプレースホルダーは実際に使う値に読み替えてください。 - -### 数値 - -``` -GlobalVariable(<変数名>) -``` - -### テキスト - -``` -GlobalVariableString(<変数名>) -``` - -### 構造体 - -``` -GlobalVariable(<親変数>.<子変数>) -GlobalVariableString(<親変数>.<子変数>) -``` \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/variables/index.md b/docs/ja/gdevelop5/all-features/variables/index.md deleted file mode 100644 index 9d2088939f..0000000000 --- a/docs/ja/gdevelop5/all-features/variables/index.md +++ /dev/null @@ -1,140 +0,0 @@ ---- -title: 変数 ---- -# 変数 - -GDevelop では、数値やテキストのようなデータを一時的に格納するために、_変数_を使うことができます。たとえばプレイヤーの名前、体力、スコアなどを変数に記憶しておけます。 - -!!! note - - セーブデータのような、一時的ではないデータを格納する方法については、[storage](/ja/gdevelop5/all-features/storage)を参照してください。 - -## データ型 - -変数は_データ型_というものを持ちます。変数のデータ型は、変数が保持するデータの種類を表したものです。 - -GDevelop の変数には、次のデータ型があります。 - -- 数値 -- テキスト -- 真偽値 -- 構造体 -- 配列 - -(訳注:直接値が格納される、数値、テキスト、真偽値の変数を「プリミティブ変数」といい、他のデータ型を格納できる構造体と配列を「コレクション変数」といいます) - -### 数値 -データ型が*数値*の変数には、`0` や `100`、`-10` といった数値を格納できます。このデータ型を持つ変数を使って、掛け算や割り算といった数学的な計算ができます。 - -### テキスト -データ型が*テキスト*の変数には、`こんにちは世界` といったテキストを格納できます。プログラミング言語では、このデータ型のことをよく_文字列_と呼んでいます。このドキュメントでも*テキスト*と言ったり*文字列*と言ったりすることがありますが、同じ意味です。 - -### 真偽値 -データ型が*真偽値*の変数には、最も単純な形式の情報が含まれています。 -真(true)または偽(false)のどちらかです。 -これは簡単に切り替えることができるので便利です。 - -#### 真偽値を追加する -レンチアイコン →「Primitive types」(プリミティブ型)→「真偽値に変換」をクリックすると、変数の型を真偽値に変換できます。 -![](/gdevelop5/tutorials/toggles1.png) - -#### 真偽値の変更 -真偽値の状態を変更する方法は2つあります。 - -**真偽値を変更します** -真偽値を真(true)または偽(false)に設定できます。 - -**真偽値を切り替えます** -状態を切り替えることができます。 -値が真(true)の場合、偽(false)に変更され、その逆も同様です。 - -#### 真偽値の確認 -**真偽値を比較します** -真偽値が真(true)か偽(false)かを確認できます。 -真偽値を別の値、テキストまたは真偽値と比較するには、**二つの文字列を比べる**を使用できます。 - -### 構造体 - -構造体変数には、複数の変数を格納することができます。 -たとえば、単純な構造では「Hello」という名前の変数と、「World」という名前の変数を格納できます。 -このデータ型を使用して、関連する変数をひとつの変数にまとめることができます。 -プログラミング言語では、このデータ型はオブジェクト、マップ、ハッシュ、または辞書と呼ばれることがよくあります。 - -### 配列 -配列変数は、プログラミング言語ではリストとも呼ばれ、変数のリストのようなものです。 -配列内の各変数には、配列内での位置を示す番号があります。番号は 0 から始まり、配列の長さに応じて大きくなります。 - -!!! danger - - 文字列を配列変数の番号として使用しないでください。その場合、0番目の変数が返されます。 - -#### 子変数へのアクセス - -コレクション変数が内部に保持する変数のことを_子変数_と呼びます。(訳注:「子要素」あるいは単に「要素」と呼ぶこともありますが、同じ意味です)子変数の値にアクセスするには、[式](/ja/gdevelop5/all-features/expressions)の中で次の構文を使います。山括弧内の値は、実際の変数名に置き換えてください。 - -``` -<親変数>.<子変数> -``` -このような構造になっているとします。 -![](/gdevelop5/all-features/variable_strucure_with_values.png) -値 "123" を得るには、次のような式を書きます。 -``` -GlobalVariable(players.player1.level1score) -``` -!!! tip - - 構造体の場合は、`<子変数>`は子変数の名前で、配列の場合は子変数の番号になります。配列の場合、番号として機能するのは数字のみであることに注意してください。 - -子変数が存在しない場合は、GDevelop がそれを自動的に作成します。 - -!!! note - - コレクション変数には、どんなデータ型の変数でも含むことができます。これによって、複雑な構成のデータを一つの変数に保持することが可能になります。ただしデータの管理が難しくなるので、慎重に使ってください。 - -#### 子変数への動的アクセス - -式を使うと、子変数に動的にアクセスできます。 - -たとえばプレイヤーのスコアを表す構造体 `PlayerScore` があって、レベルごとのスコアを子変数 `Level1`、`Level2`、`Level3` に格納している状態を想像してください。現在のレベル番号が `CurrentLevel` という変数に入っていて、そのレベルのプレイヤーのスコアを取得したいものとします。この場合は、次の構文でスコアにアクセスできます。 - -``` -PlayerScore[“Level”+ToString(Variable(CurrentLevel))] -``` - -## スコープ - -変数の_スコープ_は、下記の内容を定義します。 - -- 変数に対してどこからアクセスできるか -- 変数がどれくらいのあいだメモリー上に存在するか -- 変数の作成に必要な手順は何か - -GDevelop には次の 3 つの変数スコープが存在します。 - -- [グローバル](/ja/gdevelop5/all-features/variables/global-variables) -- [シーン](/ja/gdevelop5/all-features/variables/scene-variables) -- [オブジェクト](/ja/gdevelop5/all-features/variables/object-variables) - -各変数スコープの詳細については、リンク先のページを参照してください。 - -## 変数の名前付け - -変数の名前にはドット/ピリオド(.)とカンマ(,)は使えません。また文字で始まる必要があります。 -変数名には英数字のみ(a-z, A-Z, 0-9)を使うことをおすすめします。(訳注:仕様上は日本語を使っても問題ありません) - -## 宣言しないで変数を使う - -作成(宣言)しないで、いきなり変数を使うこともできます。 - -たとえばアクションや条件の中で存在しない変数を参照した場合、GDevelop はその変数を自動的に既定値で初期化します。既定値はデータ型に応じて次のように決まります。 - -* 数値変数は値 `0` で初期化される -* テキスト変数は値 `""`(空文字列)で初期化される - -事前に作成していない変数を使うことは可能ですが、変数は使う前に明示的に宣言して初期化することをお勧めします。それによって GDevelop が最適化したイベントを生成して、ゲームで使われる変数をきちんと管理することができるようになるからです。 - -## 変数のデバッグ - -ゲームを作っていると、変数の値が予期した値にならないせいで、バグが発生することがあります。もしゲームの何かがうまく動かなくて、その問題に変数が関係している可能性がある場合は、GDevelop のデバッガーが原因究明の役に立つでしょう。 - -詳細は[debugger](/ja/gdevelop5/interface/debugger)を参照してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/variables/object-variables.md b/docs/ja/gdevelop5/all-features/variables/object-variables.md deleted file mode 100644 index f966bec6d7..0000000000 --- a/docs/ja/gdevelop5/all-features/variables/object-variables.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: オブジェクト変数 ---- -# オブジェクト変数 - -オブジェクト変数とは、次のような変数です。 - -- オブジェクトの特定インスタンスが存在するあいだ、ずっとメモリー上に存在する -- オブジェクトの特定インスタンスからアクセスできる - -敵の体力値のような、オブジェクトの特定インスタンスと強く関連づいたデータを格納するのに向いています。オブジェクト変数は、シーンから関連インスタンスが削除されるとメモリーから削除されます。 - -!!! note - - 用語の_オブジェクト変数_、_インスタンス変数_、_オブジェクトのインスタンス変数_は、どれも同じ意味で使われます。 - -## オブジェクト変数の作成 - -1. [シーンエディター](/ja/gdevelop5/interface/scene-editor)を開きます。 -2. **オブジェクト**パネル上で目的のオブジェクトを右クリックします。 -3. **オブジェクト変数を編集**を選択します。 -4. **追加**をクリックします。 -5. 変数の名前を入力します。 -6. (オプションで)変数の既定値を入力します。 -7. **適用**を選択します。 - -!!! tip - - 変数の名前にはドット/ピリオド(.)とカンマ(,)を使えません。変数名には英数字のみを使うことをおすすめします。 - -## オブジェクト変数を式の中で使う - -オブジェクト変数は[式](/ja/gdevelop5/all-features/expressions)の中で使うことができます。構文は変数のデータ型によって異なります。以下に例を示しますが、山括弧でくくられたプレースホルダーは実際に使う値に読み替えてください。 - -### 数値 - -``` -<オブジェクト名>.Variable(<変数名>) -``` - -### テキスト - -``` -<オブジェクト名>.VariableString(<変数名>) -``` - -### 構造体 - -``` -<オブジェクト名>.Variable(<親変数>.<子変数>) -<オブジェクト名>.VariableString(<親変数>.<子変数>) -``` \ No newline at end of file diff --git a/docs/ja/gdevelop5/all-features/variables/scene-variables.md b/docs/ja/gdevelop5/all-features/variables/scene-variables.md deleted file mode 100644 index 0d2e6a6a72..0000000000 --- a/docs/ja/gdevelop5/all-features/variables/scene-variables.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: シーン変数 ---- -# シーン変数 - -シーン変数とは、次のような変数です。 - -- シーンがアクティブなあいだ、ずっとメモリー上に存在する -- 現在のシーンからだけアクセスできる - -そのシーンの敵機数のような、他のシーンと共有する必要のないデータを格納するのに向いています。シーン変数は、プレイヤーが別のシーンに移るとメモリーから削除されます。 - -## シーン変数の作成 - -1. [シーンエディター](/ja/gdevelop5/interface/scene-editor)を開きます。 -2. シーンを右クリックします。 -3. **シーンプロパティ**を選択します。 -4. **シーン変数を編集**を選択します。 -5. **追加**をクリックします。 -6. 変数の名前を入力します。 -7. (オプションで)変数の既定値を入力します。 -8. **適用**を選択します。 - -!!! tip - - 変数の名前にはドット/ピリオド(.)とカンマ(,)を使えません。変数名には英数字のみを使うことをおすすめします。 - -## シーン変数を式の中で使う - -シーン変数は[式](/ja/gdevelop5/all-features/expressions)の中で使うことができます。構文は変数のデータ型によって異なります。以下に例を示しますが、山括弧でくくられたプレースホルダーは実際に使う値に読み替えてください。 - -### 数値 - -``` -Variable(<変数名>) -``` - -### テキスト - -``` -VariableString(<変数名>) -``` - -### 構造体 - -``` -Variable(<親変数>.<子変数>) -VariableString(<親変数>.<子変数>) -``` \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/anchor.md b/docs/ja/gdevelop5/behaviors/anchor.md deleted file mode 100644 index e6c31d9c0c..0000000000 --- a/docs/ja/gdevelop5/behaviors/anchor.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: アンカービヘイビア ---- -# アンカービヘイビア - -アンカービヘイビアはオブジェクトをウィンドウ境界(上下左右)に固定します。いったんアンカーすると、画面サイズを変更してもオブジェクトとウィンドウの端は一定の距離をキープします。これは常駐型の UI/HUD オブジェクトに最適です。 - -## オブジェクトを画面にアンカーする - -次の手順でオブジェクトにアンカーを追加します。 - - * オブジェクトパネル上で目的のオブジェクトを右クリックし(またはオブジェクトを新規作成し)、**オブジェクトを編集**を選択します。 - * **ビヘイビア**タブをクリックします。 - * **+** をクリックしてオブジェクトにビヘイビアを追加します。 - * **アンカー**を選択します。 - * 固定したい境界を選んで、**適用**をクリックします。 - - -![](/gdevelop5/behaviors/anchorbehavior.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/destroyoutside.md b/docs/ja/gdevelop5/behaviors/destroyoutside.md deleted file mode 100644 index 18be9fee9a..0000000000 --- a/docs/ja/gdevelop5/behaviors/destroyoutside.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: 画面外のビヘイビアを消去 ---- -# 画面外のビヘイビアを消去 - -**[画面外のビヘイビアを消去するサンプルをすぐに見たいですか?](#Examples) ** - -これは、最もシンプルでありながら便利な動作の1つです。それをオブジェクトに追加すると、このオブジェクトのインスタンスがゲームシーン/画面の境界から出るたびに、このインスタンスは破棄されます。 - -これは、ゲームの速度を低下させる可能性のあるごみオブジェクトでゲームがいっぱいにならないようにする簡単な方法です。 - -### オブジェクトにビヘイビアを追加 - -オブジェクトに動作を追加するには、最初に\[オブジェクト\]リストにあるオブジェクトを右クリックしてオブジェクトプロパティを開きます。ポップアップリストから\[オブジェクトの編集\]を選択します。次に、「ビヘイビア」タブを選択します。「ビヘイビアを追加」ボタンをクリックします。 - -![](/gdevelop5/behaviors/addbehavior.jpg) - -### 画面外に出たら消去 - -![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -リストから破棄ビヘイビアを選択すると、オブジェクトが画面外にあるときはいつでもオブジェクトが削除されます。このビヘイビアには変更するオプションがなく、オブジェクトのすべてのインスタンスに自動的に適用されます。 - -# 例 - -!!! note - - **やってみよう!** 🎮 - - サンプルをオンラインで実行できます - -**スクリーン外のビヘイビア** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/outsidescreenbehaviorspaceshooter.png)](https://editor.gdevelop.io/?project=example://space-shooter) - - -**画面/シーンの外の弾丸を消去する** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shoot-bullets){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/outsidescreendestroybullets.png)](https://editor.gdevelop.io/?project=example://shoot-bullets) - - -**弾丸の説明** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/bulletshootingexplanationexample.png)](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation) diff --git a/docs/ja/gdevelop5/behaviors/draggable.md b/docs/ja/gdevelop5/behaviors/draggable.md deleted file mode 100644 index 676493cb27..0000000000 --- a/docs/ja/gdevelop5/behaviors/draggable.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: ドラッグ対応オブジェクトビヘイビア ---- -# ドラッグ対応オブジェクトビヘイビア - -!!! tip - - **やってみよう!** 🎮 - [説明はいいから、とにかくドラッグ対応ビヘイビアが動くところを見たい? わかりました、こちらを先にどうぞ。](/#サンプル) - - -ドラッグ対応オブジェクトビヘイビアは、オブジェクトをマウスでドラッグしたり、タッチスクリーンであればタッチでドラッグできるようにします。 - -## ドラッグ対応ビヘイビアをオブジェクトに追加する - -ドラッグ対応ビヘイビアをオブジェクトに追加するには、新しくオブジェクトを作成するか、またはオブジェクトリストから既存オブジェクトのプロパティを開きます。ポップアップメニューから[オブジェクトを編集]を選択します。次に[ビヘイビア]を選択し、ビヘイビア追加ボタンをクリックします。 - -![](/gdevelop5/behaviors/addbehavior.jpg) - -リストからビヘイビアを選択します。 - -![](/gdevelop5/behaviors/draggable-object-behavior-inlist.png) - -## プロパティとイベント - -このビヘイビアには、特に設定はありません。ビヘイビアを追加したオブジェクトには自動的に機能が適用されます。 -イベントを使うと、特定のオブジェクトのビヘイビアを無効化したり再有効化したりできます。これによってプレイヤーが移動できるオブジェクトや時間帯を制限できます。 - -イベントを使うと、オブジェクトがドラッグ操作中かどうかを調べることもできます。 - -![](/gdevelop5/behaviors/eventcondtiondraggableobject.png) - - -# サンプル - -!!! tip - - **やってみよう!** 🎮 - オンラインで下記のサンプルを実行できます。 - -**グリッドに吸着** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://snap-object-to-grid){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/snaptogrid.png)](https://editor.gdevelop.io/?project=example://snap-object-to-grid) - - - -**弾丸を放物線上に発射**(放物線は U 字型の鏡面対称になる平面曲線です。基本的に、発射されたオブジェクトは目標に向かって曲線状の軌跡を描きます) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shoot-bullet-in-parabola){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/shootbulletparabolapattern.png)](https://editor.gdevelop.io/?project=example://shoot-bullet-in-parabola) - - - -**セーブとロード** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://save-load){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/saveandloadexample.png)](https://editor.gdevelop.io/?project=example://save-load) - - - -**経路探索の基本** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding-basics){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindingbasics.png)](https://editor.gdevelop.io/?project=example://pathfinding-basics) \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/events-based-behaviors.md b/docs/ja/gdevelop5/behaviors/events-based-behaviors.md deleted file mode 100644 index 09562c211c..0000000000 --- a/docs/ja/gdevelop5/behaviors/events-based-behaviors.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: カスタムビヘイビア:イベントで独自のビヘイビアを作成する ---- -# カスタムビヘイビア:イベントで独自のビヘイビアを作成する - -ビヘイビアは、何かの定義済み機能を手早くオブジェクトに追加するにはもってこいの存在です。ビヘイビアは使いやすく、複雑な機能でも簡単にオブジェクトに追加できます。もしこれを全部イベントの再作成で行うとしたら、とても面倒な作業になり、イベントシートが汚部屋状態になることでしょう(たとえ[グループ](/ja/gdevelop5/events/group)や[関数](/ja/gdevelop5/events/functions)、[外部イベント](/ja/gdevelop5/interface/project-manager)を活用したとしても)。 - -GDevelop では、専用の**カスタムビヘイビア**を作成できます。標準の組み込みビヘイビアと同様に、カスタムビヘイビアもオブジェクトに追加できます。これを使うと*オブジェクトを自動的に操作する*ことが可能になります。たとえば**オブジェクトの移動**や**変数**の変更、(スプライトオブジェクトの)アニメーション変更、(テキストオブジェクトの)テキスト変更など、通常はイベントで行うようなあらゆる操作がビヘイビアで実現します。 - -!!! tip - - ビヘイビアをどうゲームで使うのかサンプルを見たい場合は、[オブジェクトのビヘイビアを作成する方法](/ja/gdevelop5/tutorials/how-to-make-behavior)を参照してください。ステップバイステップの説明と、ビヘイビアを使ってゲームを構築するガイドを読むことができます。 - -## 新しいビヘイビアを作成する - -ビヘイビアは拡張機能のひとつに分類されます。これは GDevelop の[自作できる拡張機能](/ja/gdevelop5/extensions/extend-gdevelop)とよく似ていますが、そちらが関数で構成されるのに対して、ビヘイビアはイベントで構成されるという違いがあります。新しく追加した拡張機能も含めて、そのゲームのすべての拡張機能のリストを[プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)で見ることができます。 - -![](/gdevelop5/events/project-manager-functions-extensions.png) - -下部の[+]ボタンをクリックして、新しい拡張機能を作成します。右クリックから名前を変更できます。同じ目的に関連した関数とビヘイビアはひとつの拡張機能にまとめると良いでしょう。 - -リストからいま作成したばかりの拡張機能をクリックすると、拡張機能エディターが開きます。デフォルトの拡張機能には何の機能もありません。左のパネルから[新しいビヘイビアを追加]をクリックして追加します。 - -![](/gdevelop5/behaviors/add-events-based-behavior.png) - -新しいビヘイビアが追加されました。やりたいことに則った名前に変更しましょう。たとえば、ビヘイビアが敵をプラットフォーム上で左右に移動させるのに使われるなら、`HorizontalMovement`(英数字とアンダースコアだけが使えます)という名前なんかいいですね。ダメージを管理して、必要に応じて自動的にオブジェクトを削除するようなビヘイビアには、`Destructible` という名前はどうでしょう。 - -ビヘイビアを右クリックして[プロパティ]を選ぶと、ビヘイビアの設定を編集できます。説明を入力したり、エディター上の表示名を入力したり、追加できるオブジェクトのタイプを制約したければそれを指定することもできます。 - -![](/gdevelop5/behaviors/setup-destructible-behavior.png) - -ビヘイビアには、数値や文字列、真偽値などの値をビヘイビア内に格納するプロパティを追加できます。プロパティの追加方法と使い方は、このページの最後の方のセクションで説明しています。 - -### ビヘイビアに関数を追加する - -リストからビヘイビアをクリックすると、ビヘイビアを構成する関数のリストを確認できます。ビヘイビア関数リストは右側のパネルに表示されます。 - -![](/gdevelop5/behaviors/empty-behavior-functions-list.png) - -既定では、ビヘイビアは空っぽで**何もしません**。機能を持たせるために、新しい関数(メソッド)を追加しましょう。ライフサイクルメソッドと呼ばれる定義済み関数とカスタム関数の中から、適切な関数タイプを選択します。ライフサイクルメソッドは、ゲームの実行中に所定のタイミングでゲームエンジンによって自動的に呼び出されます。カスタム関数は条件やアクションで利用可能になります([通常の関数](/ja/gdevelop5/events/functions)と同じです)。 - -![](/gdevelop5/behaviors/behavior-choose-method.png) - -### ライフサイクルメソッド - -定義済みライフサイクルメソッドは、以下の種類が存在します。 - -* **onCreated**:このビヘイビアを持つ**オブジェクトの新しいインスタンス**が作成されたときに実行されるイベントです。 -* **onStepPreEvents**:フレームが画面にレンダリングされるたびに毎回実行されるイベントです。シーンの**「通常」イベントが実行される前に**呼び出されます。たいていのゲームでは、1 秒間に 60 回になるでしょう。これは当該ビヘイビアが無効にされていない限り、そのビヘイビアを持つ**すべてのオブジェクトひとつひとつ**について、呼び出されます。 -* **onOwnerRemovedFromScene**:このビヘイビアを持つオブジェクトが**削除**されたときに実行されるイベントです。もし複数のオブジェクトが同時に削除された場合は、オブジェクト個別にイベントが複数回実行されます。これはビヘイビアが無効になっている場合でも発動します。 -* **onDeActivate**:オブジェクトのビヘイビアが無効になった後に一度だけ実行されるイベントです。 -* **onActivate**:オブジェクトのビヘイビアが再び有効になった後に一度だけ実行されるイベントです。 -* **onStepPostEvents**:シーンの「通常」イベントの**後に**実行されるイベントです。当該ビヘイビアが無効にされていない限り、そのビヘイビアを持つすべてのオブジェクトひとつひとつについて、呼び出されます。たいていのゲームでは、1 秒間に 60 回になるでしょう。可能であれば、onStepPreEvents の使用を推奨します。ビヘイビアが通常イベントの前に処理を行い、その結果オブジェクトに生じた変更を受けて通常イベントが走るという連携が成立するからです。 - -これに該当するビヘイビアの例を次に示します。これは onStepPreEvents 内のイベントを使ってひどいダメージを受けたオブジェクトを自動的に削除します。 - -![](/gdevelop5/behaviors/behavior-lifecycle-method-example.png) - -### カスタムアクション、条件、式 - -ビヘイビア関数の作成時にカスタム関数を選ぶと、通常の関数と同じような設定を行う画面に移行します。それがアクションか条件か式かを指定し、名前を入力し、説明を入力し、イベントシートに表示される文を入力します。 - -次の図は、オブジェクトにダメージを追加する新規アクションを作成した例です。 - -![](/gdevelop5/behaviors/behavior-custom-function-example.png) - - - -## オブジェクトのビヘイビアを使う - -### 1) ビヘイビアをオブジェクトに追加する - -ビヘイビアを作成したら、次はそれをオブジェクトにアタッチします。これの一番いいところは、イベントベースのビヘイビアは GDevelop 付属の他の「[組み込みビヘイビア](/ja/gdevelop5/behaviors)」とまったく同じようにリストに出てくるという点です。 - -見てください。これは「Destructible Object」ビヘイビア(前のスクリーンショットで作成していたもの)の例です。 - -![](/gdevelop5/behaviors/choose-custom-behavior-in-list.png) - -作成したカスタムビヘイビアは、オブジェクトにアタッチされたビヘイビアのリストに表示されます。 - -![](/gdevelop5/behaviors/screenshot_2019-05-07_23.48.04.png) - -ゲームを実行して、「doStepPreEvents」関数(または「doStepPostEvents」)のイベントが実行されるのを確認しましょう。先ほど作成した Destructible ビヘイビアの例では、「Damage」変数が 100 以上であればオブジェクトを自動的に削除するようにしました。 - -これをテストするために、「Destructible」ビヘイビアを「Platform」オブジェクトに追加します。それからデバッガーを起動し、インスペクターで「Platform」インスタンスを調べて「Damage」変数が 0 であることを確認します。デバッガー(またはイベント)を使って変数に 100 を設定すると、オブジェクトがシーンから削除されます。 - -![](/gdevelop5/behaviors/example-test-destructible-behavior-debugger.png) - -### 2) アクション/条件/式を使う - -対応する関数宣言さえあれば、他の「組み込みビヘイビア」と同じく自作したビヘイビアもアクション/条件/式で使えます。たとえば「Destructible」ビヘイビアでは、オブジェクトにダメージを与えるアクションを作成しました。そのアクションをイベントシートで使うことができます。 - -![](/gdevelop5/behaviors/custom-behavior-action.png) - -イベントシートに表示されている状態です。 -![](/gdevelop5/behaviors/custom-behavior-action-events-sheet.png) - -見ての通り、これを使うととても分かりやすく読みやすいイベントになります。もっと複雑で、他のオブジェクトでも再利用可能なビヘイビアにもすることができます。 - -## ビヘイビアにプロパティを追加して使う - -ビヘイビアの興味深い点は、オブジェクト変数のように、関連情報を内部に保持できることです。これはプロパティと呼ばれます。プロパティは数値、文字列(テキスト)、真偽値(チェックを入れたり外したりできる仮想のチェックボックスのようなもの)のどれでも保持できます。 - -プロパティを使うと、ビヘイビアをカスタマイズすることができます。たとえば速度やダメージ量、ライフ数、パワー数、マナ等々をプロパティとして持ち、その値に応じてビヘイビアの処理を変更するのです。 - -ビヘイビアにプロパティを追加したり確認するには、ビヘイビアを編集して[プロパティ]タブをクリックします。下図は「Health」というビヘイビアのプロパティを表示した状態です。オブジェクトのヘルス値と、連続してダメージを受ける最小間隔(クールダウン)の 2 つのプロパティを確認できます。 - -![](/gdevelop5/behaviors/health-behavior-properties.png) - -プロパティには次の特徴があります。 - -* 数値、文字列、真偽値(チェックボックスとして表示)のいずれかになる -* 既定値を設定でき、ビヘイビアがオブジェクトに追加された際に値を変更しなければ既定値が採用される -* オブジェクトに追加されたときにエディター上に表示することも、非表示にすることもできる -* エディター表示用のラベルを持っている - -### アクションと条件を使ってプロパティを操作する - -ビヘイビアにプロパティを作成すると、ビヘイビア内のイベントシートに、プロパティに対応する条件とアクションが自動で追加されます。各プロパティについて、値を比較する条件と、それを変更するアクションを選択できるようになります。 -また文字列と数値については、値を取得するための式も利用できるようになります。 - -!!! note - - プロパティの名前を変更すると、それを参照するアクション/条件/式も自動的に更新されます。 - -!!! tip - - これらのアクション/条件/式はビヘイビアの外部では利用できません。プロパティはある種の「プライベートスコープ」であり、ビヘイビアによってのみ操作できます。プロパティをシーンイベントからも変更したい場合は、そのための新しいアクション/条件をビヘイビアに作成する必要があります。 - -## ビヘイビアのメリットとデメリット - -独自のビヘイビアを作成することには、いくつかのメリットがあります。 - -* *カプセル化*:カスタムビヘイビアの内部にロジックを隠蔽することによって、イベントシートを最小限のイベントで簡潔に保ち、読みやすく、メンテナンスもしやすくなります。ビヘイビアはロジックを実行するアクションと条件と式を持てるため、イベントシートで長い操作を繰り返す必要がありません。他のビヘイビアを使うときと同じように、ビヘイビアが提供するアクション/条件をふつうに使えばいいだけです。 -* *再利用性*:たとえば敵を移動させて、プレイヤーに踏まれたらライフを減らすようなビヘイビアを作成したとしましょう。もしまったく新しい種類の敵――ただし基本的な挙動は共通の――を追加したいと思ったら、新しいオブジェクトを作成し、それに同じビヘイビアを、プロパティを変えて追加すればいいのです。何回かクリックするだけで、新しい敵がゲームに登場するでしょう。 -* *共同作業*:チームでゲーム制作をしているか、あるいはプロジェクトをオープンソースにして新機能の開発やゲームプレイに参加してくれるコントリビューターを募るとします。カスタムビヘイビアを使うと、誰でも自己完結型の機能とゲームロジックをデザインして、それを簡単にインポートしたり、他の人に使ってもらったりできます。その人がレベルデザイナーやゲームデザイナー相当の知識を持っている必要はありません。ゲーム業界で働いている必要もありません。それをいうなら、そこでは働きたくないと思っている人でも、大丈夫です。 - -!!! note - - カプセル化と再利用性は、プログラミングの最重要概念です。Unity のような他のゲームエンジンでは、オブジェクトとビヘイビアのことをエンティティとコンポーネントと呼ぶかもしれません。 - -ビヘイビアの*構成しやすさ*は、今後のアップデートでさらに改善していく予定です。 - -## カスタムビヘイビアのサンプル/アイディア - -たぶん皆さんもたくさんのビヘイビアを思いつくでしょうが、ここでいくつか例を挙げておきます。 - -* **敵やボスのヘルス値を管理**するビヘイビア。 - - * 「オブジェクトを攻撃する」アクションと、「オブジェクトは死んでいるか?」条件を使える。ビヘイビアは敵のライフ値を管理するために、オブジェクト変数を更新する(たとえば敵が攻撃されたら、ライフを減少させる。 - そして、各フレームごとに少しずつ回復させる)、「オブジェクトは死んでいるか?」条件でライフが 0 になったかどうかをチェックする。 - -* ほかのアイディアとしては、**敵を複雑なパターンで移動させる**イベントをビヘイビア内に作成する。 - - * 移動パターンや速度などを変更するためのアクション/条件を追加できる。全部ビヘイビア内に用意して、数クリックでどんなオブジェクトにも追加できる。 - - -* 敵を撃破したりアイテムを取ったりしたときに、**自動的にスコアを更新する**ビヘイビア。 - - * オブジェクトが破壊されたときにスコア変数を増やすビヘイビアを作成する。それから、このビヘイビアを持つアイテムや収集品、敵などを作成して、それらが収集されたり破壊されたときに、スコアを自動で増やす。 - -!!! tip - - ビヘイビアをどうゲームで使うのかサンプルを見たい場合は、[オブジェクトのビヘイビアを作成する方法](/ja/gdevelop5/tutorials/how-to-make-behavior)を参照してください。ステップバイステップの説明と、ビヘイビアを使ってゲームを構築するガイドを読むことができます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/index.md b/docs/ja/gdevelop5/behaviors/index.md deleted file mode 100644 index 033a18fbe2..0000000000 --- a/docs/ja/gdevelop5/behaviors/index.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: ビヘイビア ---- -# ビヘイビア - -GDevelopの_ビヘイビア_は、わずか数クリックで[オブジェクト](/ja/gdevelop5/objects)に大幅な機能を追加できます。 - -ビヘイビアには次のようなことができます。 - -* 画面外に出たオブジェクトを自動的にシーンから削除する -* 物理法則にのっとったリアルな挙動でオブジェクトを移動する -* 矢印キーでオブジェクトを移動できるようにする - -またビヘイビアをカスタマイズして唯一無二のゲームフィールを作り出し、そのビヘイビアを[イベント](/ja/gdevelop5/events)で操作できます。 - -## ビヘイビアのリスト - -この節ではいろいろな種類のビヘイビアをリストにしました。どれもオブジェクトに他と異なる機能を追加します。 - -- [アンカー](/ja/gdevelop5/behaviors/anchor) -- [バウンス](/ja/gdevelop5/behaviors/bounce) -- [画面外で消去](/ja/gdevelop5/behaviors/destroyoutside) -- [ドラッグ対応](/ja/gdevelop5/behaviors/draggable) -- [経路探索](/ja/gdevelop5/behaviors/pathfinding) -- [物理エンジン 2.0](/ja/gdevelop5/behaviors/physics2) -- [プラットフォーマーオブジェクトとプラットフォーム](/ja/gdevelop5/behaviors/platformer) -- [トップダウン動作](/ja/gdevelop5/behaviors/topdown) -- [Tween](/ja/gdevelop5/behaviors/tween) - -種類別ビヘイビアの詳細は、リンク先の各ページで確認してください。 - -### 廃止予定の非推奨ビヘイビア - -- [旧物理エンジン](/gdevelop5/behaviors/physics) - -## ビヘイビアをオブジェクトに追加する - -1. **オブジェクト**パネル上で目的のオブジェクトを右クリックします。 -2. **オブジェクトを編集**を選択します。 -3. **ビヘイビア**タブに切り替えます。 -4. **+** アイコンをクリックします。 -5. リストからビヘイビアを選択します。 -6. ビヘイビアをカスタマイズします。利用できる設定は、ビヘイビアによって異なります。 -7. **適用**をクリックします。 - -![](/gdevelop5/new-behavior-dialog.png) - -## 新しいビヘイビアをインストールする - -誰でも[カスタムビヘイビアを作り](/ja/gdevelop5/behaviors/events-based-behaviors)、それを GDevelop コミュニティでシェアできます。 - -![](/gdevelop5/search-new-behaviors.png) - -コミュニティ製のビヘイビアを検索してインストールする手順は次の通りです。 - -1. **オブジェクト**パネル上で目的のオブジェクトを右クリックします。 -2. **オブジェクトを編集**を選択します。 -3. **ビヘイビア**タブに切り替えます。 -4. **+** アイコンをクリックします。 -5. **新しいビヘイビアを検索**タブに切り替えます。 -6. ビヘイビアを検索します。 -7. ビヘイビアを選択します。 -8. **プロジェクトにインストール**をクリックします。 - -インストールが完了したビヘイビアは**インストール済みのビヘイビア**タブに表示されます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/pathfinding.md b/docs/ja/gdevelop5/behaviors/pathfinding.md deleted file mode 100644 index 21ee068386..0000000000 --- a/docs/ja/gdevelop5/behaviors/pathfinding.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: 経路探索 ---- -# 経路探索 - -**[経路探索ビヘイビアのサンプルがすぐに見たいですか?](#Examples) ** - -経路探索(パスファインディング)の動作により、オブジェクトを選択した目的地に移動したり、アイテムを障害物としてフラグを立てたりすることができます。障害物としてフラグが付けられているオブジェクトは、移動するオブジェクトによって回避されます。 - -## オブジェクトにビヘイビアを追加 オブジェクトに動作を追加するには、いつものようにオブジェクトを作成します。次に、シーンインターフェイスの右側にあるオブジェクトリストを右クリックして、オブジェクトのプロパティを開きます。ポップアップリストから\[オブジェクトの編集\]を選択します。 - -![](/gdevelop5/editplayerobject.jpg) - -次に、動作タブを選択し、「動作を追加」ボタンをクリックします。 - -![](/gdevelop5/behaviors-tab.png) - -次に、選択できる2つのオプションがあります。 - -## オプション1:経路探索の動作 ![](/gdevelop5/behaviors/pathfinding-behavior-inlist.png) - -「経路探索(パスファインディング)ビヘイビア」により、障害物としてフラグが立てられているすべてのオブジェクトを回避しながら、オブジェクトを目的地に移動できます。 - -オブジェクトにビヘイビアを追加した後、いくつかのオプションをカスタマイズできます。 ![](/gdevelop5/behaviors/pathafindin-behavior-options.png) - -- **加速度:** オブジェクトがパス上を移動するときに加速する速度です -- **対角線を許可:** オブジェクトが対角線で移動できるかどうかを許可します。 -- **角度オフセット:** スプライトが間違った方向を向いている場合、角度オフセットで設定できます。 -- **追加境界線サイズ:** オブジェクトの周囲の境界線サイズを設定します。この設定は、オブジェクトが障害物にどれだけ接近できるかを決定します。 -- **最大速度:** オブジェクトがパス上を移動できる最大速度。 -- **オブジェクトの回転:** パス上を移動中にオブジェクトを回転させたくない場合は、オブジェクトの回転を無効にします。 -- **回転速度:** オブジェクトの回転速度を設定します。 -- **仮想セルの高さと幅:** パスは仮想グリッドを使用して生成されます。ここでセルのサイズを変更できます。セルのサイズが小さいほど、動きがスムーズになります。セルサイズが小さいほど計算量が多くなるため、サイズをできるだけ大きく保つようにしてください。 - -## オプション2:経路探索障害動作 ![](/gdevelop5/behaviors/pathfinding-obstacle-inlist.png) - -「経路探索(パスファインディング)障害動作」を使用することにより、任意のオブジェクトに障害があるとフラグを立てることができます。オブジェクトに動作を追加した後、カスタマイズする2つのオプションがあります。 ![](/gdevelop5/behaviors/pathfinding-obstacle-options.png) - -- **通行不可:** これを有効にすると、障害物は通行不能になります。動いているオブジェクトは、どうにかしてそれを避けようとしています。 -- **コスト:** 障害物が通過できない場合、障害物のコストを設定できます。移動するオブジェクトは、目的地への最適な経路を探す際に、コストの高い値の障害物を避けることを好みます。たとえば、川にはコストがかかる場合があります。移動オブジェクトは、可能であれば、それを回避します。ただし、川の周りに他の方法がない場合、または川のコストが他の地域に比べて低い場合、移動オブジェクトは通過します(たとえば、より高いコストで山に登るのではなく)。そして、ワニを川に入れてコストを上げると、動いている物体が代わりに山に登ることを決めるかもしれません。 - -## サンプル - -!!! note - - **やってみよう!** 🎮 - - サンプルをオンラインで実行できます - -**一般的な経路探索ビヘイビア** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindinggeneral.png)](https://editor.gdevelop.io/?project=example://pathfinding) - - -**経路探索の基本** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://pathfinding-basics){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/pathfindingbasics.png)](https://editor.gdevelop.io/?project=example://pathfinding-basics) diff --git a/docs/ja/gdevelop5/behaviors/physics2.md b/docs/ja/gdevelop5/behaviors/physics2.md deleted file mode 100644 index adfafd892d..0000000000 --- a/docs/ja/gdevelop5/behaviors/physics2.md +++ /dev/null @@ -1,400 +0,0 @@ ---- -title: 物理エンジン 2.0 ---- -# 物理エンジン 2.0 - -物理エンジン ビヘイビアをオブジェクトに追加すると、物理法則にのっとったリアルな挙動でオブジェクトを移動できます。拡張機能は内部的に Box2D を使っています。これは高速で完全な剛体物理シミュレーションライブラリです。 - -ビヘイビアは 3 つの大きな概念で構成されています。ボディを含むワールド、ボディ、およびボディをリンクするジョイントです。これらすべてについて、ここでくわしく説明します。 - -!!! warning - - 制限事項:上記で述べられているように、この拡張機能は剛体の物理シミュレーションです。つまりボディは変形できません。やわらかい形状、衣服、液体などには対応していません。 - -## ワールド - -ワールドはシミュレーションが実行される場所です。ボディとジョイントはワールドに追加することで、他のエンティティと相互作用できるようになります。 -ただしこれは原理の説明であって、実際に自分でワールドにオブジェクトを配置する必要はありません。物理ビヘイビアを使用するオブジェクトは、ワールドに自動的に追加されます。また、ワールドは一度に 1 つしか存在できません。2 つの独立したシミュレーションを同時に実行することはできません。 -GDevelop のシーンサイズと同様に、ワールドサイズは無限であるため、オブジェクトがどこにあるのかを気にする必要はありません。オブジェクトは常に物理法則に従います。 - -ワールドには 3 つのプロパティがあります。 - - * **重力**:2 つの成分(X と Y)で構成され、おなじみの重力のように機能し、すべてのオブジェクトに力を加えて、それらを指定された方向に押します。オブジェクトは重力スケール係数にも対応していますが、これについてはボディに関する節でくわしく説明します。 - * **タイムスケール**:シミュレーションが使用する時間のスケールを定義します。タイムスケール= 0.5 の場合はシミュレーションが半分の速度で実行され、タイムスケール= 2 の場合はシミュレーションが 2 倍の速度で実行され、タイムスケール= 0 の場合はシミュレーションが一時停止します。バレットタイム(スローモーション)エフェクトにたいへん便利です。 - * **スケール**:GDevelop は距離やサイズをピクセル単位で扱いますが、物理エンジンはメートル法を使用します。そこで単位変換のためにスケールファクター(拡大率)を設定する必要があります(ここにもスケール X と Y の 2つの成分があります)。スケールの数値は、1 メートルが何ピクセルかを表しています。たとえばスケー ル値 50 は、GDevelop 内で 50 ピクセルの距離が物理演算ワールドの 1 メートルに変換されることを意味します。 - -!!! note - - ワールドスケールを決定するにあたって最も重要なルールは、可動/ダイナミックオブジェクトのサイズが 0.1〜10 メートルの範囲内におさまるようにすることです。この範囲を外れると、シミュレーションの精度が失われます。たとえば 100 × 100 ピクセルていどのオブジェクトサイズで作業している場合、ワールドスケール 100 なら問題ありません。この場合オブジェクトのボディサイズは約 1 x 1 メートル相当になります。スタティックオブジェクトの場合はもっと長くでき、50 メートルに拡大しても大丈夫です。 - -## ボディ - -ボディは物理エンジン拡張機能の中核です。これはオブジェクトがどのように動くか、どんな形状をとるか、どれだけ跳ね返るのか、回転できるのか、移動できるのかなどを定義します。 - -物理エンジンビヘイビアをオブジェクトに追加すると、エディター上で直接ボディの設定を調整できます。 -たくさんのオプションがあるため、以下に分類して説明します。 - -### ボディタイプ - -GDevelop は 3 つの基本的なボディタイプをサポートしています。 - - * **ダイナミック**:もっとも一般的なタイプであるダイナミック(動的)ボディは重力の影響を受け、他のダイナミックボディ、スタティックボディ、キネマティックボディと衝突させることができます。フォースとインパルスを適用し、速度も変更できます。移動しなければならないものはほとんど、ダイナミックボディにする必要があります。 - * **スタティック**:スタティック(静的)オブジェクトは重力の影響を受けず、フォースやインパルス、速度の変更によって移動しません。ダイナミックオブジェクトのみと衝突し、キネマティックやほかのスタティックボディを無視します。地面、動かない壁、プラットフォームなど、ワールド内の静的な構造物に適しています。 - * **キネマティック**:キネマティックは非常に特殊です。スタティックオブジェクトのように重力やフォース、インパルスの影響を受けませんが、ダイナミックオブジェクトのように速度を設定して移動できます。キネマティックはダイナミックオブジェクトとのみ衝突し、移動する壁やプラットフォームをシミュレートするのに最適です。 - -ダイナミック関連設定: - - * **バレット**:「はい」(またはチェックをオン)に設定すると、オブジェクトは継続的衝突検出アルゴリズムを使用します。パフォーマンスは若干犠牲になりますが、高速移動時の衝突判定精度が大幅に改善します。弾丸(または非常に高速なオブジェクト)を正しくシミュレートするのに役立ち、弾丸が細いオブジェクトをすり抜けてしまう可能性を減らします。 -!!! danger - - このオプションは本当に必要なときだけ使うようにしてください。移動するオブジェクトすべてに使用すると、パフォーマンスに*深刻な*影響を与える可能性があります。 - - * **回転を固定**:「はい」(またはチェックをオン)に設定すると、オブジェクトは回転しなくなります。プレーヤーが壁に衝突するたびに、あるいは斜面をくだっているあいだじゅう、回転してしまうことを想像すると、このオプションの存在意義が理解できるでしょう。 - * **スリープ可能**:「はい」(またはチェックをオン)に設定すると、しばらく動かなかったオブジェクトを物理エンジンがスリープ状態にしてパフォーマンスを向上できます。これは単なるパフォーマンス設定であり、シミュレーション自体には影響しません。 -!!! note - - イベント条件を使用して、ボディがスリープしているかどうかを確認できます。オブジェクトがスリープ中であれば、それはしばらく安定状態にあったことを意味し、バランスゲームを作成するのに役立ちます。 - -### ボディシェイプ - -ボディシェイプの設定はボディの形状とサイズを決定します。シェイプタイプに応じて、その大きさを調整するためのさまざまな設定があります。 - - * **ボックス**(四角形):*オブジェクトの中心軸に沿った長方形*です。幅と高さを特に指定しなければ、オブジェクトと同じ大きさになります。 - * **サークル**(円形):*オブジェクトを中心とする円*です。半径を特に指定しなければ、オブジェクトの幅と高さの平均で計算されます。オブジェクトが正方形の場合は、オブジェクトの境界ボックス内に内接する円になります。 - * **エッジ**(線形):*オブジェクトの中心に沿った細い線*です。このシェイプには体積(面積)がないため、ダイナミックボディとしては正常に機能しません。地面やプラットフォームなどのスタティックな形状に使用することを想定しています。長さと角度を特に指定しなければ、エッジはオブジェクトの幅と同じ長さの水平線になります。 - * **ポリゴン**(多角形):*頂点によって定義されるカスタム形状*です。ポリゴンは凸面である必要があり、この条件が満たされない場合、形状はデフォルトのボックスにフォールバックします。頂点の数は 3 以上(そうでないと凸状にできないので)、8 以下(ポリゴンが保持できる頂点の最大数)です。3 ≦ 頂点数 ≦ 8。 - -カスタムシェイプタイプと大きさに加えて、ボディシェイプは 2 つの追加設定を持ちます。 - - * **オフセット**:オフセットには 2 つの成分(X と Y)があり、オブジェクトの中心からシェイプをずらすために使います。 - * **スケール**:シェイプも拡大縮小できます。これはシェイプの大きさとオフセットをスケールします。大きさを指定しなければ、たとえばボックスシェイプは元のオブジェクトと同じ大きさになります。この場合は自動的にスケーリングするので、シェイプのスケールを変更する必要はありません。シェイプタイプがポリゴンの場合、スケールすると頂点の位置も移動します。スケーリングの原点は**ポリゴン原点**になります。(訳注:ビヘイビアの設定画面にあるオプションは 2021/1 時点で多言語化対応していないため、言語設定が日本語であっても「Polygon Origin」と表示されます)ポリゴン原点を「中央」に設定してシェイプを縮小すると、頂点はオブジェクトの中央に向かって移動します。 - -### ボディの設定 - -物理ボディには、タイプと形状に加えて、衝突時のボディの動作、重力によるボディへの影響、および空気抵抗によって失われるエネルギーを指定する追加の設定があります。各設定は以下の通りです。 - - * **密度**(Density):密度は重さを決定します。一般的な公式は `密度=質量÷体積` ですが、3 次元の奥行きがないため、これを `密度=質量÷面積` と仮定して問題ありません。同じ密度で面積/大きさの違う 2 つのボディは違う質量になります。したがってオブジェクトのサイズを変更するときは密度も考慮する必要があります。\\ \\ __密度はマイナスになりません!__ - - * **摩擦**(Friction):摩擦は、何かと接触中のボディに移動方向と反対の方向に力を加えます。摩擦が大きいほど、接触中のオブジェクトは速度が低下します。具体例を挙げると、砂で作られたプラットフォームの摩擦はほとんど 1(非常に高い)になり、氷で作られたプラットフォームの摩擦係数はほぼ 0 になります。\\ \\ __摩擦はマイナスになりません!__\\ \\ 2 つのオブジェクトが接触しているときの摩擦の合計は、オブジェクトの摩擦係数を使った式 `friction = sqrt(frictionA * frictionB)` で計算されます。 - - * **反発**(Restitution):オブジェクトが各衝突で保持するまたは失うエネルギーの割合を指定します。値ゼロは衝突が完全に非弾性であり、オブジェクトがまったく跳ね返らないことを意味します。反発= 1 の場合、衝突は完全に弾性的であり、オブジェクトは毎回同じエネルギーで跳ね返ります。ボールを地面に落とすと、毎回同じ高さまで跳ね返り続けると想像してください。1 より大きい反発の値も有効ですが、衝突のたびにオブジェクトにエネルギーが与えられ、おそらくシミュレーションが制御不能になります。\\ \\ __反発はマイナスになりません!__\\ \\ 2 つのオブジェクトが衝突したときの反発の合計は、オブジェクトの反発係数を使った式 `restitution = max(restitutionA, restitutionB)` で計算されます。 - - * **線形減衰**(Linear Damping):線形減衰は、常にオブジェクトの速度を低下させます。値が大きいほど、オブジェクトの速度が急速に低下します。空気抵抗を想像するといいでしょう。値をとても大きくすると、液体内を移動するオブジェクトをシミュレートできます。\\ \\ __任意の値を使用できますが、マイナスの値を設定するとオブジェクトが速度を増していき、非物理的な動きになります__。 - - * **角度減衰**(Angular Damping):角度減衰は線形減衰に似ていますが、オブジェクトの線形速度が遅くなる代わりに角速度を低下させ、オブジェクトの回転がゆっくりになっていきます。\\ \\ __任意の値を使用できますが、マイナスの値を設定するとオブジェクトが角速度を増していき、非物理的な動きになります__。 - - * **重力スケール**(Gravity Scale):ワールドの重力に重力スケールを掛けた値が、オブジェクトに適用する重力になります。これはベクトルではなく数値であることに注意してください。重力の向きは変更できず、その強さだけを変更できます。任意の数値が有効です。いくつかの例を挙げましょう。重力スケールが 1 の場合、適用される重力はワールド重力そのままになります。2 の場合、このオブジェクトの重力は 2 倍になり、0.5 の場合、重力は半分になります。0 の場合、オブジェクトは重力の影響を受けません。-1 の場合、重力は反転します。 -!!! note - - 負の重力スケールを設定して、特定のオブジェクトの重力を反転できます。 - -### レイヤーとマスク - -レイヤーとマスクは、オブジェクト間の衝突をフィルタリングする方法です。ゾンビのゲームを作成しているものと想像してください。プレイヤーを地面と衝突させ、ゾンビをプレイヤーとも地面とも衝突させたいが、ゾンビ同士を衝突させたくはありません。このような場合に、衝突フィルターが必要になります。 - -フィルターはどのように機能するのでしょうか?  -ルールはたった 1 つです。 -!!! warning - - 2 つのオブジェクト A と B は、A のレイヤーのどれかが B のマスクのどれかに一致し、**なおかつ** B のレイヤーのどれかが A のマスクのどれかに一致した場合に、衝突可能になります - -先ほどのゾンビ問題は、次のようにすると解決します。 - - * 地面:最初のレイヤーと、最初と 2 番目のマスクを有効にします。 - * プレイヤー:最初のレイヤーと、最初と 2 番目のマスクを有効にします。 - * ゾンビ:2 番目のレイヤーと、最初のマスクのみを有効にします。 -なぜこれでうまくいくのでしょうか。 - - * 地面とプレイヤー:地面のレイヤーはプレイヤーのマスク(最初)と一致し、**なおかつ**プレイヤーのレイヤーが地面のマスク(最初)と一致します。 - * 地面とゾンビ:地面のレイヤーはゾンビのマスク(最初)と一致し、**なおかつ**ゾンビのレイヤーが地面のマスク(2 番目)と一致します。 - * プレイヤーとゾンビ:プレイヤーのレイヤーはゾンビのマスク(最初)と一致し、**なおかつ**ゾンビのレイヤーがプレイヤーのマスク(2 番目)と一致します。 - * ゾンビとゾンビ:ゾンビは 2 番目のレイヤーだけが有効で、最初のマスクだけが有効です。そのためゾンビ同士は衝突できません。 - -最大で 16 個のレイヤーと 16 個のマスクを利用できます。今回このちょっとした問題を解決するには、2 つずつのレイヤーとマスクで十分でした。 - -### 移動 - -オブジェクトの設定が済んだら、シミュレーションが始まります。重力が物を押しはじめ、オブジェクトが動き、衝突しますが、プレイヤーは見ているだけで何も操作できません。自分でオブジェクトを移動できるようにするには、イベントシステムを使う必要があります。オブジェクトとやり取りし、希望する方法でオブジェクトを移動するための便利なアクションを次に示します。 - -!!! danger - - GDevelop の組み込み機能であるフォース(移動カテゴリー)は、物理エンジンビヘイビアと組み合わせて使用できません。ビヘイビアを使う場合は、組み込み機能の代わりに物理エンジンが提供するアクションを使用しましょう。 - - * **フォース**:フォースはオブジェクトを移動させるために加えられる力です。フォースは一般的に、オブジェクトに一定時間使用して、その動きを大きく変更します。オブジェクトにフォースを適用したときに生じる速度は、フォースの大きさとオブジェクトの質量に依存します。同じフォースが適用された場合、重いオブジェクトは軽いオブジェクトよりもゆっくり動きます。 -__フォースを適用する場合は作用点の指定が必須です。__ - - * **トルク**:フォースに似ていますが、こちらは移動ではなく回転力です。トルクはオブジェクトに角加速度を与え、時間の経過とともに回転を速くしたり遅くしたりします。 - * **インパルス**:フォースに似ていますが、タイムステップに依存しません。代わりに「一定量」の速度を瞬間的に与えます。単発での使用を想定しています。ジャンプのシミュレーションではこれが日常的に使われています。ジャンプボタンを押すたびに、上向きのインパルスを追加します。 -__インパルスを追加する場合は作用点の指定が必須です。__ - - * **角度インパルス**:インパルスに似ていますが、こちらは回転力に作用して、回転速度を瞬間的に変更します。 - * **速度**:オブジェクトの速度を直接変更できます。たとえば一定速度で歩行しているキャラクターの速度を、ボタンを押したタイミングで変更します。 - * **角速度**:角速度(回転速度)も直接変更できます。 - -!!! warning - - オブジェクトの位置も直接変更できますが、少なくとも新しい位置が修正されるまでは非物理的な動きになるでしょう。実生活では、オブジェクトはまったくテレポートしません。 - -フォースとインパルスには作用点が必要なことに注意してください。これはとても重要です。花瓶の下を押す(移動する)ことと、上を押す(たぶん倒れる)ことは同じではありません。ドアを押し開けるときは、蝶つがいではなくドアノブ側を押すはずです。 -作用点がオブジェクトの質量中心と異なる場合、何らかの種類のトルク/回転が生じるでしょう。 -!!! note - - オブジェクトの質量中心は、物理エンジンビヘイビアの式 `MassCenterX()` と `MassCenterY()` で取得できます。 - -## ジョイントでオブジェクトの動きを制御する - -ジョイントは、何らかのルールにのっとってオブジェクトの動きを制限します。あるジョイントはオブジェクトの回転中心を固定して、別のジョイントは 2 つのオブジェクトを連結します。複雑なジョイントになるとこれを組み合わせて、ボディ間の距離を一定に保ったまま自由に回転させて、自動車の車輪をシミュレートするといった具合です。 - -**ジョイント ID**: -ジョイントを作成するときに、変数名を渡すことができます。GDevelop は指定された変数に、ジョイントの一意の識別番号(ID)を格納します。このジョイント ID を指定することで、作成後のジョイントを変更したり、プロパティ値を確認したり、削除できます。屋根からひもで鍵を吊り下げるジョイントを想像してください。このジョイント ID を変数に保存しておくと、あるオブジェクトがひもと衝突しているかどうかを確認し、保存された ID を指定してジョイントを削除し、鍵を落とすことができます。 -!!! note - - ジョイント ID は常にゼロよりも大きい数値になります。 - -一般的にはジョイントには 2 つのオブジェクト(先ほどの例ではひもと鍵)が必要ですが、一部の「例外」があります。くわしくは回転ジョイントの説明を参照してください。 - -すべてのタイプのジョイントに共通のプロパティ、条件、およびアクションのリストは次のとおりです。 - - * **ジョイントの最初/2 番目のオブジェクトである**:検査するオブジェクトが指定したジョイントの最初または 2 番目のオブジェクトであれば、それを選択する条件です。 - * **ジョイントの最初/2 番目のアンカーの X/Y 位置**:指定したジョイントの最初または 2 番目のアンカーポイントの位置を取得する式です。 - * **ジョイントの反動力/反動トルク**:ジョイントの反動力または反動トルクをチェックする条件と式です。この値はジョイントが平衡状態からどのていどかけ離れているかを示す指標になります。ジョイントの反動力が大きいと、ジョイントがかなり大きな力で平衡位置から引き離されたことを意味します。壊れやすいジョイントを作るのに便利です。 - * **ジョイントを削除する**:指定したジョイントを削除するアクションです。もしジョイントが歯車ジョイントの子だった場合は、歯車も削除されます。またジョイントが接続しているオブジェクトがどれか削除されると、ジョイントも削除されます。 - -ジョイントにはさまざまな種類があり、それぞれに固有の動作とプロパティがあります。以下に一覧を示します。 -!!! warning - - 1 回だけ実行されるイベント(たとえばシーンの開始時)でジョイントを作成するように注意してください。もしフレームごとにジョイントを作成すると、数秒で数百のジョイントが作成され、パフォーマンスの低下や非物理的な動作、メモリ枯渇によるクラッシュのおそれがあります。 - - -### 距離ジョイント - -距離ジョイントは 2 つのオブジェクトを指定した距離で分離しようとします。距離はジョイントのアンカーポイントを基準に計算します。 -オブジェクトが指定した距離を常に保てるとは限りませんが、オシレーターの式にもとづいて距離を保とうとし続けます。 - -設定: - - * **長さ**:目標距離です。マイナス値を設定した場合は、ジョイント作成時のオブジェクト間の距離が使用されます。 - * **減衰率**:オブジェクトが受ける「抵抗」です。値が低いとオブジェクトは速く動き、値が高いとオブジェクトはゆっくり動きます。 - * **バネの硬さ**:オブジェクトが振動する速さです。オブジェクトを目標の長さに近づける力の強さです。値が大きいほどオブジェクトは強い力で引かれ、短い時間で目標の長さに戻ろうとします。 -!!! note - - 減衰率とバネの硬さの値を低くすると、目標の長さに近づくまでに時間がかかる柔らかいジョイントになります。一方、両方の値を高くすると、非常に硬いジョイントになります。 - -### 回転ジョイント - -回転ジョイントは「ピン」のように機能します。「ヒンジ(蝶つがい)」とも呼ばれ、ある一点を中心にオブジェクトを回転させます。 -回転ジョイントには 2 つのタイプがあります。ほとんど同じですが、ちょっとした違いがあります。 - - * **2 つのオブジェクト間の回転ジョイント**:2 つのオブジェクトを「ピン留め」します。オブジェクトはアンカーポイントを共有する形で一緒に移動し、またオブジェクトはそれぞれアンカーポイントを中心に回転します。2 枚のカードをピンで留めて、それを飛ばしたところを想像してみてください。カードは一緒に移動し、ピンを中心に自由に回転するでしょう。 - * **1 つのオブジェクトの回転ジョイント**:ジョイントは通常 2 つのオブジェクト間で機能しますが、これは例外の 1 つです。このジョイントは単一のオブジェクトとそのアンカーポイントを使って、指定した位置にオブジェクトをピン留めします。壁にメモを留めたようなものだと考えてください。メモはピンを中心に回転できますが、移動はできません。 -!!! note - - 単一オブジェクトバージョンのジョイントでは、オブジェクトはジョイントの 2 番目のオブジェクトとして追加されます。最初のオブジェクトは非表示のスタティックボディになります。そのため、このタイプのジョイントを歯車ジョイントに使うことができます。くわしくは歯車ジョイントの節で説明します。 - -回転ジョイントで設定できる項目は次のとおりです。 - - * **角度制限**:有効にすると、回転は最小角度と最大角度のあいだに制限されます。角度は両方とも最初のオブジェクトに対する相対指定です。 - * **基準角度**:ゼロと見なされるオブジェクト間の角度。すべての角度プロパティでオフセット値として使われます。基準角度が 15 度で、ワールド座標におけるオブジェクト間の角度が 15 度の場合、現在のジョイント角度を取得すると 0 が戻ります。また最大角度を 30 に設定すると(最初のオブジェクトに対して)45 に設定されます。 - * **最小角度**:最初のオブジェクトに対するオブジェクト間の最小角度。最大角度以下でなければなりません。 - * **最大角度**:最初のオブジェクトに対するオブジェクト間の最大角度。最小角度以上でなければなりません。 -!!! tip - - 角度制限のある回転ジョイントを使用すると、関節をシミュレートできます。つまりラグドールを作れます。 - - * **モーター**:有効にすると、ジョイントは 2 番目のオブジェクトにトルク(回転力)を追加し、外部から力を与えなくても回転するようにします。モーターのように。有効にした場合、モーター速度と最大モータートルクを設定することを忘れないでください。 - * **モーターの速度**:目標とするモーター速度(度/秒)。これは 2 番目のオブジェクトが最初のオブジェクトの周りを回転しているときに到達しようとする速度です。モーター速度を正の値にするとオブジェクトは時計回りに回転し、負の値にすると反時計回りに回転します。 - * **モーターの最大トルク**:モーターが目標モーター速度に到達するために発揮できる回転力の最大値。正の値でなければなりません。 - -またシミュレーション中に次の値を取得できます。 - - * **ジョイント角度**:オブジェクト間の現在の角度。最初のオブジェクトに対する相対角度で、基準角度の影響を受けます。 - * **ジョイント速度**:オブジェクト間の現在の角速度。最初のオブジェクトに対する 2 番目のオブジェクトの相対角速度です。 - * **ジョイントのモータートルク**:現在のモータートルク(回転力)。最大モータートルク以下で、目標モーター速度に到達するために必要なトルクになります。 - -!!! note - - 回転ジョイントの使いみちには、ピンボールレバー、トップダウンビューにおけるドア、巻き上げ式の可動橋などがあります。 - -### 直動ジョイント - -直動ジョイントは「ピストン」のように機能し、「スライダー」としても知られています。ある軸に沿って、オブジェクトを前後にスライドさせます。エレベーターがよい例になるでしょう。エレベーターはレールに沿って上下に移動します。レールは最初のジョイントボディに、エレベーターは 2 番目のジョイントボディに相当します。軸は真上または真下(-90 度または 90 度)を向きます。 - -直動ジョイントで設定できる項目は次のとおりです。 - - * **軸角度**:移動方向を示す角度。軸角度 0 は水平移動を意味します。値はワールド座標で指定しますが、最初のオブジェクトが回転した場合は、軸もそれに従って回転します(もしエレベーターレールを回転させると、エレベーターの移動角度も回転するのと同じ理屈です)。 - * **基準角度**:回転ジョイントの場合と同様に、この角度は軸にオフセットを設定し、新しい「角度ゼロ」を定義します。基準角度が 15 の場合、(最初のオブジェクト方向に対する)ワールド座標での軸角度 15 は 0 として扱われます。 - * **移動制限**:有効にすると、2 番目のオブジェクトの動きは、指定された最小移動量と最大移動量のあいだに制限されます。 - * **最小移動量**:2 番目のオブジェクトが最初のオブジェクトから移動できる最小位置。エレベーターの例でいえば、最小移動は地上階になるでしょう。 - * **最大移動量**:2 番目のオブジェクトが最初のオブジェクトから移動できる最大位置。エレベーターの例でいえば、屋上階です。 -!!! warning - - 移動制限範囲にはゼロを含める必要があるため(訳注:ジョイント作成時の位置が 0 になるため)、最小移動量 5 と最大移動量 10(範囲 [5, 10])を指定した場合、ゼロを含む範囲 [0, 10] に変換されます。 - - * **モーター**:有効にすると、ジョイントは 2 番目のオブジェクトにフォースを適用し、モーター速度に到達しようとします。有効にした場合、モーター速度とモーターの最大出力を設定することを忘れないでください。 - * **モーターの速度**:目標とするモーター速度。正の値であれば 2 番目のオブジェクトは軸と同じ方向に動き、負の値であれば反対方向に動きます。 - * **モーターの最大出力**:モーターが目標モーター速度に到達するために発揮できるフォースの最大値。正の数値でなければなりません。 - -またシミュレーション中に次の値を取得できます。 - - * **ジョイント移動量**:最初のオブジェクトに対する 2 番目のオブジェクトの現在の移動量です。 - * **ジョイント速度**:最初のオブジェクトに対する 2 番目のオブジェクトの現在の軸上速度です。 - * **ジョイントのモーター出力**:2 番目のオブジェクトの現在のモーター出力(フォース)。モーターの最大出力以下で、目標モーター速度に到達するために必要な力になります。 - -### 滑車ジョイント - -滑車ジョイントは名前のとおりのシンプルなジョイントです。このジョイントは、各オブジェクトから地面までの距離の合計が常に一定になるようにします。もっと分かりやすい説明をするなら、要は滑車をシミュレートします。:-) - -固定ポイント A から 3 メートル吊り下げたボックスと、固定ポイント B から 2 メートル吊り下げたサークルがあり、両方のオブジェクトが同じロープの端に取り付けられているとします。ロープの長さは一定なので、もしボックスを A から 1 メートルの位置まで持ち上げると、サークルは同じ分だけ下がって B の下 4 メートルの位置に移動します。この場合でも、ボックスから A までの距離とサークルから B までの距離の合計は、変わらず 5 メートルのままです。 -`distance(box, A) + distance(circle, B) = constant` - -**比率**: -簡単でしょう? さて、ここから奇妙な展開になりますが、このジョイントにはある特殊な設定が存在します。「比率」です。この比率により、ロープは一方の側で他方よりも伸びやすくなります。たとえばボックス側の 1 メートルのロープを、サークル側の 2 メートルのロープと等価にすることができます(比率= 1/2 = 0.5)。 - -先ほどの例に戻ってみましょう。A の 3 メートル下にボックスが吊り下げられ、B の 2 メートル下にサークルが吊り下げられています。ただし今回は比率= 0.5 です。ボックスを 2 メートル持ち上げると、サークルは 4 メートル下がります。ロープの長さは、明らかに一定ではありません。しかし次の式が成り立っています。 -`distance(box, A) + ratio*distance(circle, B) = constant` -(最初の式は、この式が比率= 1 の場合の特殊なケースだったことがお分かりでしょう) - -また「ロープ」はどこにも存在しないことに注意してください。ジョイントは、オブジェクトとアンカーポイントのあいだの距離だけで機能します。 - -このジョイントの設定項目は次のとおりです。 - - * **最初の接地アンカー**:最初のオブジェクトが接続される固定ポイント(例ではポイント A)。 - * **2 番目の接地アンカー**:2 番目のオブジェクトが接続される固定ポイント(例ではポイント B)。 - * **最初の長さ**:最初のオブジェクトとその接地アンカーのあいだの初期状態のロープの長さ。値が負またはゼロの場合は、ジョイント作成時の距離が使用されます。 - * **2 番目の長さ**:2 番目のオブジェクトとその接地アンカーのあいだの初期状態のロープの長さ。値が負またはゼロの場合は、ジョイント作成時の距離が使用されます。 - * **比率**:上記で説明した、両側の距離の比率。比率が 0.33 の場合、1 番目の側の 1 メートルは 2 番目の側の 3 メートルに相当します。 - -### 歯車ジョイント - -このジョイントは非常に特殊で、2 つのボディを直接つなぐのではなく、歯車が他の 2つのジョイントを連結します。これらの子ジョイントは回転または直動ジョイントでなければなりません。 -2 つのジョイントが歯車ジョイントを介してリンクされている場合、一方のジョイントが動くと、もう一方のジョイントも動きます。たとえば直動ジョイントの軸に沿ってオブジェクトを移動すると、リンクされた回転ジョイントが回転します。逆も同様です。 - -このジョイントも非常に注意が必要です。歯車が機能するには、各子ジョイントの最初のボディがスタティックで、2 番目のボディがダイナミックである必要があります。 -2 つの回転ジョイント、2 つの直動ジョイント、または回転ジョイントと直動ジョイントを歯車で連動させることができますが、常に各ジョイントの最初のボディはスタティックでなければなりません。 -!!! note - - 歯車の子ジョイントの最初のボディはスタティックででなければならないという、このことこそが、回転ジョイントの単一オブジェクトバージョンの最初のボディが非表示のスタティックオブジェクトである理由です。 - -歯車ジョイントの設定項目は次のとおりです。 - - * **最初のジョイント**:2 番目のジョイントとリンクする回転ジョイントまたは直動ジョイント。 - * **2 番目のジョイント**:最初のジョイントとリンクする回転ジョイントまたは直動ジョイント。 - * **比率**:滑車ジョイントと同じく、歯車は「比率」に対応しており、似たような感じで機能します。比率= 0.33 で 2 つの回転ジョイントをリンクした場合、最初の子ジョイントの 1 回転は 2 番目の子ジョイントの 3 回転に相当します。ただし滑車ジョイントの比率とは違う部分もあります。歯車の比率はマイナス値にも設定でき、そうした場合は一方のジョイントでプラスに動くと、もう一方のジョイントはマイナスに動きます。たとえば比率= -1 で 2 つの回転ジョイントをリンクした場合、片方の回転ジョイントを時計回りに回すともう片方は反時計回りに回ります。本物の歯車のように。 - -!!! warning - - ギアの存在に必要な条件は、2 つの子ジョイントが存在することです。2 つの子ジョイントのいずれかが削除されると、ギアも自動的に削除されます。 - -### マウスジョイント - -このジョイントは必ずしもマウスに関連しているわけではありませんが、しかしその使い方が一般的です。このジョイントは、オブジェクトを目標に向かって移動します。目標位置をマウスまたはタッチ位置で連続的に更新すると、オブジェクトをドラッグできます。 - -これもまた例外の 1 つですが、これは動作するためにボディを 1 つだけ必要とするジョイントです。ボディとはつまり、目標に向かって移動させるオブジェクトです。 - -マウスジョイントの設定項目は次のとおりです。 - - * **オブジェクト**:目標位置に向かって移動するオブジェクト。 - * **目標**:オブジェクトが到達しようとするターゲットポイント。ジョイントを作成した後、目標位置は何度でも更新できます。 -!!! warning - - 最初の目標位置(ジョイントの作成時)は、オブジェクトのアンカーポイントとしても使用されるため、必ず設定してください。 - - * **最大出力**:目標位置に到達するためにジョイントがオブジェクトに適用できるフォースの最大値。数値が大きいほど、オブジェクトは速く動きます。正の数値でなければなりません。 - * **バネの硬さ**:距離ジョイントのバネの硬さと同じような機能で、どれだけ速くオブジェクトが目標位置に移動するかを設定します。 - * **減衰率**:距離ジョイントの減衰率と同じような機能で、時間の経過とともにオブジェクトの移動速度をゆっくりにします。 - -!!! note - - マウスジョイントは、マウスでの使用のみに限定されているわけではありません。任意のワールド座標を目標に指定できます。 - -### 車輪ジョイント - -特定用途に特化したジョイントです。車輪が必要になったら、このジョイントの出番です。乗り物などの車輪以外の用途を挙げるのはかなり難しいし、実際、車輪に使うなら車輪ジョイントが最善の選択肢です。 -もともと乗り物の車輪をシミュレートするために作られたので、このジョイントにはそれしかできませんが、その代わり非常にうまくシミュレートします。 - -車輪ジョイントは、回転ジョイントと直動ジョイントを組み合わせたようなものです。 -ここでの回転ジョイントは 2 番目のオブジェクト(車輪)を回転させるために使用されます。また回転ジョイントにはモーター機能もあるので、自動車両のモーターをシミュレートして車輪を回転させることができます。 -直動ジョイント機能は、車両のホイールサスペンションのシミュレートに使われます。直動ジョイントの軸角度を設定して、車輪の移動方向を定義できます。一般に軸の方向は垂直ですが、たとえばバイクの場合などは前輪のサスペンションの方向が垂直ではない(場合によってはかなり傾いている)ことがあります。 - -!!! warning - - 車輪として機能するボディは、ジョイントの 2 番目のオブジェクトでなければなりません。 - -車輪ジョイントの設定項目は次のとおりです。 - - * **軸角度**:直動ジョイントの軸角度に相当し、車輪と最初のオブジェクト間の移動(またはスライド)方向を決定します。 - * **バネの硬さ**:サスペンションの硬さで、距離ジョイントのバネの硬さに相当します。値が大きいほど、硬いサスペンションになります。 - * **減衰率**:サスペンションの減衰率で、距離ジョイントの減衰率に相当します。値が大きいほど、車輪は緩やかに戻ろうとします。 - * **モーター**:有効にすると、ジョイントは車輪(2 番目のオブジェクト)にトルクを追加し、モーター速度に到達しようとします。有効にした場合、モーター速度と最大モータートルクを設定することを忘れないでください。 - * **モーターの速度**:車輪が回転目標とする角速度。正の値を設定すると時計回りに、負の値を設定すると反時計回りになります。 - * **モーターの最大トルク**:目標モーター速度に到達するためにジョイントが車輪に適用できる回転力の最大値。正の数値でなければなりません。 - -またシミュレーション中に次の値を取得できます。 - - * **ジョイント移動量**:サスペンション軸に沿った現在の車輪移動量。 - * **ジョイント速度**:現在の車輪回転速度。 - * **ジョイントのモータートルク**:車輪に適用されている現在のモータートルク(回転力)。最大モータートルク以下で、目標モーター速度に到達するために必要なトルクになります。 - -### 溶接ジョイント - -これはとても基本的なジョイントで、2 つのオブジェクトをただくっつけて、それが 1 つであるかのように動かします。 - -!!! warning - - これを使って壊れやすいオブジェクトを作成できますが、乱用はしないでください。つまるところ、オブジェクトはソフトジョイントで接続されるだけです。密度がばらばらのオブジェクトを多数接続すると、物理演算が不正確になるおそれがあります。 - -溶接ジョイントの設定項目は次のとおりです。 - - * **基準角度**:最初のオブジェクトの角度に対する 2 番目のオブジェクトの角度。 -!!! note - - オブジェクトをジョイント作成時の角度で固定するには、オブジェクト間の相対角度(`SecondObject.Angle() - FirstObject.Angle()`)を基準角度として使用します。 - - * **バネの硬さ**:距離ジョイントのバネの硬さと同じような機能で、どれだけ速くオブジェクトが静止位置に移動するかを設定します。 - * **減衰率**:距離ジョイントの減衰率と同じような機能で、時間の経過とともにオブジェクトの移動速度をゆっくりにします。 - -### ロープジョイント - -また別の単純なジョイントです。ロープジョイントは 2 つのオブジェクトをロープで仮想的につなぎます。この方法では、ロープの長さよりも遠い距離にオブジェクトを引き離すことはできませんが、それ以下の距離であれば自由に配置できます。 - -滑車ジョイントが滑車自体を持たないように、ここにロープ自体は存在しません。ジョイントはただオブジェクト間の距離をチェックし、距離が所定の長さより大きい場合に反応します。 - -ロープジョイントの唯一の設定項目は次のとおりです。 - - * **最大長**:オブジェクト間の最大距離。初期値が負の場合、ジョイント作成時のオブジェクト間の距離が使用されます。 - -### 摩擦ジョイント - -摩擦ジョイントは Z 軸の摩擦をシミュレートします。線形摩擦と角摩擦をシミュレートして、2 つのオブジェクト間の相対速度や角速度を遅くします。 -!!! tip - - オブジェクトの 1 つがスタティックの場合、摩擦ジョイントを使用してトップダウン形式のゲームで摩擦を正しくシミュレートできます。ビリヤード台やトップダウン形式のレーシングゲームに最適です。 - -摩擦ジョイントの設定項目は次のとおりです。 - - * **最大出力**:ジョイントがオブジェクトに適用できるフォースの最大値。数値が大きいほど、強い線形摩擦が働きます。 - * **最大トルク**:ジョイントがオブジェクトに適用できる回転力の最大値。数値が大きいほど、強い角摩擦が働きます。 - -### モータージョイント - -モータージョイントは実在するモーターにはあまり似ておらず、少なくとも直接の関係はありません。2 つのオブジェクトをモータージョイントでリンクすると、オブジェクトはオフセットを考慮した他のオブジェクトとの相対的な目標位置や目標角度に到達しようとします。 - -次の 2 点を考慮する必要があります。 - - * ジョイントは剛性ではありません。オブジェクトは目標の位置または角度から遠く離れる可能性があります。補正係数は、安定姿勢に移行するためにどれだけ速く移動および回転するかを示します。 -たとえば、常に立ち上がるパンチングバッグのおもちゃの 1 つを想像してください。地面とバッグをリンクするモータージョイントを使用して、これをシミュレートできます。この場合、バッグオブジェクトをどれくらい強く押しているかに関わらずジョイントはそれを元の角度に戻そうとしますが、必ず戻せるとは限りません。 - - * 障害物がある場合、モータージョイントは停止します。 -パンチングバッグの例に戻ると、何か大きな物体でバッグを地面に押さえつけた場合、現実がそうであるように、モータージョイントもこれを押し戻すことができません。 - -!!! note - - このジョイントはアンカーポイントを使いません。オフセット位置は、線形オフセットと角度オフセットのみを使用して設定しなければなりません。このジョイントのアンカーポイントにアクセスすると、オブジェクトの位置が返ります。 - -モータージョイントの設定項目は次のとおりです。 - - * **オフセット X/Y 位置**:最初のオブジェクトに対する 2 番目のオブジェクトのオフセット位置。ジョイント作成時のオブジェクトの位置をそのまま設定するには、`SecondObject.X() - FirstObject.X()` と `SecondObject.Y() - FirstObject.Y()` の式を使います。 - * **オフセット角度**:最初のオブジェクトに対する 2 番目のオブジェクトの角度オフセット。ジョイント作成時のオブジェクトの角度をそのまま設定するには、`SecondObject.Angle() - FirstObject.Angle()` の式を使います。 - * **最大出力**:オブジェクトを目標位置に移動するためにジョイントがオブジェクトに適用できるフォースの最大値。数値が大きいほど、オブジェクトは速く動きます(そうする必要があれば)。この値がゼロの場合は、線形補正が働かず、オブジェクトは目標位置に向かって移動しません。 - * **最大トルク**:ジョイントが目標角度に回転するためにオブジェクトに適用できる回転力の最大値。数値が大きいほど、オブジェクトは速く回転します(そうする必要があれば)。この値がゼロの場合は、角度補正が働かず、オブジェクトは目標角度に向かって回転しません。 - * **補正係数**:オブジェクトが目標位置と角度に到達するためにどのくらい速く移動および回転するかを示します。補正が高いほど、オブジェクトの移動や回転が速くなります。補正は、ジョイントが使用できる最大出力と最大トルク(回転力)によって制限されます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/platformer.md b/docs/ja/gdevelop5/behaviors/platformer.md deleted file mode 100644 index 8c6d3e471f..0000000000 --- a/docs/ja/gdevelop5/behaviors/platformer.md +++ /dev/null @@ -1,87 +0,0 @@ ---- -title: プラットフォーム型のビヘイビア ---- -# プラットフォーム型のビヘイビア - -!!! note - - **やってみよう!** 🎮 - [プラットフォームのビヘイビアのサンプルをすぐに見たいですか?](#Examples) - -ボタンをクリックするだけで、ゲームのプラットフォームタイプ(2Dマリオゲームタイプ)のビヘイビア(動作)とキャラクターコントロールを設定できます。 - -## プラットフォーム型ビヘイビア - -![select-platform-behavior.png](/gdevelop5/behaviors/select-platform-behavior.png) まず、新しいオブジェクトを作成します。 「クリックしてオブジェクトを追加」オプションをクリックして、シーンの「オブジェクト」リストからオブジェクトを選択します。 表示されるリストから、「オブジェクトの編集」を選択します。表示されるリストから「プラットフォーム」ビヘイビアを選択します。 これで、オブジェクトをプラットフォームタイプに変えることができます。 オブジェクトが「プラットフォーム」として定義されると、「プラットフォームキャラクター」オブジェクトはその上を歩くことができます。 - -\[プラットフォーム\]オプションを選択すると、プラットフォームのビヘイビアオプションリストが表示されます。 - -![platform-behavior-options.png](/gdevelop5/behaviors/platform-behavior-options.png) - -### プラットフォームの種類 - -プラットフォームのビヘイビアをクリックすると、3つの異なるプラットフォームの種類から選択できます。 - -![platform-type-button.png](/gdevelop5/behaviors/platform-type-button.png) - -* **プラットフォーム:** これはデフォルトです。このデフォルトのビヘイビア動作では、オブジェクトは通常のプラットフォームブロックとして設定されます。キャラクターはプラットフォームブロックと衝突したり、上を歩いたりすることができます。 * **ジャンプスループラットフォーム:** このオプションを選択すると、キャラクターはプラットフォームブロックと衝突たり上を歩くことができますが、キャラクターはプラットフォームブロックの下からジャンプすることもできます。 * **ラダー:** ラダーとはハシゴのことです。その名前が示すように、このオプションはオブジェクトをラダーに変えます。キャラクターオブジェクトはラダーオブジェクトと衝突できません。ラダーオブジェクトの上を歩くことはできませんが、キャラクターオブジェクトがラダーオブジェクトと重なると、キャラクターはラダーオブジェクトを使用して登ったり降りたりすることができます - -### ブロックの端をつかむ - -プラットフォームブロックの棚は、デフォルトで設定されています。「ブロックの端をつかむ」とは、キャラクターオブジェクトがブロックの端の近くにジャンプしたときに、端をつかむことができることを意味します。この機能が必要ない場合は、このオプションのチェックを外してください。必要な場合は、チェックボックスがオンになっていることを確認してください ![ledges-canbe-grabbed-option.png](/gdevelop5/behaviors/ledges-canbe-grabbed-option.png) - -ブロックの端の幅(オフセット)は、Y軸でも変更できます。 ![grab-offset-option.png](/gdevelop5/behaviors/grab-offset-option.png) オフセットオプションを使用すると、キャラクターのアニメーションに合わせてブロックの端の位置を変更できます。 - -## プラットフォーム型キャラクタのビヘイビア - -![select-platformer-character-behavior.png](/gdevelop5/behaviors/select-platformer-character-behavior.png) - -リストから「プラットフォーム型キャラクター」を選択すると、オブジェクトを「プラットフォーム型キャラクター」に変えることができます。 「プラットフォーム型キャラクター」オプションを選択すると、プラットフォームキャラクターのプロパティ/パラメーターが表示されます。 ![platformer-character-behavior-options.png](/gdevelop5/behaviors/platformer-character-behavior-options.png) - -すべてのオプションを確認するには、スクロールする必要があるかもしれません。 - -### コントロール - -プラットフォーム型キャラクターの動作には、キャラクターを制御するために設定されたデフォルトキーが設定されています。矢印キーとシフトキーです。 デフォルトのコントロールを使用したくない場合は、「プラットフォームの文字」オプションの下にある「デフォルトのコントロール」ボックスのチェックを外して、デフォルトのコントロールをオフにする必要があります。 ![](/gdevelop5/behaviors/platformer-defaultcontrols-box.png) - -### キャラクタの端をつかむ - -プラットフォームのビヘイビアと同様に、「プラットフォーム型キャラクター」の「端をつかむ」オプションがあります。このオプションにより、キャラクターオブジェクトがプラットフォームブロックの端をつかむことができます。このオプションはデフォルトで無効になっています。有効にするには、オプションリストのボックスをチェックします。 ![](/gdevelop5/behaviors/platformer-character-grabledge-box.png) - -このオプションを有効にすると、キャラクターはすべてのプラットフォームブロックの端をつかむことができます。 - -ここでも、「プラットフォームのビヘイビア」と同様に、キャラクターのY軸に幅(オフセット)を設定できます。プラットフォームのビヘイビアとは異なり、X軸に幅の許容値を設定することもできます。 - -![](/gdevelop5/behaviors/platformer-character-grab-tolerancex.png) - -幅の許容値を変更することで、キャラクターがプラットフォームオブジェクトをゲットできるようにするために、キャラクターがプラットフォームブロックにどれだけ接近する必要があるかを設定できます。 - -### スロープの最大角度 - -![](/gdevelop5/behaviors/platformer-character-maximum-slope.png) この値を変更することにより、プレイヤーが登ることができる斜面の最大角度を設定できます。デフォルトは0です。 デフォルト0は、キャラクターが平面上でのみ移動できることを意味します。 - -### スピードと重力 - -![](/gdevelop5/behaviors/platformer-character-speed-options.png) 「速度と重力」オプションで対応する値を変更することにより、キャラクターが加速、減速、移動、落下、ジャンプする速度を変更できます。これらのオプションは一目瞭然だと思うので、あまり説明する必要はないと思います。 キャラクターオブジェクトを遅くしたい場合、これらの値を減します。キャラクターオブジェクトをスピードアップしたい場合、これらの値を増やします。 - -ここのすべてのオプションは、ゲーム中いつでもイベントを使用して変更できます。 - -# サンプル - -!!! note - - **やってみよう!** 🎮 - これらのサンプルはオンラインで実行できます - -**プラットフォーム型ビヘイビアのサンプル** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - - -**平行スクロール型ビヘイビアのサンプル** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://parallax-scrolling){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/parallaxscrollingbehavior.png)](https://editor.gdevelop.io/?project=example://parallax-scrolling) diff --git a/docs/ja/gdevelop5/behaviors/topdown.md b/docs/ja/gdevelop5/behaviors/topdown.md deleted file mode 100644 index 75b1a6cbfc..0000000000 --- a/docs/ja/gdevelop5/behaviors/topdown.md +++ /dev/null @@ -1,88 +0,0 @@ ---- -title: トップダウン移動ビヘイビア ---- -## トップダウン移動ビヘイビア - -!!! tip - - **やってみよう!** 🎮 - [説明はいいから、とにかくトップダウン移動ビヘイビアが動くところを見たい? わかりました、こちらを先にどうぞ。](/#サンプル) - - -![](/gdevelop5/behaviors/topdownmovementbehavioriconnew.jpg) 「トップダウン移動」ビヘイビアはオブジェクトに 4 方向または 8 方向に移動する機能を追加します。 - -#### ビヘイビアをオブジェクトに追加する - -トップダウン移動ビヘイビアをオブジェクトに追加するには、まずオブジェクトメニューから、またはシーンに配置されたオブジェクトを右クリックして、オブジェクトプロパティを開きます。ポップアップメニューから[オブジェクトを編集]を選択します。次に[ビヘイビア]を選択し、ビヘイビア追加ボタンをクリックします。 - -#### トップダウン移動ビヘイビア - -リストからビヘイビアを選択すると、オブジェクトにその能力が追加されます。 - -![](/gdevelop5/behaviors/top-down-movement-behav-inlist.png) - -ビヘイビアを選択するとすぐに、利用できるオプションが表示されます。 - -![](/gdevelop5/behaviors/topdown-movement-options.png) - -#### 移動と回転の速度を変更する - -加速度、減速度、最高速度を変更することで、移動の速さを調整できます。 - -回転速度を変更することで、回転の速さを調整できます。また、そもそも回転するかどうかも設定できます。回転については、あとでくわしく説明します。 - -#### 角度オフセットを変更する - -デフォルトでは、スプライトの対面方向は 0 度になっています。対面方向とは移動時に進行方向を向く側のことで、0 度はスプライトの右側を指します。この設定は角度オフセットの値で変更できます。次に GDevelop の座標概念を表す図を示します。 - -![](/gdevelop5/behaviors/gdevelop_covaliantcuriosity.jpg) - -!!! note - - `AngleBetweenPositions` のようないくつかの式は -180~180 の範囲の値を返しますが、これは上の図と同じ概念です。角度 -45 度は、270 度と同じ角度になります。 -#### 斜め移動を許可する - -![](/gdevelop5/behaviors/allow-diagonals-box.png) - -このオプションはデフォルトで有効です。オブジェクトが斜めを含む 8 方向に移動できるようにします。このオプションを無効にすると、斜め方向に移動できなくなります。無効時に移動できるのは、上下左右の 4 方向のみです。斜め方向は含まれません。 - -#### デフォルトコントロール - -![](/gdevelop5/behaviors/top-down-movement-default-controls-box.png) - -トップダウン移動ビヘイビアは既定でデフォルトコントロールが有効になっています。デフォルトコントロールとはキーボードの 4 つの方向キー(矢印キー)のことです。オブジェクトの移動を独自制御したいときは、このオプションを無効にする必要があります。オプションのチェックを外した上で、オブジェクトを移動するときはトップダウン移動ビヘイビアが提供するアクションを実行します。 - -![](/gdevelop5/behaviors/top-down-movement-events.png) - -#### オブジェクトを回転する - -![](/gdevelop5/behaviors/top-down-movement-rotateobject-box.png) - -デフォルトで、オブジェクトは移動方向に向かって回転します。回転速度はオプションで指定しできます。回転させたくない場合は、オプションのチェックを外して無効にします。 - -オプションはどれも、GDevelop の「イベント」タブで該当するアクションを実行すると、ゲーム中にいつでも変更できます。 - -![](/gdevelop5/behaviors/eventstabnew.jpg) - - - -# サンプル - -!!! tip - - **やってみよう!** 🎮 - オンラインで下記のサンプルを実行できます。 - -**スペースシューター** - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/spaceshooter.png)](https://editor.gdevelop.io/?project=example://space-shooter) - - - -**アイソメトリックゲーム**(2D ゲームで疑似的に 3D 画像を作り出す) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://isometric-game){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/isometricgame.png)](https://editor.gdevelop.io/?project=example://isometric-game) \ No newline at end of file diff --git a/docs/ja/gdevelop5/behaviors/tween.md b/docs/ja/gdevelop5/behaviors/tween.md deleted file mode 100644 index e5a1689529..0000000000 --- a/docs/ja/gdevelop5/behaviors/tween.md +++ /dev/null @@ -1,219 +0,0 @@ ---- -title: Tween ビヘイビア ---- -# Tween ビヘイビア - -![](/gdevelop5/behaviors/tween_behavior32.png) Tween(動画の中割り工程を指す inbe**tween** に由来)は一定時間をかけてオブジェクトのプロパティ値、たとえば位置やサイズなどをアニメーションさせます。 このビヘイビアは開始値と終了値のあいだを補間するときに使うさまざまなイージングエフェクトを取り揃えています。それによって、振動するユーザーインターフェイスボタンや、獲得するとゆっくりフェードアウトするアイテムなどのクールなエフェクトを作り出します。 - -### 使い方 - -Tween ビヘイビアを使うには、まずこれをオブジェクトエディター上でオブジェクトに追加します。 そうすると、イベントシートでオブジェクトに Tween を追加できるようになります。 - -Tween は連続再生できるため、組み合わせることでより複雑なアニメーションにもできます。これを「チェイニング」(連鎖法)と呼びます。 次の図では、スプライトがマウスでクリックされると「スケールを Tween」アニメーションを再生して縮小するようにしています。 Tween が終了すると、スケールを戻すための新しい Tween アニメーションを開始します。 これはループを形成するため、スプライトがずっと脈動し続けます。これを応用することで、上下動するプラットフォームや巡回パトロールする敵などを作成できます。 ![](/gdevelop5/behaviors/tween_behavior_chaining_example.png) - -### 条件 - -**Tween が存在するか** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - -この条件は、指定した Tween が定義済みかどうかを調べ、存在すれば真を返します。 - -**Tween は再生を終了したか** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - -この条件は、指定した Tween が終了位置に到達しているかどうかを調べ、終了していれば真を返します。 - -**Tween は再生中か** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - -この条件は、指定した Tween が開始済みで現在再生中かどうかを調べます。 - -### アクション - -**オブジェクト角度 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標角度(度)**:オブジェクトが目標とする終了時の角度です。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の角度から目標の角度に向かって角度を Tween させながらオブジェクトを回転します。 - -**オブジェクト色 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標色**:オブジェクトに適用する目標の色です。色成分をセミコロンで区切ったテキスト(文字列)形式の値になります。"255;255;255" はスプライトの元の色を指します(無着色)。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の色から目標の色に向かって色を補間して Tween させながらオブジェクトを着色します。 - -**オブジェクト不透明度 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標不透明度**:オブジェクトに適用する目標の不透明度です。0(透明)~255(完全に不透明)の数値になります。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の不透明度から目標の不透明度に向かってオブジェクトの不透明度を補間して Tween させます。 - -**オブジェクト位置 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標 X 位置**:オブジェクトが目標とする終了時の X 軸上の位置です。 -- **目標 Y 位置**:オブジェクトが目標とする終了時の Y 軸上の位置です。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の位置から目標の位置に向かって位置を Tween させながらオブジェクトを移動します。 - -**オブジェクト X 位置 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標 X 位置**:オブジェクトが目標とする終了時の X 軸上の位置です。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の X 位置から目標の X 位置に向かって X 位置を Tween させながらオブジェクトを移動します。 - -**オブジェクト Y 位置 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標 Y 位置**:オブジェクトが目標とする終了時の Y 軸上の位置です。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の Y 位置から目標の Y 位置に向かって Y 位置を Tween させながらオブジェクトを移動します。 - -**オブジェクトスケール Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標 X スケール**:オブジェクトが目標とする終了時の X 軸上のスケールです。1 が元のスケール、2 が倍のスケール、0.5 が半分のスケールです。 -- **目標 Y スケール**:オブジェクトが目標とする終了時の Y 軸上のスケールです。1 が元のスケール、2 が倍のスケール、0.5 が半分のスケールです。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在のスケールから目標のスケールに向かってスケールを Tween させながらオブジェクトを拡大縮小します。 - -**オブジェクト X スケール Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標 X スケール**:オブジェクトが目標とする終了時の X 軸上のスケールです。1 が元のスケール、2 が倍のスケール、0.5 が半分のスケールです。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の X スケールから目標の X スケールに向かって X スケールを Tween させながらオブジェクトを拡大縮小します。 - -**オブジェクト Y スケール Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標 Y スケール**:オブジェクトが目標とする終了時の Y 軸上のスケールです。1 が元のスケール、2 が倍のスケール、0.5 が半分のスケールです。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在の Y スケールから目標の Y スケールに向かって Y スケールを Tween させながらオブジェクトを拡大縮小します。 - -**オブジェクト変数 Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **オブジェクト変数**:Tween させる対象数値を格納した変数です。 -- **開始値**: 開始時の数値です(どんな数値でも可)。 -- **終了値**: 終了時の数値です(どんな数値でも可)。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - -このアクションは現在のオブジェクト変数の値から目標の値に向かって値を補間して Tween させながらオブジェクト変数を変更します。 - -**テキストサイズ Tween を追加する** - -- **オブジェクト**:アニメーションを適用する対象のテキストオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **目標フォントサイズ**:目標とする終了時のフォントサイズです。 -- **イージング**:開始値と終了値の補間に使用する定義済みの数学関数です。 -- **所要時間**:Tween アニメーションが開始から終了まで再生するのにかかるミリ秒(ms)単位の時間です。 -- **Tween 終了時にこのオブジェクトを破棄する**:Tween が終了したときにオブジェクトを自動的に破棄するかどうかを指定します。 - - このアクションは現在のサイズから目標のサイズに向かってサイズを Tween させながらテキストオブジェクトのフォントサイズを変更します。 \警告:この Tween はテキストを毎フレーム再計算するため、多くのオブジェクトで連続的に使用すると FPS が処理に遅延が発生するおそれがあります。 - -**Tween を一時停止する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - -このアクションは指定した Tween を現在の状態で一時停止します。Tween は所定のアクション経由であとで再開できます。 - -**Tween を削除する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - - このアクションは指定した Tween をオブジェクトから削除します。Tween アニメーションを連鎖させたい場合は、次の Tween を開始する前に、このアクションで古い Tween を削除します。\警告:この指示は重要です。「Tween は再生を終了したか」条件が期待するように連鎖を実行しないように見えるときは、次の Tween を開始する前に古い Tween を削除しているか確認してください。 - -**Tween を再開する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - -このアクションは一時停止中の Tween を再開します。 - -**Tween を停止する** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 -- **最後へジャンプ**:「はい」を選ぶと現在の値をすぐに目標値に設定します。「いいえ」の場合は停止した時点の値のままにします。 - -このアクションは指定した Tween を停止します。[最後へジャンプ]の選択肢で「はい」を選んだ場合は、プロパティに目標値が設定されます。「いいえ」を選んだ場合は、現在値を維持します。 - -### 式 - -**Tween の進捗度** - -- **オブジェクト**:アニメーションを適用する対象のオブジェクトです。 -- **ビヘイビア**:オブジェクトに適用されている Tween ビヘイビアです。 -- **識別子**:オブジェクトの Tween アニメーションを識別するために使う固有のテキスト(文字列)です。 - -この式は Tween の現在の進捗度を 0(開始値)から1(終了値)までのあいだの数値で返します。たとえば Tween の所要時間が 1000ms であれば、500ms 経過で 0.5 が返ります。 複数オブジェクトの Tween を経過時間に応じて連鎖させたい場合などに使います。 diff --git a/docs/ja/gdevelop5/community/contribute-to-the-assets-store.md b/docs/ja/gdevelop5/community/contribute-to-the-assets-store.md deleted file mode 100644 index 2e729c615a..0000000000 --- a/docs/ja/gdevelop5/community/contribute-to-the-assets-store.md +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: contribute-to-the-assets-store ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# アセットストアへの貢献 - -GDevelop's documentation is powered by the community and everyone is encouraged to contribute. In particular, you can help building the assets store with royalty free/public domain resources that can be used by everyone for any kind of project. - -This page provides a few guidelines to help maintain the quality of the assets store. - -The main idea is that assets are grouped into folders and sub folders. Images, audio and fonts should have a name that is the plain English name that will be displayed to the user. By giving specific names to images, they will be used to create a single object. - -!!! note - - Note that tilesheets **are not supported**! Each image of an object must **be in a separate file** (using the rules to name the files below). It's also recommended that all images of a single object have the same size (with transparent margins), because for now we can't specify the origin of an image. - -## For images (to make sprite, tiled sprite or panel sprite objects): - -Each image will be used to create an object. For sprites, more than one image can be used to create a single object, by following the rules described below. - -- By default, an image will be used to create a **Sprite** object. - -1. The **name of the file**, without the extension, will be used for the object name. - -!!! note - - For example, an image called "Spaceship.png" will create a Sprite object called "Spaceship", with this image as the first animation. - -1. If the object is **animated**, use different image files with the **same base name**, and add an underscore followed by the image index: `Spaceship_1.png`, `Spaceship_2.png`, `Spaceship_3.png`. - -  - -1. If the object has **multiple animations**, you can add the name of the animation between the *base name* and the index. - -  - - Spaceship_flying_1.png - Spaceship_flying_2.png - Spaceship_flying_3.png - Spaceship_1.png - Spaceship_idle.png - Spaceship_damaged_1.png - Spaceship_damaged_2.png - -!!! note - - Will create an object with three animations: Flying (3 images), Idle (1 image), Damaged (2 images) - -1. To specify the **speed of the animations and if they are looping**, create a file with the **same base name** suffixed by `_METADATA.json`. - -  - - For example: `Spaceship_METADATA.json`. - - Inside, put this JSON: - - { - "timeBetweenFrames": 0.2, - "loop": false - } - -For example: - -![](https://user-images.githubusercontent.com/1280130/103412855-78836300-4b77-11eb-99ec-ac8287372ece.png) - -- If you have **multiple animations** and **each must have a different speed**, you can create one .json file per animation, using this name: `basename_animationname_METADATA.json`. - -For example: - - Spaceship_Idle_METADATA.json - Spaceship_Flying_METADATA.json - Spaceship_Destroyed_METADATA.json - ... - -- If you want to create a **Tiled sprite** (for backgrounds or repeating patterns): - -1. Prefix the *base name* by `tiled_`. For example: `tiled_Grass Background.png` - -- If your image is a **9 patch**, that can be stretched with the center and the border repeated: - -1. Slice your image in 9 different images, and name them: `9patch_base name_gravity.png` with gravity being: `southwest`, `southeast`, `south`, `northwest`, `northeast`, `north`, `west` and `east`. - -For example: - - 9patch_Orange leaves_center.png - 9patch_Orange leaves_east.png - 9patch_Orange leaves_north.png - 9patch_Orange leaves_northeast.png - 9patch_Orange leaves_northwest.png - 9patch_Orange leaves_south.png - 9patch_Orange leaves_southeast.png - 9patch_Orange leaves_southwest.png - 9patch_Orange leaves_west.png - -## Organizing the assets with tags - -Put all your images in a folder. In this folder, create a file called `TAGS.md`. In this file, put the tags of the assets, separated by a comma. Put at least a tag `top-down`, `side view` or `interface`. - -For example: - - side view, pirate, ship, sea - -You can put your images in different sub folders. Each sub folder will be used as a tag name. Some folders names like "PNG", "SVG", etc... will be ignored (so don't change the whole structure of your assets, we'll ignore anything that does not make sense). - -Note that you can also put assets in a folder called `Unimplemented` or `TODO`, and these folders will be entirely ignored. - -## For audio - -Put your .aac or .wav files (prefer .aac) directly in a folder, with the name to be displayed: `Laser effect.aac`, `Background music.aac`. - -!!! note - - 🚨 Careful about the size! Players are sensitive to the size of a game download (especially on mobile and on the web). **Try to keep music file sizes around 1 to 2 MB. In rare cases, these can be 4 or 5 MB, but not larger.** Consider downgrading the quality a bit to keep the music files around these sizes. Sound effects are usually even smaller. If a sound file is larger than 200 or 300 KB, consider downgrading the quality. - -`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images. - -A great tool to convert audio files to AAC format is \[fre:ac\](). fre:ac is free, open-source, and cross-platform. It can process batches of files, with many options on how they are named and put into folders. - -- Choose the encoder called "Fraunhofer FDK AAC Encoder". -- Select "File format \> AAC" -- Select "Quality \> Set Quality \> 3" - -This will create high-quality audio files, but using a variable bit rate that won't exceed 96 kbps (assuming stereo input). - -![Screenshot 2021-03-11 112608](https://user-images.githubusercontent.com/8879811/110835883-9bf41980-825c-11eb-93c8-ef795b0379a2.jpg) - -![Screenshot 2021-03-11 112527](https://user-images.githubusercontent.com/8879811/110835884-9c8cb000-825c-11eb-9b8d-f22228a71329.jpg) - -## For fonts - -Like images and audio, put your fonts in folders. `.ttf` and `.otf` files are supported. - -`TAGS.md` files will work like for images. Sub folders are also used for tags as described for images. - -## (⚠️ Advanced!) To make an object from scratch, for example particle emitters - -!!! note - - These assets from scratch are a bit cumbersome to author right now. Here is an example folder that shows how the particle emitter objects from Wishforge Games are done: \[Particles.zip\]() - -Create an file with extension `.asset.json`, for example: `My Particle Effect.asset.json`. The format of this asset is: - - { - "id": "", - "name": "", - "authors": [""], - "license": "", - "shortDescription": "", - "description": "Enter a description. Leave the rest empty, it will be autogenerated", - "previewImageUrls": [], - "tags": [], - "objectAssets": [ - { - "object": { ...JSON CONTENT OF AN OBJECT... }, - "resources": [ ], - "customization": [] - } - ], - "gdevelopVersion": "", - "version": "" - } - -Leave almost everything empty. Create your object in GDevelop, then copy it in the clipboard. Paste the content in a file, and then copy just the "content.object" key: - -For example: - -![](https://user-images.githubusercontent.com/1280130/103413204-d5334d80-4b78-11eb-8248-aecc67d17cba.png) - -Paste it inside the `.asset.json` file you created, replacing `...JSON CONTENT OF AN OBJECT...`: ![](https://user-images.githubusercontent.com/1280130/103413230-f300b280-4b78-11eb-9c3b-718bdf58ba66.png) - -Finally, if your object uses image resources, make sure to add them in the `resources` array: ![](https://user-images.githubusercontent.com/1280130/103413269-1e839d00-4b79-11eb-91a6-39bc80696a98.png) - -Put all images with the name that you put in the `resources` array next to your `.asset.json` file. - -Finally, add: - -- a file with the same name but with the extension `.preview.png` that will be shown in the assets store - an empty filed called `IGNORED_FOR_IMAGE_ASSETS.md` so that the importer will ignore the images and won't try to create objects automatically :) - -For example: - -![](https://user-images.githubusercontent.com/1280130/103413361-74f0db80-4b79-11eb-94c2-7cf535bb9118.png) - -## I have too many assets and this will take me a long time to organize everything! How can I do? - -That's the reason why we're making an asset store: there are lots of assets available or that could be made available, but most are hidden on different websites, and not ready to use. By taking the time to prepare them for GDevelop, we're making a **high quality** asset store of objects ready to use. This implies taking a bit of time to prepare these assets - which should hopefully be not too much considering that we use a naming convention with filenames. - -!!! note - - In particular, you should be able to quickly rename a bunch of files by opening the folder in the Windows/Linux/macOS file explorer, ensuring you have a preview of each file and then with your keyboard and some shortcuts (F2 to rename on Windows, Enter on macOS...) rename quickly each file with a proper name. - -In the case where it's too painful/long to do because you have **tons** of objects (for example, you have separated a spritesheet of 200 RPG objects), it's ok to select all the files and rename them to something like `Generic RPG object (1).png`, `Generic RPG object (2).png`, etc... - -!!! note - - Be sure **not** to use an underscore to separate the name from the number, otherwise the asset importer will consider that it's a single object with multiple animations. In other words, **don't name the files** like `Generic RPG object_1.png`, etc... - -Finally, be sure to put a `TAGS.md` file with enough tags for people to be able to search for these assets. 👍 - -## License - -Put a license.txt file in your folder. The importing will recognize it and apply to all files in the folder. Make sure to put your name in this license file too (or the name of the original author). The importer will be adapted to understand the license file. - -!!! note - - We won't allow the addition of any assets with an unclear license. Get in touch with the author if the license is unclear or if you worried that the author would not allow redistribution of their original assets. All assets must have a license allowing their usage for free for any purpose, allow modifications/derived work and may optionally ask for attribution. - -## Something unclear? - -Ask a question on [this Trello board](https://trello.com/c/s8RctC9M/2-asset-rules-and-regulations) card. If the rules here are too complicated or are giving you too much work, you can suggest a new rule and we'll see if we can adapt the importer so that it can understand your asset structure. The goal is to make objects more or less automatically! - -## How to send my assets when they are ready? - -Zip the folder containing them and send them to @4ian or @Bouh, either by opening an [issue here](https://github.com/4ian/GDevelop/issues/new/choose) or by tagging `@florianrival` or `@bouh2` on a card on the [GDevelop Assets Trello board](https://trello.com/b/xoOCKFOf/gdevelop-assets). It's a good idea to get in touch with people on the Trello board to have them review your assets first. diff --git a/docs/ja/gdevelop5/community/events.md b/docs/ja/gdevelop5/community/events.md deleted file mode 100644 index 54b197dd92..0000000000 --- a/docs/ja/gdevelop5/community/events.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: GDevelop 関連イベント(ゲームジャム、カンファレンス…) ---- -# GDevelop 関連イベント(ゲームジャム、カンファレンス…) - -## カンファレンス - -* **Beyond Web-Apps: React, Javascript and WebAssembly to Port Legacy Native Apps**. GDevelop 5 に関するトーク: - * [JS Conf US](https://2019.jsconf.us/speakers/florian-rival) 2019 [動画](https://www.youtube.com/watch?v=lttAKhlKuyM) - * [React ボストン](http://www.reactboston.com/) 2018. - * [React Conf](https://conf.reactjs.org/event.html?FlorianRival) 2018 [動画](https://www.youtube.com/watch?v=6La7jSCnYyk6) - * [React Next](https://react-next.com/) 2018. - -* **Native Web-Apps**. GDevelop 5 で使われているテクノロジーに関するトーク: - * [CodeFest 2019(ノヴォシビルスク)](https://www.youtube.com/watch?v=5YzncpxA2og) - * Typeof Conf 2019(ポルト) - * React アムステルダム 2019 - * [Intersection Conference 2019](https://intersection-conference.eu/schedule) - * **[Reactive Conf 2019(動画)](https://www.youtube.com/watch?v=sMfNWIbWUb0)** - -* **GDevelop カンファレンスを企画していますか?** 大歓迎です!ここに追加してください。 - -## ゲームジャム - -GDevelop を使ったゲームジャムを企画していますか?ゲームジャムのウェブサイトやソーシャルメディアのアカウントへのリンクをここに追加してください。 - -## トレーニング - -GDevelop のトレーニングを企画していますか?ワークショップへのリンクをここに追加してください。 - -## 教育 - -[GDevelop が教育現場でどのように使われているか](https://gdevelop.io/ja/education)をご覧ください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/community/guide-for-submitting-an-example.md b/docs/ja/gdevelop5/community/guide-for-submitting-an-example.md deleted file mode 100644 index cc8cc09b05..0000000000 --- a/docs/ja/gdevelop5/community/guide-for-submitting-an-example.md +++ /dev/null @@ -1,152 +0,0 @@ ---- -title: guide-for-submitting-an-example ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# サンプルを提出するためのガイド - -Submitting example is a great way to contribute to GDevelop and help others. If your example is good enough, it will be accepted to the example library and will be available in GDevelop. - -This Guide shows how you can submit an example to GDevelop example library. - -##Check if the same example already exists - -The first thing you should do is check if an example that does the same thing already exists. You won't be excited to take your time making something that already has been done. - -Search through the examples list in GDevelop (**Create a new project** → **Examples tab**), and make sure the same example doesn't exist. - -##Discussing with the community - -You can discuss with the GDevelop community on [Discord](https://discord.com/invite/rjdYHvj) or open a new thread on the [GDevelop forum](https://forum.gdevelop.io) on how the example can be improved or if you have any doubts before starting something. - -## License - -The example will be MIT licensed (see [this](https://en.wikipedia.org/wiki/MIT_License) for more info about the MIT license). - -You will have to make sure the example can be MIT licensed and make sure the resources can also be distributed under the MIT license. If you are having doubts about the license of the resources, ask the creator and ask for permission (this is important!). - -## Best Practices - -!!! note - - In general, try to keep your example as minimal as possible. It will ensure it's easier to make sure it's very high quality and can be added easily. - -#### Naming conventions - -- Names should describe its use well and clearly. Example: a variable for storing player's health can be named `PlayerHealth`. The object name can be `Player`, but avoid crytic/shorthand names like `PyrObj`. - -- Names should not have spaces in them. Example: use `PlayerName` instead of `Player Name`. - -- `PascalCase` is recommended, but using other styles is fine. - -#### Variables - -- Variables should be initialized in the variable editor. It is ok to leave them uninitialized for some situations, but it's generally recommended. - -- Unused variables should be deleted - -#### Extensions - -- It's not recommended to add a lot of extensions into an example. Try keeping the extensions to a minimum. - -- If custom extensions are used, add proper comments, description to the events see [Extension best practices](/gdevelop5/extensions/best-practices) for more info - -#### Structuring events - -- Related events should be added into a group with proper naming. - -- If the same events are used in multiple places, you can use external events or a function in an extension. - -- Remove empty events. - -- Remove disabled events or events that were used for testing. - -- Unfold any events so that they are easily visible. - -#### Documenting events - -- Use comments to document events. - -- You can change the color of the comments according to its use (for example, green for a tip, orange for a warning). Otherwise, just keep the default color. - -- If the example needs a wiki page, create one in this wiki and when it's done, add a link to it in the example. - -#### Resources - -- Remove unused resources from both the [resource manager](/gdevelop5/interface/project-manager/resources) and then from the project folder - -- It is recommended to add all the resources in a folder called `assets`, and add sub-folders according to the use of the assets (GUI, Player, Power-ups) if needed. - -- The images should not be too large (2000x2000 is a maximum). - -- You will have to confirm that this example and all of its resources can be integrated to the GitHub repository (where all the example are stored), distributed and MIT licensed. - -#### Keep everything clean - Remove any unnessesary scenes,external events, external layouts - Remove unused variables - Remove unused resources,images,sounds,fonts, from the project folder - Remove any unnessesary events from the event sheet - -#### Projects folder - -- the `.json` file and the project folder's name should be renamed to the example's name, with `-` instead of spaces. For example: an example with `Not a vania` as name should have `not-a-vania` as its folder name and its `.json` filename. - -- The project should not be using multiple files for saving (using a single JSON file). - -- The project should have a `README.md` file with a text describing the example (see *Submitting examples* section for more information). - -#### Project Properties - -- The project properties should be properly filled out. - -- *Project Name* The project name should be the example name. - -- *Package Name* The package name should follow `com.example.\`. In PascalCase, e.g: `com.example.RotateSprite` - -- *Version* The version that is added to the library (after review) should be `1.0.0`, and incremented as changes are added after it's added. - -- *Author* is your username. An account will have to be registered and a proper username will be needed to be able to add the username. Type the username and pick the username from the drop-down menu - -##### Game Resolution - -- Game resolution shouldn't exceed **1920x1080** so that the example can run on all devices without any performance issues . - If the example uses pixel art with small assets, "nearest neighbor" rendering is recommended. - -## Thumbnail and example description - -- You can include a `thumbnail.png` which is the icon for the example and will be shown in the examples library - -- The project folder should include a `README.md` file that has a description of the example. You can create a `.md` file by opening any text editor (like Notepad on Windows), writing the description and saving the files with the name `README.md`. - -- Both the thumbnail and the Readme.md file should be in the main folder and not in any sub-folders. - -## Submitting the example - -You can submit the example to the [Example repository](https://github.com/GDevelopApp/GDevelop-examples/issues) as an issue. - -1. Go to the site, -2. Click The Green **New Issue** button: - -![](/gdevelop5/community/newissuegithub.png) - -1. A option to select issue template will be shown, click **New Example**: - -![](/gdevelop5/community/example-templategithub.png) - -1. You will get a text box where you can write the "issue" which is where you can upload the project file (as a `zip` file) and add a proper description about it. -2. Change the title to the example's name. - -![](/gdevelop5/community/github-example-submission-title.png) - -1. Under `## Describe the example` in the textbox, add a proper description about the example, feel free to add any screenshots. -2. You will also be given a checklist of what are necessary. If you have done them, add `x` in the in brackets against each checklist. - -![](/gdevelop5/community/github-example-submission-checklist.png) - -1. Under `## Game folder`, add a zip of your project and drag and drop it into the text box. -2. Now click `Submit Issue`. - -![](/gdevelop5/community/github-submit-issue.png) - -Congratulations! Now your example has been submitted, but it won't be directly added to the library. A **review** of the example will be done to make sure the example is ready to be added. You might have to refactor some events if the review suggests to. - -!!! note - - There is no guarantee that your example will be accepted, it can be rejected if the example is not suitable for the library. Also remember that while it's hard to get some feedback, reviewers are asking for changes because they believe this will improve your example. Try to rework the example using their feedback! Once you think it's good enough, you can ask for another review or discuss points where you might disagree. diff --git a/docs/ja/gdevelop5/documentation.md b/docs/ja/gdevelop5/documentation.md deleted file mode 100644 index ca3c00afc4..0000000000 --- a/docs/ja/gdevelop5/documentation.md +++ /dev/null @@ -1,12 +0,0 @@ ---- -title: ユーザーマニュアル ---- -# ユーザーマニュアル - -GDevelopという2Dビデオゲームクリエーターソフトウェアのユーザーマニュアルへようこそ。 - -次のような様々なトピックがあります - -!!! note - - "ゲームを作ることを楽しみましょう". diff --git a/docs/ja/gdevelop5/events/foreach.md b/docs/ja/gdevelop5/events/foreach.md deleted file mode 100644 index d17e9985b7..0000000000 --- a/docs/ja/gdevelop5/events/foreach.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: インスタンスごとに繰り返しイベント ---- -# インスタンスごとに繰り返しイベント - -インスタンスごとに繰り返し(For Each)[イベント](/ja/gdevelop5/events)は、オブジェクトをパラメーターとして受け取るイベントです。 -ゲーム中、オブジェクトのすべてのインスタンスについて、条件とアクションが繰り返されます。 - -通常は「インスタンスごとに繰り返し」イベントを使用する必要はありません。条件とアクションは、オブジェクトの全インスタンスで自動的に実行されます。それらは条件によって定義されます。ただしオブジェクトの各インスタンスに依存するアクションを実行するには、「インスタンスごとに繰り返し」イベントが役立つ場合があります。 - -## 例 - -!!! tip - - **やってみよう!** 🎮 - オンラインで下記のサンプルを実行できます。 - -[![](/gdevelop5/events/shootingbulletsexplanationexample.png)](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://shooting-bullets-explanation){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } - -## どんなとき使うのか - -次の例を見てください。このイベントはプレイヤーが「Kill​​AllEnemyBonus」というオブジェクトと衝突した場合、すべての敵の「life」変数を 0 に設定します。また、各敵の位置に特別な種類の爆発を作成します。これを実現するには、「インスタンスごとに繰り返し」イベントが必要です。そうしないと、最初の敵の位置で爆発が 1 回だけ発生するでしょう。 - -![](/gdevelop5/events/for-each-example.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/functions/extract-events.md b/docs/ja/gdevelop5/events/functions/extract-events.md deleted file mode 100644 index 651d18c914..0000000000 --- a/docs/ja/gdevelop5/events/functions/extract-events.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: イベントから関数を作成する ---- -# イベントから関数を作成する - -ひとつ以上のイベントを選択して右クリックすると、「_イベントから関数を作成する_」というメニュー項目を選択できます。 - -![](/gdevelop5/events/functions/extract-events-to-function.png) - -GDevelop は選択したイベントとサブイベントを解析して、それを元に関数を作成し、その[関数](/ja/gdevelop5/events/functions)をカスタマイズするためのウィンドウを表示します。必要な項目を埋めてから作成ボタンを押すと、関数が作成されて、選択したイベントが[関数](/ja/gdevelop5/events/functions)の呼び出しに置き換えられます。 - -## 拡張機能と関数名の設定 - -最初の項目には関数を格納する拡張機能を指定します。関数は拡張機能の一種に分類されるからです。もし複数の関数を作成するつもりで、それがすべてある共通の機能に関連するものだった場合、全部にその機能にちなんだ同じ拡張機能名をつけてグループ化した方がよいでしょう。たとえばインベントリ管理用の関数、戦闘システム用の関数、敵管理用の関数、といった具合です。 - -こうすることで拡張機能の共有が容易になり、ちょっとした手直しで、あるいはそのままで、他のゲームに再利用できます。 - -既存の拡張機能を選ぶこともできますし、新しい名前を入力して拡張機能を新規作成することもできます。 - -次に関数名を入力します。拡張機能と同じように、関数名には英数字(a-z, A-Z, 0-9)とアンダースコア(_)のみが使えます。半角スペース文字は使えません。 - -![](/gdevelop5/events/functions/extension-name-and-function-name.png) - -## 関数の残りとパラメーターの設定 - -ウィンドウの残りには、関数を設定するときに使うのと同じウィジェットが含まれます。これは関数を編集するときに表示される内容です。具体的には、ユーザーに表示される名前と説明を入力できます。 - -イベントシートに表示される文も重要です。パラメーターのプレースホルダーには `_PARAMx_` を使います。x の部分は数字です(たとえば `_PARAM1_`)。ふつうは、すべてのパラメーターをこのセンテンスに入力するでしょう。 - -![](/gdevelop5/events/functions/function-setup.png) - -最後に各パラメーターの説明を入力します。 - -!!! note - - パラメーターは GDevelop がイベントから自動的に展開します。GDevelop はオブジェクト型と同じように、使用されるオブジェクト、グループ、ビヘイビアを認識します。 - -![](/gdevelop5/events/functions/function-parameters-setup.png) - -入力が済んだら、ダイアログ右下の作成ボタンをクリックします。すると関数が作成され、イベントがこの関数を使ったアクションに置き換えられます。 - -![](/gdevelop5/events/functions/function-used-as-action.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/functions/index.md b/docs/ja/gdevelop5/events/functions/index.md deleted file mode 100644 index 767e43dd2c..0000000000 --- a/docs/ja/gdevelop5/events/functions/index.md +++ /dev/null @@ -1,134 +0,0 @@ ---- -title: 関数 ---- -# 関数 - -「イベント関数」または単に関数は、GDevelop の強力な機能です。関数と同じような目的で使われる機能としては、他に[外部イベント](/ja/gdevelop5/interface)、[リンク](/ja/gdevelop5/events/link)、[グループ](/ja/gdevelop5/events/group)があります。これらはゲームのイベントを整理したり、複数の場所でイベントを再利用する上でとても役に立ちます。たとえば、いくつかの外部イベントで敵を管理するために共通のイベントを配置し、リンクを使用してさまざまなシーンからこれらのイベントを利用することができます。 - -しかし関数はそれらよりも、さらに一歩進んだ機能です。イベントを使用して、**新しい条件**、**新しいアクション**、さらには**新しい式**を宣言できます。 - -関数を登録するときに、条件、アクション、または式のいずれかを選択できます。この関数には、シーンや外部イベントと同じように、ゲーム中に条件またはアクションが起動されたときに実行されるイベントを含むことができます。 - -イベントに加えて、関数には通常の条件、アクション、式と同様にパラメーターも利用できます。パラメーターには、オブジェクト、数値、またはテキストを使えます。 - -!!! tip - - [外部イベントを関数で置き換える例](/ja/gdevelop5/events/functions/replace-external-events)を参照してください。また**[イベントから自動的に関数を作成する](/ja/gdevelop5/events/functions/extract-events)**も参考にしてください。 - -!!! tip - - 関数を使っている様子を次の動画で見ることができます。[this video by gamefromscratch](https://www.youtube.com/watch?v=BQO9DDXdkjs) - -## 新しい関数の作成 - -関数は「拡張機能」に分類されます。これらは[ゲームにインストールできる拡張機能](/ja/gdevelop5/extensions/search)と同じです。新しく追加した拡張機能も含めて、そのゲームの拡張機能のリストを[プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)で見ることができます。 - -![](/gdevelop5/events/project-manager-functions-extensionsnew.png) - -下部の「+」ボタンをクリックして、新しい拡張機能を作成します。右クリックから名前を変更できます。同じ目的に関連した関数はひとつの拡張機能にまとめると良いでしょう。 - -リストからいま作成したばかりの拡張機能をクリックすると、拡張機能エディターが開きます。デフォルトの拡張機能には何の機能もありません。左側の[新しい関数を追加]をクリックして追加します。 - -![](/gdevelop5/events/add-new-function.png) - -新しい関数が追加されました。名前を変更して、内部で何をしたいかに応じて名前を付けることができます。たとえばその関数が条件に使われて、パラメーターとして渡されたオブジェクトが戦う準備ができているかどうかをチェックする機能の場合は、`IsReadyToFight` という名前がいいでしょう(名前に使用できるのは英数字とアンダースコアのみです)。 - -関数をクリックすると、それを編集できます(設定とイベントを変更できます)。 - -## 関数の設定とイベントの編集 - -関数を選択すると、上部に関数の設定が表示されます。 - -![](/gdevelop5/events/function_configuration.png) - -* 最初のパラメーターは関数タイプです。種類は「アクション」、「条件」、「式」、「文字列式」です。アクションか条件を選ぶと、ゲームのイベントを編集しているときのアクションか条件の一覧に関数が表示されるようになります。式か文字列式を選ぶと、数式を編集しているときの式一覧に関数が表示されるようになります。 -* 次に、一覧に表示する名前を設定します。 -* 関数のパラメーターを選択するときに、ウィンドウに表示する説明を入力します。 -* アクションまたは条件の場合、イベントシートに表示される文を入力できます。関数がパラメーター(詳細は後述)を受け取る場合は、プレースホルダーを文に埋め込むとパラメーターの値を表示できます。プレースホルダーは PARAMx をアンダースコアで挟んだ形式で、`x` の部分はパラメーター番号(1 から始まる)と置き換えます。 - -``` -Rotate objects _PARAM1_ -``` - -これは「RotateObjects」という名前の関数の例です。タイプはアクションで、「指定されたオブジェクトを回転させます」という説明と、回転させるオブジェクトを受け取るためのパラメーターを 1 つ持ちます。 - -### パラメーター - -関数はパラメーターを使うことで、より一層便利で強力にパワーアップします。パラメーターは、関数の設定から追加できます。これらのパラメーターは、イベントシートで アクション、条件、式を使うときに利用できます。ふだん使っている組み込みのアクション/条件/式と、まったく同じです。 - -「パラメーターの追加」ボタンでパラメーターを追加します。 - -![](/gdevelop5/events/function_add_parameters.png) - -各パラメーターについて、次の項目を設定できます。 - - * *関数のイベント*内のパラメーターにアクセスする際に使用する名前。 - * タイプ。パラメーターには、オブジェクト、数値、またはテキストを指定できます。 オブジェクトを選択した場合は、さらにオブジェクトの型も指定できます。 - * 説明です。アクション/条件/式の設定画面に表示されます。 - -たとえば、回転させるオブジェクトを受け取るパラメーターを次のように追加できます。 - -{{ :gdevelop5:events:function_rotate_parameters.png -?nolink |}} - -!!! note - - これらのパラメーターは JavaScript イベントでも使えます。JavaScript で[パラメーターを使う方法はこちらを参照](/ja/gdevelop5/events/js-code#javascript_%E3%81%A7%E3%83%91%E3%83%A9%E3%83%A1%E3%83%BC%E3%82%BF%E3%83%BC%E3%81%AE%E5%80%A4%E3%82%92%E5%8F%96%E5%BE%97%E3%81%99%E3%82%8B)してください。 - -### 関数へのイベントの追加とパラメーターの使用 - -関数を設定したら、次にイベントを追加します。これらのイベントは、条件、アクション、式がゲームの中で使われたときに起動します。 - -* すべての既存のイベント、アクション、条件、式を使用できます。ただし使えるオブジェクトは**パラメーターとして受け取ったオブジェクト**に限定されます。これは関数が外部から渡されたパラメーターのみを利用し、「副作用」がないことを保証するための措置です。副作用は忌むべき習慣であり、関数の再利用と生成を困難にします。 - -* 関数はどこでも再利用でき、シーンに限定されないことに注意してください。つまり**シーンの変数リストに直接アクセスすることはできません**。ただし通常のアクションを使って、変更したい変数を手動で書き込むことはできます。 - -* **リンク**は関数内で使えません。関数は自己完結しており、プロジェクトにさえ外部依存しないためです。 - -何かのオブジェクトを回転させる関数の例を次に示します。 - -![](/gdevelop5/events/function_complete_function.png) - -これは非常にシンプルで実用的ではない関数の例です(関数を使わなくても、アクションでオブジェクトを直接回転させれば済む内容です)。しかし内部ロジックがもっと複雑になったときに、関数の本当の威力が発揮されるでしょう。内部ロジックの複雑さとは関係なく、これをゲームの他の部分から再利用するのは一律にとても簡単です。 - -!!! note - - 関数が条件か式の場合、[「関数」カテゴリーのアクションで条件/式の値を設定](/ja/gdevelop5/events/functions/return)できます(「戻り値」とも呼びます)。 - -## ゲーム内で関数を使う - -関数のイベントを設定および作成したら、これをゲーム内で使えるようになります。 - -新しいアクション(または条件)を作成し、リストから拡張機能の名前を探して、作成した関数を選択します。 - -![](/gdevelop5/events/events-functions-used-as-action.png) - -以上です! 関数は他の条件やアクションや式とまったく同じように[イベントエディター](/gdevelop5/interface/events-editor)で使うことができます。 - -!!! tip - - - **オブジェクトグループ**機能は、関数を作成する際に、類似したオブジェクトをグループ化してパラメーターで受け取るのに役立ちます。これを使うと、アクション/条件をオブジェクトパラメーターのグループ(オブジェクト群を指すパラメーター)に対して一括適用できます。 - -## 高度な使用法 - -このページでは、関数の概要を説明しました。これは GDevelop のもっとも強力な機能の 1 つです。イベントを使用してイベントを拡張できるため、非常に読みやすく簡潔なイベントシートを作成できます。関数を使うことで、ゲームのために記述するイベントの量を減らし、コピー&ペーストを避け、あまつさえバグを減らすことすらできます。オブジェクトの一般的なタスクを常に関数に任せるようにするのです。 - - -### 再帰関数 - -関数は自分自身を呼び出すことができます。関数内のイベントでは、ゲームの他の部分でそれができるのと同じように、関数を使ったアクション/条件/式を使用できます。これを「再帰」関数と呼びます。 - -!!! warning - - 再帰関数を書く場合は特に注意してください。関数呼び出しを打ち切る条件を追加しない場合、関数はそれ自体を無限に呼び出し、ゲームをブロックするおそれがあります。 - -[「関数」カテゴリーのアクションを使って条件/式の値を返す](/ja/gdevelop5/events/functions/return)ことができます。 - -### 関数の共有 - -関数はプロジェクト間で共有できます(GDevelopで作成したアクションや条件と同様に)。もっとも簡単な方法は、ただコピー/ペーストすることでしょう。ただし、便利な関数群ができあがった場合は、それらを[コミュニティと共有](/gdevelop5/extensions/share)することを検討してください。 - -!!! tip - - 再利用と共有については、[外部イベントを関数で置き換える例](/ja/gdevelop5/events/functions/replace-external-events)も参照してください。また**[イベントから自動的に関数を作成する](/ja/gdevelop5/events/functions/extract-events)**も参考にしてください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/functions/replace-external-events.md b/docs/ja/gdevelop5/events/functions/replace-external-events.md deleted file mode 100644 index 1e75764b9f..0000000000 --- a/docs/ja/gdevelop5/events/functions/replace-external-events.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: 外部イベントを関数で置き換える例 ---- -# 外部イベントを関数で置き換える例 - -外部イベントはイベントを共有/再利用するためのよい方法です。[関数](/ja/gdevelop5/events/functions)はそれをさらに一歩進めて、たとえばオブジェクトのようなパラメーターを受け取ることができるようにします。 - -## 外部イベントを使った例 - -オブジェクトを仮想グリッドを基準に整列する次のようなイベントがあります。 - -![](/gdevelop5/events/functions/external-events-snap-grid.png) - -これをシーンに組み込んで、次のように使うことができます。 - -![](/gdevelop5/events/functions/external-events-include-snap-grid.png) - -唯一の問題は、これが再利用できないということです。このイベントが仮想グリッドに沿って整列させるのは、「Tile」という名前のオブジェクトだけだからです。では、グリッドに沿って整列させたい任意のオブジェクトを渡して呼び出せる関数があったとしたら、どうでしょうか? - -## 関数を使った例 - -今度はイベントの代わりに、整列させたいオブジェクトをパラメーターに受け取る関数を宣言してみましょう。 - -![](/gdevelop5/events/functions/function-snap-grid.png) - -整列させるオブジェクトを「Tile」と呼んでいますが、何かもっと一般的な名前に変更することも可能です。 - -イベントからこの関数を呼び出すのは、とても簡単です。新しいアクションとして使うだけなので。 - -![](/gdevelop5/events/functions/call-function-snap-grid.png) - -この方法の長所は、新しいアクションを使うとどんなオブジェクトでもグリッドに沿って整列できるということです。またこれを抽出して、他のゲームで再利用することすらできるます。 - -!!! tip - - ここで作成したものは、すでに実用化されています。[便利な拡張機能](/gdevelop5/extensions/search)の中にある "Snap Objects to a virtual grid" がよく似たアクションを提供しています。 - -[関数についての詳しい内容は、こちらからどうぞ](/ja/gdevelop5/events/functions)。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/functions/return.md b/docs/ja/gdevelop5/events/functions/return.md deleted file mode 100644 index 442af7bf05..0000000000 --- a/docs/ja/gdevelop5/events/functions/return.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: 関数の戻り値 ---- -# 関数の戻り値 - -関数は、その種類に応じた戻り値を返す必要があります。式であれば数値か文字列を、条件であれば真偽値を返します。 - -## 条件の戻り値 - -条件の場合は、真か偽を返す必要があります。それには「条件の戻り値を返すように設定する」アクションを使って、条件が真か偽を返すように戻り値を設定します。 - -## 数値式の戻り値 - -関数を使った数値式の場合は、数値を返す必要があります。そのためには「戻り値に数値を設定する」アクションで、数値を返すようにします。「The number to be returned」フィールドに、戻り値用の数値か式を入力してください。 - -## 文字列式の戻り値 - -関数を使った文字列式の場合は、文字列を返す必要があります。そのためには「戻り値にテキストを設定する」アクションで、文字列を返すようにします。「The text to be returned」フィールドに、戻り値用のテキストを二重引用符でくくって、または文字列式を入力してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/group.md b/docs/ja/gdevelop5/events/group.md deleted file mode 100644 index 401328f282..0000000000 --- a/docs/ja/gdevelop5/events/group.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: イベントのグループ ---- -# イベントのグループ - -グループは、特に何もしないイベントです。これらは、イベントをグループにまとめ、および構成するために使用されます。 - -イベントパネル内からグループを追加できます。右上の[イベントを選択して追加]アイコンを選択します。 - ![](/gdevelop5/events/chooseaddeventiconnew.png) - -ドロップダウンメニューが表示されます。メニューから「グループ」を選択します。 - -![](/gdevelop5/events/groupeventsdropdown.png) - -以下に示すように、グループに含まれる内容(「プレーヤー管理」、「マップ作成」、「グリーンエネミー」、「ブルーエネミー」、「ブラックエネミー」など)を記述してグループに名前を付けます。 - -さらに、イベントエディターでは、グループイベントの左側にある小さな矢印をクリックして、サブイベントを非表示にすることができます。この矢印をもう一度クリックして、グループを展開し、グループに含まれるものを表示します。![](/gdevelop5/events/collapsiblegrouparrow.png) - - -![](/gdevelop5/events/events-groups.png) - -## 例 - -!!! tip - - **やってみよう!** 🎮 - オンラインでサンプルを実行 - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://space-shooter){ .md-button .md-button--primary } - -[![](/gdevelop5/behaviors/spaceshooter.png)](https://editor.gdevelop.io/?project=example://space-shooter) \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/index.md b/docs/ja/gdevelop5/events/index.md deleted file mode 100644 index 4a85870a51..0000000000 --- a/docs/ja/gdevelop5/events/index.md +++ /dev/null @@ -1,127 +0,0 @@ ---- -title: イベント ---- -# イベント - -GDevelop においてイベントとは、ゲームの仕組みを定義するものです。イベントを使って、因果関係を作成します。たとえばイベントは、プレイヤーが収集可能アイテムと衝突したことを検知し、その結果プレイヤーのスコアを増やす、ということができます。イベントの作成や管理は[イベントエディター](/ja/gdevelop5/interface/events-editor)上でおこないます。 - -![](/gdevelop5/event-screenshot.png) - -!!! note - - イベントを作るのに、プログラミングの経験は必要ありません。もしプログラミングの経験者であれば、いくつかのコンセプトになじみがあるとは思いますが。 - -## イベントの種類 - -イベントにはいろいろな種類があります。それぞれ固有の便利なロジックをゲームに提供します。イベントの概念がまだよく分からなければ、次の節までスキップしてください。 - -- [インスタンスごとに繰り返し](/ja/gdevelop5/events/foreach) -- [グループ](/ja/gdevelop5/events/group) -- [JavaScript コード](/ja/gdevelop5/events/js-code) -- [外部イベントへのリンク](/ja/gdevelop5/events/link) -- [指定回数繰り返し](/ja/gdevelop5/events/repeat) -- [標準イベント](/ja/gdevelop5/events/standard) -- [条件が真のあいだ繰り返し](/ja/gdevelop5/events/while) - -種類別イベントの詳細は、リンク先の各ページで確認してください。 - -!!! note - - もっともよく使われるのは_標準イベント_です。 - -## 条件とアクション - -イベントは_条件_と_アクション_で構成されます。 - -条件は何かが起きる原因、切っ掛けです。たとえばプレイヤーが何かのオブジェクトと衝突したとか、変数が特定の値と等しいとか、そういう感じです。イベントに条件が設定されていない場合は、すべてのフレームで関連アクションが毎回実行されます。 - -アクションは条件が真のときに発生する何かです。たとえばオブジェクトを削除するとか、変数の値を増分するとか、そういうことです。アクションがなければ、そのイベントは何もしません。 - -一つのイベントには複数の条件と複数のアクションを追加できます。たとえば、あるイベントの条件でプレイヤーがジャンプ中かどうかと、_かつ_敵オブジェクトと衝突しているかどうかをチェックできます。そしてアクションで敵オブジェクトを削除し、_なおかつ_スコアを増やすことができます。 - -!!! note - - イベントを使って独自の条件とアクション、さらには[式](/ja/gdevelop5/all-features/expressions)を作成できます。くわしくは[関数](/ja/gdevelop5/events/functions)を参照してください。 - -## 実行順序 - -イベントは、それが定義されている順番通りに実行されます。このことは、イベントの実行結果を大きく左右するような、とても重要な影響力を持ちます。 - -たとえば次のイベントは「Square」オブジェクトを作成し、それをすぐに削除します。(訳注:図には作成の部分は含まれていない) - -![](/gdevelop5/tutorials/delete-square.png) - -結果として、「Square」オブジェクトは画面上に一度も表示されません。 - -もしイベントが意図しない副作用をもたらしていたら、同じフレーム内で先に定義されているイベントが後で定義されているイベントに影響していないかを確認してください。 - -## タイムデルタ - -GDevelop は 1 秒間に何度もイベントを評価してオブジェクトをレンダリングし直します。これがどれくらいの頻度で起きるかは、コンピューターの性能に依存します。 - -比較的低スペックのコンピューター上では、ゲームは秒間 25 フレームで実行されるかもしれません。一方、高速なコンピュータ上では秒間 60 フレームになる可能性があります(これが最大レートです)。 - -GDevelop はコンピューターの性能に関わらず、できるだけ一定のフレームレートを維持しようと試みますが、端末に処理速度のバラつきがある以上、フレームレートが異なるのは避けようがありません。 - -たとえば次のようなケースを考えてみてください。 - -![](/gdevelop5/condition-without-time-delta.png) - -このアクションは毎フレームごとに変数をインクリメントします。もしゲームが秒間 60 フレームで実行されていたら、10 秒後の変数値は 18,000 になるでしょう。一方、もしゲームが秒間 25 フレームで実行されていたら、10 秒後の変数値は 7,500 になります。この非一貫性は、ゲームプレイ体験に重大な問題を引き起こしかねません。 - -この問題を解決するために、GDevelop には `TimeDelta()` 式が用意されています。この式は直前のフレームからの経過時間を秒単位で返します。これを使って、フレームレートが変動しても予定通りにゲームを実行することができます。 - -たとえば次のようなケースを考えてみてください。 - -![](/gdevelop5/condition-with-time-delta.png) - -このアクションもやはり毎フレームごとに変数をインクリメントします。ただし変数の値には `TimeDelta()` を乗じた値を使用しています。これによって変数の値はフレームレートによらず一定の速度で増加します。別の言い方をすると、すべてのプレイヤーに同じ体験を保証できます。 - -!!! tip - - 経験則に照らして言うと、`TimeDelta()` は一定時間にわたって値を増加/減少し続ける場合に使います。もしアクションが一度きりなのであれば、`TimeDelta()` を使う必要はありません。 - -## イベントの作成 - -1. **イベントエディター**を開きます。 -2. **イベントを選択して追加**アイコンを選択します。 -3. イベントの種類を選択します。 - -![](/gdevelop5/add-special-events.png) - -!!! tip - - **イベントを追加**アイコンの方を選ぶと、GDevelop は即座に標準イベントを作成します。 - -## イベントに条件を追加する - -1. **イベントエディター**を開きます。 -2. すでに作成したイベントを探すか、新しいイベントを作成します。 -3. **条件を追加**を選択します。 - -![](/gdevelop5/blank-event.png) - -## イベントにアクションを追加する - -1. **イベントエディター**を開きます。 -2. すでに作成したイベントを探すか、新しいイベントを作成します。 -3. **アクションを追加**を選択します。 - -## サブイベントの作成 - -イベントの中にはサブイベントを持つことができる種類があります。サブイベントは他のイベントの内部に存在するイベントです。この種のイベントは、次の条件を満たしたときだけ実行されます。 - -- 親イベントの条件が真である -- 親イベントのアクションが実行を完了している - -次の手順で、イベントにサブイベントを追加します。 - -1. **イベントエディター**を開きます。 -2. すでに作成したイベントを探すか、新しいイベントを作成します。 -3. **選択したイベントにサブイベントを追加**アイコンを選択します。 - -サブイベントが親イベントの内部に作成されます。 - -!!! note - - 外部イベントへのリンク、コメント、JavaScript コードはサブイベントを持てません。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/js-code.md b/docs/ja/gdevelop5/events/js-code.md deleted file mode 100644 index 8cb5d2c64c..0000000000 --- a/docs/ja/gdevelop5/events/js-code.md +++ /dev/null @@ -1,207 +0,0 @@ ---- -title: JavaScript コードイベント ---- -# JavaScript コードイベント - -このイベントを使用すると、ゲームに独自の **JavaScript コード**を追加できます。JavaScript プログラミングに精通した上級ユーザーのみが使用することを意図しています。 - -JavaScriptイベントを追加するには、イベントシートツールバーの![](/gdevelop5/events/chooseaddeventiconnew.png)ボタンをクリックし、JavaScript コードを選択します。 - -![](/gdevelop5/events/insert-javascript-code-eventnew.png) - -追加したら、コードをクリックして編集します。GDevelop がイベントに到達するたびにコードが実行されます。 - -コードには Strict モードが適用されますが、_runtimeScene_ という名前の変数にはアクセスできます。この変数 runtimeScene は、実行中のシーンを表します。以下は標準の GDevelop イベントと、JavaScript を使った同等のイベントの例です。 - -![](/gdevelop5/events/javascript-code-example.png) - -runtimeScene パラメーターの隣にある「ここをクリックして Javascript に渡すオブジェクトを選択」をクリックすると、「objects」という配列変数が利用可能になります。ゲームオブジェクトを選択するメニューが表示されるので、必要なゲームオブジェクトを選択します。ここで指定したオブジェクトはパラメーターとなる JavaScrpt オブジェクト配列に追加されます。 - -![](/gdevelop5/events/jsruntimeclickeventnew.png) - -「objects」は、選択したオブジェクトのインスタンスを含む配列です。これはアクションや条件が使用するものとまったく同じです。たとえば次の図は、JavaScript イベントをサブイベントとして使用するイベントです。JavaScript イベントは、プレイヤーと衝突している敵を操作します。 - -![](/gdevelop5/events/javascript-code-with-objects-example.png) - -## サンプル - -!!! tip - - **やってみよう!** 🎮 - オンラインで下記のサンプルを実行できます。下記で示すリンクを開いてください。GDevelop で新規プロジェクトを作成する画面で例タブをクリックすると、もっとたくさんの例を利用できます。 - -[![400](https://editor.gdevelop.io/?project=example://text-to-speech)](/ gdevelop5/events/javascripttexttospeechexample.png) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-to-speech){ .md-button .md-button--primary } - -[![400](https://editor.gdevelop.io/?project=example://javascript-blocks-in-platformer)](/gdevelop5/events/platformerjavascriptblocksexample.png) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://javascript-blocks-in-platformer){ .md-button .md-button--primary } - -## ドキュメント 📚 - - * **[ゲームエンジンのドキュメント](https://docs.gdevelop-app.com/GDJS%20Runtime%20Documentation/)** を参考にしてください。 - * **[GDJS ゲームエンジンのソースコード](https://github.com/4ian/GD/tree/master/GDJS/Runtime)**も直接ブラウズできます。 - - -## コードサンプル - -### 変数値を読み書きする - -```javascript -var myVar = runtimeScene.getVariables().get("MyVar"); -var myVar2 = runtimeScene.getVariables().get("MyVar2"); - -var currentValue = myVar.getAsNumber(); -myVar.setNumber(currentValue+1); - -myVar2.setString("Hello, world"); -``` - -ドキュメント [gdjs.Variable](https://docs.gdevelop-app.com/GDJS%20Runtime%20Documentation/gdjs.Variable.html) と [gdjs.VariablesContainer](https://docs.gdevelop-app.com/GDJS%20Runtime%20Documentation/gdjs.VariablesContainer.html) を参照してください。 - -### オブジェクトを別の位置に移動し、ゲームが最初のフレームをレンダリングしているかどうかを確認する - -```javascript -const players = runtimeScene.getObjects("Player"); -const playerHitBoxes = runtimeScene.getObjects("PlayerHitBox"); -// プレイヤーかヒットボックスオブジェクトが見つからなければ、すぐに中止する。 -if (playerHitBoxes.length === 0 || players.length === 0) return; - -// 最初のフレームだけで実行(つまりシーン開始時)。 -if (runtimeScene.getTimeManager().isFirstFrame()) { - // PlayerHitBoxes の最初のインスタンスを非表示にする。 - playerHitBoxes[0].hide(); -} - -// プレイヤーオブジェクトの位置を設定する。 -players[0].setX(playerHitBoxes[0].getX() - 12); -players[0].setY(playerHitBoxes[0].getY()); -``` - -同等のイベントは次のとおりです。 -![](/gdevelop5/events/hide-and-set-position-player-hitbox.png) - -### オブジェクトのビヘイビアの条件を調べてアニメーションを変更する - -!!! tip - - 以下のコードでは、アノテーション(注釈)と呼ばれるコメントを使用しています - -JavaScript の変数宣言の直前に**アノテーション** `/** @type {gdjs.XXX} */` を 記述することで、変数の型が gdjs.XXX であることをコードエディターに知らせます。このおかげで、エディターは入力中(または単語にカーソルを合わせたとき)に**オートコンプリート**を表示できます。 - -ほとんどの場合、アノテーションは必要ありません。ここで使うメソッドは、すでに型アノテーションによって[ドキュメント化](http://4ian.github.io/GD-Documentation/GDJS%20Runtime%20Documentation/)済みだからです。しかし、オブジェクトリストを使うときに、そのオブジェクト特有のメソッドにアクセスしたいと思うかもしれません(たとえばスプライトオブジェクトのアニメーションを変更するメソッドとか)。そこでアノテーション `/** @type {gdjs.SpriteRuntimeObject} */` を使うと、エディターが固有メソッドを認識できるようになります。 - -アノテーションを使わなくてもコードは実行できますが、その場合エディターは基本クラス `gdjs.RuntimeObject` のメソッドしか表示できません。 - -オブジェクトからビヘイビアを取得するときに、それがどんなビヘイビアなのか知ることもできます。アノテーションを使って、エディターにそれが何なのかを知らせるのです(さもなくば、基本クラス `gdjs.RuntimeBehavior` のメソッドしかオートコンプリートに出てこないでしょう)。 - -```javascript -const players = runtimeScene.getObjects("Player"); -const playerHitBoxes = runtimeScene.getObjects("PlayerHitBox"); -if (playerHitBoxes.length === 0 || players.length === 0) return; - -/** @type {gdjs.SpriteRuntimeObject} */ -const player = players[0]; - -/** @type {gdjs.PlatformerObjectRuntimeBehavior} */ -const platformerBehavior = playerHitBoxes[0].getBehavior("PlatformerObject"); - -if (platformerBehavior.isJumping() || platformerBehavior.isFalling()) { - player.setAnimation(1); -} else if (platformerBehavior.isOnFloor()) { - if (!platformerBehavior.isMoving()) { - player.setAnimation(0); - } else { - player.setAnimation(2); - } -} - -const LEFTKEY = 37; -const RIGHTKEY = 39; -if (runtimeScene.getGame().getInputManager().isKeyPressed(LEFTKEY)) { - player.flipX(true); -} else if (runtimeScene.getGame().getInputManager().isKeyPressed(RIGHTKEY)) { - player.flipX(false); -} -``` - -同等のイベントは次のとおりです。 -![](/gdevelop5/events/change-animation-according-to-behavior-conditions.png) - -### カメラの位置をオブジェクトに合わせる -```javascript -if (!objects.length) return; - -// ここで使う objects は、関数の設定時に指定した「Player」のリスト -// を指します。 - -runtimeScene.getLayer("").setCameraX(objects[0].getX()); -``` - -同等のイベントは次のとおりです。 -![](/gdevelop5/events/set-camera-x-position-x.png) - -### スプライトオブジェクトを床に置かれた後にフェードアウトさせる(プラットフォーマーオブジェクトビヘイビアを使用) - -```javascript -objects.forEach(object => { - /** @type {gdjs.SpriteRuntimeObject} */ - const enemy = object; - - /** @type {gdjs.PlatformerObjectRuntimeBehavior} */ - const platformerBehavior = object.getBehavior("PlatformerObject"); - - if (enemy.getAnimation() === 1 && platformerBehavior.isOnFloor() && !platformerBehavior.isMoving()) { - object.activateBehavior("PlatformerObject", false); - enemy.setOpacity(enemy.getOpacity() - 50 * object.getElapsedTime(runtimeScene) / 1000); - - if (enemy.getOpacity() === 0) { - object.deleteFromScene(runtimeScene); - } - } -}); -``` - -同等のイベントは次のとおりです。 -![](/gdevelop5/events/fade-out-and-behavior.png) - -### JavaScript でパラメーターの値を取得する - -JavaScript で関数から値を取得するのは簡単です。 -オブジェクトにどうアクセスするか、見てみましょう。次の例に示すタイプは _Objects_ です。_Objects_ は複数形ですが、これはつまりパラメーターに指定したオブジェクトのインスタンス配列が返ることを意味します。(訳注:言語設定が日本語の場合は名詞で複数形を区別しないため、「オブジェクト」と表示されます) -{{ :gdevelop5:events:function_rotate_parameters.png -?nolink |}} - -インスタンス配列は次の関数で取得できます。 - -```javascript -eventsFunctionContext.getObjects("myParameter"); -``` - -次の例では _RotateObjects_ という名前のパラメーターで受け取ったオブジェクトを 45 度回転しています。 - - -```javascript -const objects = eventsFunctionContext.getObjects("RotateObjects"); -const firstInstance = objects[0]; -firstInstance.setAngle(45); -``` - -今度は角度もパラメーターとして受け取れるようにしてみましょう。タイプは数値です。 - -{{ :gdevelop5:events:degrees_angle_function.png -?nolink |}} - -```javascript -const angle = eventsFunctionContext.getArgument("degrees"); -``` - -タイプが文字列やそれ以外の場合でも、コードは同様です。 - -ちなみに、次の関数を思い出した人もいるかもしれませんが。 -``` -GetArgumentAsString() -GetArgumentAsNumber() -``` -この 2 つは式で、JavaScript 内では使えませんので注意してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/link.md b/docs/ja/gdevelop5/events/link.md deleted file mode 100644 index 1d09057f28..0000000000 --- a/docs/ja/gdevelop5/events/link.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: リンクイベント ---- -# リンクイベント - -リンクイベントは外部保管場所のようなものです。リンクイベントは、外部イベントを外部保管リンクに挿入する必要があることをGDevelopに指示します。(外部イベントは [プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)で作成できます) - -外部イベントは、ゲームのロジックを複数のイベントシートに分けるのに役立ちます。外部イベントシートは、ゲームイベントの編成を改善します。また、シーン間で一般的なイベントを共有するための優れた方法も提供します。 - -リンクイベントを追加する場合、<外部イベントの名前を入力>をクリックして、ドロップダウンメニューを表示し、そこに含める外部イベントを選択できます。 - -![}} {{:gdevelop5:events:externalevents2600.png?|](/gdevelop5/events/externalevents1200.png) - - - -![](/gdevelop5/events/linkingexternalevents.png) - -## 例 - -!!! tip - - **やってみよう!** 🎮 - - オンラインでサンプルを実行 - -[![](/gdevelop5/events/asteroidexternalexamplenew.png)](https://editor.gdevelop.io/?project=example://asteroids) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://asteroids){ .md-button .md-button--primary } - -[![](/gdevelop5/events/platformerbehaviornew.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/repeat.md b/docs/ja/gdevelop5/events/repeat.md deleted file mode 100644 index 79a4ef1bea..0000000000 --- a/docs/ja/gdevelop5/events/repeat.md +++ /dev/null @@ -1,29 +0,0 @@ ---- -title: 指定回数繰り返しイベント ---- -# 指定回数繰り返しイベント - -指定回数繰り返しイベントは標準[イベント](/gdevelop5/events)のように機能しますが、リスト内の次のイベントに進む前に連続して複数回繰り返されます。後続のイベントは、繰り返し回数に達するまで実行されません。 - -この繰り返し回数は数字だけではなく、式で記述することができます。つまり何らかのプレイヤーの操作に応じて繰り返し回数を変えることができます。たとえば、オブジェクトのライフカウント、位置などに応じて異なる数の敵を作成できます。またシーン上にランダムな数のオブジェクトを作成できます(以下の例を参照)。 - -![](/gdevelop5/events/repeat-example.png) - -## 例 - -!!! tip - - **やってみよう!** 🎮 - オンラインで下記のサンプルを実行できます。 - -**対角線** - -[![](/gdevelop5/events/diagonals.png)](https://editor.gdevelop.io/?project=example://find-diagonals) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://find-diagonals){ .md-button .md-button--primary } - -**レーザー** - -[![](/gdevelop5/events/lasernew.png)](https://editor.gdevelop.io/?project=example://zombie-laser) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://zombie-laser){ .md-button .md-button--primary } \ No newline at end of file diff --git a/docs/ja/gdevelop5/events/standard.md b/docs/ja/gdevelop5/events/standard.md deleted file mode 100644 index 37a2d7c42e..0000000000 --- a/docs/ja/gdevelop5/events/standard.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: 標準イベント ---- -# 標準イベント - -GDevelopで使用される最も一般的な[イベント](/ja/gdevelop5/events)は標準イベントです。 - -「シーン」エディターから、「シーン(イベント)」エディタータブを選択してクリックします。エディターの上部にあり、シーンの右側に向かって伸びているのがタブです。 - -![](/gdevelop5/events/eventseditortab.png) - -イベントは、画面の左側に表示される「条件」と、画面の右側に表示される「アクション」で構成されます。 左側のすべての条件が満たされると、右側のアクションが実行されます。左側の条件が真でない場合、イベント内の他の条件とアクションは実行されません。 - -![](/gdevelop5/events/eventconditiontf.jpg) - -## 例 - -X 座標が 100 ピクセル未満の「Square」オブジェクトを削除するイベントを次に示します。 - -![](/gdevelop5/tutorials/delete-square-condition.png) - -イベントがどのように機能するかまだよくわからないという場合は、[ゲーム作りの基本コンセプト](/ja/gdevelop5/tutorials/basic-game-making-concepts)も参照してください。 diff --git a/docs/ja/gdevelop5/events/while.md b/docs/ja/gdevelop5/events/while.md deleted file mode 100644 index 56820013a3..0000000000 --- a/docs/ja/gdevelop5/events/while.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: 条件が真のあいだ繰り返しイベント ---- -# 条件が真のあいだ繰り返しイベント - -条件が真のあいだ繰り返し(While)イベントは、特別な種類の[イベント](/ja/gdevelop5/events)です。_While 条件_が真である限り、イベントを中断することなく繰り返します(つまり、次のイベントは**実行されず**、画面は更新**されません**)。 - -![](/gdevelop5/events/whileevent.png) - -条件が真のあいだ繰り返しイベントはふつう必要ありませんが、特定の設定条件が真のあいだずっとアクションを繰り返したい場合はこのイベントを使うことができます。条件が真のあいだ繰り返しイベントは、ゲーム中で作成したいアルゴリズムによっては、役に立つでしょう。 -## 例 - -!!! tip - - **やってみよう!** 🎮 - オンラインで下記のサンプルを実行できます。 - -[![](/gdevelop5/events/spaceshooternew.png)](https://editor.gdevelop.io/?project=example://asteroids) - -* [Asteriods Example](https://editor.gdevelop.io/?project=example://asteroids) - -[![](/gdevelop5/events/pathfindinggeneralnew.png)](https://editor.gdevelop.io/?project=example://pathfinding) - -* [Pathfinding Example](https://editor.gdevelop.io/?project=example://pathfinding) \ No newline at end of file diff --git a/docs/ja/gdevelop5/extensions/best-practices.md b/docs/ja/gdevelop5/extensions/best-practices.md deleted file mode 100644 index 4b96fe1574..0000000000 --- a/docs/ja/gdevelop5/extensions/best-practices.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: 拡張機能ベストプラクティス ---- -# 拡張機能ベストプラクティス - -これは[コミュニティで共有できる](/ja/gdevelop5/extensions/share)、使いやすい拡張機能を作るためのガイドラインです。 - -### イベントと命名 - - * **シーン変数**には接頭辞 `__YourExtensionName_` を前置します。いずれ拡張機能に対する変数のスコープが追加されるかもしれませんが、今のところは他の拡張機能の変数と衝突しないように注意する必要があります。変数名を長くして、拡張機能名を含む接頭辞をつけると、他の拡張機能やそのユーザーによってオーバーライドされる危険性を最小限にとどめることができます。 - * アクション、条件、式の**名前**にはパスカルケース(`PascalCase` のように、単語の先頭をすべて大文字にして連結したもの)を使うこと。 - * 式に関しては、`Get` を前置しないこと。なぜなら、すべての式は暗黙理に getter と決まっているので、わざわざ明示する意味がありません。たとえば `GetHealth` ではなく `Health` に、`GetPlayerBestScore` ではなく `PlayerBestScore` という名前にします。 - -### 説明 - -説明はすべて英文で書くようにしてください。**略称は使わないでください**。イベントシートに表示されるアクションや条件は明快な文にしてください。 - -* アクションと条件の文は、常に肯定形にしてください。たとえば条件を_「カメラは振動しているか?」_と**名付けてはいけません**。代わりに_「カメラは振動している」_にしてください。条件は何かについての検査なので、それが「疑問」であることは自明です。 -* 条件の説明に「…の場合は真を返します」のようには**決して書かないでください**。これはあまりにもプログラマー向けすぎます。代わりに GDevelop ではもっと一般的な表現として「…かどうかをチェックします」を使います。たとえば「レースが終了したかチェックします。」のような感じです。 -* 拡張機能の長い説明は、Markdown 記法でリストにしたり、式名を逆引用符(`)で括って等幅フォントで表示されるようにして、読みやすさに配慮してください。 - -### ビヘイビア - - * ビヘイビアについては、その使い方を説明してください(オブジェクトの要件を含む)。 - * ビヘイビアのプロパティについて。 - * 真偽値の場合は、真の場合に実行することを説明に使ってください。「もし真であれば、パワーアップを有効化します」とは**決して書かないでください**。代わりに「パワーアップを有効化します」とだけ書きます。 - - -### 互換性 - - * 拡張機能が OS やプラットフォーム依存の機能を使用している場合は、GDevelop が対応するすべてのプラットフォームでそれが正常に動作することを確認してください。対象は Web ブラウザー、デスクトップ(少なくとも Windows、macOS、Linux にエクスポートして確認)、Android(エクスポートして確認)です。 - -###JavaScript -[JavaScript コードイベント](/ja/gdevelop5/events/js-code)を使って JavaScript を書けます。ある関数を GDevelop の複数のアクション/条件/式に使いたい場合は、グローバルの `gdjs` オブジェクト内に、拡張機能と同じ名前の`名前空間`を作成し、そこに関数を格納してください。たとえば、ある拡張機能の機能がコントローラーに依存する場合は、次のようにします。 - -```javascript -gdjs._extensionController = {}; -``` - -```javascript -gdjs._extensionController.myMethod = function (arguments) { - // ... -} -``` \ No newline at end of file diff --git a/docs/ja/gdevelop5/extensions/create.md b/docs/ja/gdevelop5/extensions/create.md deleted file mode 100644 index 8991a01e35..0000000000 --- a/docs/ja/gdevelop5/extensions/create.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -title: 拡張機能の作成 (ビヘイビア, 条件, アクション, 式) ---- -# 拡張機能の作成 (ビヘイビア, 条件, アクション, 式) - -プロジェクト内で、ゲームの新しいビヘイビア、アクション、条件、または式を直接作成することもできます。シーン(または外部イベント)の通常の [イベントの編集](/ja/gdevelop5/interface/events-editor) から作成できます。 - -## 新しい拡張機能の作成 - -最初のステップは、新しい拡張機能を作成することです。これは、\[機能/ビヘイビア\]の下の「+」ボタンをクリックすることにより、[プロジェクトマネージャー](/gdevelop5/interface/project-manager)からワンクリックで実行できます。 - -![](/gdevelop5/extensions/add-extension-button.png) - -新しい拡張機能が追加されます。拡張機能が提供するものを示唆するような名前にすぐに名前を変更することをお勧めします。これを行うには、拡張機能を右クリックして「名前の変更」を選択します。英数字とアンダースコアのみがサポートされています。 - -!!! note - - Fたとえば、オブジェクトを点滅させる拡張機能を作成する場合は「Flash」、戦場の戦車のようにオブジェクトを制御する動作を作成する場合は「TankEnemies」などの名前を使用できます。 - -最後に、拡張機能をクリックして開きます。これで、拡張機能で新しいビヘイビアまたは関数(または両方)を作成できます。 - -### 新しい関数の作成 - -関数は、イベントシートで使用できるカスタムアクション、条件、または式です。関数の作成の詳細については、[関数の作成はこちら](/ja/gdevelop5/events/functions)をご覧ください。 - -### 新しいビヘイビアの作成 - -カスタムビヘイビアは、オブジェクトに対して実行できる通常のビヘイビアに似ています。ビヘイビアに組み込まれたロジックに従って、オブジェクトを制御(移動、アニメーション、テキスト、サイズなどを変更)するために使用できます。 - -こちらも [ビヘイビアの作成](/gdevelop5/behaviors/events-based-behaviors)も参考にして下さい。 - -## 拡張機能を共有する - -便利で再利用可能なビヘイビアや関数などの拡張機能を作成した場合、それらを[コミュニティと共有](/ja/gdevelop5/extensions/share)できます。 diff --git a/docs/ja/gdevelop5/extensions/extend-gdevelop.md b/docs/ja/gdevelop5/extensions/extend-gdevelop.md deleted file mode 100644 index 32cebb5105..0000000000 --- a/docs/ja/gdevelop5/extensions/extend-gdevelop.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: GDevelopの拡張(イベント/JavaScript/C++を使用) ---- -# GDevelopの拡張(イベント/JavaScript/C++を使用) - -GDevelopはモジュール式です。ニーズに合わせて拡張できます。特に、ゲームで使用可能なすべての機能(オブジェクト、動作、およびイベント)は、拡張システムに基づいています。GDevelopは[オープンソース](https://github.com/4ian/GD)であるため、既存の拡張機能に貢献したり、新しい拡張機能を作成したりできます。また、ゲームエンジンまたはエディターのソースコードを確認して、改善点を開発することもできます。 - -## イベントを使用した関数とカスタムビヘイビア - -➡️ GDevelopは、**[関数](/gdevelop5/events/functions)**を使用して新しいアクション、条件、および式を作成できます。イベントを使用して**[新しいビヘイビアを作成](/gdevelop5/behaviors/events-based-behaviors)**することもできます。 - -便利な関数やビヘイビアを開発したら、[コミュニティに公開しましょう](/gdevelop5/extensions/share)。 - -## ゲームエンジンの拡張機能(JavaScript) - -ゲームエンジンによって提供されるすべての機能は、ゲームエンジンコア(GDJS)と拡張機能に基づいています。 - -➡️新しいオブジェクト、新しいビヘイビア、または新しいアクション/条件/式を作成する場合は、**[GDevelopの拡張機能の作成と開発に関するこのページ](https://github.com/4ian/GD/blob/master/newIDE/README-extensions.md)**をお読みください。. - -JavaScriptに加えて、Node.jsの初歩的な知識が必要です - -## エディターの改良 (JavaScript, C++) - -エディターもJavaScriptに基づいており、簡単に変更および改良できます。 - -➡️次の[GDevelop IDE(英語ページ)](https://github.com/4ian/GD/blob/master/newIDE/README.md)も参考にして下さい。 - -JavaScriptの使用を開始するにはNode.jsが必要です。また、React.jsについてのチュートリアルを読むこともお勧めします。エディター全体がモジュール性とパフォーマンスのためにそれに基づいているためです。 - -### テーマの作成 - -GDevelopの新しいテーマも作成できます。次の [テーマの作り方](/ja/gdevelop5/all-features/themes)も参考にして下さい。 diff --git a/docs/ja/gdevelop5/extensions/index.md b/docs/ja/gdevelop5/extensions/index.md deleted file mode 100644 index 21f4f83638..0000000000 --- a/docs/ja/gdevelop5/extensions/index.md +++ /dev/null @@ -1,204 +0,0 @@ ---- -title: 拡張機能 ---- -# 拡張機能 - -GDevelop は機能について柔軟な方法を組み込んでいます。すなわち[コア機能](/ja/gdevelop5/all-features)に加えて、新しい機能が拡張機能によって提供されます。拡張機能にはオブジェクト、ビヘイビア、アクション、条件、式、イベントを含むことができます。 - -[GDevelop から直接](/ja/gdevelop5/extensions/search)、コミュニティ製の拡張機能のコレクションにアクセスできます。以下がそのリストです。また自分のゲームのために、新しいビヘイビア、アクション、条件、式を提供する拡張機能を自分のプロジェクト内で直接[作成する](/ja/gdevelop5/extensions/create)こともできます。(訳注:検索画面では拡張機能名は翻訳されないため、実用性の観点から以下のリストの拡張機能名は原文のままにしています) - -## Advanced p2p event handling -![](https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Applications and Programming/Applications and Programming_sitemap_map_ux_application.svg) -Allows handling all received P2P events at once instead of one per frame. It is more complex but also potentially more performant. - -## Align object on the screen -![](https://resources.gdevelop-app.com/assets/Icons/format-vertical-align-center.svg) -オブジェクトをウィンドウ(またはスクリーンサイズ)に対する相対位置でシーン上に整列します。 - -## Animated Back and Forth Movement -![](https://resources.gdevelop-app.com/assets/Icons/repeat.svg) -オブジェクトを一定の距離で左右に行ったり来たり往復移動させます。オブジェクトに 2 つのアニメーション「GoLeft」(左へ)と「TurnLeft」(左から折り返し)を追加してください。 - -## Auto typing animation for texts ("typewriter" effect) -![](https://resources.gdevelop-app.com/assets/Icons/typewriter.svg) -テキストが 1 文字ずつ書かれていく様子をアニメーションさせます(「タイプライター」効果とも呼ばれます)。タイピングの速さをカスタマイズできます。ビジュアルノベルやセリフをしゃべるシーンに役立ちます。 - -## Back button -![](https://resources.gdevelop-app.com/assets/Icons/keyboard-backspace.svg) -戻るボタンとそれに関連付けする操作を追加します。 - -## Bounce -![](https://resources.gdevelop-app.com/assets/Icons/volleyball.svg) -オブジェクトがほかのオブジェクトに接触したときに跳ね返るアクションを提供します。永続的なフォースをオブジェクトに追加し、ほかのオブジェクトに接触したときにこのアクションを使って、リアルな跳ね返りを表現できます。 - -## Camera Shake -![](https://resources.gdevelop-app.com/assets/Icons/vector-difference-ab.svg) -1 つ以上のメソッド(位置、角度、ズーム)を組み合わせて、指定したレイヤーのカメラを震わせます。 - -## Checkbox -![](https://resources.gdevelop-app.com/assets/Icons/checkbox-marked.svg) -Checkbox that can be toggled by a left-click or touch. - -## Clipboard -![](https://resources.gdevelop-app.com/assets/Icons/clipboard-text-multiple-outline.svg) -クリップボードの内容を返す式です。 - -## Color Conversion -![](https://resources.gdevelop-app.com/assets/Icons/invert-colors.svg) -RGB 形式の色をさまざまな他形式の色(HSV、HSL、名前付き色)と相互変換する式です。 - -## Compressor -![](https://resources.gdevelop-app.com/assets/Icons/folder-zip-outline.svg) -文字列を圧縮したり展開します。 - -## Create multiple copies of an object -![](https://resources.gdevelop-app.com/assets/Icons/grid.svg) -指定したオブジェクトのコピーを作成します。行列数、行と列の間隔、左上の開始位置、オブジェクトを作成するレイヤー、オブジェクトの Z オーダーを設定できます。 - -## Cursor type -![](https://resources.gdevelop-app.com/assets/Icons/cursor-default-outline.svg) -カーソルの種類を変更するアクションを提供します。またオブジェクトをホバーしたときにカーソルを変更するビヘイビアも提供します。 - -## Double-click -![](https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/Computers and Hardware/Computers and Hardware_mouse_wireless_pc.svg) -マウスのダブルクリックや、タッチスクリーンのダブルタップをチェックします。 - -## Drag Camera With Pointer -![](https://resources.gdevelop-app.com/assets/Icons/drag-variant.svg) -マウスドラッグやタッチによるスクロールでカメラを移動するアクションです。垂直方向、水平方向、またはその両方向に対応します。 - -## Draggable Slider Control -![](https://resources.gdevelop-app.com/assets/Icons/Line Hero Pack/Master/SVG/UI Essentials/UI Essentials_sliders_options.svg) -Use a shape-painter object to draw a horizontal slider that can be dragged by the users. - -## Extended math support -![](https://resources.gdevelop-app.com/assets/Icons/function-variant.svg) -数学関数と定数式を追加します。 - -## Extended variables support -![](https://resources.gdevelop-app.com/assets/Icons/variable-box.svg) -変数の存在をチェックする条件と、存在する変数をメモリーから削除するアクションです。 - -## Fire bullets -![](https://resources.gdevelop-app.com/assets/Icons/bullet.svg) -オブジェクトに射撃機能を追加します。速度や角度、射撃間隔をカスタマイズできます。 - -## Flash (blink) -![](https://resources.gdevelop-app.com/assets/Icons/flash-outline.svg) -オブジェクトを一定間隔で点滅(チカチカ)させます。つまり表示と非表示の状態を交互に切り替えます。 -この効果は Flash アクションで実行します。 - -## Flash layer -![](https://resources.gdevelop-app.com/assets/Icons/flash-outline.svg) -指定した時間だけレイヤーを表示し、その後で非表示にします。 - -## Gamepads (controllers) -![](https://resources.gdevelop-app.com/assets/Icons/gamepad-variant-outline.svg) -ゲームパッド(または他のコントローラー)対応を追加します。ボタンの押下や軸の位置、トリガーの圧力などの情報にアクセスできます。 - -## Health (life points and damages for objects) -![](https://resources.gdevelop-app.com/assets/Icons/heart-half-full.svg) -オブジェクトのライフ値を管理するアクションと条件を追加します。オブジェクトがダメージを受けると、体力値が減少します。条件で死亡をチェックできます。 - -## Internet Connectivity -![](https://resources.gdevelop-app.com/assets/Icons/access-point-network.svg) -実行中のデバイスがインターネットに接続しているかどうかをチェックします。 - -## Konami Code -![](https://resources.gdevelop-app.com/assets/Icons/alpha-a-circle-outline.svg) -昔のコナミコード(上上下下左右左右BA)入力に対応させます。隠しコマンドやイースターエッグに利用できます。 - -## Kongregate -![](https://resources.gdevelop-app.com/assets/Icons/alpha-k-circle.svg) -Kongregate.com でゲームを公開した場合、Kongregate サービス経由でユーザーや送信されたスコア情報を取得したり、Kongregate ページと通信できます。 - -## Language -![](https://resources.gdevelop-app.com/assets/Icons/earth.svg) -ブラウザーやデバイスの設定をもとに、ユーザーの使用言語を切り替えます。 - -## Linear Movement -![](https://resources.gdevelop-app.com/assets/Icons/ray-start-arrow.svg) -オブジェクトを直線移動します。X 軸と Y 軸の速度を設定できます。単純な敵機や銃弾など、画面を直線状に移動するオブジェクトに有用です。 - -## MQTT Client (advanced) -![](https://resources.gdevelop-app.com/assets/Icons/message-flash.svg) -GDevelop 用の MQTT クライアントです。MQTT サーバーと接続し、メッセージを送受信します。 - -## Noise generator -![](https://resources.gdevelop-app.com/assets/Icons/sprinkler.svg) -パーリンノイズとシンプレックスノイズ(2D または 3D)を生成する式です。地形など各種自動生成に利用できます。 - -## Parallax for Tiled Sprite -![](https://resources.gdevelop-app.com/assets/Icons/image-move.svg) -背景用の Tiled スプライトオブジェクトをアニメーションさせるビヘイビアです。カメラ移動によるパララックス効果を再現します。 - -## Random Color Generator -![](https://resources.gdevelop-app.com/assets/Icons/format-color-fill.svg) -ランダムな色を生成します。シーンやオブジェクトなど、色を入力できる場所に使えます。 - -## Read pixels -![](https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Computers and Hardware/Computers and Hardware_screen_computer_image.svg) -Read the values of pixels on the screen. - -## Rotate a string 13 characters -![](https://resources.gdevelop-app.com/assets/Icons/format-text-rotation-none.svg) -文字列中のすべてのアルファベット文字を 13 文字ごとに入れ替える拡張機能です。 - -## Sine (or ellipsis) Movement -![](https://resources.gdevelop-app.com/assets/Icons/sine-wave.svg) -オブジェクトをサイン波または楕円軌道にしたがって X 軸上と Y 軸上をなめらかに移動させます。 - -## Snap objects to a virtual grid -![](https://resources.gdevelop-app.com/assets/Icons/view-grid-plus-outline.svg) -ゲーム中にオブジェクトを仮想のグリッド上に吸着させるアクションです。 - -## Sprite Masking -![](https://resources.gdevelop-app.com/assets/Icons/transition-masked.svg) -スプライトオブジェクトを使ってほかのオブジェクトをマスクします。 - -## Stay On Screen -![](https://resources.gdevelop-app.com/assets/Icons/monitor-screenshot.svg) -オブジェクトの位置をカメラのビューポート内部に設定しなおして、画面の表示範囲内に常に留まりつづけるようにします。 - -## Swipe Detector -![](https://resources.gdevelop-app.com/assets/Icons/gesture-swipe-right.svg) -スクリーン上のスワイプを感知するビヘイビアです。方向と速度などの情報を取得できます。 - -## Mobile virtual keyboard for Text Entry -![](https://resources.gdevelop-app.com/assets/Icons/keyboard-close.svg) -モバイル(iOS、Android)向けの仮想キーボードの表示を切り替えます。テキスト入力オブジェクトに使います。 - -## Timed Back and Forth Movement -![](https://resources.gdevelop-app.com/assets/Icons/repeat.svg) -このビヘイビアは、(敵のような)オブジェクトを一定時間または一定の距離移動した後、それを引き返して、縦や横に往復させ続けます。 - -## Time formatting -![](https://resources.gdevelop-app.com/assets/Icons/clock-digital.svg) -秒単位の時間を HH:MM:SS のような形式に変換する拡張機能です。画面上にタイマーを表示する場合に便利です。 - -## Toggle switch -![](https://resources.gdevelop-app.com/assets/Icons/Glyphster Pack/Master/SVG/Interface Elements/Interface Elements_interface_ui_toggle_switch.svg) -Toggle switch that users can click or touch. - -## Make object travel to random positions -![](https://resources.gdevelop-app.com/assets/Icons/axis-arrow.svg) -オブジェクトをランダムな位置に移動させます(経路探索ビヘイビアを使用します)。 - -## Yandex.Games SDK (ads) -![](https://resources.gdevelop-app.com/assets/Icons/cog.svg) -Yandex.Games プラットフォームで公開したゲームに、Yandex.Games SDK を使って広告を表示します。 - -## YSort -![](https://resources.gdevelop-app.com/assets/Icons/sort-ascending.svg) -オブジェクトの Y 位置に基づいて Z オーダーを変更することにより、疑似的な奥行き表現を作成します。アイソメトリック(等角投影法の斜め見下ろし型)ゲームやトップダウンビューのゲーム、RPG などに利用できます。 - - -## 自分のための拡張機能をつくる - -自分のゲームのために、新しいビヘイビア、アクション、条件、式をプロジェクト内で直接、しかも簡単に作成できます。 - -くわしくは下記を参照してください。 - -* [独自の拡張機能を作成する](/ja/gdevelop5/extensions/create) -* [拡張機能をコミュニティに共有する](/ja/gdevelop5/extensions/share) -* [GDevelop を JavaScript や C++ で拡張する](/ja/gdevelop5/extensions/extend-gdevelop) \ No newline at end of file diff --git a/docs/ja/gdevelop5/extensions/search.md b/docs/ja/gdevelop5/extensions/search.md deleted file mode 100644 index 85f5bedde0..0000000000 --- a/docs/ja/gdevelop5/extensions/search.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: 新しい拡張機能を検索する ---- -# 新しい拡張機能を検索する - -GDevelop でゲームのために**新しいビヘイビア、条件、アクション、式**を探すのは簡単です。[プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)で[関数 / ビヘイビア]をクリックし、[新しい拡張機能を検索する]を選びます。 - -![](/gdevelop5/extensions/search-new-extensions-button.png) - -検索バーと[コミュニティ製の拡張機能リスト](/ja/gdevelop5/extensions)が並んだダイアログが表示されます。 - -![](/gdevelop5/extensions/search-new-extensions-dialog.png) - -検索バーに何か入力すると、その語句に一致する拡張機能がフィルターされます。検索バーの下に並ぶタグをクリックして、拡張機能を見て回ることもできます。 -!!! tip - - - **拡張機能をインポート**ボタンから、任意の場所にある拡張機能ファイルをインポートできます。 - -拡張機能は、その名前と簡単な説明付きで表示されます。その拡張機能が何をするものなのか、だいたい見当がつくでしょう。 - -!!! tip - - **[こちらからもコミュニティ製の拡張機能リスト](/ja/gdevelop5/extensions)をブラウズ**できます。 - -## 拡張機能をインストールする - -興味を引く拡張機能が見つかったら、それをクリックするとくわしい説明を表示するウィンドウが開きます。例として「Flash (blink)」拡張機能の概要を次に示します。 - -![](/gdevelop5/extensions/flash-extension.png) - -説明にはふつう拡張機能の使い方が書かれています。この例の場合は、これがオブジェクトに追加するビヘイビアであること、オブジェクトを短時間点滅させる(ちょうどレトロなプラットフォーマーで敵の攻撃を食らったときのような)アクションを含むことが書いてあります。 - -**プロジェクトにインストール**をクリックすると、拡張機能がダウンロードされます。完了すると、[プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)の関数/ビヘイビアリストに追加された機能が表示されます。 - -![](/gdevelop5/extensions/extensions-list-with-flash.png) - -## 新しい拡張機能を使う - -拡張機能がインストールされたら、通常は次のようなことが可能になります。 - -* オブジェクトに[新しいビヘイビアを追加](/ja/gdevelop5/behaviors)するときに、**ビヘイビア**リストに表示されます。 -* ビヘイビアを提供しない場合でも、**アクションか条件**は追加されます。イベントを編集するときに、アクションリストか条件リストに表示されます。カテゴリー名は拡張機能と同じ名前になります。 - -たとえば *Flash* 拡張機能は 2 つの新しいアクションを提供します。 - -![](/gdevelop5/extensions/flash-extension-actions.png) - -これらは *Flash* ビヘイビアを追加したオブジェクトで利用できます。 - -## 独自のビヘイビア、アクション、条件、拡張機能を作成する - -いまシーンで使用しているイベントをそのまま使って、簡単に新しい拡張機能を作成できます。これはゲームを体系化してオブジェクトを拡張する、実に強力な機能です。 - -くわしくは[独自の拡張機能を作成する](/ja/gdevelop5/extensions/create)を参照してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/extensions/share.md b/docs/ja/gdevelop5/extensions/share.md deleted file mode 100644 index f76d14b126..0000000000 --- a/docs/ja/gdevelop5/extensions/share.md +++ /dev/null @@ -1,38 +0,0 @@ ---- -title: 作成した拡張機能の公開 ---- -# 作成した拡張機能の公開 - -[GDevelopで検索して使用できる拡張機能](/gdevelop5/extensions/search) は、コミュニティによって作成および共有、公開されています。 - -複数のゲームで役立つ再利用可能なビヘイビア、または一連のアクション/条件/式を作成した場合は、それらをコミュニティと共有することを検討してください!そうするのはとても簡単です。 - -## 1) 拡張機能をエクスポートする - -[プロジェクトマネージャー](/gdevelop5/interface/project-manager)から拡張機能を開きます。機能リストの上部に、「拡張オプションの編集」ボタンがあります。それをクリックして、拡張機能の構成を開きます。 - -![](/gdevelop5/extensions/extension-options.png) - -### 1.1) 拡張情報を入力し完成させます - -すべてのフィールド、拡張機能の名前と説明を含めて入力します - -* *名前*は検索で表示されます(名前は人々があなたの拡張機能を検索するために有用です) * *短い説明*は検索結果に表示されます。 * *説明*は[拡張機能をインストールする](/ja/gdevelop5/extensions/search)ときに表示されます。拡張機能の使用方法に関する簡単な説明が含まれている必要があります。 * *バージョン*は、X.Y.Zフォーマットのバージョン番号です。例:1.0.0。拡張機能の準備が整っていると確信している場合は1.0.0から、またはまだ変更される可能性がある場合は、0.0.1から始めます。 * *タグ*は、拡張機能を検索するのに役立つコンマ区切りの「タグ」のリストです。 [拡張機能を検索するとき](/ja/gdevelop5/extensions/search)に既存のタグを読んで、インスピレーションを得てください。既存のタグを可能な限り再利用します。 * *作成者*は、名前、メール、またはGitHubハンドル(所有している場合)です。 - -### 1.2) 拡張機能がベストプラクティスに従っていることを確認します - -[拡張機能ベストプラクティス](/ja/gdevelop5/extensions/best-practices) を読んでください。 - -### 1.3) 拡張機能を.jsonファイルにエクスポートします - -準備ができたら、下部にある「エクスポート拡張機能」をクリックしてから、「ファイルにエクスポート」をクリックします。ファイルを選択し、.json拡張子のついた名前を入力します。例:Flash.json - -## 2) 拡張機能をコミュニティに登録する - -[拡張機能のベストプラクティス](/ja/gdevelop5/extensions/best-practices)に従っているか確認したら、拡張機能をコミュニティに登録しましょう。 以下の手順では、[GitHub プロフィール](https://github.com/join) アカウントが必要です。 - -新しい拡張機能を登録するには、まず [GitHubレポジトリで新規issue](https://github.com/4ian/GDevelop-extensions/issues/new/choose) が必要です。(または、別のディレクトリで登録する方法もあります。 [レポジトリをお読み下さい](https://github.com/4ian/GDevelop-extensions)). - -完了したすべての情報に、あなたのjsonファイルファイルを添付し、その後、チェックリストを確認してから提出します。[こちらの例](https://github.com/4ian/GDevelop-extensions/issues/1)をご覧ください。 - -拡張機能はまずレビューされるため、公開する前に変更を加えることができます。高品質の拡張機能であれば、公開されます! diff --git a/docs/ja/gdevelop5/getting_started.md b/docs/ja/gdevelop5/getting_started.md deleted file mode 100644 index 0826d372a0..0000000000 --- a/docs/ja/gdevelop5/getting_started.md +++ /dev/null @@ -1,48 +0,0 @@ ---- -title: はじめに ---- -# はじめに - -GDevelop はフリーでオープンソース、そしてクロスプラットフォームのゲーム制作ツールです。誰でもプログラミング*不要*でゲームを作れます。 - -このガイドでは、GDevelop を入手して実行するまでを説明します。 - -## ステップ 1: GDevelop のインストール - -GDevelop は Windows、macOS、Linux の最新版を含む主要な OS すべてで利用できます。まずは [gdevelop.io/download](https://gdevelop.io/download/) から GDevelop をダウンロードしましょう。 - -インストール手順は、OS に応じて下記を参照してください。 - -* **Windows**:インストーラーをダブルクリックしてください。GDevelop がインストールされて起動し、デスクトップにアイコンが追加されます。 -* **macOS**: - * DMG ファイルを開きます。 - * "GDevelop.app" を「アプリケーション」フォルダーにドラッグします。 -* **Linux**: - * ターミナルを開きます。 - * `chmod a+x GDevelop*.AppImage` と入力して、AppImage ファイルに実行権限を付けます。 - * `./GDevelop*.AppImage` と入力して実行します(またはファイルをダブルクリック)。 - -!!! note - - インストールをせずに [editor.gdevelop.io](https://editor.gdevelop.io/) でオンライン版の GDevelop を利用することもできます。ただし通常はデスクトップ版の使用をおすすめします。 - -## ステップ 2: プロジェクトの新規作成 - -1. GDevelop を起動します。 -2. **新しいプロジェクトを作成する**をクリックします。 -3. プロジェクトを作成する場所を指定します。 -4. **スターター**タブから**プラットフォーム**や**8ビットスペースシューター**などのプロジェクトを選ぶか、あるいは**空のゲーム**を選んでゼロから作りはじめます。 - -![](/gdevelop5/getting-started-create-new-project.jpg) - -**スターター**タブのプロジェクトは、ゲームとして一通り完成しています。一方、**例**タブのプロジェクトは特定の機能の作り方を示すものです。 - -## ステップ 3: ゲームのプレビュー - -プロジェクトに一つでもシーンがあれば(スタータープロジェクトはどれもそうですが)、ツールバーの**プレビュー**ボタンが有効になります。ボタンを押すと、ゲームのプレビューが起動します。 - -![](/gdevelop5/getting-started-preview-button.jpg) - -## 次のステップ - -[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)を読んでください。白紙の状態からプラットフォーマーを作る方法を学び、オブジェクトやイベント、式など GDevelop を構成する多くの基礎概念にふれることができるでしょう。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/index.md b/docs/ja/gdevelop5/index.md deleted file mode 100644 index 2dba53d133..0000000000 --- a/docs/ja/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: GDevelop 5 ドキュメント ---- -# GDevelop 5 ドキュメント - -GDevelop はフリーでオープンソース、そしてクロスプラットフォームのゲーム制作ツールです。誰でもプログラミング*不要*でゲームを作れます。GDevelop でゲームを作るために知る必要のあることは、すべてこの Wiki に書いてあります。今までゲームを作ったことが一度もなかったとしても、問題ありません。 - -![](/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - -## 次のステップ - -* GDevelop をまだインストールしていなければ、[はじめに](/ja/gdevelop5/getting_started)を読んでください。 -* ゲームを作るのが初めてという方は、[ゲーム作りの基本コンセプト](/ja/gdevelop5/tutorials/basic-game-making-concepts)を読んでください。 -* ゲームを作る準備ができたと思ったら、[チュートリアル](/ja/gdevelop5/tutorials)を見てまわりましょう。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/debugger.md b/docs/ja/gdevelop5/interface/debugger.md deleted file mode 100644 index 9b005fa7da..0000000000 --- a/docs/ja/gdevelop5/interface/debugger.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: ゲームデバッガとプロファイラー ---- -# ゲームデバッガとプロファイラー - -**デバッガ**は、あなたがゲームの内容を検査できるようにするツールです。特に、グローバル変数、シーン変数、オブジェクトのインスタンスの変数を検査するのに有効です。これは強力なツールです。 - -ゲームはいつでも一時停止できます。デバッガを使用することは、何かが意図したとおりに機能しない理由を理解したり、ゲームで簡単なテストを実行したりするのに最適な方法です。 - -プロファイラーは、あなたのゲームの実行中にエンジンのさまざまな部分で費やされた時間を計測するツールです。ゲームの多くのリソースを消費する可能性のあるボトルネックやイベントを見つけるのに役立ちます。[プロファイラーの使用について詳しくはこちらをご覧ください!](/gdevelop5/interface/debugger/profile-your-game) - -!!! note - - - これはGDevelopの高度な機能です。使用する場合は、サブスクリプションを取得してGDevelopを支援して下さい! [getting a subscription](/ja/gdevelop5/interface/profile)! - - -![](/gdevelop5/interface/gdevelop-debugger_2x.png) - -## デバッガの起動 - -デバッガを起動するには、シーンエディターのツールバーで[デバッグ]アイコンをクリックします - -![](/gdevelop5/interface/debug-icon_2x.png) - -メニューで、「デバッガとパフォーマンスプロファイラーでプレビュー」を選択します。これにより、「デバッガ」という新しいタブが開き、通常どおりゲームのプレビューが起動します。 - -プレビューを閉じた場合でも、デバッガタブを閉じたままにできることに注意してください。これにより、起動するプレビュー(通常の[プレビュー]ボタンを使用)はデバッガーに接続されます。 - -ゲームが起動された直後は、デバッガは空です: - -![](/gdevelop5/interface/empty-debugger_2x.png) - -ゲームのデータを取得するには、いつでも**「更新」**を クリックしてください。 - -![](/gdevelop5/interface/debugger-refresh-button_2x.png) - -ツールバーの**「一時停止」**ボタンを 使用することもできます。 - -## ゲームのシーンの検査 - -現在実行中のシーンは、リストのシーンアイテムの下にリストされます。 - -![](/gdevelop5/interface/inspector-list.png) - -シーン名をクリックすると、このシーンのインスペクターが右側に表示されます。このインスペクターには、シーンのレイヤーと、シーン上にオブジェクトの新しいインスタンスを作成するボタンが含まれています。 - - -### シーンに新しいインスタンスを作成します - -新しいインスタンスを作成するには、インスタンスを作成するシーンの名前をクリックします。オブジェクトの名前を書き、作成をクリックします。 - -![](/gdevelop5/interface/create-instance.png) - -インスタンスは、Zオーダー0のベースレイヤー上の位置0; 0に作成されます。その後、インスタンスのリストでそれを見つけられ、位置、角度、レイヤーを変更できます… - -## インスタンスの検査と編集 - -リストでは、実行中のすべてのシーンの**インスタンス**を見つけることができます。インスタンスはオブジェクト名でグループ化されます。オブジェクト名をクリックすると、シーンに存在するこのオブジェクトのインスタンスのリストが表示されます。インスタンス番号(各インスタンスには一意の番号があります)をクリックして検査します。 - -![](/gdevelop5/interface/instance-inspector.png) - -インスペクターには、インスタンスの一般的なプロパティ、たとえば位置、回転、レイヤーなどが表示されます。これらのプロパティのそれぞれについて、**値をクリックして編集できます**。 - -![](/gdevelop5/interface/debugger-inspector-edit-value.png) - -小さな**検証ボタン**(チェックアイコンが付いたボタン)をクリックして、変更を検証します。 - -**インスタンス** の変数を表示して変更することもできます(変数の詳細については、以下を参照してください) - -## 変数の検査と編集 - -ゲーム全体の変数(グローバル変数)、シーンの変数(シーン変数)、またはオブジェクトの特定のインスタンス(インスタンス変数)を検査できます。 - -これを行うには、リストから検査する**グローバル変数**、**シーン変数**、またはインスタンス番号をクリックします - -変数は、変数名と値(数値またはテキスト)がリスト表示されます。「Life」変数を持つオブジェクトのインスタンスの例を次に示します。 -![](/gdevelop5/interface/instance-variables.png) - -他のフィールドと同様に、**変数の値をクリック**して変更できます。変数の値に従ってゲームがどのように動作するかを確認し、イベントが適切に機能していることをテストするのに良い方法です。 - -変数は構造体にすることもできます。構造体は、変数の中に他の変数を保持します。この場合、変数の値(数値またはテキスト)を表示する代わりに、子変数を含むサブリストが表示されます。 - -以下は、ゲームのオプションを保存するための子変数を含む変数「Options」の例です -![](/gdevelop5/interface/structure-variable-inspector.png) - -他の子変数の値を変更することもできます。 - -## 作ったゲームのパフォーマンスをプロファイルします - -プロファイラーは、ゲームの実行中にエンジンのさまざまな部分で費やされた時間を測定するデバッガーに含まれるツールです。イベントを含む各セクションの内訳が表示されます -[プロファイラーについてはこちら](/gdevelop5/interface/debugger/profile-your-game) \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/events-editor.md b/docs/ja/gdevelop5/interface/events-editor.md deleted file mode 100644 index 56b19ad4ba..0000000000 --- a/docs/ja/gdevelop5/interface/events-editor.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: イベントエディター ---- -# イベントエディター - -シーン(または外部イベント)を開くと、イベントエディターがタブとして表示されます。 - -![](/gdevelop5/interface/sceneeventstab.png) - -イベントエディターでは、実際のゲームプレイ中に実施されるイベントを追加します。イベントを使用して、ゲームのすべての「ルール」を作成できます。イベントエディターは、ゲームを視覚的にプログラムする機能を提供するツールです。イベントは誰でも読み取り可能で、高度なプログラミング知識がなくても作成できます。 - -[シーンエディター](/ja/gdevelop5/interface/scene-editor)とイベントエディターを切り替えるには、ウィンドウ上部のタブを使用します。 -![](/gdevelop5/scene-events-tab.png) - -イベントエディタに切り替えると、ツールバーが変更されて新しいツールが表示されることで確認できます。 -![](/gdevelop5/events-editor-toolset.png) - -## イベントの追加 - -「イベントの追加」ボタンをクリックしてイベントを追加します。 -![](/gdevelop5/add-event-button.png) - -このボタンをクリックすると、エディター内に空のイベントが画面に表示されます -![](/gdevelop5/blank-event.png) - -イベントエディターでは、いくつものイベントブロックを追加できます。各イベントには、さまざまな条件とアクションを設定できます。イベントを追加したら、条件とアクションを使用してゲームのロジックを作成できます。 -このページでイベントの詳細をご覧ください: [events](/ja/gdevelop5/events). - -## サブイベントの追加 - -「サブイベントを追加」ボタンをクリックすると、選択したイベントに子イベントブロックを追加できます。 -![](/gdevelop5/sub-event-button.png) - -ボタンをクリックすると、選択したイベントの下に空白のサブイベントが表示されます。 -![](/gdevelop5/blank-sub-event.png) - -//サブイベントは、親イベントの条件がtrueの場合にのみ実行されます。// サブイベントは、同じ条件の繰り返しを避けるのに有効です。ロジックを読みやすくします。 - -## コメントの追加 - -[コメントの追加]ボタンをクリックすると、イベントのリストにコメントを追加できます。コメントは、複雑なイベントに説明を追加するのに役立ちます。任意のテキストを含めることができます。もちろん日本語でコメントを入力することも可能です。 -![](/gdevelop5/add-comment-button.png) - -コメントは、ゲームやアプリケーションの重要な部分です。イベントを整理したり、イベントの実行内容に関するメモや説明を追加することで、理解しやすくなり間違いも起こりにくくなります。 -![](/gdevelop5/comment-in-editor.png) - -## 他のイベントを追加します (for each, 繰り返し, while...) - -「イベントの追加」ボタンをクリックし、既に追加されているものをクリックすると、色々なイベントにアクセスできます。 -![](/gdevelop5/add-special-events.png) - - [イベントに関しての詳細](/ja/gdevelop5/events) も参照して下さい。 - -## 選択したイベントの削除 - -[選択したイベントを削除]ボタンをクリックすると、選択したイベントがイベントシートから削除されます。(Deleteキーを押すことでもできます) -![](/gdevelop5/delete-selected-events-button.png) - -## 変更を元に戻す/やり直す -これらのボタン(または通常のショートカット)を使用して、変更を元に戻すか、再度適用できます。 -![](/gdevelop5/undo-redo-buttons.png) - -## イベントの検索 -「イベントの検索」ボタンを押すと、画面の下部にパネルが開きます。条件とアクションのパラメーターを、指定の文字列で検索できます。置換パラメータを入力して、イベント内のすべてのテキストを置換することもできます。 - -![](/gdevelop5/search-events-button.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/games-dashboard.md b/docs/ja/gdevelop5/interface/games-dashboard.md deleted file mode 100644 index 43c943f55e..0000000000 --- a/docs/ja/gdevelop5/interface/games-dashboard.md +++ /dev/null @@ -1,55 +0,0 @@ ---- -title: ゲーム ダッシュボード ---- -# ゲーム ダッシュボード - -GDevelop でゲームを作るのは、ゲームを成功させる道のりの一工程にすぎません。ゲームを[エクスポートして公開](/ja/gdevelop5/publishing)したあとは、**どれくらいのプレイヤーがゲームをプレイして、それはどれくらいの時間で、そのうち何人がもう一度プレイしに戻ってきたか**を把握することが重要になります。 - -GDevelop のゲーム ダッシュボードが、これらの問いに答えてくれるでしょう。ワンクリックでゲームを登録し、さまざまなメトリクス情報にアクセスできます。しかも面倒な追跡器やサードパーティーのアプリケーション、プレイヤーの個人情報漏えいのおそれは**一切ありません**。 - -!!! tip - - ゲーム頒布時の使用許諾条件によっては、プレイヤーに対しての事前説明と、データを送信しない手段を提供したくなるかもしれません。これはメトリクスを有効化したり無効化するアクションを使って実現できます。 - -## ゲームを登録する - -ゲームのメトリクス情報にアクセスするための最初の一歩は、ゲームをオンライン登録することです。[GDevelop アカウントを作成済み](/ja/gdevelop5/interface/profile)であることを確認してください(無料です)。ゲームをエクスポートすると、そのゲームを GDevelop オンラインサービスに登録するか訊かれます。 - -![](/gdevelop5/interface/games-dashboard/pasted/20201125-191326.png) - -ボタンをクリックして、ゲームを登録します。エクスポート時でなくても、ファイルメニュー(デスクトップアプリの場合)かプロジェクトマネージャー(Web アプリの場合)からゲーム ダッシュボードを開けば、そこでゲームを登録できます。 -登録が済めば、現在のゲーム ダッシュボードにアクセスできるようになります。 - -![](/gdevelop5/interface/games-dashboard/pasted/20201125-191509.png) - -## ゲームのメトリクスを表示する - -ゲーム ダッシュボードを開くと、タブの中に Analytics タブがあります。そのタブから、ゲームを成功させるカギを握るさまざまな数値を見ることができます。 - -![](/gdevelop5/interface/games-dashboard/pasted/20201125-192056.png) - -次の項目があります。 - - * **セッション**数(ゲームが起動された回数) - * 指定した日の**プレイヤー**数と新規プレイヤー数(以前にゲームを起動したことがないプレイヤー、ただしアンインストールした場合を除く) - * 初回プレイ後 7 日間のあいだに再プレイしたプレイヤー数(「**継続率**」とも呼ばれる) - -GDevelop サブスクリプションを購入していない場合は、セッション数だけ利用できます。これだけでも、ゲームの成功を大まかには判断できます。GDevelop がアナリティクスを提供するためには、セッションメトリクスを収集するためのインフラの維持費用と帯域幅が必要です。そのためサブスクリプションの購入による GDevelop の支援をお願いしています。サブスクリプションはまた、ゲームエンジン開発の将来とコミュニティの強化に貢献しています。 - -!!! note - - これらのデータはゲーム起動時に匿名で収集されます。プライバシー保護の観点から、個人情報は収集も保存もされません。これはつまり、プレイヤー全体の傾向を把握するために有益な*集計*データにアクセスできる一方で、特定のプレイヤーについては何もわからないということを意味します。なぜなら、いかなる個人情報も保存しておらず、プレイイヤーを個別に追跡していないからです。 - -メトリクス情報の構成は今のところとてもシンプルですが、ゲームのセッションについてもっと実体が伝わるような改善を予定しています。 - -## メトリクスの収集について - -GDevelop は匿名の利用メトリクスだけを収集し、用途をゲームのパフォーマンス分析に制限するよう、慎重に調整しています。その一方で、あなた独自の目的のためにほかのメトリクスを収集することも可能です。いかなる場合でも、プライバシーポリシーを明確にすることが重要です(いずれにせよ、ほとんどのアプストアでそれを確認しているでしょうが)。ゲームのユーザーに対して、これらのデータの扱いとプライバシーを尊重していることを説明するのです。 - -!!! tip - - メトリクスの収集を開始する前に**説明を表示**したい場合は、ゲーム開始時にメトリクスの収集を無効化するアクションを実行してください。プレイヤーがメトリクスの収集に同意したら、*その後でメトリクスの収集を有効化するアクションを実行します*。 - -!!! tip - - **いかなるメトリクスの収集**も希望しない場合は、ゲーム開始時にメトリクスの収集を無効化するアクションを実行してください。こうすると、データは何も送信されません。もちろんこれは、ゲームのセッション数を把握できなくなるということでもあります。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/index.md b/docs/ja/gdevelop5/interface/index.md deleted file mode 100644 index 6521aa3e91..0000000000 --- a/docs/ja/gdevelop5/interface/index.md +++ /dev/null @@ -1,57 +0,0 @@ ---- -title: GDevelop のインターフェース ---- -# GDevelop のインターフェース - -GDevelop の作業インターフェイスは、タブに表示されるエディターを基本とします。これらのエディターを使って、ゲームのさまざまな部分を変更します。 - -![](/gdevelop5/interface/pasted/20200509-231255.png) - -## スタートページ - -GDevelop を起動して最初に表示されるのが、スタート画面です。ここでプロジェクトの作成したり、以前に保存したプロジェクトやチュートリアルをロードします。 - -![](/gdevelop5/gdevelop5startpage.png) - -起動時に、GDevelopは 新しいアップデートをチェックします。新しいアップデートが利用可能な場合は、自動的にダウンロードされます(環境設定で無効にしていなければ)。 - -アップデート状況は、ヘルプメニューの [GDevelop について](/ja/gdevelop5/interface/updates)で確認できます。 - -## プロジェクトマネージャー - -プロジェクトを開くと、左上のボタンをクリックしてプロジェクトマネージャーにアクセスできます。 -![](/gdevelop5/project-manager-button.png) - -プロジェクトマネージャーは、ゲームの構造を表示しています。 - -![](/gdevelop5/interface/pasted/20200406-000213.png) - -プロジェクトマネージャーからゲームに新しい要素を追加し、専用のエディターでそれを開けます。 -くわしくは[プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)を参照してください。 - -## シーンエディター - -シーン(または外部レイアウト)を開くと、シーンエディターが開きます。 -ここでオブジェクトを作成してシーンに追加することで、ゲームレベルやメニューを設計したり構築できます。 -リストの最初のシーンが、ゲーム起動後に最初に表示されるシーンになります。 - -くわしくは[シーンエディター](/ja/gdevelop5/interface/scene-editor)を参照してください。 - -## イベントエディター - -シーンを開くと(または外部イベントを開くと)、同時にイベントエディターも開きます。この場所でイベントを使って、実際のゲームプレイのロジックを作成し、プレイヤーの操作にゲームが反応するようにしてプレイを組み立てます。 -イベントエディターは、特定のプログラミングの知識や経験がなくてもゲームを視覚的にプログラムできるツールです。 - -くわしくは[イベントエディター](/ja/gdevelop5/interface/events-editor)や[イベント](/ja/gdevelop5/events)を参照してください。 - -## トップメニュー - -画面上部のメニュー(デスクトップバージョンのみ)からゲームを開いたり保存したり、[公開できます](/ja/gdevelop5/publishing)。Web バージョンではプロジェクトマネージャー内にあります。 - -GDevelop の環境設定を開いたり、[GDevelop アカウントのプロファイル](/ja/gdevelop5/interface/profile)確認もできます。 - -## インターフェーステーマ - -好みに応じてインターフェースに違うテーマを適用できます。テーマを変更するには、[**ファイル**]-[**環境設定**]を開きます。 - -自分でテーマを作成して、それを共有することもできます。くわしくは[テーマの作成](/ja/gdevelop5/all-features/themes)を参照してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/preview.md b/docs/ja/gdevelop5/interface/preview.md deleted file mode 100644 index ee31a4b855..0000000000 --- a/docs/ja/gdevelop5/interface/preview.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: ゲームのプレビュー ---- -# ゲームのプレビュー - -プロジェクトを開いたあと、GDevelop のツールバーから再生ボタンを押すといつでもプレビューを起動できます。 - -![](/gdevelop5/interface/preview/pasted/20200628-132309.png) -_左から順にプロジェクトマネージャーボタン、エクスポートボタン、再生ボタン、デバッグボタンです。_ - -再生ボタンを右クリックすると、他のオプションを選ぶこともできます。右隣のデバッグボタンからはネットワークプレビューも開けます。 - -再生ボタンをクリックするとプレビューが起動し、別のウィンドウが開いてそこでゲームを実行します。 - -![](/gdevelop5/interface/preview/pasted/20200628-152852.png) - -## シーンのプレビューを起動する - -再生ボタンのクリックで、ゲームのプレビューを起動できます。デフォルトでは、現在編集中のシーンから(あるいは何のシーンも開いていなければ、最初のシーンから)プレビューを開始します。 - -![](/gdevelop5/preview-button.png) - -プレビューを開始すると、別のウィンドウを開きます。プレビューウィンドウを閉じるとゲームも終了します。 - -### ライブプレビューで最新の変更を反映する - -プレビューでゲームを実行している最中に、再生ボタンをもう一度クリックすることにより、エディターで編集した最新の状態をプレビューに反映することができます。これはゲームをプレイしながらレベルをデザインするときなどにとても便利です。何かを変更したあと、毎回ゲームを再スタートしてレベルの最初からプレイし直す必要はありません。変更をすぐに反映し、画面でそれを見て、テストできます。 - -プレビュー中は再生ボタンのアイコンが変わり、変更をプレビューに反映できることを示します(これを「ライブプレビュー」、またはより専門的にいうと「ホットリロード」と呼びます)。 - -![](/gdevelop5/interface/preview/pasted/20200628-154642.png) - -これをクリックすると、GDevelop は内部的にゲームを再生成し、プレビューを置き換えます。オブジェクトであれシーンであれ、レイヤー、変数、拡張機能、何であれすべての変更が、プレビューに反映されます。 - -![](/gdevelop5/interface/editing_a_level_with_live_preview.gif) - -!!! tip - - これはゲームの何かを微調整するときに特に便利です。たとえば何かのエフェクトのパラメーターや、オブジェクトに追加したビヘイビアのプロパティを変更して、その結果をすぐに確認できます。またプレビューを最初からやり直さずに、イベントがどのように動作するかをチェックするときにも役に立つでしょう。 - -エディターの中には、プレビューを起動するか変更を反映するためのボタンを備えているものもあります。 - -![](/gdevelop5/interface/preview/pasted/20200628-162346.png) - -クリックすると、使用中のエディターでおこなった変更がプレビューに反映されます。 - -特殊な状況下では、まれに GDevelop が変更をプレビューに反映できない場合があります。そのような場合は、プレビューを閉じて新しいプレビューを起動し直すようにうながすダイアログが表示されます。それとは別に、最初からプレビューし直さないといけない状況も考えられます。たとえば敵を破壊してしまって、それをもう一度やりたいような場合です。その場合はただウィンドウを閉じて、もう一度再生ボタンを押してください。 - -### 複数のライブプレビューを開始する - -プレビューを実行中に再生ボタンを右クリックすると、新しいウィンドウで他のプレビューを起動するメニューが表示されます。 - -![](/gdevelop5/interface/preview/pasted/20200628-161539.png) - -複数のプレビューを起動している状態で、再生ボタンをクリックして最新の変更を反映すると、すべての実行中のプレビューが更新されます。 - -### プレビューを開始するシーンをオーバーライドする - -デフォルトでは、現在編集中のシーンからプレビューを開始します。他のシーンから開始したい場合は、いったん目的のシーンをエディターで開き、再生ボタンを右クリックして[プレビューはすべて、このシーンから開始する]を選びます。 - -![](/gdevelop5/interface/preview/pasted/20200628-151214.png) - -プレビューの開始シーンが固定されていることを示す赤い旗がアイコンに追加されます。これで、エディターでどのシーンを開いているかと関係なく、プレビューの開始シーンが決まります。 - -この設定は、同じメニューからオプションのチェックを外すことで、いつでも解除できます。 - -![](/gdevelop5/interface/preview/pasted/20200628-152054.png) - -## ネットワークプレビュー(WiFi/LAN 越しプレビュー)を起動する - -[ネットワークプレビューを起動(WiFi/LAN 越しプレビュー)]ボタンを押すと、エディターと同じネットワークに接続したモバイル端末(あるいは他のコンピューター)上でゲームをプレビューできます。 - -![](/gdevelop5/interface/preview/pasted/20200628-133253.png) - -ボタンをクリックすると、プレビューを起動する IP アドレスを示すウィンドウが表示されます。 -![](/gdevelop5/preview-wifi-window.png) - -この IP アドレスをスマートフォンのブラウザー(あるいは他のコンピューターのブラウザー)に入力します。するとプレビューが読み込まれます。 - -![](/gdevelop5/interface/preview-wifi-running.png) - -これで IP アドレス用のポップアップウィンドウを閉じて、ゲームの編集に戻れます。プレビューを更新ボタンをクリックすると、ローカルコンピューター、他のコンピューター、タブレット、スマートフォンなど、すべての端末のプレビューが更新されます。 - -また端末のブラウザーの再読み込みボタンを押すと、プレビューを最初からやり直せます。 - - -## デバッガーとプロファイラーを有効にしてプレビューを起動する - -**デバッガー**はゲームの内容(変数の値、存在するインスタンスとそのプロパティなど)を調査するためのツールです。実行中のゲームのリアルタイム編集も可能です。**プロファイラー**はゲームのパフォーマンスを測定するツールです。 - -デバッガーは次のアイコンから起動できます。 - -![](/gdevelop5/interface/preview/pasted/20200628-133103.png) - -デバッガーとプロファイラーの使い方について、くわしくは[このページを参照](/ja/gdevelop5/interface/debugger)してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/profile.md b/docs/ja/gdevelop5/interface/profile.md deleted file mode 100644 index c1b44f9bbc..0000000000 --- a/docs/ja/gdevelop5/interface/profile.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: マイ プロファイル ---- -# マイ プロファイル - -GDevelop 関連機能の中には GDevelop アカウントが必要になるものがいくつかあります。Android 、iOS、Windows、macOS、Linux 向けゲームのワンクリック エクスポートはその代表です。 - -アカウントを持っていない場合は、無料で作成できます。[ファイル]メニュー(Windows および Linuxの場合)または GDevelop メニュー(macOS の場合)から[マイ プロファイル]を選択してください。 - -![](/gdevelop5/interface/my-profile-menu.png) - -このウィンドウでは、自分のプロファイルを確認(または、アカウントを持っていない場合は作成)したり、オンラインサービスの最新の利用状況を確認できます。 - -## アカウントを作成する - -アカウントを持っていなくても、無料で作成できます! - -![](/gdevelop5/interface/create-account.png) - -**アカウントを作成**を選択しクリックします。メールアドレスとパスワードを入力します。 - -![](/gdevelop5/interface/profile/pasted/20200406-003429.png) - -アカウントにログインすると、自分のプロファイルを見ることができます。GDevelop の特定サービスも使用できます。ワンクリックで Android 向けにゲームをパッケージ化するなどのサービスもあります! - -## サブスクリプションを取得する - -デフォルトではアカウントは無料です。GDevelop で作成するゲームに制限はありませんが、 -いくつかのオンラインサービスには制限があります。これはサービスが依存するサーバーの運用にコストがかかるためです。具体的には、無料アカウントの場合 [Android 用のパッケージ](/gdevelop5/publishing/android_and_ios)作成は 1 日 2 回までです 。 - -サブスクリプションを取得すると、この 1 日 2 パッケージ制限が解除されます。将来的には、他の OS へのワンクリックパッケージや便利なサービスも提供される予定です。これらのサービスの一部は現在ベータテスト中です。またサブスクリプションは、GDevelop の将来の開発も支えています✨ - -!!! tip - - 7 ユーロは約 7.5 ドルです。2 ユーロは約 2.20 ドルです(通貨計算機を使用して、米ドルまたは希望通貨での最新の為替レートを確認してください)。 - - -ログインしたら、**[Choose a subscription]**ボタンをクリックしてください。 - -![](/gdevelop5/interface/choose-subscription-button.png) - -各利用プランの説明が表示されます。自分のニーズに合ったものを選択してください。 - -![](/gdevelop5/interface/subscription-plans.png) - -[Choose this plan]をクリックすると、毎月のサブスクリプションの支払いのためにクレジットカード番号の入力を求められます。支払いは、オンライン送金の新しいスタンダードである [Stripe.com](https://stripe.com) を介して取引および暗号化されます。すべて Stripe のインフラによって保護および処理されます。 - -## サブスクリプションの変更 - -よりパッケージ回数の多いサブスクリプションにアップグレードしたり、またはより安価なサブスクリプションにプラン変更する場合は、プロファイルを再度開いて **[Upgrade/Change]** をクリックし、更新したいサブスクリプションを選んでください。 - -次回の支払いから、新しいサブスクリプションが自動的に適用されます。 - -## サブスクリプションの停止 - -サブスクリプションの停止はいつでも簡単にできます。プロファイルを再度開き、**[Upgrade/Change]** をクリックしてください。無料サブスクリプションを選択すると、現在のサブスクリプションが停止されます。新しい支払いは必要ありません。 - -**ステップバイステップの手順案内** - -GDevelop を起動し、メニューから自分の**プロファイル**を開きます。 -![](/gdevelop5/interface/profile/pasted/20200411-164041.png) - -Web アプリを開いて新しいプロジェクトを作成し、プロジェクトマネージャーから**[マイプロファイル]**を選んでもいいです。 -![](/gdevelop5/interface/profile/pasted/20200411-164551.png) - -**[Upgrade/Change]**を選びます。 - -![](/gdevelop5/interface/profile/pasted/20200411-163828.png) - -ウィンドウの下部にある**[Cancel Your Subscription]**を選びます。 - -![](/gdevelop5/interface/profile/pasted/20200411-163941.png) - -必要に応じて、あとで別のサブスクリプションに再度変更できます。いずれにしても、ゲームや作業成果物を失うことはありません! \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/project-manager/index.md b/docs/ja/gdevelop5/interface/project-manager/index.md deleted file mode 100644 index 0d03ff0dc0..0000000000 --- a/docs/ja/gdevelop5/interface/project-manager/index.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: プロジェクトマネージャー ---- -# プロジェクトマネージャー - -![](/gdevelop5/project-manager-button.png) -プロジェクトを開くと、ツールバーの左上のボタンをクリックしてプロジェクトマネージャーにアクセスできます。 - -プロジェクトマネージャーは、ゲーム全体の構造を表示しています。 - -![](/gdevelop5/interface/project_manager_for_gdevelop5.png) - -各カテゴリの横にある小さな矢印をクリックして、各カテゴリを折りたたんだり展開したりできます - - * **ゲーム設定** ゲームの全体の設定をカスタマイズできる場所です。たとえば、AndroidおよびiOSのゲームウィンドウのデフォルトサイズまたはパッケージ名を設定できます。 [「プロパティー」で全ての設定](/gdevelop5/interface/project-manager/properties)を変更できます。 [ゲームのアイコン](/gdevelop5/interface/project-manager/icons)も設定できます。 - - * **シーン** シーンはゲームのさまざまな画面とレベルです。GDevelopで作るゲームのすべては[シーン](/gdevelop5/interface/scene-editor)で構成されています。 - - * **外部イベント** ゲームの開発をより柔軟にするために、特定のシーンにリンクされていない別のイベントシート内にイベントを作成できます。それらは[外部イベント](/gdevelop5/interface/events-editor)と呼ばれます。その後、必要に応じてこれらの「外部イベント」にリンクできます。さまざまな場所で頻繁にイベントを使用する必要がある場合は、同じイベントを複数回追加するのではなく、シーンの外部からイベントを呼び出すことができます。 - - * **外部レイアウト** 外部イベントと同様に、レベルを作成したり、外部レイアウト内でレベルの一部を再利用したりして、シーンにロードすることができます。 - - * **関数や拡張機能** GDevelopを拡張し、イベントを使用して新しいアクション、条件、式を作成することにより、イベントをよりモジュール化できます! [関数について](/ja/gdevelop5/events/functions) を読んで、それらを作成し、ゲームで使用し、共有する方法を学べます。 - -## ファイルメニュー - -![](/gdevelop5/file-menu.png) -![](/gdevelop5/web-project-manager-tab.png) -**デスクトップバージョン**では、[ファイル]メニューを使用すると、あなたのゲームを保存し、別のものを開いたり、閉じたりすることができます。また、 [ゲームのエクスポート](/ja/gdevelop5/publishing)することもできます。 - -I**webアプリ**では、これらのオプションは、プロジェクトマネージャの上部に表示されます。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/project-manager/properties.md b/docs/ja/gdevelop5/interface/project-manager/properties.md deleted file mode 100644 index dc0afcf6fc..0000000000 --- a/docs/ja/gdevelop5/interface/project-manager/properties.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: ゲームのプロパティ ---- -# ゲームのプロパティ - -[プロジェクトマネージャー](/ja/gdevelop5/interface/project-manager)のプロパティをクリックすると、ゲームのグローバルパラメーター変更するためのウィンドウが開きます。これらの設定のいくつかは、[Windows/macOS/Linux アプリ](/ja/gdevelop5/publishing/windows-macos-linux)や [Android/iOS モバイルゲーム](/ja/gdevelop5/publishing/android_and_ios)へのエクスポート時に使用されます。 - -![](/gdevelop5/interface/project-manager/properties.png) - -各プロパティは、次の通りです。 - -* **ゲーム名:**ゲームの名前です(アプリケーション名に使用されます)。 -* **ゲーム解像度の横幅:**ゲームエリア(デスクトップの場合はウィンドウ)の横幅です。 -* **ゲーム解像度の高さ:**ゲームエリア(デスクトップの場合はウィンドウ)の高さです。 -* **作成者の名前:**自分の名前または会社名を入力します。Windows、macOS、Linux 向けのアプリケーションを作成する際に使用されます。 -* **バージョン番号:**新しいバージョンをリリースするたびに、このバージョン番号をインクリメントします。これは Google Play Store や App Store など、ストアによっては必須項目になっています。 -* **プロジェクトファイルタイプ:**デフォルトでは、ゲームは単一ファイルになります。ほかに複数ファイルを選択することもできます。この場合、各シーンや外部レイアウト、外部イベントがそれぞれ個別のファイルとして保存されます。これは大規模なゲームをチーム制作するときや、ゲームを Git や Mercurial などのバージョン管理システムで共有するときに最適です。 -* **最小 FPS:** 1 秒あたりの最小フレーム数です。デフォルトでは 20 に設定されています。ゲームをこれよりも高いフレームレートで実行できない(遅延や端末/コンピューターが低スペックという理由による)場合は、ゲームがスローダウンするでしょう。 -* **最大 FPS:** 1 秒あたりの最大フレーム数です。デフォルトでは 60 に設定されています。 -* **パッケージ名(iOS および Android の場合):** [こちらを参照してください](/ja/gdevelop5/publishing/android_and_ios#make_sure_that_your_game_is_ready_for_packaging)。 -* **デバイスの向き(iOSおよびAndroidの場合):**モバイル端末での実行をポートレートモード(縦持ち)とランドスケープモード(横持ち)のどちらにするかを指定します。 -* **スケールモード(「サンプリング」とも呼ばれる):**「リニア」に設定した場合、テクスチャにはアンチエイリアスが掛かり、少しぼやけたような感じになりますが、縮小拡大してもきれいにレンダリングされます。「ニアレストネイバー」はピクセルを中間調で補間しないため、元のエッジを維持します。ピクセルパーフェクトなドット絵ゲームに最適です。 -* **ゲーム解像度のリサイズモード(全画面 / ウィンドウ化):**レンダリングエリアをゲームウィンドウに合わせます。Web ブラウザーかモバイル環境で実行する場合は、ウィンドウの幅に合わせるか、高さに合わせるか、まったく合わせないかを選択できます(その場合は、黒い余白がつきます)。 -* **AdMob App ID:**くわしくは[こちら](/ja/gdevelop5/all-features/admob)を参照してください。 -* **起動時にGDevelopスプラッシュを表示(エクスポートされたゲーム内):**ゲーム開始時にアセットをローディングしているあいだ、GDevelop のスプラッシュスクリーンを表示します。このチェックを外す場合は、どうか[サブスクリプション](/ja/gdevelop5/interface/profile)を取得して、GDevelop を支援してください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/scene-editor/external-layouts.md b/docs/ja/gdevelop5/interface/scene-editor/external-layouts.md deleted file mode 100644 index bacb4e5309..0000000000 --- a/docs/ja/gdevelop5/interface/scene-editor/external-layouts.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -title: 外部レイアウト ---- -# 外部レイアウト - -外部レイアウトを使用して、シーンエディターのようにオブジェクトのレイアウトを作成できます。オブジェクトは、*外部レイアウト*カテゴリのアクションを使用してシーンに動的に挿入できます。 - -これは次の場合に役立ちます。 - -- レベル全体を別の外部レイアウトに作成し、ゲームエンジンを含むシーンにロードします。 -- オブジェクトの複雑なレイアウト(たとえば、宇宙船の艦隊)を作成し、それらをシーンに挿入します。 diff --git a/docs/ja/gdevelop5/interface/scene-editor/index.md b/docs/ja/gdevelop5/interface/scene-editor/index.md deleted file mode 100644 index 635c406115..0000000000 --- a/docs/ja/gdevelop5/interface/scene-editor/index.md +++ /dev/null @@ -1,112 +0,0 @@ ---- -title: シーンエディター ---- -# シーンエディター -シーン(または外部レイアウト)を開くと、シーンエディターが開きます。 - -![](/gdevelop5/interface/sceneeditoropens.png) - -シーンエディタでは、ゲームのレベル、メニュー、インベントリ、またはゲーム内の他の画面を設計および構築できます。シーンエディターを使用すると、オブジェクトを作成してシーンに追加できます。ゲームプレイとゲームのルールは、[イベントエディター](/ja/gdevelop5/interface/events-editor)のイベントを使用して作成できます。 - -シーンエディターの上部のツールバーには、いくつものツールとエディターがあります。 -![](/gdevelop5/scene-editor-toolset.png) - -## オブジェクトエディター - -シーンエディターのインターフェイスの右側にオブジェクトエディターがあります。ここで、シーンで使用されているすべての[オブジェクト](/ja/gdevelop5/objects)を確認できます。オブジェクトエディターを使用して新しいオブジェクトを追加することもできます。 -![](/gdevelop5/objects-manager-tab.png) - -オブジェクトエディターのパネルを閉じた場合、ツールバーのこのボタンを使用して再度開くことができます。 -![](/gdevelop5/objects-manager-button.png) - -[すべてのオブジェクトで利用可能な一般的な機能](/gdevelop5/objects/base_object) について読んでから、オブジェクトの種類に関するヘルプを見て、[ゲームで使用できるさまざまな種類のオブジェクトの詳細](/gdevelop5/objects)をご覧ください。 - -## オブジェクトのプロパティ - -オブジェクトプロパティエディターは、シーンエディターのインターフェイスの左側にあります。オブジェクトプロパティエディターが表示されない場合は、プロジェクトマネージャーを閉じます。次に、シーン内のオブジェクトを選択します。[オブジェクトプロパティエディター]パネルが左側に開きます。 -![](/gdevelop5/object-properties-bar.png) - -プロパティエディタを使用すると、選択したシーンオブジェクトのプロパティを変更できます。オブジェクトの位置、スケール、Zオーダーなどは、プロパティエディターを使用して変更できます。このページで[オブジェクトのプロパティの詳細](/gdevelop5/objects/base_object)を読むことができます。 - -このパネルが閉じている場合は、ツールバーのボタンをクリックして再度開くことができます。 -![](/gdevelop5/object-properties-button.png) - -!!! note - - GDevelopパネルは、画面上の任意の場所にドラッグすることで移動できます。タイトルバーをつかんでパネルをドラッグするだけです。 - -## オブジェクトグループエディター - -オブジェクトグループエディタでは、シーンに存在するオブジェクトのグループのリストを見つけることができます。 -![](/gdevelop5/objects-groups-editor.png) - -エディターを開くには、ツールバーのこのボタンをクリックします。 -![](/gdevelop5/objects-groups-editor-button.png) - -オブジェクトグループにはオブジェクトが含まれ、一つのイベントを使用して、複数のオブジェクトを操作するイベントで使用できます。[すべてのオブジェクトの共通機能に関するページ](/gdevelop5/objects/base_object)で、それらについて詳しく読んでください。 - -## インスタンスエディター - -インスタンスエディタには、シーンに存在するオブジェクトのすべてのインスタンスのリストが表示されます。リストから任意のインスタンスを選択して、シーン内のインスタンスの位置、角度、レイヤー、Zオーダーを確認するために使用できます。 -![](/gdevelop5/instances-editor.png) - -ツールバーの次のボタンをクリックして、インスタンスエディターを開くことができます。 -![](/gdevelop5/instances-editor-button.png) - -## レイヤーエディター - -レイヤーは、画面に表示されるオブジェクトの仮想的な集まりの平面として機能します。オブジェクトは、デフォルトでは「ベースレイヤー」であるレイヤー上に描画され、レイヤーは画面上に描画されます。シーンには複数のレイヤーを含めることができます。たとえば、画面上にコントロールを表示するレイヤーと、背景用の別のレイヤーがあります。 - -[レイヤーとカメラの詳細については、こちら](/ja/gdevelop5/interface/scene-editor/layers-and-cameras)をご覧ください。 - -![](/gdevelop5/layers-editor.png) - -ツールバーのこのボタンをクリックして、レイヤーエディターを開くことができます。 -![](/gdevelop5/layers-editor-button.png) - -## その他のツール - -### グリッドの切り替え/編集 - -ツールバーのグリッドボタンをクリックすると、複数のオプションが表示されます。 -![](/gdevelop5/toggle-grid-button.png) - -* **マスクの切り替え**: シーンの黒い境界線を表示または非表示にします。ゲームウィンドウのサイズを表します。 -* **グリッドの切り替え**: シーンエディター内でグリッドをオンまたはオフにします。オブジェクトを正確に配置する必要がある場合、グリッドを使用すると便利です。 -* **グリッドの設定**: グリッドのサイズと位置を設定できるウィンドウを開きます。 - -### エディターのズームを変更 - -ズームボタンをクリックすると、シーンエディター内のズームレベルを変更できます。 -![](/gdevelop5/toggle-zoom-button.png) - -## シーンのプレビュー表示 - -[プレビュー]ボタンをクリックすると、ゲームのプレビューを起動できます! -![](/gdevelop5/preview-button.png) - -プレビュー画面は別のウインドウで表示されます。 - -### ネットワークプレビューの表示 (WiFiやLAN経由のプレビュー) - -[ネットワークプレビュー(WiFi / LANでプレビュー)]ボタンをクリックすると、エディターと同じネットワークに接続されたモバイルデバイス(または他のコンピューター)でゲームをプレビューできます。 -![](/gdevelop5/interface/preview-wifi-button.png) - -ボタンをクリックすると、プレビューが起動されているアドレスを表示しているウィンドウが表示されます。 -![](/gdevelop5/preview-wifi-window.png) - -これで、スマートフォンのブラウザー(または他のコンピューターのブラウザー)にこのアドレスを入力できます。プレビューがロードされ表示されます: - -![](/gdevelop5/interface/preview-wifi-running.png) - -注目: エディターのポップアップウィンドウを閉じて、ゲームの編集を続けることができます。新しいプレビューを起動すると、モバイルデバイスと接続されたコンピューターは自動的にゲームを更新し、変更を表示します! - -### デバッガーでプレビューを起動する - -デバッガーは、ゲームのコンテンツ(変数の値、インスタンス、およびそのプロパティ…)を検査したり、リアルタイムで編集したりするために使用できるツールです。 - -次のアイコンを使用してデバッガーを起動できます - -![](/gdevelop5/interface/debugger-button.png) - -デバッガーの詳細は、[このページを見て下さい](/gdevelop5/interface/debugger)。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/scene-editor/layer-effects.md b/docs/ja/gdevelop5/interface/scene-editor/layer-effects.md deleted file mode 100644 index d51f7870ff..0000000000 --- a/docs/ja/gdevelop5/interface/scene-editor/layer-effects.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: レイヤーエフェクト ---- -# レイヤーエフェクト - -シーンのレイヤーにはエフェクトを追加できます。これらのエフェクトは、ゲームの雰囲気とレンダリング結果をすばやく変更します。たとえばアイソメトリック(斜め見下ろし)ゲームのサンプルに_セピア_エフェクトを追加すると、こうなります。 - -![](/gdevelop5/interface/scene-editor/isometric-game-sepia.png) - -## レイヤーにエフェクトを追加する - -シーンエディター上で[レイヤーエディター](/ja/gdevelop5/interface/scene-editor/layers-and-cameras)を開きます。エフェクトをかけたいベースレイヤーまたは別のレイヤーの[エフェクトを編集]ボタンをクリックします。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153102.png) - -下のウィンドウには、レイヤーに適用されているエフェクトが表示されます。今はまだ何もありません。[エフェクトを追加]をクリックします。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153134.png) - -「Effect」という名前の新しいエフェクトが作成されます。ゲーム中にエフェクトのパラメーターを変更するときは、この名前で参照します。 - -エフェクトの種類を選択します。セレクターをクリックして、リストから選びます。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153222.png) - -ウィンドウには、エフェクトのパラメーターが表示されます。これらのパラメーターは、選択したエフェクトの種類によって異なります。 - -デフォルトのパラメーターをそのままにすることも、今すぐ変更することもできます。パラメーターの値は 0(無効)から 1 になるものが多いです。 - -## ゲームにエフェクトを適用してみる - -プレビューを起動して、適用したエフェクトを確認します。エフェクトはレイヤー全体に適用されるため、レイヤー上のすべてのオブジェクトがエフェクトの一部になります。 - -プレビューを実行しながら**変更をリアルタイムで反映する**には、[**プレビューを更新**]をクリックしてください。くわしくは[ライブプレビュー](/ja/gdevelop5/interface/preview)を参照してください。 - -複数のレイヤーがある場合は、すべてのレイヤーに同じエフェクトを追加できます。 - -!!! note - - たとえば背景レイヤー、ベースレイヤー、UI レイヤー(ゲームのインターフェイスを表示するレイヤー)があるとして、背景レイヤーとベースレイヤーにはエフェクトを追加したいが、UI レイヤーには追加したくない、という状況があり得ます。 - -!!! warning - - シーンの背景色にはエフェクトを適用できません。もし背景色にエフェクトを適用したい場合は、代わりに[タイルスプライト](/ja/gdevelop5/objects/tiled_sprite)を使ってください。タイルには単色の画像か他の背景画像を使い、それを他のオブジェクトの背後に置き、ゲームウィンドウと同じサイズにします。 - -## ゲーム中にエフェクトのパラメーターを変更する - -イベントを使うと、ゲーム中にパラメーターを操作できます。これは状況が変化する場面で威力を発揮します。昼夜のサイクル、フラッシュバック効果など。 - -まずエフェクトの名前と変更したいパラメーターの名前を、[レイヤーエディター](/ja/gdevelop5/interface/scene-editor/layers-and-cameras)上で確認しましょう。レイヤーエディターを開き、レイヤーの[エフェクトを編集]をクリックします。 パラメーター名の表示を有効にします。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153604.png) - -下の例では、「Effect」という名前の闇夜(Dark Night)エフェクトの 2 つのパラメーター「不透明度」と「明度」が表示されています。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153733.png) - -「エフェクトパラメーター」アクションでパラメーター変更できます。イベントに追加すると設定画面が表示されるので、下記の通り設定します。 - -* 最初にレイヤー名を入力します(二重引用符で括るのを忘れずに)。ベースレイヤーの場合は空文字列(`""`)を入力します。 -* エフェクトの名前を入力します。たとえば `"Effect"` など。 -* パラメーターの名前を入力します。たとえば `"opacity"` や `"intensity"` など。 -* 最後にパラメーターに設定する新しい値を入力します。 - -!!! danger - - これらの名前はすべて大文字と小文字を区別します。またパラメーター名はすべて小文字です。エフェクト名とパラメーター名は、間違いがないかよく確認してください。 - -下図は、ベースレイヤーの「Effect」という名前のエフェクトの不透明度を変更するアクションの例です。 - -![](/gdevelop5/interface/scene-editor/action-change-opacity-effect.png) - -## 高度なエフェクトの使い方 - -!!! warning - - ほとんどのエフェクトは解説がなくても直感的に使うことができますが、一部のエフェクトは何をするものなのか少し説明が必要なものもあります。この節ではこれらの高度なエフェクトについて説明します。 - -#### カラーマップ - -オブジェクトやレイヤーにカラーマップエフェクトを適用します。 - -![](/gdevelop5/interface/scene-editor/71485828-745d9080-2813-11ea-915d-4dcfc9f67201.png) - -これはリファレンスカラーイメージマップと呼ばれる、色のバリエーションを網羅した画像を編集することによってレンダリング結果の色を置き換えるものです。 - -- 以下のリファレンスカラーイメージマップ画像をダウンロードするか、独自に作成してください。 -- 画像編集ソフト(Photoshop や GIMP など)で、リファレンスカラーイメージマップ画像のカラーバランスを調整します。 - * たとえば、画像編集ソフトでリファレンスカラーイメージマップ画像の色を反転させると、カラーマップエフェクトが使用されているレイヤー上のすべてのオブジェクトは色が反転されます。 -- それを新しいファイルとして保存し、GDevelop のエフェクトでリファレンスカラーイメージマップとして使用します。 - -**以下の画像ファイルをダウンロードして、GDevelopのカラーマップとして使用してください。** - -color-map-original-template.png (リファレンスカラーイメージマップ): ![](/gdevelop5/interface/scene-editor/color-map-original-template.png)?direct |}} - -!!! note - - 以下の画像は変更例です。上記のサンプルはこれらのファイルを使用した結果です。 - color-map-original-template.png の色を変更することにより、そのレイヤー上のすべてのオブジェクトの色が変更されます。 - -color-map-model-1.png : ![](/gdevelop5/interface/scene-editor/color-map-model-1.png) -color-map-model-2.png : ![](/gdevelop5/interface/scene-editor/color-map-model-2.png) -color-map-model-3.png : ![](/gdevelop5/interface/scene-editor/color-map-model-3.png) - -!!! note - - リファレンスカラーイメージマップを画像編集ソフトで変更することを忘れないようにしてください。そのまま使っても、何も変わりません(元の色のままです)。 - -#### CRT - -CRT エフェクトを適用すると、昔のブラウン管テレビの画面を再現します。 - -![](/gdevelop5/interface/scene-editor/crt-effect.png) - -#### ディスプレイスメント - -このエフェクトは、指定されたテクスチャ(ディスプレイスメントマップと呼ばれる)の画素値を使ってオブジェクトを変形します。 - -![](/gdevelop5/interface/scene-editor/displacement-effect.png) - -**このサンプルで使ったディスプレイスメントマップファイル**をダウンロードして、GDevelop でこのエフェクトを設定する際に使用できます。 - -![](/gdevelop5/interface/scene-editor/displacement_map.png) - -これを使うと、いろいろなバリエーションの奇妙にゆがんだ効果を作り出せます。今のところ、テクスチャの `r`(赤)プロパティが X 軸のオフセットに、`g`(緑)プロパティが Y 軸のオフセットに使われています。 - -> ディスプレイスメントマップの値は、出力用のピクセルを改変する際に参照されます。厳密には、これは元のピクセルを移動するわけではありません。そうではなく、出力画像を作成する際に「元画像のどのピクセルをここに持ってきたらよいか」とたずねているのです。たとえばディスプレイスメントマップのあるピクセルが赤成分=1 でフィルタースケールが 20 だった場合、フィルターは元画像の約 20 ピクセル右のピクセルを出力します。 - - -#### ドロップシャドウ - -レイヤーに表示されているオブジェクトの下に影を追加します。 - -![](/gdevelop5/interface/scene-editor/drop-shadow-effect.png) - -#### ゴッドレイ(光列) - -ゴッドレイは画面上部から光が差し込むエフェクトです。**このエフェクトはシーンの背景色の上だとあまり効果が発揮されません**。背景や床として表示されるオブジェクトを使うようにしてください。 - -![](/gdevelop5/interface/scene-editor/godray-effect.gif) - -#### 川瀬式ブラー - -旧来の「ぼかし」エフェクトよりも高速なバージョンです。「ぼかし」エフェクトよりもこちらを使うことを推奨します。 - -#### アウトライン - -このエフェクトが適用されたレイヤー上のすべてのオブジェクトに輪郭線を追加します。**このエフェクトはシーンの背景色の上だとあまり効果が発揮されません**。背景や床として表示されるオブジェクトを使うようにしてください。 - -![](/gdevelop5/interface/scene-editor/outline-effect.png) - -#### ピクセル化 - -オブジェクトをドット絵っぽく見せるピクセル化エフェクトを適用します。 - -![](/gdevelop5/interface/scene-editor/pixelate-effect.png) - -!!! note - - ピクセルパーフェクトや 8 ビットゲーム(256 色以下のドット絵ゲーム)の場合は、このエフェクトを使うよりも[ゲームプロパティ](/ja/gdevelop5/interface/project-manager/properties)の**スケールモード**を調整してください。 - -#### RGB 分割(色収差) - -赤、緑、青の各色成分に個別にオフセットを設定し、画面にずらして表示します。 - -![](/gdevelop5/interface/scene-editor/rgb-effect.png) - -#### ティルトシフト - -上部と下部にぼかしをかけます。ミニチュア模型をカメラで撮影しているような効果を再現するのに最適です。 - -![](/gdevelop5/interface/scene-editor/tilt-shift-effect.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/scene-editor/layers-and-cameras.md b/docs/ja/gdevelop5/interface/scene-editor/layers-and-cameras.md deleted file mode 100644 index 9f89ff9227..0000000000 --- a/docs/ja/gdevelop5/interface/scene-editor/layers-and-cameras.md +++ /dev/null @@ -1,62 +0,0 @@ ---- -title: レイヤーとカメラ ---- -# レイヤーとカメラ - -レイヤーは、画面に表示されるオブジェクトの仮想的な容れ物として機能します。オブジェクトはまずレイヤー(デフォルトでは「ベースレイヤー」)上に描画され、それからレイヤーが画面上に描画されます。シーンには複数のレイヤーを含めることができます。あるレイヤーが別のレイヤーの下にある場合、前者のレイヤー のオブジェクトは、Z オーダーに関係なく後者のすべてのオブジェクトの下に表示されます。 - -!!! tip - - レイヤーは透明な紙のシートを重ねたようなものと考えることができます。 - -新しいレイヤーを作成するか、既存のレイヤーを編集するには、このボタンを押してレイヤーエディターを開きます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.34.33.png) - -レイヤーエディターでは、プラス記号を押して新しいレイヤーを作成できます。またレイヤーの名前を変更したり、表示を切り替えたり、エフェクトを追加できます。 左端の二重線をドラッグすると、レイヤーの順番を入れ替えできます。 - -![](/gdevelop5/interface/scene-editor/layers.png) - -ゲーム中は、仮想カメラが各レイヤーに接続されます。シーン内でカメラを移動して、画面にレンダリングされるレイヤー範囲を変更できます。カメラを回転させることで、実質的に画面に対してレイヤー上のオブジェクトを回転させることもできます。 - -## オブジェクトの中央にカメラを合わせる - -カメラをオブジェクトに合わせるには、2 つのアクションがあります。 - -* オブジェクトを常にカメラのビュー内に留めたい場合、[オブジェクトの中央にカメラを合わせる]アクションを使います。これを使うと、オブジェクトがシーンのどこに移動してもカメラが追従するようになります。 - -* カメラが所定範囲の外に出ないようにするには、[境界内でオブジェクトの中央にカメラを合わせる]アクションを使います。四角形の対角線にあたる左上と右下の 2 点を指定すると、その四角形の範囲内からカメラの中心が外れないようになります。 - -## カメラをズームする - -カメラのズーム値を変更できます。シーンにズームインすると、コンテンツは大きく表示され、ズームアウトすると、デフォルト設定よりも小さく表示されます。デフォルトのズーム値は 1 です。ズームインするには 1 より大きい値を設定し、ズームアウトするには 1 より小さい値を設定します。 - -## レイヤーの可視性を変更する - -レイヤーの表示/非表示は、レイヤーエディターまたはイベントを使用して切り替えることができます。レイヤーを非表示にしても、レイヤー上のオブジェクトは削除されません。レイヤーが非表示でも、レイヤー上のすべてのオブジェクトは存在し、他のレイヤー上のオブジェクトと相互作用できますが、ただ表示はされません。 - -!!! tip - - デフォルトでは、すべてのレイヤーが表示されます。この設定はレイヤーエディターで変更できます。 - -## レイヤーのタイムスケールを変更する - -レイヤーの「タイムスケール」を使用すると、レイヤー内のすべてのアニメーションとすべてのオブジェクトの動きの速度を変更できます。レイヤーの時間を遅くするには、1 未満のタイムスケールを設定します。レイヤーの時間を速くするには、1 より大きいタイムスケールを設定します。デフォルトのタイムスケールは、すべてのレイヤーで 1 です。 - -## レイヤーのエフェクト(シェーダー) - -[エフェクト](/ja/gdevelop5/interface/scene-editor/layer-effects)を追加すると、レイヤーのレンダリング方法を変更できます。これにより、夜のエフェクト、セピア色による回想/懐古趣味の雰囲気などをすばやく作成できます。[くわしくはエフェクトを参照](/ja/gdevelop5/interface/scene-editor/layer-effects)してください。 - -## レイヤーとカメラのほかの操作 - -### ゲーム中にオブジェクトレイヤーを変更する - -アクションでオブジェクトを別のレイヤーに移動したり、条件でオブジェクトのレイヤーを確認できます。これらはすべてのオブジェクトで利用できます。 - -### カメラの奥行きと角度 - -* カメラの高さはゲームの表示範囲の垂直辺の長さで、幅は水平辺の長さです。デフォルトでは、これらのサイズはゲームウィンドウと同じです。これらを変更すると、レイヤーのレンダリングが拡大または縮小されます。ほとんどの場合、ゲームウィンドウのサイズを変更すると、新しいウィンドウサイズに合わせてカメラのサイズを更新するために、シーンを変更または再起動する必要があります。 - -* カメラの角度は、カメラが XY 平面上で回転する角度です。時計回りに進むにつれて角度が大きくなります。 - -![](/wiki/pres_coord2.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/interface/updates.md b/docs/ja/gdevelop5/interface/updates.md deleted file mode 100644 index 1749f82b47..0000000000 --- a/docs/ja/gdevelop5/interface/updates.md +++ /dev/null @@ -1,21 +0,0 @@ ---- -title: アップデートのチェック ---- -# アップデートのチェック - -GDevelopは起動時に新しい更新を自動的に検索します。[開始ページ](/ja/gdevelop5/interface) のヘルプメニューから`GDevelopについて` のウインドウで、更新がダウンロードされているかを確認できます。 -![](/gdevelop5/interface/update-being-downloaded.png) - -ダウンロードが完了すると、GDevelopは更新の準備ができたことを通知します - -![](/gdevelop5/interface/update-downloaded.png) - -このように通知もされます。 - -![](/gdevelop5/interface/update-notification-macos.png) - -これでGDevelopを閉じます。新しいアップデートがインストールされます。バージョン情報が更新されていることを確認するには、ウィンドウをもう一度確認してください。 - -## 問題がありましたか?WebサイトからGDevelopを再度ダウンロードしましょう - -何らかの理由でアップデートを適用できない場合、またはアップデート後にGDevelopが機能していないと思われる場合は、もう一度GDevelopのwebサイトからダウンロードして下さい。設定が失われることはありません。 diff --git a/docs/ja/gdevelop5/objects/base_object.md b/docs/ja/gdevelop5/objects/base_object.md deleted file mode 100644 index 107318cf70..0000000000 --- a/docs/ja/gdevelop5/objects/base_object.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -title: base_object ---- -!!! note - - このページは移動しました。 **[オブジェクトの詳細はこちらのページを参照してください](/ja/gdevelop5/objects)**。 diff --git a/docs/ja/gdevelop5/objects/bbtext.md b/docs/ja/gdevelop5/objects/bbtext.md deleted file mode 100644 index 496a30336c..0000000000 --- a/docs/ja/gdevelop5/objects/bbtext.md +++ /dev/null @@ -1,71 +0,0 @@ ---- -title: BBText オブジェクト ---- -# BBText オブジェクト - -!!! tip - - **やってみよう!** 🎮 - - [説明はいいから、とにかく BBText オブジェクトが動くところを見たい? わかりました、こちらを先にどうぞ。](/#サンプル) - - -**BBText** はリッチな「複数スタイル」テキストを画面に表示するオブジェクトです。「BBCode」スタイルタグを使って、テキストの一部のスタイルプロパティ(たとえばサイズや色など)を個別にカスタマイズできます。またイベントを使うと BBText オブジェクトのプロパティをゲーム中に変更することもできます。 - -!!! warning - - これを[テキストオブジェクト](/ja/gdevelop5/objects/text)と混同しないようにしてください。テキストオブジェクトもテキストを表示しますが、フォントとサイズは 1 種類しか指定できません。また書式指定用のタグも使えません。もし高度な書式指定が必要なければ、[テキストオブジェクト](/ja/gdevelop5/objects/text)の使用を最初に検討することをお勧めします。そちらの方がパフォーマンスに優れており、よりシンプルです。 - -!!! note - - BBCode に対応するため、この拡張機能は内部的に [pixi-multistyle-text](https://github.com/tleunen/pixi-multistyle-text/) を改変して使用しています。技術的な詳細に興味がある方は、対応しているスタイル機能が[こちらにリスト化](https://pixijs.download/dev/docs/PIXI.TextStyle.html)されているので、参照してください。 - -## 使用できる BBCode タグ - -![](/gdevelop5/objects/stylestag.png) - -BBText オブジェクトは次の一般的なタグを使用できます。 - - * `[b]太字[/b]` - * `[i]斜体[/i]` - * `[color=#hexColor]色を付けたテキスト[/color]` - * `[font=times]フォントファミリーを指定したテキスト[/font]` - * `[size=23]サイズ 23px のテキスト[/size]` - -GDevelop が対応する追加スタイルは次の通りです。 - - * `[outline=#hexColor]指定色で縁取りしたテキスト[/outline]` - * `[shadow=#hexColor]指定色で影を落としたテキスト[/shadow]` - * `[spacing=12] 文字間に追加の余白を空けたテキスト[/spacing]` - * `[align=center]左右中央揃えにしたテキスト(left と right 指定も可能)[/align]` - -`#hexColor` は 16 進法で表記した色指定です。たとえば #000000 は黒に、#FFFFFF は白になります。[オンラインで色探し](https://htmlcolorcodes.com/)を簡単にできます。 - -## デフォルトのスタイル - -画面に表示するテキストには、あらかじめデフォルトのスタイルを設定できます。タグによる指定は、このデフォルトのスタイルを前提に追加されます。 - -![](/gdevelop5/objects/basestylebbtext.png) - - * 基本色:デフォルトは黒です。 - * 基本の不透明度:0 ~ 255。0 は完全な透明になります。 - * 基本フォントサイズ:全体のフォントサイズ。デフォルトは 24px です。 - * 基本フォントファミリー:デフォルトは Arial です。 - * 行揃えの位置:デフォルトは左です。"left"、"right"、"center" のどれかになります。 - * BBCode 書式付きテキスト:表示するテキスト。デフォルトはタグを使ったデモンストレーションです。 - * 折り返し:有効にすると、オブジェクト幅にしたがって行を折り返して複数行になります。 - * 開始時に表示:このオプションのチェックを外すと、シーン開始時にオブジェクトは非表示になります。表示するにはイベントを使います。 - -これらのプロパティはすべて、イベントシートでオブジェクトのアクションや条件を使って変更できます。 - -## サンプル - -!!! tip - - **やってみよう!** 🎮 - - オンラインで下記のサンプルを実行できます。 - -[![](/gdevelop5/objects/bbtext-example.jpg)](https://editor.gdevelop.io/?project=example://bbtext-object-demo) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://bbtext-object-demo){ .md-button .md-button--primary } \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/bitmap_text.md b/docs/ja/gdevelop5/objects/bitmap_text.md deleted file mode 100644 index dcf7659435..0000000000 --- a/docs/ja/gdevelop5/objects/bitmap_text.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: bitmap_text ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** -*(remove this paragraph once the translation is finished)* - -# ビットマップテキストオブジェクト - -A Bitmap Text displays a text using a "Bitmap Font" (an image representing characters). This is more performant than a traditional Text object and it allows for complete control on the characters aesthetic. - -It's especially useful for scores, titles, button labels, pixel-art games... - -!!! note - - As all characters are designed in an external editor, and a texture is generated with these characters, a Bitmap Text is more performant to render but also way less flexible, in particular if you want to display a text entered by a user in any language. If that's the case, take a look at the [Text object](/gdevelop5/objects/text) or at the [BBtext object](/gdevelop5/objects/bbtext). - -![20210510-003631.png](/gdevelop5/objects/bitmap_text/pasted/20210510-003631.png) - -## Creating "Bitmap Font" files - -A font is represented by two files: - -- **Bitmap Atlas image** : This file is the image which contains all characters that can be draw. File format must be PNG. - **Bitmap Font** : This file contains the data related to characters that can be draw, the engine use these data for knowing which characters render on screen. File format must be FNT or XML. - -These two file can be created with an external editor to generate bitmap fonts, for example: - -* **[bmFont](https://www.angelcode.com/products/bmfont/)** (Windows) * **[bmGlyph](https://www.bmglyph.com/)** (macOS) - -* **[Hiero](https://github.com/libgdx/libgdx/wiki/Hiero)** (Windows/Linux/OS X) - -## Font size and scale - -Because the characters are pre-rendered, the font size can't be changed in GDevelop. But the object still have a scale property, that can be used to make your the text bigger or smaller. Note that the rendering quality can be affected, because the font generated was not prepared to be rescaled. - -## Font color and tint - -As characters are pre-rendered, the font color can also not be changed. GDevelop still allows you to change the tint applied to the rendered characters. - -If you generate a Bitmap Font with white characters, and if you use a blue tint, the object will be displayed with this blue color. If your Bitmap Font is grey, and the tint blue, the colours will be mixed with each other. diff --git a/docs/ja/gdevelop5/objects/effects.md b/docs/ja/gdevelop5/objects/effects.md deleted file mode 100644 index c1c4bcc565..0000000000 --- a/docs/ja/gdevelop5/objects/effects.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: オブジェクトエフェクト ---- -# オブジェクトエフェクト - -オブジェクトに視覚効果を加えることができます。 - -例えば、「Outline(アウトライン)」エフェクトを使って、拾ったり使ったりするオブジェクトをより分かりやすくすることができます。 - -また、オブジェクトの形状を変更したり、魅力的な視覚的結果を生み出す、より高度な視覚効果を使用することもできます。 - -このスクリーンショットでは、複数のオブジェクトに「*Outline*(アウトライン)」エフェクト(漫画やアニメのような効果)をかけ、コインには「*Glow*(グロー)」エフェクトをかけています。 - -![](/gdevelop5/objects/effects/pasted/20210819-161343.png) - -## オブジェクトにエフェクトを追加する - -シーンエディタ上(またはオブジェクトのリスト上)でオブジェクトのインスタンスをダブルクリックして編集画面を開き、そこで**Effects**タブを選択します。 - -「Add an effect(エフェクトを追加)」をクリックします。 - -すると「Effect」という名前の新しいエフェクトが作成されます。 - -この名前は、後でゲーム中にエフェクトのパラメータを変更する際に使用します。 - -エフェクトの種類を選択します。セレクタをクリックして選択しましょう。 - -![](/gdevelop5/objects/effects/pasted/20210819-164525.png) - -ウィンドウには、エフェクトのパラメータが表示されます。 - -これらのパラメータは、選択されたエフェクトの種類によって異なります。 - -デフォルトのパラメータのままにすることも、今すぐ変更することもできます。 - -## エフェクトをプレビューで確認する - -プレビューを起動して、エフェクトの適用を確認します。 - -エフェクトは、編集したオブジェクトのすべてのインスタンスに適用されます。 - -プレビューが実行されているときは、「**プレビューを更新**」をクリックすることで、**変更した内容をリアルタイム**で確認することができます。 - -詳しくは[ゲームのプレビュー](/ja/gdevelop5/interface/preview)をご覧ください。 - -![](/gdevelop5/objects/effects/pasted/20210819-164718.png) - -## ゲーム中にエフェクトのパラメータを変更する - -イベントを使うと、ゲーム中にパラメータを操作することができます。 - -例えば、オブジェクトがヒットした時や、弾を発射した時、移動した時にのみ、エフェクトをアニメーション化したり、起動したりするなど、様々な場面で役立ちます。 - -まず、「**Effects**」タブで、エフェクトの名前と変更するパラメータの名前を確認します。 - -そのためには、パラメータ名の表示を有効にします。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153604.png) - -この例では、Dark Night エフェクトは「Effect」という名前で、「intensity」と「opacity」の2つのパラメータがあります。 - -![](/gdevelop5/interface/scene-editor/layer-effects/pasted/20201224-153733.png) - -次に、「Effect Parameter」というアクションをイベントに追加します。 - -* 最初にレイヤー名を入力してください(引用符を忘れずに)。ベースレイヤーの場合は、空の文字列(`""`)を入力してください。 -* エフェクトの名前を入力してください(例:`"Effect"`)。 -* パラメーターの名前を入力してください。例えば `"opacity"` や `"intensity"` などです。 -* 最後に、このパラメータに設定する新しい値を入力します。 - -!!! danger - - これらの名前はすべて大文字と小文字を区別します。 - - 特に、パラメータ名は小文字で表記されます。 - - うまく動作しない時は、エフェクトの名前やパラメーターの名前を、再度確認してみましょう \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/index.md b/docs/ja/gdevelop5/objects/index.md deleted file mode 100644 index 3bcb2ab629..0000000000 --- a/docs/ja/gdevelop5/objects/index.md +++ /dev/null @@ -1,177 +0,0 @@ ---- -title: オブジェクト ---- -# オブジェクト - -GDevelop では、スクリーンに表示されるものは何であれ、_オブジェクト_です。これには(例なので、これに限りませんが)プレイヤーキャラクター、敵、背景パーツが含まれます。 - -用途に応じて、いろいろな種類のオブジェクトが用意されています。たとえば[スプライト](/ja/gdevelop5/objects/sprite)オブジェクトはグラフィックをアニメーションさせ、[テキスト](/ja/gdevelop5/objects/text)オブジェクトはテキストを表示します。 - -[ビヘイビア](/ja/gdevelop5/behaviors)でオブジェクトに機能を追加したり、[イベント](/ja/gdevelop5/events)を作成してオブジェクトの属性(位置、サイズなど)を変更できます。 - -## オブジェクトのリスト - -以下はオブジェクトのリストです。それぞれが固有の機能と目的を持っています。 - -- [スプライト](/ja/gdevelop5/objects/sprite) -- [タイルスプライト](/ja/gdevelop5/objects/tiled_sprite) -- [テキスト](/ja/gdevelop5/objects/text) -- [パーティクルエミッター](/ja/gdevelop5/objects/particles_emitter) -- [パネルスプライト(9パッチ)](/ja/gdevelop5/objects/panel_sprite) -- [シェイプペインター](/ja/gdevelop5/objects/shape_painter) -- [テキスト入力](/ja/gdevelop5/objects/text_entry) -- [BBテキスト](/ja/gdevelop5/objects/bbtext) -- [ライト](/gdevelop5/objects/light) -- [ビデオ](/ja/gdevelop5/objects/video) -- [タイルマップ](/ja/gdevelop5/objects/tilemap) -- [Bitmap Text](/gdevelop5/objects/bitmap_text) - -リンク先のページで、それぞれのオブジェクトについてくわしく説明しています。 - -!!! note - - オブジェクトによっては_実験的_なものもあります。それらはまだ開発途上であり、非実験的なオブジェクトと比べて頻繁に更新されます。 - -## オブジェクトを作成する - -1. [シーンエディター](/ja/gdevelop5/interface/scene-editor)を開きます。これは新しいプロジェクトを作成した後の既定のビューです。 -2. **オブジェクト**パネルで**新しいオブジェクトを追加する**を選択します。 -3. **新しいオブジェクトを追加する**ダイアログで、オブジェクトの種類を選択します。 -4. オブジェクトの設定を調整します。利用できる設定は、オブジェクトの種類によって異なります。 -5. **適用**を選択します。 - -![](/gdevelop5/objects/pasted/20210819-160654.png) - -## オブジェクトに名前をつける - -オブジェクトには作成時に既定の名前がついています。この名前はオブジェクトエディターか、オブジェクトリストのオブジェクト上で右クリックすると表示されるコンテキストメニューから変更できます。 - -オブジェクト名に使える文字には制約があるので注意してください。使えるのは英数字のみで、スペースは使えません。単語を区切るためにアンダースコアも使えます(もっともゲーム開発の世界では、単語の先頭を大文字にすることで区切りを示すのが一般的です)。たとえば `EnemyBullet` のような感じです)。 -これは[式](/ja/gdevelop5/all-features/expressions)の中でオブジェクト名を確実に識別するための制約です。(訳注:オブジェクト名に Unicode を使えるようにする機能要望が [Trello](https://trello.com/b/qf0lM7k8/gdevelop-roadmap) に上がっているため、投票次第では将来この制約が緩和される可能性があります) - -良い名前の例として、`Player`、`RedEnemy`、`Red_Enemy`、`Car1`、`FinalBoss`、`Final_Boss`、`Wall` などを挙げられます。その機能を表す良い名前をつけると、イベントをパッと見ただけでオブジェクトをすばやく認識できるでしょう。 - -## シーンにオブジェクトのインスタンスを追加する - -オブジェクトを作成しても、GDevelop はそれをすぐシーンに追加したりはしません。それを**オブジェクト**パネルからシーンに追加する必要があります。シーンにはオブジェクトのコピーを好きなだけ追加できます。 - -![](/gdevelop5/objects/coin-selected.png) - -シーンに配置したオブジェクトの各コピーは、オブジェクトの_インスタンス_と呼ばれます。あるオブジェクトのインスタンスはすべて、元のオブジェクトが持つ機能を共有していますが、それを個別にカスタマイズすることが可能です。たとえばインスタンスはどれも、他と違う場所に表示できます。 - -## オブジェクトのインスタンスを変更する - -一つ以上のインスタンスを選択すると、画面左手に**プロパティ**パネルが出現します。このパネルは選択中のインスタンスに関する情報を表示します。 - -![](/gdevelop5/objects/object-propeties-button.png) - -カスタマイズ可能なプロパティを以下に示します。 - -### 位置 - -すべてのオブジェクトは座標を持ちます。(訳注:[テキスト入力]など画面に表示されないオブジェクトは例外)これらの座標は[デカルト平面](https://en.wikipedia.org/wiki/Cartesian_coordinate_system)上の水平位置(X 軸)と垂直位置(Y 軸)に対応しています。X 座標は左に行くと減少し、右に行くと増加します。Y 座標は下に行くと増加し、上に行くと減少します。 - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20201015-145909.png) - -### 角度 - -**角度**の設定は、オブジェクトの回転を度単位で定義します。下図は GDevelop が回転角度をどのように理解するかを示しています。 - -![](/gdevelop5/objects/gdevelop_co.png) - -!!! warning - - サインやコサインのような三角関数を使用する場合は、角度をラジアンで指定します(1 ラジアン=180 / PI 度、1 度=PI / 180 ラジアン。PI は円周率を表し、値は約 3.14159)。イベントで `ToRad` と `ToDeg` 式を使うと、度とラジアンを相互に単位変換できます。 - -### Z オーダー - -オブジェクトが同じレイヤー上で重なり合う場合は、どのオブジェクトが前面に表示され、どのオブジェクトが背後に表示されるかが、**Z オーダー**によって決まります。たとえばあるオブジェクトの **Z オーダー**が `2` であれば、**Z オーダー**が `1` のオブジェクトよりも手前に表示されます。 - -下図では、左手の茂みの Z オーダーは `2`、コインの Z オーダーは `1`、右手の茂みの Z オーダーは `0` になっています。 - -![](/gdevelop5/objects/coin-bush-zorder.png) - -**Z オーダー**の値は、負の数値と 0 を含む任意の整数になります。 - -### レイヤー - -すべてのオブジェクトはレイヤー上に存在します。そしてレイヤー単位で下から上(奥から手前)に向かって順番に描画されていきます。これはつまり、一番上のレイヤーにあるオブジェクトは常に下のレイヤーにあるオブジェクトよりも手前に表示されるということです(たとえ下のレイヤーにあるオブジェクトの **Z オーダー**の方が大きかったとしても)。 - -![](/gdevelop5/objects/base_object/pasted/20200406-093010.png) - -一般的には背景オブジェクトと、(プレイヤーキャラクターのような)操作可能なオブジェクトと、UI オブジェクトはそれぞれ別のレイヤーに分けるのがふつうですが、特に制約はありません。 - -### エディターで位置と角度を固定する - -シーンにたくさんのオブジェクトが配置されているせいで、特定のインスタンスを選択するのが難しいことがあります。**エディターで位置と角度を固定する**オプションにチェックを入れると、そのインスタンスはエディター上で選択できなくなります。これは_本当に選択したい方_のインスタンスの選択を易しくしてくれるでしょう。(訳注:クリックして選択できないだけで、ドラッグによる範囲選択やインスタンス一覧からの選択は可能) - -![](/gdevelop5/objects/base_object/pasted/20200406-093052.png) - -### インスタンス変数 - -インスタンス変数は、あるオブジェクトのインスタンスに固有の[変数](/ja/gdevelop5/all-features/variables)です。**インスタンス変数**テーブル上で、特定のインスタンスに関連付けた変数を定義し、値を設定できます。 - -![](/gdevelop5/objects/base_object/pasted/20200406-092023.png) - -くわしくは[オブジェクト変数](/gdevelop5/all-features/variables/object-variables)を参照してください。 - -### カスタムサイズ - -このオプションをチェックすると、インスタンスの幅と高さを変更できます。インスタンスの幅と高さは元のオブジェクトと別個のもので、変更が他に影響することはありません。 - -![](/gdevelop5/objects/base_object/pasted/20200406-093137.png) - -### インスタンスタイマー - -シーンに配置されたオブジェクトのインスタンスは、イベントからアクセスできる固有のタイマーを持ちます。タイマーについての詳細は、[このページを参照](/gdevelop5/all-features/timers)してください。 - -### 可視性 - -オブジェクトのインスタンスは、デフォルトで可視属性がオンになっています。これはつまり、画面に表示されるということです。イベントを使うと、ゲームの途中で任意のインスタンスを**隠す**ことができます。非表示のインスタンスは、もはや画面に表示されませんが、シーンの中にはふつうに存在しています(衝突に反応したり、他のイベントもすべて機能します)。 - -!!! tip - - スプライトやテキストのようなオブジェクトは、他に**不透明度**という属性も持ちます。不透明度は 0 から 255 までの値を取り、オブジェクトの透明性を定義します(0 で完全に透明、既定値の 255 で完全に不透明)。これは可視性とはまた別に変更できます。 - -## オブジェクトにエフェクトを加える - -オブジェクトには、視覚的な効果を加えることができます。 -例えば、「アウトライン」エフェクトを使って、拾ったり使ったりするオブジェクトをより分かりやすくすることができます。 -また、オブジェクトの形を変えたり、面白い視覚効果を生み出す、より高度な視覚効果を使うこともできます。 - -![](/gdevelop5/objects/pasted/20210820-093809.png) - -オブジェクトにエフェクトを追加する方法については、[オブジェクトエフェクト](/ja/gdevelop5/objects/effects)のページをお読みください。 - -!!! note - - シーンのレイヤーに視覚的な効果を加えることもできます。 - 背景をアニメーションさせたり、全体の雰囲気を一度に変えたりするのに便利です。 - 詳しくは[レイヤーエフェクト](/ja/gdevelop5/interface/scene-editor/layer-effects)のページをご覧ください。 - -## オブジェクトをグループ化する - -複数のオブジェクトを_グループ_にまとめることで、グループ内のすべてのオブジェクトを一括して管理できます。 - -これを使うと、イベントをオブジェクトの数だけ繰り返す必要がなくなり、たくさんのオブジェクトを一回のイベントで処理できます。またゲームのパフォーマンスが向上し、保守性が高まり、イベントの可読性も上がります。 - -オブジェクトは次の手順でグループ化できます。 - -1. ツールバーの**グループ**アイコンを選択します。 -2. **クリックしてグループを追加**を選択します。 -3. グループを選択します。 -4. **グループの編集**ダイアログで、グループに追加するオブジェクトを選択します。 -5. **適用**を選択します。 - -![](/gdevelop5/objects/base_object/pasted/20200406-093739.png) - -!!! note - - グループ名はデフォルトで「Group」になります。名前を変更するには、グループを右クリックして**名前の変更**を選択してください。グループが何を含んでいるのか説明するような名前をつけることを推奨します。 - -## イベントエディターを使う - -ゲームの最中であっても、イベントを使ってオブジェクトのインスタンスまたは複数のインスタンスのプロパティを変更したり操作できます。GDevelop でゲーム制作していると、できるのです。ゲームのプレイ中にリアルタイムでオブジェクトを操作したり、そういうことが。イベントとイベントエディターについて深く掘り下げるのは、このページの取り扱い範囲を超えるため、くわしくは[ゲーム作りの基本コンセプト](/ja/gdevelop5/tutorials/basic-game-making-concepts)を参照してください。 - -* すべてのオブジェクトは**同じ共通の機能**(位置や角度など、このページに書かれていた機能すべて)を共有し、すべてのオブジェクトを使用できるたくさんの条件とアクションがあります。 -* オブジェクトはまた特定の機能も提供します。たとえば[スプライトオブジェクト](/ja/gdevelop5/objects/sprite)にはアニメーション機能があり、アクションを使うと再生中のアニメーションを変更できます。 特定のオブジェクトに関する詳細は、このページのリンクからたどってください。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/panel_sprite.md b/docs/ja/gdevelop5/objects/panel_sprite.md deleted file mode 100644 index 7277a9d56e..0000000000 --- a/docs/ja/gdevelop5/objects/panel_sprite.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: パネルスプライト ("9パッチ")オブジェクト ---- -# パネルスプライト ("9パッチ")オブジェクト - -パネルスプライトオブジェクトを使用すると、境界線を繰り返したり、伸ばしたりしてテクスチャを表示できます。パネルスプライトオブジェクトは、動的なサイズのオブジェクトを作成するのに役立ちます。パネルスプライトオブジェクトの例には、インターフェイスのフレームなどが含まれます。プラットフォーム型ゲームでもこの機能を使用する場合があります。 - -パネルスプライトを使用するには、右側のオブジェクトパネル/リストから新しいオブジェクトを作成します。オブジェクトを作成したら、オブジェクトの周囲の各境界線のマージンのサイズを設定できます。マージンは、上、左、右、および下です。 - -## パネルスプライトを作成する手順 - - - 1.シーンエディターの右側にある「オブジェクト」エディターリストから、プラスボタンをクリックして新しいスプライトを作成します。 - -![](/gdevelop5/objects/panelsprite-addanobject.png) - - - 2.表示されるリストから「パネルスプライト」オプションを選択します。 - -![](/gdevelop5/objects/panelspriteselector.png) - - - 3.オブジェクトのプロパティ/パラメーターを定義します。 - -![](/gdevelop5/objects/panelspriteselectors.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/particles_emitter.md b/docs/ja/gdevelop5/objects/particles_emitter.md deleted file mode 100644 index 7b0b02eaf7..0000000000 --- a/docs/ja/gdevelop5/objects/particles_emitter.md +++ /dev/null @@ -1,66 +0,0 @@ ---- -title: パーティクルエミッタ ---- -# パーティクルエミッタ - -!!! note - - **やってみよう!** 🎮 - [パーティクルエミッタのサンプルをすぐ見たいですか?](#Examples) - -パーティクルエミッタ(粒子放射体)は、多数の小さなパーティクルを表示するために使用されます。ゲームの効果をシミュレートします。パーティクルエミッタのいくつかの例は、火、爆発、煙、塵です。 - -![](/gdevelop5/objects/particles-emitters-preview.png) - -パーティクルエミッタオブジェクトは、さまざまなパラメータを使用して構成し、目的の効果を作成できます。 - -## パーティクルの種類 パーティクルエミッタを使用するには、オブジェクトリストから新しいオブジェクトを作成します。パネルが開きます: - -![](/gdevelop5/objects/addnewobject-particlesemitter.png) - -リストから「パーティクルエミッター」を選択します。 - -新しいパネルがポップアップします。このパネルには、エミッタに設定できるプロパティが含まれています。エミッターで使用可能なすべてのプロパティを表示するには、下にスクロールする必要があります。 - -![](/gdevelop5/objects/particleemitterspanelofchoices.png) - -*パーティクルエミッタには、ポイント、ライン、テクスチャの3つのレンダリングモードがあります。* - -* ポイントモードでは指定したサイズの円が表示されます。 -* ラインモードでは指定された長さと太さの線が表示されます。 -* テクスチャモードでは指定したサイズの画像が表示されます。 - -## 色 - -* パーティクルの開始色とフェードする色を選択できます。オブジェクトの透明度の最終値を選択することもできます。 - -## 放出の方向 - -パーティクルは、シーン上のエミッターの角度で表される方向に放出されます。スプレーコーンの角度を変更できます。これは、シーンエディターでも2本の線で表されます。この「スプレーコーン」の値を大きくすると、多数の方向にパーティクルが放出されます。値を0にすると、パーティクルは単一の方向にのみ放出されます。 - -* パーティクルは、エミッタオブジェクトの位置の周りの球体に表示されます。球の半径を変更できます。 -* 重力は、X軸とY軸のパーティクルに適用できます。たとえば、Y軸に負の値を指定すると、粒子が空中に上昇します。 -* 摩擦は、粒子の時間とともに変化する減速に影響します。 - -## 効果の長さ - -* 各パーティクルには、2つの値の間でランダムに選択される制限された寿命があります。これらの2つの値は変更できます。 -* エミッター(「タンク」)に含まれるパーティクルの数は、無制限にすることも、数に固定することもできます。エミッターが数値に固定されている場合、エミッターは設定された数のパーティクルに達した後に放出を停止します。 -* フローは、毎秒作成されるパーティクルの数です。-1を入力すると、1回のショットですべてのパーティクルを発射できます。 - -画面上のオブジェクトによってレンダリングされるパーティクルの最大数を変更することもできます。この数値は、エミッタが使用するメモリを変更することに注意してください。*この数が大きすぎると、ゲームがクラッシュする可能性があります。* - -## 例 - -!!! note - - **やってみよう!** 🎮 - これらのサンプルはオンラインで実行することができます - -[![](/gdevelop5/objects/particleemitterexplosionsnew.png)](https://editor.gdevelop.io/?project=example://particles-explosions) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-explosions){ .md-button .md-button--primary } - -[![](/gdevelop5/objects/particleemitervariousnew.png)](https://editor.gdevelop.io/?project=example://particles-various-effects) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://particles-various-effects){ .md-button .md-button--primary } diff --git a/docs/ja/gdevelop5/objects/shape_painter.md b/docs/ja/gdevelop5/objects/shape_painter.md deleted file mode 100644 index db1d37c76d..0000000000 --- a/docs/ja/gdevelop5/objects/shape_painter.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: シェイプペインタオブジェクト ---- -# シェイプペインタオブジェクト - -!!! note - - **やってみよう!** 🎮 - [シェイプペインタオブジェクトの例をすぐみたいですか](#Examples) - -シェイプペインターオブジェクトを使用すると、ゲームで図形を描画できます。単純なユーザーインターフェイス(UI)要素を作成するのに役立ちます。シェイプペインタを使用して、選択ボックスを作成することもできます。 - -### シェイプペインタオブジェクトの追加 - -「シェイプペインタ」オブジェクトを追加するには、シーンエディターインターフェイスの右側にあるプロパティエディターリストから新しいオブジェクトを作成します。次に、新しいオブジェクトを選択してクリックし、「オブジェクトの編集」を選択します。表示されるリストで、「シェイプペインタ」をクリックします。 リストを下にスクロールして見つける必要がある場合があります。 ![add-shape-painter-object.png](/gdevelop5/objects/add-shape-painter-object.png) - -### プロパティーを編集 - -次に、オブジェクトのプロパティを編集します。再び、右側の\[プロパティ\]リストから、オブジェクトをクリックします。表示されるポップアップリストから\[オブジェクトの編集\]を選択します。新しいウィンドウが開きます。ペインタオブジェクトのプロパティが表示されます。 ![shape-painter-properties.png](/gdevelop5/objects/shape-painter-properties.png) - -### 色と不透明度を変更する - -シェイプペインタのプロパティウィンドウには、オブジェクトの輪郭の色/色、オブジェクトの塗りつぶしの色/色、各色/色の不透明度、オブジェクトの輪郭のサイズを変更できるオプションがあります - -![change-color-of-shape-painter.png](/gdevelop5/objects/change-color-of-shape-painter.png) - -### 相対オブジェクト位置 - -デフォルトでは、画面に描画する図形の位置は、「シェイプペインタ」オブジェクトを基準にしています。 ![shape-painter-relative-position-property.png](/gdevelop5/objects/shape-painter-relative-position-property.png) - -相対位置の場合、画面に図形を描画すると、その相対位置はX軸とY軸の位置0になります。Shapeペインタオブジェクトの位置になります。つまり、画面の位置がXで100ピクセル、Yで100ピクセルになる形状を描画する場合、位置は、画面上のどこにいても形状ペインタオブジェクトから100ピクセルになります。 - -ボックスがチェックされていない/チェックされていない場合、X軸とY軸の位置0は、オブジェクトの位置に関係なく、シーンの左上隅になります。 - -### 図形の描画 - -通常どおり、シェイプを描画するには、オブジェクトエディターを使用して新しいオブジェクトを作成します。「シェイプペインタ」オブジェクトをシーンに追加します。ここでプレビューを実行すると、何も表示されません。シェイプペインタオブジェクトは、基本的にオブジェクトの機能を追加するだけです。現時点では、「シェイプペインタ」プロパティ/パラメータのみを保持しています。シェイプを描画するには、シーン(イベント)エディターを使用する必要があります。イベントに慣れていない場合は、*Wikiのイベントページ*を確認することをお勧めします。 - -シーンイベントエディターに移動して、イベントを追加しましょう。新しいイベントを追加したら、「アクションを追加」テキストをクリックします。プリミティブ描画のイベントを見つけます。 - -![](/gdevelop5/objects/primitivedrawingeventchoices.png) - -描画する3種類の形状から選択できます。円、線、長方形。画面に長方形を描画します。描画プロパティの下の長方形を選択します。 - -![draw-shape-event.png](/gdevelop5/objects/draw-shape-event.png) - -右側で、使用する形状ペインタオブジェクトを選択します。左上の位置にXとYの両方に0を入力します。右下の位置にXとYの両方に100を入力します。 - -![draw-shape-event-properties.png](/gdevelop5/objects/draw-shape-event-properties.png) - -シーンプレビューを起動すると、シーン/画面に幅100ピクセル、高さ100ピクセルの長方形が描画されます。 - -![rectanlge-shape-painter.png](/gdevelop5/objects/rectanlge-shape-painter.png) - -相対位置を有効にしたままにすると、原点が0であっても、四角形がシェイプペインタオブジェクトと同じ位置にあることに気付くでしょう。このオプションを無効にして、プレビューを再度起動すると、オブジェクトが表示されます。シーンの左上隅に描画されます。 - -イベントを使用して、その場で図形のプロパティを変更することもできます - -![](/gdevelop5/objects/shapepaintereventsexample.png) - -## 例 - -!!! note - - **やってみよう!** 🎮 - サンプルをオンラインで実行できます - -[![](/gdevelop5/objects/shapepainterobject.png)](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://advanced-shape-based-painter){ .md-button .md-button--primary } diff --git a/docs/ja/gdevelop5/objects/sprite/collision-mask.md b/docs/ja/gdevelop5/objects/sprite/collision-mask.md deleted file mode 100644 index fef31f9d08..0000000000 --- a/docs/ja/gdevelop5/objects/sprite/collision-mask.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: 衝突マスク(スプライトオブジェクト用) ---- -# 衝突マスク(スプライトオブジェクト用) - -スプライトエディターには、すべてのアニメーションの下に**当たり判定を編集**ボタンがあります。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_16-36-32.png) - -このボタンをクリックすると、衝突マスクを編集するための新しいダイアログが開きます。衝突マスクとは、簡単に言えばスプライト内のある領域を示しているだけの情報ですが、これは当たり判定の際にチェック対象として機能し、まさに下図のような状態を避けるために使用されます。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_17-00-45.png) - -カスタマイズした衝突マスクを追加するには、**カスタム衝突マスクを使用する**オプションをクリックします。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_17-03-48.png) - -既定ですでに衝突マスクが存在しますが、足りなければ画面右下の[+]ボタンをクリックしてカスタム衝突マスクを追加できます。 - -画面に表示される赤いアウトラインの頂点をマウスでドラッグ移動して、希望する衝突マスクの形に整形しましょう。頂点が足りなければ、全ポイント座標の下にある黒丸内の[+]ボタンをクリックして頂点を追加できます。この例で使う衝突マスクの場合は、次のような感じになりました。 - -!!! note - - 多角形は必ず凸面体になるように注意してください。つまり角度が 180 度を超える頂点が一つもないようにしてください。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_17-19-28.png) - -![](/gdevelop5/objects/screenshot_from_2019-05-21_17-22-22.png) - -マスクを追加し終わったら[閉じる]をクリックしてプロパティに戻り、次いで[適用]をクリックします。 - -この例で作成した衝突マスクは、先ほどと同じ条件下ではるかに良い結果をもたらします。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_17-26-52.png) - -同じスプライトの他のアニメーションで別の衝突マスクを使いたい場合は、**すべてのアニメーションで同じ衝突マスクを共有する**オプションを無効にしてください。 - -![](/gdevelop5/objects/sprite/annotation_2019-06-21_121320.png) - -同じスプライトの別のインスタンスで別の衝突マスクを使いたい場合は、**このアニメーションのすべてのスプライトで同じ衝突マスクを共有する**オプションを無効にしてください。 - -![](/gdevelop5/objects/sprite/annotation_2019-06-21_121540.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/sprite/edit-points.md b/docs/ja/gdevelop5/objects/sprite/edit-points.md deleted file mode 100644 index 6498a3d885..0000000000 --- a/docs/ja/gdevelop5/objects/sprite/edit-points.md +++ /dev/null @@ -1,39 +0,0 @@ ---- -title: ポイントの編集 ---- -# ポイントの編集 - -GDevelop におけるポイントとは参照用の場所を示す情報で、ある特定の目的でオブジェクトを利用する際に、そのオブジェクトの基準点を表します。スプライトオブジェクトにはデフォルトでポイント「Origin」と「Center」が存在します。 - -* スプライトの原点 Origin はスプライト画像の左上隅を指します。このポイントはシーン内に配置されたスプライトオブジェクトの画像位置の基準点として使われます。 -* スプライトの中心点 Center は画像の大きさのちょうど半分の中央位置を指します(これはデフォルトの定義ですが、変更できます)。この中心点は、ゲームエンジンによっては「アンカー」や「ピボット」とも呼ばれ、画像を回転したり反転する際の基準点として使われます。 - -!!! tip - - たとえば画像の大きさが 100×100 ピクセルのスプライトの場合、画像の原点 Origin は (0, 0) になります。これは画像の左上隅を指します。中心点 Center は (50, 50) になります。これは幅と高さを半分にした (100/2, 100/2) と同じ意味です。 - -## 新しいポイントを追加する - -すべてのアニメーションの下に**ポイントを編集**ボタンがあります。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_16-36-58.png) - -このボタンをクリックすると新しいダイアログが開き、既定で Origin と Center が設定済みの状態になっています。 - -![](/gdevelop5/objects/screenshot_from_2019-05-21_17-51-58.png) - -ダイアログ右下の[+]ボタンをクリックすると、ポイントを追加できます。これらのポイントはさまざまなアクションで参照されます。使用例を[こちらで確認できます](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/tank-shooter#shoot_bullets_with_the_turret)。 - - 同じスプライトの他のアニメーションで別のポイントを使いたい場合は、**すべてのアニメーションで同じポイントを共有する**オプションを無効にしてください。 - -![](/gdevelop5/objects/sprite/annotation_2019-07-02_183433.png) - - 同じスプライトの別のインスタンスで別のポイントを使いたい場合は、**このアニメーションのすべてのスプライトで同じポイントを共有する**オプションを無効にしてください。 - -![](/gdevelop5/objects/sprite/annotation_2019-07-02_184800.png) - -## デフォルトの Origin と Center ポイントを編集する - -スプライトの中心が画像全体の中心からずれていたり、ある特定の座標を基準に回転させたいような場合は、Origin と Center ポイントを変更できます。デフォルトでは、Center ポイントは自動で計算するようになっています。座標を変更したい場合は、右側にある鉛筆アイコンをクリックしてください。 - -![](/gdevelop5/objects/sprite/screenshot_2019-10-05_18.08.54.png) \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/sprite/index.md b/docs/ja/gdevelop5/objects/sprite/index.md deleted file mode 100644 index ccebb8be9a..0000000000 --- a/docs/ja/gdevelop5/objects/sprite/index.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: スプライトオブジェクト ---- -# スプライトオブジェクト - -!!! tip - - **やってみよう!** 🎮 - [説明はいいから、とにかく Sprite オブジェクトが動くところを見たい? わかりました、こちらを先にどうぞ。](/#サンプル) - - -スプライトオブジェクトは、GDevelop で最もよく使用されるオブジェクトです。 - -スプライトオブジェクトを使うと、画像を表示したり、一連の画像をアニメーションとして再生できます。ボタン、キャラクター、プラットフォーム など、ゲーム内の利用範囲は多岐にわたります。画像で表現できるものはすべて、スプライトオブジェクトにすることが可能です。 - -## スプライトオブジェクトを作成する - -シーンにスプライトを追加するには、オブジェクトリストの右下にある「クリックしてオブジェクトを追加」オプションを選択します。 - -![](/gdevelop5/objects/clicktoaddanobject.png) - -新しいパネルが開き、GDevelop で使用可能なさまざまなタイプのオブジェクトが表示されます。 - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -一覧から「スプライト」を選択して、ゲームシーンに新しいスプライトオブジェクトを作成します。 - -![](/gdevelop5/objects/select-sprite.png) - -オブジェクトを作成すると、プロパティウィンドウが開きます。このウィンドウには、スプライトオブジェクトのプロパティが表示されています。 - -![](/gdevelop5/objects/sprite-object-properties.png) - -## アニメーションを追加する - -アニメーションを使用すると、1 つまたは一連の画像をスプライトオブジェクトに追加できます。アニメーションを追加するには、アニメーションの追加ボタンをクリックします。 - -![](/gdevelop5/objects/add-animation-button.png) - -現在のダイアログボックスが展開し、設定可能なさまざまなオプションが表示されます。 - -![](/gdevelop5/objects/animation-properties.png) - -### アニメーションに画像を追加する - -「+」記号をクリックして、オブジェクトのアニメーションに画像を追加できます。 - -![](/gdevelop5/objects/add-symbol.png) - -クリックすると[ファイルを開く]ダイアログが表示され、アニメーション用の画像ファイルを選択できます。画像を選択すると、ウィンドウに画像が表示されます。 - -![](/gdevelop5/objects/add-image.png) - -### 当たり判定とポイント - -ダイアログの下部にある[当たり判定を編集]を使用して、スプライトの衝突領域、つまり当たり判定に考慮される領域をカスタマイズできます。くわしくは、[衝突マスクについて](/ja/gdevelop5/objects/sprite/collision-mask)を参照してください。 - -スプライトプロパティダイアログの下部にある[当たり判定を編集]オプションの隣には、[ポイントを編集]オプションがあります。このオプションを使用すると、オブジェクトの参照ポイントを追加できます。これらの参照ポイントは、必要なときにイベントで使用できます。くわしくは、[スプライトのポイントについて](/ja/gdevelop5/objects/sprite/edit-points)を参照してください。 - -### 複数のアニメーションを追加する - -オブジェクトには、複数のアニメーションが必要な場合があります。アニメーションを追加するには、初回の追加時と同じように[アニメーションを追加]ボタンをクリックします。この機能により、さまざまなアニメーションを簡単に分割管理できます。 - -![](/gdevelop5/objects/multiple_animations.png) - -イベントを使用して、これらのアニメーションを切り替えることができます。 - -### アニメーションに名前を付ける - -ウィンドウのアニメーションセクションの上部にある「Animation #」の横に、グレーアウトした「アニメーションの別名」フィールドが表示されています。このフィールドをクリックすると、アニメーションの名前を入力できるようになります。 - -![](/gdevelop5/objects/name-animation.png) - -!!! tip - - オブジェクトが複数のアニメーションを持つ場合、アニメーションに名前がないと区別しにくい状態になります。複数のアニメーションを持つオブジェクトには、アニメーション名を使用することをお勧めします。 - - 名前を入力しない場合は、アニメーション番号を使用してアニメーションを参照する必要があります。 - -### アニメーションに複数の画像を追加する - -アニメーションに複数の画像を追加するには、[ファイルを開く]ダイアログから必要なすべての画像を選択して、アニメーションに追加します。 - -![](/gdevelop5/objects/animation-multiple-images.png) - -画像は表示と同じ順序で再生されます。 - -### アニメーションを繰り返す - -デフォルトでは、すべてのアニメーションは 1 回だけ再生されます。つまり最後のフレームが終了すると、アニメーションはすぐに停止します。アニメーション を繰り返したい場合は、[ループ]にチェックを入れて、アニメーションを「ループ」するように設定します。 - -![](/gdevelop5/objects/set-animation-loop.png) - -この設定を行った後は、アニメーションが連続して再生されるようになります。 - -### アニメーション時間を設定する - -アニメーションの速度は、時計アイコンの値を変更することで設定できます。 - -![](/gdevelop5/objects/set-animation-speed.png) - -フィールドに入力するのは、2 つの連続するフレーム間の経過時間です。デフォルト値は 0.08 秒です。短いアニメーション時間を設定すると再生が速くなり、長いアニメーション時間を設定すると再生が遅くなります。 - -## オブジェクトへの名前付け - -ダイアログ上部の[オブジェクト名]フィールドにオブジェクトの名前が表示されます。オブジェクトの名前は通常、オブジェクトの内容を表すように設定し、他のスプライトと区別しやすくします。 - -![](/gdevelop5/objects/annotation_2019-06-09_152442.png) - -## シーンにオブジェクトを追加する - -新しいスプライトオブジェクトを準備できたら、次はそのインスタンスを目的のシーンに追加する番です。 - -方法はいくつかありますが、一般的なのは[オブジェクト]リストから配置したいスプライトをシーン内にドラッグする方法でしょう。ドロップした場所に新しいインスタンスが追加されます。他の方法としては、[オブジェクト]リスト上で配置したいスプライトを選択状態にしておき、シーン内で右クリックします。コンテキストメニューが表示されるので、[<オブジェクト>のインスタンスを追加]を選択するとインスタンスがシーンに追加されます。スプライトの「インスタンス」は必要な数だけシーンに追加できます。上記の方法を繰り返してもいいですし、配置済みのインスタンスをコピーして貼り付けでも追加できます。 - -![](/gdevelop5/objects/addspritetoscene.gif) - -## イベントで複数のアニメーションを使いわける - -それぞれ独自の画像セットを持つ複数のアニメーションを作成した後、イベントを使用してアニメーションを切り替えることができます。アニメーション時間を 0〜1 に設定すると、イベントを使用するときにアクティブになります。 - -!!! note - - マイナスのアニメーション時間を使用すると、イベントアクションが無効になります。 - - //マイナスの値は使用しないでください。// - -オブジェクトに複数のアニメーションを設定した場合、イベントの「名前でアニメーションを変更する」アクションを使って任意のアニメーションを設定できます。このアクションと条件を組み合わせることによって、希望のタイミングで任意のアニメーションに切り替えることができます。 - -![](/gdevelop5/objects/eventanimationexample.png) - -前述しましたが、複数のアニメーションを簡単に区別できるように、ここではオブジェクト内のアニメーションに名前が付けられているものとします。 - -アニメーション名を使用してアニメーションを変更するには、「名前でアニメーションを変更する」アクションを選択します。 - -そして「アニメーションの名前」フィールドに引用符で括った名前を指定します。 - -![](/gdevelop5/objects/eventanimnameexample.png) - -イベントの詳細については[チュートリアル](/ja/gdevelop5/tutorials)を参照してください。 - -## サンプル - -!!! tip - - **やってみよう!** 🎮 - 画像をクリックすると、オンラインでサンプルを実行できます。 - -[![](/gdevelop5/objects/createaspritenew.png)](https://editor.gdevelop.io/?project=example://change-scale-of-sprites) - ----- - -[![](/gdevelop5/objects/changespriteanimationexamplenew.png)](https://editor.gdevelop.io/?project=example://change-sprite-animation) - ----- - -[![](/gdevelop5/objects/changespritecolorexamplenew.png)](https://editor.gdevelop.io/?project=example://change-sprite-color) - ----- - -[![](/gdevelop5/objects/changespriteanimationexample2new.png)](https://editor.gdevelop.io/?project=example://play-stop-sprite-animation) \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/text.md b/docs/ja/gdevelop5/objects/text.md deleted file mode 100644 index 47f521c9ac..0000000000 --- a/docs/ja/gdevelop5/objects/text.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: テキストオブジェクト ---- -# テキストオブジェクト - -!!! note - - **やってみよう!** 🎮 - [テキストオブジェクトのサンプルがすぐにみたいですか?](#Examples) - -テキストオブジェクトは、画面にテキストを表示します。作成時にテキストのプロパティ(サイズや色など)をカスタマイズできます。イベントを使用して、ゲームプレイ中にテキストオブジェクトのプロパティを変更することもできます。 - -## テキストオブジェクトのプロパティ - -### デフォルトのテキスト - -中央のテキストフィールドを使用して、オブジェクトによって表示されるテキストを設定できます。 ![](/gdevelop5/objects/change-text.png) - -### サイズ - -サイズフィールドを使用して、テキストのデフォルトのフォントサイズを設定します。 ![](/gdevelop5/objects/change-size-of-text.png) - -### 色 - -テキストの色は、パレットの色の正方形をクリックして変更できます。 ![](/gdevelop5/objects/change-color-of-text.png) - -### フォントとスタイル - -太字と斜体から選択できます。テキストにカスタムフォントを設定することもできます。 ![](/gdevelop5/objects/change-style-of-text.png) - -### 追加効果 - -* イベントを使用して**グラデーション**を作成できます。 ![textgradient.png](/gdevelop5/objects/textgradient.png) - -最大4色を選択できます。 - -* イベントを使用して**シャドウ(影)**を設定できます。 - -![](/gdevelop5/objects/showtextshadow.png) ![](/gdevelop5/objects/changetextshadow.png) - -影を変更するときは、色、距離、ぼかし、角度を選択できます。これは、明るい色でグロー効果を作成するためにも使用できます。 - -* オブジェクトの**不透明度**を変更できます: - -![](/gdevelop5/objects/changetextopacity.png) - -* オブジェクトの**スケーリング(拡大・縮小)**を変更できます - -![](/gdevelop5/objects/textscaling.png) - -![modifytextscale.png](/gdevelop5/objects/modifytextscale.png) - -次の3つのオプションがあります:「スケール」(X軸とY軸の両方にスケールするように比率を設定)、「X軸のスケール」(幅)、および「Y軸のスケール」(高さ)。 - -### 他のスタイル - -イベントを使用して、他のプロパティを変更できます。 - -- Bold(太字) -- Italic(斜体) -- Padding -- Alignment -- Wrapping -- Wrapping Width - -## イベント中での変更 - -イベントを使用して、ゲーム中にテキストのほとんどのプロパティを操作できます。たとえば、テキストフォントのサイズを変更するイベントは次のとおりです。 - -![changetextsizeviaevents.png](/gdevelop5/objects/changetextsizeviaevents.png) - -## 例 - -!!! note - - **やってみよう!** 🎮 - サンプルをオンラインで実行 - -テキストオブジェクトを操作する - -[![](/gdevelop5/objects/changetextexample1.png)](https://editor.gdevelop.io/?project=example://manipulate-text-object) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://manipulate-text-object){ .md-button .md-button--primary } - -テキストのフェードインとフェードアウト - -[![](/gdevelop5/objects/textfadeoutinexample.png)](https://editor.gdevelop.io/?project=example://text-fade-in-out) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-fade-in-out){ .md-button .md-button--primary } - -テキストのタイピング表示 - -[![](/gdevelop5/objects/type-ontexteffectexample.png)](https://editor.gdevelop.io/?project=example://type-on-text-effect) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://type-on-text-effect){ .md-button .md-button--primary } diff --git a/docs/ja/gdevelop5/objects/text_entry.md b/docs/ja/gdevelop5/objects/text_entry.md deleted file mode 100644 index 0a2eab89b9..0000000000 --- a/docs/ja/gdevelop5/objects/text_entry.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: テキスト入力オブジェクト ---- -# テキスト入力オブジェクト - -!!! note - - **やってみよう!** 🎮 - [テキスト入力オブジェクトの例をすぐに見たいですか](#Examples) - -テキスト入力オブジェクトは、ユーザー入力をキャプチャしてメモリに保存します。このオブジェクトを使用して、テキスト入力フィールドをシミュレートできます。たとえば、テキストエントリオブジェクトを使用して、ゲームのプレイヤーが自分の名前やその他の情報を入力できる方法を提供できます。 - -### テキスト入力オブジェクトの追加 - -オブジェクトエディタリストから新しいオブジェクトを作成した後、表示された選択肢リストから\[テキスト入力\]を選択します。 - -![add-text-entry-object.png](/gdevelop5/objects/add-text-entry-object.png) - -テキスト入力オブジェクトの名前を好きな名前に変更します。テキスト入力オブジェクトをシーンに追加します。 - -これで、シーンのプレビューを実行すると、押したすべてのキーがオブジェクトにキャプチャされ、メモリに保存されます。メモリから値を読み取るには、次のような式を使用する必要がありますTextEntry.String()(以下の例を参照)。 - -### テキストオブジェクトを使用して値を表示する - -最初に、テキストオブジェクトをシーンに追加します。次に、Textオブジェクトのコンテンツを変更するイベントを追加します。 - -![text-entry-object-display-value.png](/gdevelop5/objects/text-entry-object-display-value.png) - -テキストの新しいコンテンツである最後のパラメーターには、上記の式を使用します。 ![](/gdevelop5/objects/text-text-entry.png) - -!!! note - - __ 入力__は、テキストエントリオブジェクトの名前にする必要があります。これをテキスト入力オブジェクトの名前に置き換える必要があります。 - -シーンのプレビューを実行する場合。入力を開始すると、入力した内容がテキストオブジェクトに表示されます。 - -イベントを使用して、「テキスト入力」オブジェクトを有効または無効にすることができます。また、イベントを使用すると、テキスト入力をキャプチャするタイミングと、テキスト入力をキャプチャしないタイミングを制御できます。 - -![](/gdevelop5/objects/textentryobjectevents.png) - -## 例 - -!!! note - - **やってみよう!** 🎮 - サンプルをオンラインで実行できます - -![](/gdevelop5/objects/textexample.png) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://text-entry-object){ .md-button .md-button--primary } diff --git a/docs/ja/gdevelop5/objects/tiled_sprite.md b/docs/ja/gdevelop5/objects/tiled_sprite.md deleted file mode 100644 index 818afd126c..0000000000 --- a/docs/ja/gdevelop5/objects/tiled_sprite.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: タイルスプライトオブジェクト ---- -# タイルスプライトオブジェクト - -!!! note - - **やってみよう!** 🎮 - [タイルスプライトオブジェクトのサンプルがすぐにみたいですか?](#Examples) - -タイルスプライトオブジェクトを使用すると、タイルのように敷き詰めて画像を表示できます。シーン内のオブジェクトをスケーリングすることにより、タイルセットのサイズを増減できます。 - -タイルスプライトオブジェクトは、プラットフォームゲームでプラットフォームを作成するために使用できます。同じ画像のグループとして使用することもできます。この場合、複数のスプライトオブジェクトを扱う必要はありません。 - -![](/gdevelop5/objects/tiled-sprite-object.png) - -### タイルスプライトオブジェクトを追加する - -タイルスプライトオブジェクトをシーンに追加するには、オブジェクトリストから新しいオブジェクトを作成します。開いたパネルから「タイルスプライト」オプションを選択します。 - -![](/gdevelop5/objects/add-tiled-sprite-object.png) - -### オブジェクトのプロパティを開く - -次に、再び右側のオブジェクトリストから、オブジェクトを右クリックしてオブジェクトのプロパティを開きます。表示されるポップアップリストから\[オブジェクトの編集\]を選択します - -![tiled-sprite-properties.png](/gdevelop5/objects/tiled-sprite-properties.png) - -### 画像を追加する - -オブジェクトに画像を追加するには、「画像を選択」フィールドをクリックします。ローカルファイルブラウザがコンピューターで開きます。お好みの画像を選択してください。 - -![add-image-to-tiled-sprite.png](/gdevelop5/objects/add-image-to-tiled-sprite.png) - -選択した画像は、右側のプレビューウィンドウに表示されます。 - -![tiled-sprite-image-preview.png](/gdevelop5/objects/tiled-sprite-image-preview.png) - -### デフォルトのサイズを変更する - -下部の\[デフォルトの幅\]と\[デフォルトの高さ\]の値を変更することにより、タイルスプライトオブジェクトのデフォルトサイズを変更できます。 - -![](/gdevelop5/objects/tiled-sprite-default-size.png) - -デフォルトのサイズは、オブジェクトに表示される画像の表示に影響します。たとえば、これは、オブジェクトサイズが32×32の場合の画像の見え方です。 - -![](/gdevelop5/objects/tiled-sprite-3232.png) - -ご覧のとおり、上記の画像はオブジェクトに合わせて拡大縮小されませんが、画像は部分的にしか見えません。 - -オブジェクトのサイズを100×100に設定すると(下図を参照)、オブジェクトのサイズは実際の画像よりも大きくなるため、空のスペースを埋めるために画像の描画を繰り返します。 - -![](/gdevelop5/objects/tiled-sprite-100100.png) - -### オブジェクトを拡大縮小する - -シーンエディターでオブジェクトをスケーリングして、必要な外観/サイズに変更することで、即座に結果を得ることができます。 - -![](/gdevelop5/objects/scale-tiled-sprite.png) - -シーン(イベント)エディターを使用して、タイルスプライトのサイズを変更することもできます。イベントエディターを使用すると、ゲームプレイがより流動的で興味深いものになります。 - -![](/gdevelop5/objects/scaleasprite.png) - -## 例 - -!!! note - - **やってみよう!** 🎮 - サンプルをオンラインで実行できます - -[![](/gdevelop5/behaviors/platformerbehavior.png)](https://editor.gdevelop.io/?project=example://platformer) - -[Open example in GDevelop](https://editor.gdevelop.io/?project=example://platformer){ .md-button .md-button--primary } diff --git a/docs/ja/gdevelop5/objects/tilemap.md b/docs/ja/gdevelop5/objects/tilemap.md deleted file mode 100644 index 4fd946c9c6..0000000000 --- a/docs/ja/gdevelop5/objects/tilemap.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: タイルマップオブジェクト ---- -# タイルマップオブジェクト - -タイルマップオブジェクトはタイルベースのオブジェクトを表示するために使います。これは RPG や SLG の**マップ**作成や、**タイルの組み合わせ**によって何らかのオブジェクトを作成するのに適しています。プラットフォーマーやレトロ風のゲームなどでも使えるでしょう。 - -今のところ、このオブジェクトは上級ユーザーによる使用を想定しており、**外部エディターの [Tiled](https://www.mapeditor.org/)** でタイルマップを作成する必要があります。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-105043.png) - -## 既知の制限事項 - - * **オーソゴナル**タイルマップ(正投影法の方眼紙状マップ)には対応していますが、**アイソメトリック タイルマップ**(等角投影法の斜め見下ろし型マップ)にはまだ対応していません。 - * **複数のタイルセットを使ったタイルマップ**には対応していません。今のところ、1 つのタイルマップに使えるタイルセットは 1 つだけです。 - * あいにく **Tiled ファイルの当たり判定**には対応していません。今のところ GDevelop 側で当たり判定用に非表示のオブジェクトを手動で作成する必要があります。 - * マップとタイルセットは Tiled で **JSON ファイル**(.json)として保存する必要があります。 - * Tiled でタイルマップを作成し始めたら、それ以降はアトラス(画像ファイル)をリサイズしないでください。もしリサイズすると、テクスチャのサイズと Tiled ファイルの設定が食い違うため、GDevelop がレンダリングできなくなります。もしタイルセットをリサイズする必要がある場合は、Tiled で**マップを新規作成**してください(Tiled 上で既存マップからコピー貼り付けできます)。 - -## 新しいタイルマップを作成する - -まず必要なタイルセットをどこかで探すか、あるいは自作してそれを PNG ファイルに保存します。以降の例では *Cavernas* が公開しているパブリックドメインのタイルセットを使用することにします。[こちらから](https://adamatomic.itch.io/cavernas)ダウンロードできます。このファイルをプロジェクトフォルダーに保存します。 - -次に Tiled を [mapeditor.org](https://www.mapeditor.org/) からダウンロードしたら、インストールして起動します。**新しいマップ...**をクリックします。 -![](/gdevelop5/objects/tilemap/pasted/20210104-112522.png) - -タイルの出力形式には CSV か Base 64(未圧縮)か Base 64(zlib 圧縮)を選んでください(Zstandard 圧縮 には対応していません)。それからマップの大きさとタイルの大きさを決めてください。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-112656.png) - -マップの保存場所を選び、JSON ファイルとして保存してください。JSON ファイルはプロジェクトフォルダーに保存することをおすすめします。 - -次に Tiled で新しいタイルセットを作成します。 -![](/gdevelop5/objects/tilemap/pasted/20210104-112850.png) - -名前を入力し、先ほどプロジェクトフォルダーに保存した画像ファイル(「アトラス」とも呼ぶ)を選択します。 -![](/gdevelop5/objects/tilemap/pasted/20210104-113221.png) - -**マップに埋め込み**をチェックすると、タイルセットデータがタイルマップの JSON ファイル内に格納されます。チェックしない場合は、タイルセット JSON ファイルをどこに保存するか尋ねてきます。ここで保存したファイルは、後で GDevelop 側のタイルマップの設定でも選択することが必要になります。くわしくは「バンドルと外部タイルセットのどちらを選ぶか」の節を参照してください。 - -それでは、Tiled でマップを作成しましょう。 -![](/gdevelop5/objects/tilemap/pasted/20210104-114523.png) - -最後に、作成したマップを GDevelop で表示してみます。新しい**タイルマップ**オブジェクトを作成します。それから設定画面でアトラス画像(タイルを含んだ画像)と**タイルマップ JSON ファイル**を選びます。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-114702.png) - -**適用**をクリックして、オブジェクトをシーンにドラッグ&ドロップします(まだ配置していなければ)。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-114824.png) - -### 当たり判定の取り扱い - -Tiled の当たり判定タイルセット機能は、今のところ GDevelop 側で対応していません。その代わりに、見えない障害物として振る舞うオブジェクトあるいはプラットフォームを作成します。下記はプラットフォームビヘイビアを使った例です。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-122010.png) - -オブジェクトをプレースホルダー画像(ふつうは色の付いた長方形でじゅうぶんです)で作成し、それにプラットフォームビヘイビアを追加します。 -![](/gdevelop5/objects/tilemap/pasted/20210104-115630.png) - -シーン開始時のイベントで、障害物/プラットフォームを非表示にします。 -![](/gdevelop5/objects/tilemap/pasted/20210104-120406.png) - -他にも、これらのオブジェクトを別のレイヤーに分けておいて、レイヤーごと非表示にする方法もあります。 - -## バンドルと外部タイルセットのどちらを選ぶか - -Tiled ではタイルセットのデータをタイルマップの JSON ファイルに埋め込むことができます。これは Tiled でマップを編集していて、新しいタイルセットを作成する際に**マップに埋め込み**をチェックすることで実現します。GDevelop はこの方式に対応しているため、タイルマップの JSON ファイルに埋め込んであるタイルセットを検出すると、それを自動的に読みこみます。 - -一方で、**異なるマップ間でタイルセットを共有する**方針の場合は、タイルセットを独立した JSON ファイルに分離する方が自然です。こうすると、GDevelop がタイルセットを 1 回だけパースすれば済むため、少しですが最適化になります。また大規模なプロジェクトでは、タイルセットをより柔軟に管理しやすくなります。 - -タイルセットを分離する場合は、Tiled でタイルセットを作成する際に「マップに埋め込み」のチェックを外します。続いて**ファイル名をつけて保存...**をクリックし、タイルセットを保存するファイルを指定します。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-105614.png) - -最後に GDevelop 側で、アトラス画像とタイルマップ JSON ファイルの後に追加でタイルセットファイルを指定します。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-110127.png) - -内部的には GDevelop は次のように処理します。 - -* タイルセット JSON ファイルが指定された場合は、そのタイルセットを使います。もし仮にタイルマップ JSON ファイルに他のタイルセットがバンドルされていたとしても、外部のタイルセット JSON ファイルが優先して使われる点に注意してください。バンドルタイルセットの方は無視されます。 -* タイルセット JSON ファイルを指定しない場合は、タイルマップ JSON 内を調べて、見つかったタイルセットを読みこみます。 - -## アニメーションタイルの使用 - -**アニメーションタイル**を使う場合は、それをアトラス上に正しい順番で 1 行で再配置する必要があります。 - -!!! danger - - Tiled はタイルフレームをアトラスの任意の場所に配置し、フレームの一部を繰り返すことができます。しかし GDevelop オブジェクトはそのようにして作成されたアニメーションを正しく解釈することができません。 - -Tiled はフレームごとに違う長さを指定できますが、この拡張機能はすべてのフレームが同じ長さの場合だけに対応しています。アニメーションの再生速度を変えることはできますが、それをフレーム単位で制御することはできません。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-112051.png) - -GDevelop では、タイルマップのアニメーション速度を指定できます。デフォルト値は 4 FPS(1 秒間に 4 画像、つまり 1 画像につき 1000÷4=250 ミリ秒)です。 - -![](/gdevelop5/objects/tilemap/pasted/20210104-112229.png) - -## 今後の開発 - -このオブジェクトはまだ実験的で、下記の改善を予定しています。 - -- 基本的な機能を備えた GDevelop 内蔵エディターを開発し、シーンエディターで直接マップの作成や編集をできるようにします。 -- 当たり判定の対応を追加します。 -- アイソメトリックタイルの対応を追加します。 - -技術的な注記:この拡張機能は [pixi-tilemap](https://github.com/pixijs/pixi-tilemap) を利用しています。このプロジェクトはオープンソースなので、自由に貢献してください。オブジェクトの改良やバグ報告など、GDevelop への貢献も歓迎しています。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/objects/video.md b/docs/ja/gdevelop5/objects/video.md deleted file mode 100644 index 9397bfa7a6..0000000000 --- a/docs/ja/gdevelop5/objects/video.md +++ /dev/null @@ -1,109 +0,0 @@ ---- -title: ビデオオブジェクト ---- -# ビデオオブジェクト - -ビデオオブジェクトは、画面にビデオを表示します。ゲームのカットシーンに最適です。 - -!!! note - - ビデオファイルは短いビデオでも非常に重いため、ゲームのダウンロードと起動に時間がかかります。適切な圧縮を使用し、ビデオの長さをできるだけ制限してください。 - -!!! note - - ビデオを再生する前に、プレーヤーが最初にゲームと対話していることを確認する必要があります(ビデオのロックを解除するには、画面上の単純なクリック/タッチで問題ありません) - -ビデオは、タイミング、状態(再生/一時停止)、音量…などのイベントを使用して制御できます。 - -## ビデオの追加 - -新しいオブジェクトを作成するときは、「実験オブジェクトを表示」ボタンをクリックして、「ビデオ」を選択します。 - -![](/gdevelop5/objects/video-object.png) - -オブジェクトが作成されると、エディターが表示されます。 - -![](/gdevelop5/objects/video-object-editor.png) - -## ビデオファイルの選択 - -\[ビデオリソース\]フィールドをクリックしてから、\[新しいビデオファイルを選択\]をクリックします。ほとんどのブラウザとの互換性については、ビデオ形式に関する以下のアドバイスに従ってください。 - -!!! note - - ファイルは、次のようにエンコードされた.mp4形式である必要があります 。 - - - **H264** ビデオ, - - **AAC** オーディオ. - - - -以下も選択できます。 - -- **ビデオのループ**:ビデオが最後に達したときにループする場合 -- **透明度** : 0(完全に透明)〜255(不透明-デフォルト) -- **音量** : 0(サイレント)から100(最大ボリューム-デフォルト) - -!!! note - - 以下のすべての条件とアクションは、ビデオカテゴリ内の条件とアクションを参照します。 - -## ビデオの長さ - -「長さ」条件はビデオの長さをテストします。 - -## ビデオの終わり - -ビデオが終わりに達したときにアクションを実行するには、「Is ended」条件が使用されます。この条件は、ビデオからゲームプレイなどに切り替えるために使用される場合があります。 - -## ビデオの再生時間 - -ゲームプレイ中にビデオが再生されると、「ビデオをスキップ」の有効化や「ゲームの保存」ダイアログのポップなどのアクションについて、ビデオの現在の時刻を確認する必要がある場合があります。これは、「Current time」テスト条件を使用して実現できます。 - -「Set time」アクション を使用して、ビデオ内の時間にスキップすることもできます。アクションに対応する条件が真であるときはいつでも、入力された時間とに応じてビデオは時間にスキップし「Modification's sign」します。 - -## ビデオの透明度 - -透明度は、ビデオの透明度の尺度です。透明度の条件が255を返す場合、ビデオがまったく透明ではないことを意味し、0を返す場合、完全に透明です。ビデオのデフォルトの透明度は255です。 - -透明度の設定アクション を使用して、ビデオの透明度を設定できます。最大にするには、255に設定し、完全に透明にするには0に設定できます。 - -## ビデオの再生速度 - -ビデオの再生速度は、ビデオの現在の速度とビデオの元の速度の比率です。再生速度条件が1より大きい値を返す場合、ビデオは元のビデオよりも速い速度で再生されています。条件が1未満の値を返す場合、元のビデオより遅い速度で再生しています。再生速度のデフォルト値は1です。 - -ビデオの再生速度を設定するには、再生速度の設定アクションを使用します。デフォルトのレートよりも速いレートでビデオを再生するには、1より大きい値を設定し、遅いレートで再生するには、再生速度を1未満の値に設定します。デフォルトでは、1に設定します - -## ビデオのループ - -ビデオがループされると、ビデオは最後に到達した後、最初から繰り返されます。ビデオがループしているかどうかを確認するには、「Is looped」条件を使用します。ビデオがループされると、対応するアクションが実行されます。 - -また、「ビデオをループする」アクションを使用してGDevelopでループするビデオを設定し、「はい」を選択することでビデオ再生ループを有効にできます。デフォルトでは、ビデオはループされません。 - -## ビデオのミュート(消音) - -ビデオがミュートされると、ゲームから音声は聞こえなくなります。ビデオがミュートされているかどうかを確認するには、「Is muted」条件を使用します。ビデオがミュートされている場合、対応するアクションが実行されます。 - -「ビデオのミュート」アクションを使用し、「はい」を選択すると、ビデオをミュートできます。デフォルトでは、ビデオはミュートされていません。 - -## ビデオの一時停止 - -ビデオが一時停止されているかどうかを確認するには、「Is paused」条件を使用します。ビデオが一時停止されている場合、画面が表示されたまま再生が停止されます。 - -「ビデオの一時停止」アクション を使用してビデオを一時停止できます。デフォルトでは、ビデオは一時停止しています。 - -## ビデオを再生する - -ビデオを見るには、まずビデオを再生する必要があります。ビデオが再生されているかどうかを確認するには、「Is played」条件を使用します。ビデオが再生されている場合、対応するアクションが実行されます。 - -ビデオを開始したり、一時停止後にビデオを再開したりするには、「ビデオを再生」アクションを使用できます。デフォルトでは、ビデオは再生されておらず、再生するにはこのアクションが必要です。 - -## ビデオの音量 - -GDevelopを使用してビデオの音量を設定することもできます。ビデオの音量を比較するには、「Volume」条件を使用します。ビデオの最大音量は100、最小音量は0(ミュート)です。 - -ビデオの音量を設定するには、「ボリュームの設定」Set volume条件を使用します。0〜100の任意の数値に設定できます。デフォルトのボリュームは100に設定されています。 - -## ビデオ再生のサンプル - -- Video player: diff --git a/docs/ja/gdevelop5/preferences.md b/docs/ja/gdevelop5/preferences.md deleted file mode 100644 index 3dc813cd05..0000000000 --- a/docs/ja/gdevelop5/preferences.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: preferences ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# 環境設定 - -You can change how GDevelop looks and acts to your liking. - -##Opening Preferences - -On the **web app**: Projects manager → Preferences - -On the **desktop version**: Files → Preferences - -The inference would look like this, - -![](/gdevelop5/preferences.png) - -##Changing the theme - -![](/gdevelop5/themes.png) - -Themes allow you to change how the interface looks - -**UI theme** changes the UI's look - -**Code editor theme** changes the look of the code editor in the JavaScript code block - -![](/gdevelop5/codeblockmonokai.png) - -There are multiple themes you can choose from. You can also create your own themes! See, [how you can make one](https://github.com/4ian/GDevelop/blob/master/newIDE/README-themes.md) - -##Changing backdrop click behaviour - -![](/gdevelop5/dialogs.png) - -This allows you to choose what will happen when the backdrop (The faded part outside a window) is clicked. - -If **No changes** is selected, clicking the backdrop won't close the window - -If **Cancel changes** is selected, the changes done in the current window will be **abandoned** (Only happens in some windows) - -If **Apply changes**(Default) is selected, the changes done in the current window will be **applied**(Only happens in some windows) - -##Hints and Explanations - -GDevelop shows some hints/explanations for some features in the UI. You can toggle them off if you don't want them to be shown. - -Example of an hint/explanation: ![](/gdevelop5/hints2.png) - -## Keyboard shortcuts - -There is a separate page discussing about keyboard shortcuts and the command palette - -See, [command palette and shortcuts](/gdevelop5/interface/command-palette-and-shortcuts) - -## Changing Language - -You can choose what language the interface should use. - -Go to the **Start Page** - -![](/gdevelop5/changinglanguage1.png) - -You can choose from the options of languages from the list. - -Some language might not be fully supported, you can see the estimate of how much has been translated. - -You can help translate GDevelop to your language and report any mistakes. It would be much appreciated. - -![](/gdevelop5/changinglanguage2.png) diff --git a/docs/ja/gdevelop5/publishing/android_and_ios.md b/docs/ja/gdevelop5/publishing/android_and_ios.md deleted file mode 100644 index fee6b61621..0000000000 --- a/docs/ja/gdevelop5/publishing/android_and_ios.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: ゲームをAndroidおよびiOSに公開する ---- -# ゲームをAndroidおよびiOSに公開する - -GDevelopを使用すると、AndroidやiOSを含むさまざまな形式でゲームを公開できます。ゲームをエクスポートするには、GDevelopインターフェースの上部にあるメニューから[ファイル]をクリックし選択します。任意のエクスポートオプションを選択します。この場合、 表示されるオプションのパネルから**AndroidとiOS**を選択します。 - -![](/gdevelop5/publishing/filemenuexport.png) - -## ゲームをパッケージ化する準備ができていることを確認してください! - -ゲームがAndroidおよびiOS用にエクスポートできる状態であることを確認することが重要です。 - -- [プロジェクトマネージャー](/gdevelop5/interface)から、アクセス可能なゲームプロパティで、有効なパッケージ名を入力してください。パッケージ名は、次のような識別子ですcom.yourname.gamename。ウェブサイトのアドレスのようなものですが、逆になっています。次の条件があれば、任意のパッケージ名を選択できます。 - -  - - * iOSまたはAndroidの別のゲームまたはアプリケーションでは同じ名前は使用できません。 - * 文字・数字・ドットのみで書かれています。単語の間にドットを1つだけ入れます(たとえば、com..mygameまたは..mygameは無効です)。この識別子は最大2〜5ワードにしてください。 - * 必要なアイコンが含まれていることを確認してください。 - -## エクスポートの開始 - -[ファイル]メニューで、[エクスポート]を選択します。次に、**Android(およびiOSが近日公開予定)**を選択します。 ![](/gdevelop5/publishing/android-ios-export-option.png) - -### アカウントをお持ちでない場合は作成してください - -Androidのパッケージを使用するには、[GDevelopのアカウント](/gdevelop5/interface/profile)が必要です。アカウントを持っていない場合は、「アカウントを作成」をクリックし、メールアドレスを入力してパスワードを選択します。 - -準備ができたら、**Android向けパッケージ**をクリックします。 - -![](/gdevelop5/publishing/package-android.png) 次に、ゲームがビルドされるのを待ちます。いくつかのステップがあり、その間にゲームがエクスポート、圧縮、オンラインビルドサービスにアップロードされ、ビルドされます。 - -最後に、Androidにインストールできる.apkファイルを取得するための**ダウンロード**ボタンがあります - -## Androidスマートフォンにゲームをインストールします - -Androidスマートフォン/タブレットをコンピューターに接続し、APKファイルをデバイスのフォルダーのどこかに配置します。または、クラウドストレージ([Dropbox](https://www.dropbox.com/), [Google Drive](http://drive.google.com/), [OneDrive](https://onedrive.live.com/about/en-in/)...)にAPKを保存し、デバイスにダウンロードすることもできます。 - -APKをインストールする前に、[設定]\> [セキュリティ]に移動し、[ 不明なソース ]を有効にします。これにより、Google Playストアにまだ登録されていない場合でも[.apkファイルをインストール](。 - -最後に、ファイルマネージャーを開き、APKを含むフォルダーに移動し、タッチしてインストールを開始します。 - -![](/gdevelop5/publishing/launch-apk.png) - -アプリがインストールされました。 - -![](/gdevelop5/publishing/installation-apk.png) - -### ゲームをプレイ - -はい、ゲームがスマートホンにうまくインストールされました!他のアプリやゲームと同じように起動します。 - -GDevelopから直接Android用のゲームを 作成しました!簡単に更新できます。ゲームを再度エクスポートしてパッケージ化し、APKを携帯電話またはタブレットに送信してインストールするだけです。 - -## より多くのパッケージングが毎日できるよう登録しましょう - -登録ユーザーとして、Android向けに毎日2回ゲームをパッケージ化できます。 - -ゲームでさらに作業している場合は、アカウントをアップグレードして、毎日より多くのパッケージをアンロックすることができます!Indieサブスクリプションでは1日に10回、Proサブスクリプションでは最大70回エクスポートできます。 - -サブスクリプションを取得すると、GDevelopの作成者は引き続き作業を進めることができ(GDevelopはオープンソースソフトウェアです)、ゲームをWindows / macOS / Linux用にパッケージ化することもできます。 - -## ゲームをストアで公開する - -Android用のゲームを構築してテストしたら、Google Playストアで公開できます。 [Google Play Storeでの公開方法](/gdevelop5/publishing/android_and_ios/play-store)も御覧ください。 - -また、[Amazonアプリストアでの公開](/gdevelop5/publishing/publishing-to-amazon-app-store)も参考にして下さい。 diff --git a/docs/ja/gdevelop5/publishing/index.md b/docs/ja/gdevelop5/publishing/index.md deleted file mode 100644 index d5d3195cc0..0000000000 --- a/docs/ja/gdevelop5/publishing/index.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: ゲームの公開 ---- -# ゲームの公開 - -GDevelopを使用すると、最新のプラットフォームにゲームを公開できます!、ゲームをまずエクスポートする必要があります。 - -ゲームをエクスポートするには、GDevelopインターフェイスの上のメニューバーで[ファイル]をクリックします。表示されるポップアップリストから[エクスポート]オプションを選択します。 -![](/gdevelop5/file-export-menu.png) - -次に、選択可能な複数のオプションが表示されます。 -![](/gdevelop5/export-options.png) - - * **[Android ( iOSも準備中)](/gdevelop5/publishing/android_and_ios):** Android向けのゲームが作成されます(iOSのサポートは近日中に提供されます)GDevelopオンラインサービスを使用して、オンラインに送信し、ダウンロードリンクからAndroidにインストールして [Playストアで公開](/gdevelop5/publishing/android_and_ios/play-store)できます(iOSの場合は近日中にApp Storeで)または [Amazon App Storeに公開](/gdevelop5/publishing/publishing-to-amazon-app-store)できるようにします。 - * **[Facebookインスタントゲーム(Messenger)](/gdevelop5/publishing/publishing-to-facebook-instant-games):** Facebookインスタントゲームにアップロードしてメッセンジャーでプレイし、友達と共有して世界中に公開できるように、ゲームをビルドします。 - * **[Web (アップロード)](/gdevelop5/publishing/web)**: このオプションは、ゲームをGDevelopホスティングに無料でアップロードします。リンクボタンをクリックするだけです。誰とでも共有できます - * **[Windows, macOS & Linux](/gdevelop5/publishing/windows-macos-linux)**: このオプションは、ゲームをWindows、macOSまたはLinuxアプリケーション用に、GDevelopオンラインサービスを使用してオンラインで作成し、ゲームを配布できるようにリンクを送信します。 - -もっと詳しいユーザー向けのエクスポートオプションもあります。 - - * **[ローカルフォルダにエクスポート](/gdevelop5/publishing/html5_game_in_a_local_folder):** このオプションを使用すると、ゲームをPCのフォルダーにエクスポートして、必要なサーバーに手動でアップロードしたり、Electronなどのツールを使用してゲームをデスクトップまたはモバイルアプリケーションとして手動で作成したりできます。これは [Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store), [Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) や [Itch.io](/gdevelop5/publishing/publishing-to-itch-io)などに対応します。 - * **[iOS & android (手動l)](/gdevelop5/publishing/android_and_ios_with_cordova):** このオプションは、Cordovaプロジェクトとして使用する準備ができたゲームをエクスポートします。その後、Cordovaコマンドラインツールを使用して、AndroidおよびiOS用のゲームを構築できます。 - * **[Windows, macOS and Linux (手動)](/gdevelop5/publishing/windows-macos-linux-with-electron):** このオプションは、Electronプロジェクトとして使用する準備ができたゲームをエクスポートします。その後、コマンドラインツールを使用して、Windows、macOS、またはLinux用のゲームを構築できます。 - -その他のリリースオプション: - - * **[Ubuntu Touch (モバイル版)](/gdevelop5/publishing/ubuntu-touch-packaging):** このガイドでは、Ubuntu Touchのクリックパッケージとしてゲームをパッケージ化するプロセスについて説明します。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/publishing/web.md b/docs/ja/gdevelop5/publishing/web.md deleted file mode 100644 index 33179a28c2..0000000000 --- a/docs/ja/gdevelop5/publishing/web.md +++ /dev/null @@ -1,16 +0,0 @@ ---- -title: Webでゲームを公開(オンラインでアップロード) ---- -# Webでゲームを公開(オンラインでアップロード) - -GDevelopホスティングサーバーを使用すると、ゲームをエクスポートしてWebで公開できます。ホスティングサーバーは無料です。ゲームは数日間利用可能になります! - -サーバーにアップロードするには、\[ファイル\]メニューで\[エクスポート\]を選択します。次に、**Web(オンラインでアップロード)**を選択し、\[エクスポート \]をクリックしてゲームをアップロードします。 - -![](/gdevelop5/publishing/export-online.png) ゲームはGDevelopホスティングサーバーでホストされます。これらのサーバーは、Amazonの堅牢なサービスに支えられています。アップロードしたゲームは、数日間ゲームを共有するために使用できます。このサービスは無料です。 - -デフォルトでは、リンクは**private**であることに注意してください。どこでも共有されていません。必要に応じて、ゲームへのリンクを共有できます。少数の知り合いまたはより多くの人々と共有します。 - -## 他のプラットフォーム(iOS、Android、Windows、macOS、Linux)へのエクスポート - -[他のエクスポートオプション](/ja/gdevelop5/publishing) を参考にして下さい。 diff --git a/docs/ja/gdevelop5/publishing/windows-macos-linux.md b/docs/ja/gdevelop5/publishing/windows-macos-linux.md deleted file mode 100644 index 26812d262d..0000000000 --- a/docs/ja/gdevelop5/publishing/windows-macos-linux.md +++ /dev/null @@ -1,50 +0,0 @@ ---- -title: ゲームをWindows/macOSLinux用に公開する ---- -# ゲームをWindows/macOSLinux用に公開する - -GDevelopは、ゲームをWindows、macOS、さらにはLinuxに公開できます! - -ゲームをエクスポートするには、GDevelopインターフェースの上部にあるメニューから\[ファイル\]をクリック/選択します。ドロップダウンリストから\[エクスポート\]オプションを選択します。 - -![](/gdevelop5/publishing/filemenuexport.png) - -## ゲームをパッケージ化する準備ができていることを確認してください! - -ゲームが実行可能ファイルとしてエクスポートする準備ができていることを確認することが重要です。 - -* ゲームプロパティ([プロジェクトマネージャー](/gdevelop5/interface)からアクセス可能)で、有効なパッケージ名を入力してください。パッケージ名はこのような識別子です:com.yourname.gamename。 - - * iOSまたはAndroidの別のゲームまたはアプリケーションでは使用されません。 - * 文字、数字、ドットのみで書かれています。(例えば、単語の間に1個のドットを置くcom..mygameか、..mygameなどは有効ではありません)、そして2-5の言葉の最大の識別子を制限します。 - -* ゲームのプロパティで、有効なバージョン番号(1.0.0、1.0.1など)を入力します -* アイコンを設定したことを確認してください - -## エクスポートを開始 - -\[ファイル\]メニューで、\[エクスポート\]を選択します。次に、* Windows/macOS/Linux*を選択します。 - -### アカウントをお持ちでない場合は作成してください - -パッケージを作成するには、[GDevelopアカウント](/gdevelop5/interface/profile)が必要です。アカウントを持っていない場合は、「アカウントを作成」をクリックし、メールアドレスを入力してパスワードを選択します。 - -### プラットフォームを選択して、エクスポートを開始します - -ゲームをエクスポートするプラットフォームを選択します。Windowsの場合、単一の実行可能ファイルとzipファイルのどちらを使用するかを選択できます。 ![](/gdevelop5/publishing/gdevelop-export-choose-platform.png) - -準備ができたら、**エクスポート** をクリックします。 - -次に、ゲームがビルドされるのを待ちます。選択したプラットフォームによっては、数分かかる場合があります。いくつかのステップがあり、その間にゲームがエクスポート、圧縮、オンラインビルドサービスにアップロードされ、ビルドされます。 - -終了すると、ゲーム用に選択された各プラットフォームのダウンロードボタンが表示されます。ダウンロードボタンを使用して、ゲームにプレイするために配布できるファイルを受信します。 - -### ゲームをプレイ - -* Windowsでは、ゲームの名前を持つ実行可能ファイルをダブルクリックして起動します。 -* macOSでは、アーカイブを抽出し、アプリをダブルクリックして起動します。 -* Linuxでは、 [AppImageをインストール](https://appimage.org/) して起動します。 - -!!! note - - WindowsおよびmacOSでゲームを起動すると、セキュリティに関する通知が表示される場合があります。とにかくゲームを実行することを選択します。macOSでは、\[ システム環境設定 \]の\[ セキュリティとプライバシー \]タブを開く必要がある場合があります。 diff --git a/docs/ja/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/ja/gdevelop5/tutorials/basic-game-making-concepts.md deleted file mode 100644 index 36e72da1a1..0000000000 --- a/docs/ja/gdevelop5/tutorials/basic-game-making-concepts.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: ゲーム作りの基本コンセプト:GDevelop を使うために知っておきたいこと ---- -# ゲーム作りの基本コンセプト:GDevelop を使うために知っておきたいこと - -GDevelop の基本コンセプトはシンプルです。ソフトを使いはじめるにあたって、この後の説明を読んでおいてください。GDevelop をまだ入手していない場合は、[ここから最新バージョンをダウンロードしてください](https://gdevelop.io/download)。 - -## 画面に表示されるもの:オブジェクト - -*画面に表示されるもの*はすべて**「オブジェクト」**と呼ばれます。オブジェクトの種類が違うと、それによって表示されるゲーム要素の種類も変わります。たとえばゲームグラフィックの多くは「スプライト」と呼ばれるオブジェクトです。テキストは「テキスト」オブジェクトで表示し、炎や火花のようなエフェクトは「パーティクルエミッター」が生成します。 - -## オブジェクトを表示する位置:座標 - -GDevelop の画面/シーン上に表示されるオブジェクトは、**X 座標と Y 座標**を持ちます。これらの座標は、_デカルト平面_上の水平位置(X 軸)と垂直位置(Y 軸)に対応しています。 - -X 座標は、左に行くと_減少_し、右に行くと_増加_します。Y 座標は、下に行くと_増加_し、上に行くと_減少_します。 - -![](/gdevelop5/tutorials/basic-game-making-concepts/pasted/20201015-145909.png) - -オブジェクトを移動したり回転するには、その角度を度数で指定します。次の図は GDevelop に回転角度を指定する方法を示しています。 - -![](/wiki/pres_coord2.png) - -角度はマイナスの値で表現されることもあるという点に注意してください。たとえば -90 度は 270 度と同じ角度です。 - -**サイン**や**コサイン**のような三角関数を使用する場合は、角度を**ラジアン**で指定します(1 ラジアン=180 / PI 度、1 度=PI / 180 ラジアン。PI は円周率を表し、値は約 3.14159)。 - - -## イベントとそれがいかにしてオブジェクトを選択するか - -イベントは、ゲームのルールを作成するために使います。これは条件とアクションから構成されます。そして条件とアクションの大半は、オブジェクトを参照します。 - -* 条件はどのオブジェクトが対象になるかを**テスト**します。 -* アクションは対象オブジェクトを**操作**します。位置や外観などを変更できます。 - -条件を指定しないと、すべてのオブジェクトがアクションの操作対象になります。あるイベントで最初にオブジェクトを使うときは、GDevelop はシーンから指定された名前の**すべてのオブジェクト**を検査し、ときにはそれを変更します。 -同じイベントの 2 回目以後では、GDevelop は前回の条件で抽出されたオブジェクトだけを検査し、変更します。 - -たとえば下のイベントには条件がありません。そのため、「Square」という名前の**すべての**オブジェクトが削除されます。 - -![](/gdevelop5/tutorials/delete-square.png) - -次のイベントには条件があります。X 座標が 100 ピクセル未満の「Square」オブジェクト**だけ**を削除します。 - -![](/gdevelop5/tutorials/delete-square-condition.png) - -!!! tip - - **やってみよう!** 🎮次のサンプルをオンラインで実行してみましょう: https://editor.gdevelop.io/?project=example://object-selection - -[![](/gdevelop5/tutorials/objectselection-pickobject.png)](https://editor.gdevelop.io/?project=example://object-selection) - -## イベント:順番が重要 - -イベントの順番(実行順)は**とても重要です**。 - -一番上にあるイベントが一番最初に実行されます。ゲームが表示されるたびに、イベントは毎回実行されます。この表示処理単位はフレームと呼ばれ、1秒間に60回実行されます。次の2つの例は、同じ**ではありません**。 - -![](/gdevelop5/tutorials/create-then-delete-square.png) - -![](/gdevelop5/tutorials/delete-then-create-square.png) - -* 上のイベントブロックでは、座標 X が 100 で Y が 200(100;200)の位置に「Square」オブジェクトを作成します。それから作成したものをすぐに削除します。「Square」は画面上に**表示されません**。作成された直後に削除されるからです。 -* 下のイベントブロックでは、まずすべての「Square」オブジェクトを画面から削除します。次に座標 X が 100 で Y が 200(100;200)の位置に「Square」を1個作成します。このイベントでは Square が画面に**表示されます**(次のフレームで削除されますが、またすぐに再作成されます)。 - -## ビヘイビア:オブジェクトのための定義済みルールとロジック - -**ビヘイビア**は、何らかの*定義済みのロジック*でオブジェクトを拡張します。ビヘイビアはとても簡単に使えて、単純なタスクを自動化するようなシンプルな使い方から、もっと複雑で高度な使い方まで、幅広く利用できます。例を挙げましょう。 - -* ビヘイビアで*画面の外に出た*オブジェクトを*自動的に*削除できます(ゲームのメモリ使用量を抑制)。 -* 別のビヘイビアで*画面上のオブジェクトを矢印キーで移動*できます。 -* さらに別のビヘイビアで、画面上のオブジェクトをマウスやタッチ操作で*ドラッグ移動*できます。 -* *Physics* ビヘイビアは高度なビヘイビアの例です。物理法則にのっとったリアルな挙動でオブジェクトを移動できます。 - -**オブジェクト**と**ビヘイビア**はイベントで操作できます。くわしくは[オブジェクト](/ja/gdevelop5/objects)と[ビヘイビア](/ja/gdevelop5/behaviors)を読んでみてください。 - -!!! tip - - 自分のニーズに応じて*カスタム ビヘイビア*を作成することもできます。これは作っているゲームの規模が大きくなってきたときにもお勧めです。オブジェクトがどのように動作するかというロジックをカスタム ビヘイビアに集約することで、イベントシートの肥大化を防げるからです。[こちらのチュートリアル](/ja/gdevelop5/tutorials/how-to-make-behavior)も参考になるでしょう。 - -## オブジェクトの移動:組み込み機能のフォースを使う - -オブジェクトの移動は、**フォース**という仕組みで実現できます。フォースはオブジェクトを「押す」作用のことです。 - -次のような指定ができます。 - - * X 軸と Y 軸上のフォースの座標(ピクセル単位のベクトル) - * または極座標(度数単位のフォースの角度とピクセル単位の距離) - * フォースが瞬間的(オブジェクトを「1 回だけ」押す)か、永続的(フォースが削除されるまで、オブジェクトをずっと押し続ける)か。 - -### 例 - -このオブジェクトを下に向かって動かしたいとしましょう。 - -![](/wiki/pres_vector.png) - -フォースの X/Y 座標を指定します。X 座標は 0、Y 座標は 150 ピクセルにします。あるいは極座標を指定して、角度を 90 度、距離を 150 ピクセルにしても同じことです。 - -### オブジェクトを移動する他の方法 - -物理エンジンやパスファインディングなど、一部の「ビヘイビア」にはオブジェクトを移動させる機能を持つものがあります。これらを使う場合は、組み込みのフォースシステムと併用せず、ビヘイビアが提供するアクションのみを使用することをお勧めします。 - -!!! tip - - **やってみよう!** 🎮次のサンプルをオンラインで実行してみましょう: https://editor.gdevelop.io/?project=example://move-object-with-physics - -[![](/gdevelop5/tutorials/moveobjectwithphysics.png)](https://editor.gdevelop.io/?project=example://move-object-with-physics) - -!!! note - - オブジェクトを移動するこれらの他の方法については、[こちらのページ](/gdevelop5/tutorials/how-to-move-objects)でくわしく説明されています。 - -## メモリ上に情報を格納する:変数 - -変数には**データ**を入れておくことができます。データとは、たとえばゲームで使う数字や文字列がそれです。比喩的には、変数はメモをしまっておける引き出しや箱のようなものと考えてもいいでしょう。それが_文字列_や_数字_の形式で表現できる限り、どんなデータでも変数に保存できます。ゲーム中のプレイヤーの残機数やハイスコア、残り銃弾数、倒した敵の数等、なんでも変数に入れておけます。一般的には変数に数値を格納することが多くなるでしょう。 - -![](/wiki/pres_variable.png) - -アクションと条件では、変数の_値_を検査したり変更します。 - -#### 変数はどこに保存されますか?(変数の「スコープ」) - -変数の_スコープ_は、変数にアクセスできる範囲を定義します。GDevelop には 3 種類の変数スコープがあります。 - -* **グローバル**変数はすべてのゲームシーンからアクセスできます。たとえばプレーヤーのスコアをグローバル変数に保存すると、違うレベルやシーンからもアクセスできます。 -* **シーン**変数はそれが作成されたシーン内でのみアクセスできます。あるシーンの中だけでしか必要ないデータに使用します。たとえば時間制限のあるレベルやシーンの残り時間をシーン変数で管理します。 -* **オブジェクト**変数は1つのオブジェクト内でのみ有効です。たとえばヒーローに「Health」や「Ammo」の変数を持たせます。 - -!!! note - - 変数に関しては次のページ[変数](/ja/gdevelop5/all-features/variables)も参照してください。変数はゲームでとてもよく使われます。多くのサンプルやチュートリアルで、使用例を見ることができます。 - -!!! tip - - 変数の使い方を説明したビデオチュートリアルを見たい場合は、[Variables explained for Non-programmers](https://www.youtube.com/watch?v=SRfpBTgx-PY) にアクセスしてみてください。 - -## 高度な概念:最後のフレームからの「経過時間」(TimeDelta) - -ゲームはイベントを評価して、毎秒複数回 画面を再描画します。つまり一瞬のあいだにゲームが_リフレッシュ_し、_アップデート_するわけです。これがどの頻度で繰り返されるかは、実行中のコンピューターの性能に依存します。コンピューターが遅ければ1秒間に 25 フレームかもしれませんし、速ければ 60 フレームでしょう。GDevelop はどのコンピューターでも同じフレーム数になるように調整していますが、それでもコンピューターによってある種の処理速度が変わることがあります。たとえば、数学的な計算や移動の描画がそうです。 - -スピードの変更を一定にするために //`TimeDelta()` 式//を使ってください。これは最後のフレームからの経過秒数を返します。 -下記は、やってはいけない例です。 - -![](/gdevelop5/tutorials/update-life-no-timedelta.png) - -次のようにすると、うまくいきます。 - -![](/gdevelop5/tutorials/update-life-timedelta.png) - -* 最初のイベントでは、ゲームが再描画されるたびに変数に 20 を加算しています(最大60回/秒)。しかし変数の増加速度がコンピューターによって変わってしまうようなイベントを利用するのは**間違っています**。たとえば 10 秒後に変数の値がどうなっているか、誰にも予測できません。それはゲーム中に描画されるフレーム数によって変わるからです。 - -* 2 番目のイベントは**正確で信頼性があります**。数値 300 を TimeDelta() と掛け算していますね。この結果、変数はすべてのコンピューターで同時に増加します。TimeDelta() が秒単位の時間を返すので、増加量を正確に計算できるのです。この場合は、変数が毎秒 300 単位ずつ増分します。したがって 10 秒後には 3000 増加するということを予測できます。その間のフレーム数がいくつかを気にする必要はありません。 - -!!! tip - - GDevelop がゲームを最大速度 60 フレーム/秒で実行している限り、最初のイベントのやり方を使っていたとしても、そこに問題があることには気づかないでしょう。だとしても、この件を意識して `TimeDelta()` 版の方を使うように心がけるのが賢いやり方です。 - -**アドバイス:**値を継続的に追加していく場合は、_TimeDelta()_ を使ってください。一回きりのアクションであれば、TimeDelta を使わず任意の値を使ってもかまいません。たとえば衝突したオブジェクトを消す場合など、ゲームの速度に依存しなければ問題ありません。 - -!!! danger - - フォースを使ってオブジェクトを移動する場合は、GDevelop が自動的に内部処理するので、TimeDelta() を使う必要はありません。 - -## さて…あなたがいま知っておくべきことは、これでほぼ全部です - -➡️ GDevelop で本物のゲームを作る方法を説明した、もっとたくさんの**[チュートリアル](/ja/gdevelop5/tutorials)**があります。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/endless-runner.md b/docs/ja/gdevelop5/tutorials/endless-runner.md deleted file mode 100644 index e3dcae7716..0000000000 --- a/docs/ja/gdevelop5/tutorials/endless-runner.md +++ /dev/null @@ -1,360 +0,0 @@ ---- -title: エンドレスランナーゲームの初心者向けチュートリアル ---- -# エンドレスランナーゲームの初心者向けチュートリアル - -> ![](/gdevelop5/tutorials/endlessrunnergame_intro.png) このチュートリアルは、GDevelopの仕組みを理解するのに役立ちます。このチュートリアルでは、非常に基本的なエンドレスランナーゲームを作成します。このゲームでは、プラットフォームがランダムに生成され、プレイヤーが画面外に押し出されないように移動する必要があります。プレイヤーが行動しているときにスコアを更新するスコアシステムもあります。 -> -ソフトウェアがどのように機能するかの基本を知るために、詳細については[](/ja/gdevelop5/getting_started)を参考にして下さい。 - -![](/gdevelop5/tutorials/gdevelopstartscreen.png) - -## GDevelopをダウンロード - -GDevelopをお持ちでない場合は、公式Webサイトからダウンロードしてください: : [GDevelop App](http://gdevelop-app.com) - -上記のページでGDevelopの最新バージョンを常に確認し、常にソフトウェアを更新することをお勧めします。ソフトウェアをダウンロードしてインストールした後、プログラムを起動すると、「スタート」画面が表示されます。 - -## 主なゲーム要素 - -#### ☆プレイヤースプライト - -![](/gdevelop5/tutorials/p1_stand.png) これが、ユーザーである私たちがコントロールする主人公です。プレイヤーのスプライトは、障害物を避けて画面内にとどまるために「ジャンプ」することができます。プレイヤーは「停止」「走る」「ジャンプ」のアニメーションが用意されています。 - -#### ☆ステージや障害物 - -![](/gdevelop5/tutorials/endlessrunnerplatform.png) これらは、プレーヤースプライトが回避する必要がある移動ブロックです。これらのブロックはランダムに配置されています。 - -#### ☆スコア表示 - -このテキストブロックは、プレーヤースプライトの動作中にスコアを更新して表示します。 - -> -> -> #### リソースをダウンロードする -> -ゲームのキャラクター、プラットフォーム、および背景を作成するために使用できるゲームのパーツが必要になります。このゲームに必要なすべてのリソースは次からダウンロードして下さい ![here](/gdevelop5/tutorials/endless_runner_resources.rar). - -## ステップ1:新しいプロジェクトの作成 - -\[スタート\]画面で、\[新しいプロジェクトの作成\]ボタンをクリックします。これにより、「新しいゲームの作成」ダイアログボックスが表示されます。次に、下にスクロールして\[空のゲーム\]タブを見つけます。それをクリックして、新しいプロジェクトを開きます。 ![](/gdevelop5/tutorials/screeenshot_na_test.png) - -プロジェクトを保存するフォルダをカスタマイズすることもできます。 ![](/gdevelop5/tutorials/store_location_for_endless_runner.png) - -\[フォルダの選択\]オプションをクリックして、選択した場所を選択します。ゲームプロジェクトファイルはこの場所に保存されます。 - -## ステップ2:新しいシーンを作成する - -ゲームは、ゲームプレイのさまざまなシナリオのシーンに依存しています。複数のシーンを作成して使用できますが、このチュートリアルでは1つのシーンのみが必要です。新しいシーンを作成しましょう。 ![](/gdevelop5/tutorials/new_scene_creation_for_endless_runner.png) - -最初の空のシーンを作成「+」をクリックします。 - -作成したシーンの右横にある3つのドットをクリックしてをクリックすると、シーンの名前をカスタマイズできますRename。 - -> 前述のゲームリソースを既にダウンロードしていることを確認してください。ゲームスプライトにはそれが必要になります。tip - -## ステップ3:新しいシーンでの作業 - -前の手順で作成したシーンをクリックして、**シーンエディター**を開きます。これは、ゲーム要素を作成する場所です。 ![](/gdevelop5/tutorials/new_scene_for_endless_runner.png) - -「オブジェクト」のタブと\[プロパティ \]タブが表示されているのを確認できます。 ![](/gdevelop5/tutorials/screenshot_20190523182052.png) ![](/gdevelop5/tutorials/screenshot_20190523182628.png) 万が一これらのタブが表示されない場合は、左側にあるアイコンをクリックして「オブジェクト」タブを開きます。同様に、右側のアイコンをクリックして「プロパティ」タブを開きます。 - -> GDevelopの最新バージョンでは、ゲームプロジェクトの場所にないアセット(データ)をロードしようとすると警告が表示されます。ゲームと同じフォルダー(またはサブフォルダー)に必ず画像ファイルを配置してください。ゲームを移動したりすると、画像へのリンクが解除されます。ゲームのフォルダーにある提供されたアーカイブを解凍し、それらの画像を使用します。 tip - -## ステップ4:プレーヤースプライトを作成する - -ゲームの主要な要素として、ユーザーがプレイヤーキャラクターを制御する必要があります。これはエンドレスランナーゲームであるため、走り続け生き残るために、邪魔になる障害物を回避するためにキャラクターをジャンプさせます。 ![](/gdevelop5/tutorials/screenshot_20190523183140.png) - -\[ オブジェクトの追加\]タブをクリックして 、最初のオブジェクトを作成します。さまざまなタイプのオブジェクトを示すダイアログボックスが開きます。キャラクターには、スプライトタイプのオブジェクトが必要です。このオブジェクトでは、「停止」「ジャンプ」または「走る」のキャラクターのアニメーションを追加できます。 ![](/gdevelop5/tutorials/screenshot_20190523183646.png) - -「スプライト」オプションをクリックすると、スプライトオブジェクトのプロパティを変更するダイアログボックスが表示されます。 次に、キャラクターにアニメーションを追加します。最初のアニメーションを追加するには、「アニメーションの追加」または「+」ボタンをクリックするだけです。 ![](/gdevelop5/tutorials/screenshot_20190523184135.png) - -新しい空のアニメーションのウインドウが表示されます。次に、ここにスプ​​ライト画像を読み込んでアニメーションを作成します。お気づきのとおり、アニメーションには初期状態では#0とついた識別子があり、アニメーションにも名前を付けることができます。 - -最初のアニメーションでは、停止中のアニメーションを作成します。大きな「+」ボタンをクリックして、ダイアログボックスを開いて画像ファイルをロードします。複数の画像を追加することもできますが、この停止中のアニメーションでは1つしか必要ないことに注意してください。 - -ダウンロードして解凍して展開したアーカイブから画像ファイル「p1_stand.png」を 選択します。ファイルを選択すると、アニメーションウインドウは次のようになります。 ![](/gdevelop5/tutorials/screenshot_20190523184730.png) - -Spriteオブジェクトに「Player」という名前を付けていることに注意してください。同様に、アニメーションに「idle」という名前(停止中の意味)を割り当てました。名前をつけるのは必須ではありませんが、プロジェクト内のスプライトに名前を付けると、プロジェクトが整理され、使いやすくなります。 - -最初のアニメーションが完成しました。それでは、「ジャンプ」と「走る」アニメーションを追加しましょう。ダウンロードしたアーカイブで提供されている画像を使用して試してみてください。 「走る」アニメーションには複数のフレーム画像がありますが、「ジャンプ」アニメーションには、提供されたアーカイブファイルには1つの画像しかありません。3つのアニメーションをすべて完了すると、次のようになります。 ![](/gdevelop5/tutorials/screenshot_20190523185739.png) - -ご覧のとおり、「走る」(Run)アニメーションには複数のフレームがあります。 ![](/gdevelop5/tutorials/output_xfxzmp.gif) 各フレームには個別の画像ファイルがあります。実行すると、すべてのフレームが連続して再生され、実行中のアニメーションが作成されます。アニメーションの実行は、左の画像に示すアクションのようになります。 - -次に、プレーヤースプライトの動作を追加します。ビヘイビアはオブジェクトに機能を追加します。プレイヤースプライトのダイアログボックスの「ビヘイビア」(動作の意味)タブをクリックします。次に、「クリックしてビヘイビアをオブジェクトに追加する」をクリックして、ビヘイビアを作成します。次に、ビヘイビアの「プラットフォームキャラクタ」の動作タイプを選択します。 プラットフォームキャラクタとは、マリオタイプのキャラクタが画面中ステージを動き回るタイプのキャラクタです。 ![](/gdevelop5/tutorials/screenshot_20190524121809.png) - -ビヘイビアエディターメニューが開きます。ここでは、この動作のデフォルトコントロール機能のチェックを外してください。デフォルトのコントロールプロパティは、左、右、ジャンプなど、プレイヤーキャラクターに必要なすべての動きを追加します。キャラクターを左または右に移動させたくないが、ジャンプアクションのみが必要なため、このプロパティを無効にし、イベントを使用してジャンプ移動を作成します。 - -![](/gdevelop5/tutorials/screenshot_20190524122246.png) - -これで、プレーヤースプライトの作成は完了です。複数のフレームが使用されたアニメーション、つまり、この場合の実行中のアニメーションに対してループ機能を有効にすることを忘れないでください。ループしない場合、アニメーションは1回のみ再生され、最後のフレームで停止します。 - -## ステップ5:ステージ障害物ブロックの作成 - -ステージ障害物のブロックはプラットフォームとも言い、キャラクターが衝突したり上を歩いたりできるオブジェクトです。このゲームでは、ブロックはプレイヤースプライトが回避しなければならない障害ブロックとなります。プラットフォームオブジェクトを作成するには、\[オブジェクト\]タブでクリックして新しいオブジェクトを追加し、タイルスプライトタイプのオブジェクトを選択します。モザイクのように繰り返される画像です。 ![](/gdevelop5/tutorials/tiled_sprite_for_endless_runner.png) - -タイルスプライトオブジェクトを選択すると、作成したプレイヤースプライトのようなダイアログボックスが表示されます。「画像を選択」エリアをクリックして、障害物ブロックの画像ファイル「Platform.png」を選択します。ファイルの読み込みが完了すると、ダイアログボックスは次のようになります。 - -![](/gdevelop5/tutorials/screenshot_20190615205900.png) - -また、デフォルトのオブジェクト名を「Platform」に変更していることに注意してください。現時点では、デフォルトの幅を*193*に、デフォルトの高さを*40*に変更します。ここで、プレーヤースプライトのビヘイビアを追加したときと同様の方法で、このオブジェクトのビヘイビアを追加する必要があります。\[ビヘイビア\]タブに移動し、クリックしてビヘイビアをオブジェクトに追加し、\[ビヘイビアのプラットフォームタイプ\]を選択します - -![](/gdevelop5/tutorials/screenshot_20190524122730.png) - -完了したら、 「適用\]」クリックします。ここで作成したオブジェクトを、シーンに配置します。 - -## ステップ6:シーンにオブジェクトを追加する - -\[オブジェクト\]タブから**障害物ブロック(プラットフォーム)**と**プレーヤー**のスプライトを ドラッグ&ドロップし、シーン内に配置します。 - -![](/gdevelop5/tutorials/screenshot_20190523193203.png) - -これは、両方のオブジェクトを配置した後のシーン空間の様子です。表示される黒い境界線は、ゲームウィンドウのサイズです。このスペース内の要素は、ユーザーにのみ表示されます。「プロジェクトマネージャー」 → 「プロパティ」に移動してウィンドウのサイズを変更できますが、今のところはそのままにしておきます。 - -シーン空間で障害オブジェクトをクリックし、「右クリック → コピー」または「Ctrl + C」(Windowsの場合)を実行してオブジェクトをコピーします。シーン空間を満たすために複数の障害物を作成します。コピーしたら、右クリック → 貼り付けを実行して、オブジェクトをシーンスペースに複製します。シーンを埋めるために複数回行います。シーンは次のようになります。 ![](/gdevelop5/tutorials/screenshot_20190523193924.png) - -障害物をよりスムーズにランダムに生成するために、シーン空間の右側にいくつかの障害物/プラットフォームを作成する必要があります。 最後に、ゲームにスカイボックスまたは背景を追加します。これはスプライトタイプのオブジェクトです。このオブジェクトを自分で追加してみてください。ここで使用されているアセットはbackground2.pngです。シーンは次のようになります。追加の障害物が作成されていることに注意してください。背景画像を他のすべてのアセットの背後に配置するには、Zオーダーを最小にする必要があります。Zオーダーは、左側の\[ プロパティ \]タブで変更できます。 Zオーダーとは画面上での表示の優先度です。 - -![](/gdevelop5/tutorials/screenshot_20190523194718.png) - -ここからが最も興味深い部分です。ゲームを機能させるときが来ました。次のステップに進む前に、[イベント](http://wiki.compilgames.net/doku.php/ja/gdevelop5/events) についていくつかのことを学んでください。 - -## ステップ7:イベントを作成する/ゲームを機能させる - -イベントは、GDevelopでゲームのルールを作成するために使用するものです。これが、従来のゲームエンジンと比較してGDevelopを特別なものにしている理由です。GDevelopのイベントを使用すると、プログラミングの知識や経験がなくてもゲームを視覚的にプログラミングできるため、どんな人でも実際のゲームを作成しできるようになります。 - -![](/gdevelop5/tutorials/screenshot_20190523232323.png) - -{{:gdevelop5:tutorials:screenshot_20190523232911.png?nolink \|} }最初のイベントを作りましょう。上記のタブをクリックして、NewScene(Events)タブに移動します。次に、左側に表示されるアイコンをクリックして、空のイベントを作成します。 - -最初のイベントでは、上矢印キーが押されたときにプレーヤースプライトをジャンプさせます。そのためには、Upキーが押されているかどうかを検出する条件を追加する必要があります。\[ 条件の追加\]をクリックして、 \[ キーボード\]カテゴリを検索します。キーが押された状態を選択し、以下に示すようにUpキーをチェックします。 - -![](/gdevelop5/tutorials/screenshot_s20190523235134.png) - -\[ OK\]をクリックして確定すると、最初のイベント条件があります。次に、条件が満たされた場合に実行される「アクションを追加」する必要があります。指定した条件が満たされたときにキャラクターがジャンプするようにします。このアクションを追加するには、検索し、プラットフォームの動作 → コントロール → ジャンプキー押下のシミュレーションをクリックします。 - -![](/gdevelop5/tutorials/screenshot_20190524000351.png) - -プレーヤーにアクションを実行させるため、オブジェクトをプレイヤーに設定する必要があることに注意してください。また、プレーヤースプライトのジャンプ中にジャンプアニメーションを再生する必要があります。これを行うには、同じイベント条件に別のアクションを追加します。\[ アクションの追加\] → \[ スプライト\] →\[ アニメーションと画像\] → \[アニメーションの変更\]をクリックして、図のように設定します。識別子番号を使用する代わりに、アニメーション名を使用することもできます。名前を使用してアニメーションを参照するには、代わりに(名前による)アニメーションの変更オプションを使用する必要があります。名前は引用符で囲む必要があります。 - -![](/gdevelop5/tutorials/screenshot_20190524000821.png) - -![](/gdevelop5/tutorials/screenshot_20190524001313.png) \[イベント\]タブは次のようになります。 - -> **コメント**を 追加すると、イベントエディターを整理しやすくなります。コメントを追加するには、左側にあるアイコンをクリックします。コメントは、後でデバッグするために、特定のイベントでチェックおよび実行される内容を記述するために使用されます。tip - -![](/gdevelop5/tutorials/screenshot_20190524001533.png) - -![](/gdevelop5/tutorials/screenshot_20190524003448.png) ここで、作成されたイベントがどのように機能するかを確認します。Playボタンをクリックして、プロジェクトをプレビューします。プレビューウィンドウが開き、ゲームのさまざまな機能をテストできます。プレビューウィンドウには、アクション中のゲームの外観とパフォーマンスが正確に表示されます。 - -![](/gdevelop5/tutorials/bandicam20190524002201609.gif) 今、作成したイベントをテストします。つまり、キャラクターをジャンプさせたり、ジャンプしながらジャンプアニメーションを再生したりします。上矢印キーを使用して、ジャンプアクションをテストします。 - -キャラクターがジャンプするのを見ることができ、アニメーションも指定されたジャンプアニメーションに変更されました。キャラクターが地面に戻った後でも、ジャンプアニメーション状態のままであることに注意してください。この問題は、他のイベントを作成するときに処理します。 - ------------------------------------------------------------------------- - -## 障害物ブロックを動かす - -2番目のイベントでは、障害物/プラットフォームを画面の左側に移動します。これを行うには、障害物が特定の速度で移動する力を指定する必要があります。まず、最初のイベントと同じように、クリックして新しいイベントを追加します。 今のところ、条件を指定する必要はありません。アクションに注目しましょう。 - -![](/gdevelop5/tutorials/screenshot_20190604123755.png) - -![](/gdevelop5/tutorials/bandicam201905gg24124850768.gif) 最初のアクションについては、「アクションの追加」をクリックします。次に、すべてのオブジェクトの共通アクション → 移動 → フォース(角度)を追加を見つけます。次に、オブジェクトとしてプラットフォームを選択し、**角度180**(左方向を指定)と**速度250**を割り当てます。\[再生\]ボタンを使用してプレビューを表示することにより、作成したアクションをテストできます。障害物が左に移動しているのがわかります。プレーヤースプライトがプラットフォーム/障害物と接触すると、左に向かって移動(スライド)することに注意してください。彼がプラットフォームの床にいるときにキャラクターが動くことを望まない。次のイベントはそれを処理します。 - ------------------------------------------------------------------------- - -上記のように、プレーヤースプライトのスライドの問題を修正する必要があります。そのために、新しいイベントを使用します。クリックして新しいイベントを追加し、「条件の追加」、プラットフォームの動作 → オプション → フロアにあります。これが確認しようとしているものであるため、プレイヤーになるオブジェクトを選択します。つまり、キャラクターが「ブロックの上にいる」かどうかです。 - -![](/gdevelop5/tutorials/screenshot_20190524130158.png) - -次に、対応するアクションを追加する必要があります。このイベントにアクションを追加します。これは、障害物ブロック(プラットフォーム)が左に移動するように追加したものに似ています。 今回は、障害物ブロックの上にいるときは常にキャラクターを右に移動させる必要があります。「右に移動する」と言いますが、キャラクターは実際には動きません。キャラクターが滑らないように、障害物ブロックの負の動きのバランスをとるだけです。このアクションを自分で追加してみてください。 - -> ヒント:\[アクションの追加\]をクリックします。すべてのオブジェクトの共通アクションを検索→ 移動 → フォース(角度)を追加。次に、オブジェクトとして**プレイヤー**を選択し、角度**0**(正しい方向を指定)と速度**250**を割り当てます。tip - -![](/gdevelop5/tutorials/screenshot_20190604124748.png) - -![](/gdevelop5/tutorials/bandicam201fg90524131437905.gif) これで、作成したイベントのプレビューを試すことができます。スライディングの問題が修正され、基本的なゲームの仕組みが正常に作成されたことがわかります。つまり、キャラクターは障害物を回避するためにジャンプでき、障害物はキャラクターに向かって常に移動します。この時点で、障害物は制限されており、キャラクターはすぐにジャンプしてプラットフォームを使い果たすことに注意してください。次のイベントでこの問題に取り組みます。 - ------------------------------------------------------------------------- - -また、キャラクターが床にいるときに「走る」アニメーションを再生させる必要があります。「床にいる」状態を確認するイベントをすでに作成しているため、この同じイベントに別のアクションを追加するだけです。アクションの追加 → スプライト → アニメーションと画像 → アニメーションの変更をクリックします。次に、オブジェクトと正しいアニメーション識別子を入力して、その特定のアニメーションを再生します。このゲームでは、識別子にRunアニメーションを保存しました2。アニメーション名を識別子として使用することもできます。名前を使用してアニメーションを参照するには、「名前を変更してアニメーションを変更する」を使用する必要があります代わりにオプション。名前を使用する場合、名前は文字列であるため、引用符( ")で囲むことを忘れないでください。 - -![](/gdevelop5/tutorials/screenshot_20190524155500.png) - ------------------------------------------------------------------------- - -## ゲームを無限にする - -新しいイベントを作成します。このイベントでは、ステージを無限にします。次に進む前に、シーンスペースに戻り、プラットフォーム/障害物の最後のタイルのX位置を分析します。 - -![](/gdevelop5/tutorials/screenshot_20190524165044.png) - -ご覧のとおり、最後のタイルのX位置は1550です。異なる場合でも心配しないでください。値が何であれ、その値を使用してプラットフォームを無限にします。さて、Add a conditionこの新しいイベントのために。すべてのオブジェクトの共通条件を検索→ 位置 → オブジェクトのX位置を比較。変更記号≤(以下)と値を持つオブジェクト「プラットフォーム」を選択し、値を-200としましょう。 - -ここでは、プラットフォームの最初のタイルのX位置を 確認および比較しています。条件は、プラットフォームのX位置が≤-200の場合、対応するアクションが実行されることです。なぜ値-200なのか疑問に思うかもしれません。さて、シーン空間のX位置は値0から始まります。プラットフォームの左端のタイルがシーン空間を出るときを検出する必要があります。任意のX位置として-200を選択しましたが、これはシーン空間外です。 - -![](/gdevelop5/tutorials/screenshot_20190614211353.png) - -条件が整ったら、アクションを追加します。すべてのオブジェクトの共通条件を検索→ 位置 → オブジェクトのX位置を変更します。ここで、覚えておいてほしい最後のタイルのX位置の値を使用します。私の場合は*1550*でした。ここで、オブジェクトとして「プラットフォーム」を選択し、修正記号として=(等しい)を選択し、値は*1550*です。\[ OK\]をクリックして確定すると、イベントが完了します。 - -![](/gdevelop5/tutorials/bandicam20190614211720602_1_.gif) このイベントで行ったのは、障害物/プラットフォームタイルの**ループ**を設定することでした。タイルが範囲外、つまりシーン空間から出るとすぐに、右側のX位置(私の場合は*1550*)にテレポートされました。したがって、障害タイルはループし続け、ゲームは無限に実行されます。 - ---- - -## ゲームの状態 - -ゲームに状態を 追加します。状態はゲームの状態を表します。キャラクターが行動しているとき、またはキャラクターがプラットフォームから落ちたときを検出するためのフラグと見なすことができます。これは、「ゲームオーバー」状態を決定し、したがって、ゲームを再起動するために必要です。**シーン変数**を作成するだけで状態を記録できます。ゲームには3つの状態があります。 - -* 最初の状態または初期状態は、ゲームがまだ開始されておらず、ユーザーがゲームを開始する必要がある場合です。値**0**を使用してこの状態を参照します。 - -* 2番目の状態は、キャラクターまたはプレイヤースプライトが動作しているときです。値**1**を使用してこの状態を参照します。 - -* 3番目の状態は、キャラクターがプラットフォームから落ちたときの「ゲームオーバー」状態です。値**2**を使用してこの状態を参照します。 - -![](/gdevelop5/tutorials/0endlessrunner_flow.jpg) - -まず、ゲームの現在の状態を保存する変数を設定する必要があります。新しいイベントを作成します。「条件の追加」 → 「シーン」 →「シーンの開始時」。 - -次に、「アクションを追加」 → 「変数」 → 「シーン変数の値」。次に、変数に何か名前を付けて、たとえば"state"を0に設定します。これにより、シーンの開始時にゲームが初期のゲーム前の状態に設定されます。 - -![](/gdevelop5/tutorials/screenshot_20190621003505.png) - -ゲームをすぐに開始したくありません。ユーザーがキーを押した後に開始するようにします。 - -つまり、シーン変数stateの値が**1**のときにゲームを開始する必要があります。イベントを変更しましょう。 - -> ヒント:プラットフォームが移動する力を指定したイベントでは、条件を追加します。「条件の追加」 → 「変数」 → 「シーン変数の値」をクリックします。値が**1**に等しいかどうかを確認するように設定します。tip - -![](/gdevelop5/tutorials/screenshot_20190621000230.png) - -イベントで行った変更を参照してください。新しい条件を追加し、サブイベントを作成しました。サブイベントの条件は、親イベントの条件の結果がの場合にのみテストされtrueます。このケースでは、ゲームが初期状態(イベント)にある場合にのみ、サブイベントがそれぞれの条件をチェックし、対応するアクションを実行します。 - -イベントをサブイベントに変換するには、そのイベントをドラッグして、関連付けられている親イベントの下に配置する必要があります。インデントされたイベントが親イベントに対して「サブイベント」であることを確認するイベントサブイベントラダーのインデントに気付くでしょう。 - -サブイベントは、イベント条件の結果があればtrueに。親イベントの条件の結果がのfalse場合、サブイベント条件はチェックされないため、サブイベント条件の結果がtrueであっても、対応するアクションは実行されません。 - -> ![](/gdevelop5/tutorials/screenshot_20190621002408.png) 新しいサブイベントをすべて追加するには、サブイベントを作成するイベントをクリックして選択します。次に、左側に表示されるアイコンをクリックします。GDevelopのナビゲーションメニューにあります。 - -現在、シーン変数の値が1でない限り、ゲームは開始されません。つまり、プラットフォームは移動せず、プレーヤーはジャンプできません。 - -ユーザーがキーを押してゲームを開始する必要があります。それを行うには、新しいイベントを追加します。ここには2つの条件が必要です。1つはシーン変数の値をチェックし、もう1つはキーが押されたかどうかを検出します。これらの両方の条件は、他のイベントで何らかの形ですでに追加されています。自分でやろう;-) - -![](/gdevelop5/tutorials/screenshot_20190524233235.png) - -> ヒント:最初の条件では、シーン変数の状態の値を確認する必要があります。\[ 条件の追加\] → \[ 変数\] → \[ シーン変数の値\]をクリックします。値が0に等しいかどうかを確認するように設定します。2番目の条件については、「条件を追加」 → 「キーボード」 → 「キー」が押されました、それを設定して上キーをチェックします。 tip - -次に、ゲームの状態を変更するアクションを追加します。シーン変数の値を1に変更します。アクションの追加 → 変数 → シーン変数の値をクリックします。次に、変数に何か名前を付けて、たとえばstateを1に設定します。これは次のようになります。 - -![](/gdevelop5/tutorials/screenshot_20190524234531.png) - -これで、ゲームの動作をテストできます。\[再生\]ボタンをクリックしてもすぐにゲームが開始されないことがわかります。ゲームを開始するには、上キーを押す必要があります。何が起こったのか分からない場合は、上記の手順をもう一度実行してください:-P - -ここで、3番目の状態、つまり、キャラクターがプラットフォームから落ちてゲームが終了する状態で作業する必要があります。キャラクターのX位置とY位置を確認する必要があります。つまり、キャラクターがシーン空間内にあるかどうかを確認する必要があります。彼が外に手を伸ばすと、彼はプラットフォームから落ちたか、スクリーンの外に押し出されたことは明らかです。これらの条件を確認し、ゲームの状態をGame Over状態に変更します。 - -![](/gdevelop5/tutorials/screenshot_20190614213834.png) - -このイベントでは、条件とサブ条件の概念を使用します。ロジックを詳しく説明する前に、まずこの条件と副条件のラダーを設定しましょう。 条件を追加 → 詳細設定 → または。これが私たちが使用する主な条件です。この条件を確認して作成すると、サブ条件を追加できるようになります。上の画像を見て、自分でやってみてください。 - -> ヒント:すべてのオブジェクトの共通条件を検索→ 位置 → オブジェクトのX位置を比較。変更記号≤(以下)を持つオブジェクト「Player」を選択し、値を-69としましょう。同様に、次のサブ条件について、すべてのオブジェクトの共通条件 → 位置 → オブジェクトのY位置の比較を見つけます。≥(以上)を持つオブジェクト「Player」を選択し、値を-550としましょう。 tip - -ここで、私たちが何をしたかを理解しましょう。追加した条件は、サブ条件の1つでも真である場合に、このイベントに関連付けられたアクションが実行されるようにルールを指定します。倒れた場合(Y位置)または画面の外側に押し出された場合(X位置)にゲームが終了するため、X位置とY位置を確認します。 - -これが発生したときにゲームの状態を変更したいので、シーン変数の値を必要な3番目の状態である2に変更するアクションを追加します。 - -![](/gdevelop5/tutorials/bandicam20190525005610196.gif) これでゲームをテストできます。転倒したり押し出されたりすると、障害物の動きが止まります。これは、ゲームが**Game Over**状態に正常に到達したことを示しています。次のイベントでは、ユーザーがキーを押したときにゲームを最初から開始します。 - ---- - -## ゲームのリスタート - -![](/gdevelop5/tutorials/screenshot_20190526175455.png) ユーザーがゲームオーバー状態になった後にボタンを押すと、ゲームをリスタートします。これを実現するために、新しいイベントを作成しましょう。ゲームの状態が2かどうかを確認します。そうである場合、ユーザーにEnter / Returnキーを押してゲームを再起動してもらいます。このために、2つの条件を追加します。1つは状態変数の値をチェックするためのもので、もう1つはEnterキーが押されたかどうかをチェックするためのものです。自分で条件を追加するか、行き詰まっている場合はヒントを参照してください。 - -> ヒント:最初の条件では、シーン変数の状態の値を確認する必要があります。条件の追加 → 変数 → シーン変数の値をクリックします。値が2に等しいかどうかを確認するように設定します。2番目の条件については、条件を追加 → キーボード → キーが押されました。次に、押されたReturnキーをチェックするように設定します。 tip - -次に、ゲームまたはシーンを再起動するアクションを追加する必要があります。これを行うには、アクションを追加 → シーン → シーンを変更します。次に、引用符で囲んだシーンの名前を指定します。\[ 一時停止中の他のシーンを停止 \]オプションを選択します。このオプションにはシーンが1つしか含まれていないため、このオプションは必要ありませんが、シーンが多数あるゲームのパフォーマンスを向上させるのに役立つ場合があります。 - -![](/gdevelop5/tutorials/screenshot_20190526174010.png) - -これで、ゲームオーバー状態に達した後、ユーザーがEnter / Returnキーを押すと、ゲームが再起動し、初期状態、つまりユーザーがUpボタンを押してゲームを開始する必要があります。 - -これで、ゲームをテストし、状態の変化を確認できます。あとは、スコアシステムとテキスト形式の指示を追加して、ユーザーにゲームの状態を知らせるだけです。 - ------------------------------------------------------------------------- - -## スコアシステムの追加 - -スコアシステムは、すべてのゲームで必要な要素です。新しいイベントを追加する必要がないため、これをゲームに追加するのは非常に簡単です。このシステムに対応するために、すでに作成したイベントの一部を編集します。ゲームが始まるたびにスコアが0から始まるようにします。スコアは、ゲームオーバー状態に達するまで更新され続けます。まず、このスコア値を保存するオブジェクト変数を作成しましょう。 - -> ここで使用しているオブジェクト変数の代わりに、シーン変数やグローバル変数 などの他のタイプの変数を使用することもできます。これらの変数の違いは、ゲームのスコープが異なることです。変数について詳しくは[こちら](/ja/gdevelop5/all-features/variables)をご覧ください tip - -シーンエディターパネルの\[オブジェクト\]タブに移動します。任意のオブジェクトを選択します。ここでプラットフォームを選択します。\[ プラットフォームオブジェクト\]タブの横にある3つのドットをクリックして、\[ オブジェクト変数の編集 \]を選択します。オブジェクトの変数を追加および構成できる新しいダイアログボックスが開きます。大きな\[プラス\]ボタンをクリックして、新しい変数を追加します。次に、以下に示すように変数名と値をカスタマイズします。 - -![](/gdevelop5/tutorials/screenshot_20190526181228.png) - -ご覧のとおり、デフォルト値を0に設定します。次に、スコアを更新するアクションを実行する必要があります。以前に作成したイベントを次に示します。 - -![](/gdevelop5/tutorials/screenshot_20190621000502.png) - -ここにこのアクションを追加します。\[アクションの追加\]をクリックします。すべてのオブジェクトの共通アクションを検索→ 変数 → オブジェクトの変数を変更します。次に、以下のように実行します。 - -![](/gdevelop5/tutorials/screenshot_20190526204732.png) - -作成したオブジェクト変数を変更します。このアクションを追加することにより、キャラクターが行動している間、値を継続的に更新するようゲームに指示します。 - -この値の変化を示すには、Textオブジェクトが必要です。シーンエディターに移動します。Text型の新しいオブジェクトを追加します。 - -![](/gdevelop5/tutorials/screenshot_20190526205106.png) - -上記のように必要な変更を行います。好きなようにカスタマイズできます。テキストの編集が完了したら、\[適用\]をクリックします。次に、テキストオブジェクトをシーンスペースにドラッグアンドドロップします。このようなものになります。 - -![](/gdevelop5/tutorials/screenshot_20190526205123.png) - -編集していたイベントに戻りましょう。このテキストを更新するには、別のアクションを追加する必要があります。 - -特定のイベントに戻ったら、アクションの追加 → テキストオブジェクト → テキストの変更をクリックします。次に、以下の画像を非常に注意深く見てください。現在、テキストオブジェクトの値はString型ですが、スコア変数には数値が格納されています。ここでライブラリ関数を使用して、そのIntegerをStringに変換し、Textオブジェクトのテキストを更新する必要があります。 - -![](/gdevelop5/tutorials/screenshot_20190526205906.png) - -![](/gdevelop5/tutorials/bandicam20190526210601391.gif) 関数を使用VariableString(variable)して仕事をします。ライブラリ関数の詳細については、それぞれのチュートリアルをご覧ください。これでゲームをテストできます。プレーヤーの動作中にスコアが更新されるのを確認できます。ゲームオーバー状態に達するとすぐに、スコアの更新が停止します。 - -変更したイベントは次のようになります。 - -![](/gdevelop5/tutorials/screenshot_20190526210158.png) - ------------------------------------------------------------------------- - -ここで、ゲームオーバーテキスト、スコアテキスト、Enterキーを押して再起動、Up キーを押して開始など、ゲームに必要な他のテキストオブジェクトを追加します。それぞれについて、個別のTextオブジェクトを作成します。前の手順と同様に、新しいテキストオブジェクトを追加し、オブジェクトエディターでテキストを変更します。それらをシーンスペースにドラッグアンドドロップするだけで表示できます。 - -![](/gdevelop5/tutorials/screenshot_20190526211448.png) - -テキストごとに個別のテキストオブジェクトを作成したことに注意してください。ただし、ゲームGame Overの冒頭にテキストを表示したくないのです。ゲームオーバーテキストは、ゲームオーバー状態、つまり状態変数の値が**2**の場合にのみ表示されます。同様に、Enterキーを押して再起動テキストをこの段階で表示し、他のテキストは非表示にする必要があります。ステージ0では、Enterキーを押して入力テキストが表示されます。プレーヤーが動いている間は、テキストを非表示にします。そのためには、これらのテキストオブジェクトの可視性に基づいて行動する必要があります。 - -この可視性の変更では、すべてのオブジェクトに共通のアクション → 可視性アクションを使用します。上記のようにそれぞれの場所にすべてのアクションを追加すると、イベントエディターページは次のようになります - -![](/gdevelop5/tutorials/screenshot_20190526212127.png) - -ここで、シーンイベントの開始時に、すでに2つの新しいアクションを追加して、ゲームオーバーテキストとリスタートテキストを非表示にします。これらのアクションを追加するには、クリックアクションを追加 → すべてのオブジェクトに共通のアクション → 可視化 →それに応じて表示または非表示にします。 - -![](/gdevelop5/tutorials/screenshot_20190526212329.png) - -また、ゲームが既に開始されている場合、開始テキストを非表示にします。このために、上記で作成済みのイベントに別のアクションを追加します。 - -![](/gdevelop5/tutorials/screenshot_20190614213634.png) - -最後に、ゲームが終了したとき、つまりゲームオーバー状態に達したときに、2つのイベントを追加して、\[ ゲームオーバーを表示\]および\[リスタート\]テキストを表示します。 - -![](/gdevelop5/tutorials/bandicam20190gg526213134987.gif) そこにあります!Endless Runnerゲームの作成方法を学習しました。GDevelopでゲームを作成するのは、機能の使用方法を理解すれば非常に簡単です。このチュートリアルを詳細に記述するのに約3日かかりましたが、このゲームを作成するのに約1時間しかかかりませんでした。はい、GDevelopでゲームを作成するのは簡単です💓 - -## ボーナス:ゲームをさらに挑戦的にする - -ゲームのやり方は簡単すぎますか?ゲームをもう少し挑戦的にしたいですか?心配しないで。一緒に取り組みましょう。 - -移動するプラットフォーム/障害物の速度に取り組みます。スコアが増加するにつれて、より速く動くようにしたいと思います。 - -まず、新しいシーン変数を追加して、プラットフォームが移動する初期速度を保存します。シーン変数を追加するには、At the beginning of the scene条件を持つイベントに行きましょう。前と同じように、新しい変数を追加します。\[アクションの追加\]→\[変数\]→\[シーン変数の値\]をクリックします。次に、変数に速度などの名前を付けて、初期速度である250に設定します。 - -次に、イベントを変更します。プラットフォームが移動する力の値を指定します。値を指定する代わりに、シーン変数speedを使用します。そこでシーン変数を使用するには、次の構文に従う必要があります。Variable(speed)ここで、speedは指定されたシーン変数です。 - -プレイヤーのスプライトに速度を指定して、スライドを避けるアクションに対しても同じことを行います。これで、スコアが増加するにつれて速度を変更することができます。 - -次に、オブジェクト変数の値を確認し、それに応じscoreてシーン変数の値を変更しますspeed。プラットフォームの速度を上げるために、新しいイベントを追加して条件を指定します。以下に例を示します。 ![](/gdevelop5/tutorials/screenshot_20190615230009.png) diff --git a/docs/ja/gdevelop5/tutorials/finite_state_machine.md b/docs/ja/gdevelop5/tutorials/finite_state_machine.md deleted file mode 100644 index 4cf82542e3..0000000000 --- a/docs/ja/gdevelop5/tutorials/finite_state_machine.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: 複雑なロジックを制御する方法 – 有限状態機械(FSM) ---- -# 複雑なロジックを制御する方法 – 有限状態機械(FSM) - -これを読んでいる方の中には、初心者向けのチュートリアルを実践して、そこで学んだゲーム機構をもとに自分自身のプロジェクトを作成しようと決めた方もいるはずです。しかし複雑なアクションを追加するやいなや、ネストした条件のジャングルに迷い込み、見つけるのが困難なバグに行き当たる羽目になるのです。そして最後には、プロジェクトを放棄するでしょう。 - -インターネットで見つかるチュートリアル(ゲームエンジンは問いません)のほとんどは、可能な限り余計なものを排除して、チュートリアルに特化した目的を達成する方法だけを示します。あいにく、たいていの場合そこで示されるコードには拡張性のかけらもありません。 - -このチュートリアルでは、視点をより高次に置き、プレイヤー(あるいは敵でも何でも)のロジックをカプセル化してプロジェクトをどのように構成するかを説明します。 - -## 状態機械とは何か? - -状態機械(ステートマシンとも)は、オブジェクトのロジックを、明確に定義された状態の固定セットに分割し、各状態を独立して操作します。それぞれの状態は、それ自体に関係するロジックしか含みません。たとえばプレイヤーが「落下中」の状態のときは、左右に移動するボタンやジャンプボタンのことを気にする必要はありません。なぜなら地面の上に立っていないからです。特定の条件が揃ったら、プレイヤーの状態を切り替えます。 - -プレイヤーが「落下中」の状態を想像してください。空中にいるあいだは、いかなるアクションも実行すべきではありません。これはただ、下方向へかかる重力に身を任せているだけだからです。別の状態へ移行するには、所定の条件を満たす必要があります。「落下中」の状態の場合、その条件は「地面と衝突している」になるでしょう。これが起きたら、プレイヤーの状態を「落下中」から「待機」に変更します。さて、「待機」状態のあいだは移動ボタンが押されていないかを定期的にチェックして、押されていたらプレイヤーの状態を「待機」から「歩行」に変更します。「歩行」状態のあいだ、何かほかのイベント(移動ボタンがリリースされるとか)が発生するまでプレイヤーは移動しつづけます。流れがつかめてきましたか? - -## やってみよう - -まず「[](/ja/gdevelop5/tutorials/platformer/start)」チュートリアルからアセットをダウンロードしましょう。上記チュートリアルにのっとってプレイヤーを「プラットフォーマーオブジェクト」として作成し、上を歩いたりジャンプできるようにプラットフォーム(「プラットフォーム」ビヘイビア)をいくつか作成します。 ![](/gdevelop5/tutorials/screenshot_scenes.png) プレイヤーオブジェクトのプロパティを開き、「待機」、「歩行」、「ジャンプ」、「落下」というアニメーションを作成します。それからプレイヤーオブジェクトにテキスト型の変数を作成し、変数名を「方向」、値を「右」と設定します。 ![](/gdevelop5/tutorials/player_animations.png) イベントエディターに切り替え(main シーン)、プロジェクトマネージャーから外部イベント「プレイヤー状態初期化」、「プレイヤー状態落下」、「プレイヤー状態待機」、「プレイヤー状態歩行」、「プレイヤー状態ジャンプ」を作成します。右側のツールバーからイベント作成用のドロップダウンメニューを開き([イベントを選択して追加]ボタン)、main シーンのイベントに新しいイベントグループを作成します。「プレイヤーのロジック」と名前をつけます。**シーンが始まった**条件をイベントに追加します。サブイベントを追加して、[他を追加](ツールバーまたは右クリックメニュー)から「プレイヤー状態初期化」外部イベントへのリンクを作成します。他のプレイヤー状態についても、同様の手順を繰り返してください。 - -!!! note - - アニメーションに頼らなくても、「状態」専用の [シーン変数](/ja/gdevelop5/all-features/variables/scene-variables)でプレイヤーの状態を管理することもできます。これはより上級のテクニックですが、自由度は増します。しかしここで説明している、ロジックとそれに対応するアニメーションをセットにするアプローチには、分かりやすさとイベントシートのシンプルさという利点があります。さらに、現在のアニメーション/状態のフレームをチェックして、アニメーション内の特定フレームに差し掛かったときに別のロジックをトリガーするというような高度な分岐処理もできます。 - -![](/gdevelop5/tutorials/main_events_state-linking.png) - -## デバッグ情報 - -ゲームプレイ中にプレイヤーが今どの状態にあるのかを知るために、テキストオブジェクトを作成して「デバッグ状態」という名前をつけます。これをメインシーンに追加して、次のようなアクションを作成します(条件は無しでよいです)。これでプレイヤーの頭上に現在の状態が表示されるようになり、何か問題が発生したときにはいつでも、どの状態を調べればいいのかが一目でわかるでしょう。 - -![](/gdevelop5/tutorials/main_events_debug.png) - -## 最初の状態「初期化」 - -外部イベント「プレイヤー状態初期化」を開きます。この状態は、ゲーム開始時にプレイヤーオブジェクトを初期化するのに使います。「外部イベントを編集するには、イベントが含まれるシーンを選択してください。」というダイアログの「シーンを選択する」から main シーンを選びます。 - -メインシーンのイベントシートには、この状態初期化のコードを実行する条件をすでに設定してあるため、ここで必要なのはアクションの追加だけです。 - -まず最初に、プラットフォームビヘイビアによるデフォルトの制御を無効にする必要があります。これが状態機械の妨げになるからです。 - -次にプレイヤーのスプライトのアニメーションに「落下」を設定します。これによってイベントのゲームループの次回のイテレーションでは「落下」状態が実行されます。ここで落下状態を設定したのはプレイヤーが最初は空中にいるからで、そこから着地して待機状態に移行するという流れを想定しています。 - -この状態には、ほかにもプレイヤーの獲得ポイントや残弾数などをリセットする処理を含めることができます。レベルを再スタートしたいときには、初期化状態に切り替えればいつでもプレイヤーの属性をリセットできます。 ![](/gdevelop5/tutorials/init_state_events.png) - -## 「落下」状態 - -落下はいちばん融通の利く状態です。どの状態に切り替えるのがいいか迷うようなときには、「落下」状態にすれば間違いありません。なぜなら、プレイヤーがオブジェクトに衝突するとすぐに適切な状態に移行するのが確実だからです。落下中のプレイヤーにできるアクションは特にありません。落下状態に入る前に受けたフォースの影響が、ただそのまま継続するだけです。たとえばジャンプした後に落下状態に入った場合は、ジャンプしたときの方向に向かって引き続き移動するでしょう。しかし途中で方向を変えることはできません(チュートリアルの最後にある演習で、この挙動を変えるテーマを扱います)。したがって、この状態でやることは、プレイヤーが地面と衝突したかどうかチェックすることだけです。衝突したら、プレイヤーを「待機」状態に移行します。 ![](/gdevelop5/tutorials/falling_state_events.png) - -## 「待機」状態 - -待機状態は、コンピューターの前にいる人が何も操作しないとなる状態です。別の言い方をすれば、何のキーも押されていなくて、プレイヤーオブジェクトがただ立っているだけの状態です。「落下」状態に似て、ここでする必要のあるアクションは特にありません。ただ「待機」状態から抜ける条件をチェックするだけです。まず最初に、プレイヤーが地面の上にいるかどうかチェックします。もし違ったら、落下状態に移行します。次に、プレイヤーが左右の矢印キーを押しているかどうかチェックします。そうであれば、歩行状態に移行します。最後に上矢印キーが押されていないかチェックし、押されていたらジャンプ状態に移行します。どうです、明快でしょう? ![](/gdevelop5/tutorials/idle_state_events.png) - -## 「歩行」状態 - -ついにプレイヤーに能動的にアクションをさせる番が来ました。歩行状態です。ひとつの状態の中で左への歩行と右への歩行の両方をあつかうので、最初にプレイヤーの動く方向を決めないとなりません。そこで歩行状態に入った時点でどのキーが押されているかを一度だけチェックし、それに基づいてプレイヤーの方向変数を設定します。歩行状態のあいだは、変数に設定されたその方向に向かってプレイヤーを移動させ続けます。 - -これでプレイヤーにさせるアクションの件は片付きました。残るは、別の状態に切り替えるための条件設定です。ところで、そもそも歩行中には何が起きうるのでしょうか?いちばん有りうるのは、移動キーを放すことでしょう。この場合は、「待機」状態に移行します。もしプラットフォームの端を越えたら、「落下」状態に切り替えます。ジャンプキーを押されたら、ジャンプ状態に切り替えます。 ![](/gdevelop5/tutorials/walking_state_events.png) - -## 「ジャンプ」状態 - -もう見当がつくと思いますが、最初にやることは、この状態に入ったら一度だけジャンプアクションをトリガーすることです。ジャンプするフォースは黙っていてもかかるので、一度ジャンプしたらあとはもうその件について考える必要はありません。毎度のことですが、最後に必要なのは現在の状態から抜けるための条件設定です。今回の場合は、プレイヤーが「ジャンプ中ではない」ことと「落下中ではない(地面の上にいる)」ことをチェックします。どちらかに当てはまっていれば、「落下」状態に移行します。 ![](/gdevelop5/tutorials/jumping_state_events.png) - -これで全部です。 - -## まとめ - -プレイヤーのロジックを 5 つの異なる状態に分割し、それぞれの状態には関係する処理だけを含めました。もしプレイヤーに飛行や潜水、瀕死、激突などの能力を追加したくなったら、新しい状態を作成して、そこに処理を任せればよいでしょう。 - -こちらからプロジェクト全体をダウンロードできます(英語)。 ![](/gdevelop5/tutorials/fsm_tutorial_gd5.zip) - -## 演習 - -1)たぶんお気づきでしょうが、現在のプレイヤーは空中にいるあいだ、デフォルトの制御とは異なる動き方をします。これは「落下」状態が今のところキー入力を受けつけていないからです。そこで、プレイヤーが空中にいるあいだでも移動できるようにしてみてください。移動キーが押されているかどうかを確認して、押されていたら通常の移動にかかるフォースの半分くらいを適用するのがいいでしょう。 diff --git a/docs/ja/gdevelop5/tutorials/how-to-make-behavior.md b/docs/ja/gdevelop5/tutorials/how-to-make-behavior.md deleted file mode 100644 index 38b41e493a..0000000000 --- a/docs/ja/gdevelop5/tutorials/how-to-make-behavior.md +++ /dev/null @@ -1,165 +0,0 @@ ---- -title: how-to-make-behavior ---- -オブジェクトのビヘイビアを作成する方法 - -ゲームが発展しはじめたら、あるいはゲームを作りはじめてすぐの時点でさえ、ゲームロジックを可能な限り**[カスタムビヘイビア](/ja/gdevelop5/behaviors/events-based-behaviors)**で組織化するのはいい考えです。そうすることでイベントシートのイベント数を減らし、ゲームロジックの取捨選択を容易にします。 - -自分のゲームオブジェクトのためにわざわざカスタムビヘイビアを作成するのは、イベントシートに直接イベントを作成することと比べて面倒に思えるかもしれません。特に最初のうちはそうです。 ビヘイビアはより制約も多く、オブジェクトがどう機能して、どの条件とアクションをビヘイビアに公開するかについて、慎重に検討する必要があります。しかし一方でカスタムビヘイビアはとても強力なツールでもあり、ロジックをオブジェクト内に*カプセル化*して、イベントシートを可能な限りミニマムに保ってくれます。 - -!!! note - - 経験豊かなゲーム開発者であっても、**ゲームをできるだけカスタムビヘイビアで構成する**ことをお勧めします。 - -この記事では次の内容を説明します。 - -1\. オブジェクトのシンプルなビヘイビアを作成する 2. そして**他のオブジェクト**とやり取りする方法 3. 最後にカスタムの**他のビヘイビア**とやり取りする方法 - -## 1. ビヘイビアを使って「オブジェクト用」のイベントを作成する方法 - -最初にプロジェクトマネージャーからビヘイビアを格納するための拡張機能を作成します。名前は自由につけてかまいません。拡張機能には何かのゲームオブジェクトに関連したビヘイビアをまとめることができます。 - -![20200329-161907.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-161907.png) - -拡張機能の編集画面を開き、この拡張機能内に新しいビヘイビアを作成します。オブジェクトにちなんだ名前にするか、これから作る機能に沿って名づけます。 ![20200329-162016.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162016.png) - -!!! note - - ビヘイビアが何をするかということを要約した名前をつけられれば一番です。しかし最初のうちはそれがはっきりしないかもしれません。ビヘイビアの名前はあとでいつでも変更できます。 - -ビヘイビア関数パネルの*新しい関数を追加*をクリックします。 - -![20200329-162050.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162050.png) - -「doStepPreEvents」ビヘイビア関数を追加します。 - -![20200329-162119.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162119.png) - -このビヘイビア関数(ビヘイビアメソッドとも)は、フレームが画面にレンダリングされるたびに毎回ゲームエンジンによって自動的に呼び出されます。**オブジェクトを更新**するイベントを追加するのにはちょうどよい場所です。 - -追加した関数は、ビヘイビア関数リストに表示されます。 - -![20200329-162151.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162151.png) - -これで内部イベントを追加できるようになりました。今回のサンプルには、次の 2 つのイベントを追加します。 - -* スペースキーが押されたらシーンの背景色を変更するもの -* ボタンが押されたらサウンドを再生するもの - -![20200329-162214.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162214.png) - -もちろん、シーンの背景色の変更はふつうビヘイビアでやるようなことではありません。でもビヘイビアがちゃんと動作しているかどうか確認するには、一番簡単な方法です。 - -!!! note - - 動作が複雑な「本物の」ビヘイビアでは、オブジェクトを更新するためにビヘイビアプロパティや変数を使ってもいいでしょう。たとえば「doStepPreEvents」関数でオブジェクトを移動することができます。 - -ではゲームシーンに戻って、いま作ったビヘイビアをオブジェクトに追加してみましょう。 最初にビヘイビアを追加するオブジェクトを検索します。 - -![20200329-162441.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162441.png) - -オブジェクトを編集して、「ビヘイビア」タブから*オブジェクトにビヘイビアを追加*を選択します。 ![20200329-162720.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-162720.png) - -リストから先ほど名前をつけたビヘイビアを選択します。ビヘイビアに説明がないことに気づくと思います。拡張機能エディターから*ビヘイビアプロパティを編集*をクリックすると、説明を追加できます。実際のところ、何のためのビヘイビアなのか見て分かるような適切な名前と説明をつけることは、とても重要です。 - -![20200329-163332.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-163332.png) - -ではゲームを実行してみましょう。 *スペース*キーを押すと背景色が変わり、*P* キーを押すとサウンドが再生されることを確認します。 - -たとえばスターターのプラットフォーマーゲームでスぺ―スキーを押すと、背景色が緑に変わります。 ![20200329-164012.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-164012.png) - -## 2. 他のオブジェクトとやり取りする方法 - -さて、この辺でもう少し先に進んで、あるオブジェクトと他のオブジェクト、たとえばプレイヤーと敵を関係させるようなロジックを作成してみます。 - -今回は「doStepPreEvents」を使えません。この関数内からはビヘイビアが追加されたオブジェクト以外の他のオブジェクトにアクセスできないからです。いま必要なのは、*アクション*として使えるような*新しいビヘイビア関数*です。 - -先ほどのビヘイビア関数パネルから*新しい関数を追加*を選び、「カスタム(アクション、条件、式)」を選びます。 - -![20200329-175353.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175353.png) - -ビヘイビア関数リストに追加されました。 - -![20200329-175548.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175548.png) - -処理内容に即した名前に変更しましょう。 - -![20200329-175724.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175724.png) - -続いてこの関数に、敵オブジェクトを指定するための**パラメーター**を追加しましょう。 新しいパラメーターの型は「Object」にします。それからこのオブジェクトをイベントで使えるようにします。 - -関数を選択して「パラメーター」タブを選び、下部にある[パラメーターを追加]をクリックします。パラメーターの名前に「Enemy」と入力し、タイプに「オブジェクト」が選択されていることを確認します。ラベルにも「Enemy」と入力しましょう(これはイベントシートにアクションを追加するときに表示されます)。 - -![20200329-175942.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-175942.png) - -パラメーターを設定し終わったら、イベントでオブジェクトとして参照できるようになります。 たとえば、プレイヤーが敵と衝突したときにサウンドを再生するようなことができます。 - -![20200329-191811.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-191811.png) - -最後に、関数の設定で、いい感じの名前と文を追加しましょう。 ![20200329-180354.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-180354.png) - -最後の手順として、イベントシートから関数を呼び出します。 - -!!! note - - この時点で、あなたはがっかりしているかもしれません。「イベントシートにイベントなんか追加したくないのに」、と。今のところ、ビヘイビアにはオブジェクトを渡せませんが、これは将来改善される可能性があります。 - -関数呼び出しにはアクションを使います。以前、作成したビヘイビアをプレイヤーに追加したので、イベントシートの Player のアクションで選べるはずです。 - -イベントシートで Player の(あるいはビヘイビアを追加したオブジェクトの)アクションを追加します。 それからアクション「Handle enemies」を選びます。 - -![20200329-182405.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-182405.png) - -最後に操作する敵を設定しましょう。 - -![20200329-182601.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-182601.png) - -!!! note - - 上の例では「SlimeWalk」オブジェクト単体を選択していますが、オブジェクト**グループ**も指定できます。 - -結果は次の通りです。 - -![20200329-182802.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-182802.png) - -ゲームを実行すると、プレイヤーが敵と衝突したときにサウンドが再生されるはずです。 - -イベント 1 個だけにしては悪くない効果ですね。その気になれば、もっとたくさんのオブジェクトを追加して、もっと複雑なビヘイビアにすることもできます。あるいは、これをプレイヤーと同じように振る舞う他のオブジェクトに再利用することもできます。プレイヤーが敵と衝突したときにサウンドを再生したくなければ、このビヘイビアを無効にすることだってできるでしょう。 - -このビヘイビアをどこまで拡張するかは、まったくあなたしだいなのです。 - -## 3. 他のオブジェクトのビヘイビアとやり取りしてみよう - -仮に、ゲームがかなり複雑になってきたとしましょう。たとえば、敵にも独自のビヘイビアが追加されているものとします。そしてこのビヘイビアは、敵を点滅させるアクションを持っています。 そこで、プレイヤーが敵と接触したときに、敵を点滅させたいと思います(ダメージ演出としては、ヘルスが減るとか、アニメーションを再生するとか、いろいろバリエーションが考えられますが)。 - -良いニュースとしては、「点滅」ビヘイビアはすでに存在します。拡張機能として利用できるので、キーワード「blink」で検索してプロジェクトにインストールしてください。これを敵に追加しましょう。まず、検索します。 - -![20200329-183653.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-183653.png) - -次に、これを敵に追加します。 ![20200329-183726.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-183726.png) - -追加されたら、設定項目を調整します。 ![20200329-184106.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-184106.png) - -ここでプレイヤーのビヘイビアに戻りましょう。*HandleEnemies* 関数に新しいパラメーターを追加します。タイプは「ビヘイビア」で、「Enemy」オブジェクトパラメーターのすぐ下です。 ![20200329-184732.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-184732.png) - -!!! note - - これは改良すべき箇所です。直前のパラメーターで渡されている Enemy オブジェクトの一部であるビヘイビアをわざわざ別のパラメーターで受け取る必要性は、明らかとはとても言えません。これは将来改善される予定です。 - -今や関数は敵が「Blink」というビヘイビアを持っていることを知っている状態です。アクションを使って点滅させましょう。 ![20200329-184916.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-184916.png) - -!!! note - - 改良すべき個所がまた見つかりました。パラメーターを追加した後イベントシートに戻って、ビヘイビアをパラメーターとしてちゃんと渡すように**アクションを編集**しなければなりません。 - -![20200329-185458.png](/gdevelop5/tutorials/how-to-make-behavior/pasted/20200329-185458.png) - -3 番目のパラメーターが追加されている点に注意してください。これを設定し忘れると、アクションは最後のパラメーターが欠落した状態になり、ゲームが正常に実行されません。 - -さて、これでゲームを実行すると、プレイヤーが敵と接触したときに敵が点滅するはずです。 - -## まとめ - -ここで作成したビヘイビアは単純ですが、カスタムビヘイビアを使うと何ができるかという点について、その可能性を示しています。 - -作っているゲームを、オブジェクトとビヘイビアの相互作用という観点からとらえなおすことはとても有益です。イベントシートはゲームで起きることの流れを記述する中心地ですが、そこで起きるアクションのほとんどにビヘイビアを使うことができます。 diff --git a/docs/ja/gdevelop5/tutorials/how-to-move-objects.md b/docs/ja/gdevelop5/tutorials/how-to-move-objects.md deleted file mode 100644 index 970047775e..0000000000 --- a/docs/ja/gdevelop5/tutorials/how-to-move-objects.md +++ /dev/null @@ -1,119 +0,0 @@ ---- -title: オブジェクトを移動させるには ---- -# オブジェクトを移動させるには - -オブジェクトの移動は、どんなゲームであってもそのゲームの肝になる部分です。この移動には、次の要素を含みます。 - -* 画面上を動くキャラクター:プレイヤー、ノンプレイヤーキャラ(NPC)、車両、宇宙船など -* アニメーションするアイテム:弾丸、レーザー、障害物、背景など -* アニメーションするインタフェース:ボタン、カーソル、残りライフ数など - -状況が違えば、必要な解決法も変わります。このページでは、GDevelop で使える解決法について説明します。 - -GDevelop でオブジェクトの位置を変更するには 3 種類のやり方があります。 - -* アクションを使って X 座標と Y 座標を変更する -* オブジェクトにフォースを加える(どのオブジェクトにも使えます) -* ビヘイビアを使う(内部的には座標を変更するかフォースを使っています) - -## 動かさない:直接オブジェクトの位置を変更する - -時にはオブジェクトを徐々に移動したりアニメーションさせる代わりに、オブジェクトの位置をパッと一瞬で変更したいことがあります。そんなときは、アクションを使ってオブジェクトの位置(X 座標と Y 座標)を変更します。 - -![](/gdevelop5/tutorials/set-object-position.png) - -## 他のオブジェクトの動きをそのまま真似る:式でオブジェクトの位置を変更する - -あるオブジェクトに他のオブジェクトと同じ動きをさせる、別の言い方をすると相対位置を固定するには、アクションを使ってオブジェクトの位置を変更します。ただし X 座標と Y 座標の値を式に計算させるのです。 - -これはプレイヤーにくっついて動く**隠しオブジェクト**があって、それを動き回るプレイヤーの頭上に「貼り付け」ておきたいというような場合にぴったりです。たとえば宇宙船のスプライトとパーティクルエミッターをセットで動かす用途などが当てはまります。 - -下図はプラットフォーマーでプレイヤーオブジェクトの位置を設定する例です。 - -![](/gdevelop5/tutorials/follow-object-set-position.png) - -!!! tip - - `Object.Angle()` 式を使うと、他のオブジェクトと同じ角度に変更することもできます。 - -## カーソルとして動かす:「MouseX()」と「MouseY()」で位置を変更する - -オブジェクトをカーソルとして動かしたいですか?`MouseX()` の値を X 軸に、`MouseY()` の値を Y 軸に指定してオブジェクトの位置を変更してください。 - -![](/gdevelop5/tutorials/cursor-set-position.png) - -!!! note - - 「カーソル」として使うオブジェクトは、Z オーダーを他のどれよりも上にするか、または他とレイヤーを分けてしまうといいでしょう。後者の場合は、`MouseX` と `MouseY` の引数にレイヤー名を渡します。たとえばレイヤー名が「user interface」であれば、`MouseX("user interface")`、`MouseY("user interface")` とします。 - -## 画面上のオブジェクトを動かす:フォースを使う - -オブジェクトを動かす一番簡単な方法は、**フォース**を使うことです。 - -フォースには[basic game making concepts](/ja/gdevelop5/tutorials/basic-game-making-concepts)のページでもふれています。たとえるなら、フォースはオブジェクトを押しのける架空の矢です(「ベクター」とも呼ばれます)。矢が長ければ、オブジェクトは速く動きます。フォースはまた*瞬間的*にも*永続的*にもなります。 - -* **瞬間的**なフォースはオブジェクトを「一回だけ」動かします(フォースはアクションが実行中のあいだだけオブジェクトに作用します)。 - - ![](/gdevelop5/tutorials/instant-force-example.png) - -* **永続的**なフォースはオブジェクトをずっと押し続けます。これを止めるには、オブジェクトを停止するアクションを実行する必要があります。停止アクションはオブジェクトに作用しているフォースをすべてクリアするため、結果的にオブジェクトは停止します(何かのビヘイビアが使われていたり、他のイベントによって位置が変更されたら、それはまた別の話です)。たとえば次の 2 つのイベントは、プラットフォームを 2 つのマーカーのあいだで移動し続けます。 - -![](/gdevelop5/tutorials/animate-platform-permanent-forces.png) - -どちらの種類のフォースを使えばいいのかよく分からないときは、次のアドバイスを参考にしてください。 - -> 瞬間的なフォースは、条件を一瞬で判定する場合に使うといいでしょう。キーが押されたり、オブジェクトがタッチされたりカーソルがホバーしたり、そういう場合です。それに対して永続的なフォースは、最初に一度だけ条件判定するとその状態が一定時間続くような場合に使います(たとえば衝突のような)。 - -永続的なフォースは音楽の再生に似ています。一回開始すれば、しばらくはそれでじゅうぶんです。 - -!!! note - - 技術的なことをいえば、フォースが 1 フレームのあいだにオブジェクトを動かす量は、フォースの長さに前回のフレームからの経過時間を乗じた値です。別の言い方をすると、フォースの速度は 1 秒間に移動するピクセル数と同じです。フォースを使う上で、この仕組みを理解する必要は別にありません。ただ残念な結果にしないために、適切な種類のフォース(瞬間的か永続的か)を使うように意識してください。 - -## プラットフォーマー ビヘイビア - -プラットフォーマー型のゲームでキャラクターを動かすのでしたら、[プラットフォーマー ビヘイビア](/ja/gdevelop5/behaviors/platformer)がおすすめです。これを使うと GDevelop がプラットフォーマー用のエンジンに早変わりします。 - -* プラットフォーム上で操作するプレイヤーやオブジェクトには、**プラットフォーマーキャラクター**ビヘイビアを追加します。 -* 足場に使うプラットフォームとなるオブジェクトには**プラットフォーム**ビヘイビアを追加します。 - -ビヘイビアのプロパティを編集してイベントを使うと、プラットフォーマーのキャラクターの動き方をカスタマイズできます。 - -## 物理エンジン - -箱が落下したり、床に当たって跳ね返ったり、そんなふうにオブジェクトを物理法則にしたがって動かしたければ、[物理エンジンビヘイビア](/ja/gdevelop5/behaviors/physics2)を検討してみてください。 - -物理エンジンはフォースやプラットフォームビヘイビアのようなビヘイビアよりも、*もっと複雑*です。このビヘイビアを使う場合は、すべてのオブジェクトに対して追加することをお勧めします。 - -!!! warning - - 物理エンジンビヘイビアが追加されたオブジェクトは、物理エンジンによって動きます。これらのオブジェクトを物理エンジンビヘイビアに属さないフォースや他のアクションで動かそうとすると、おそらく物理エンジンがリアルなシミュレーションをおこなうことに支障をきたして、何らかの「グリッチ」が発生するでしょう。 - -## サイン(または楕円)移動ビヘイビア - -サイン(または楕円)移動ビヘイビアは[拡張機能としてインストールする](/ja/gdevelop5/extensions/search)ビヘイビアです。 - -このビヘイビアをオブジェクトに追加すると、移動の振幅を X 軸と Y 軸それぞれについて設定できるようになります。オブジェクトを円状や楕円状に旋回し続けるようにするときに便利です。 - -## フォースとバウンスビヘイビア - -**バウンスビヘイビア**[拡張機能としてインストールする](/ja/gdevelop5/extensions/search)ビヘイビアです。 - -このビヘイビアをオブジェクトに追加すると、オブジェクトが障害物と衝突しているかどうかをチェックするための条件が追加されます。この条件に対応するアクションで、オブジェクトが障害物から跳ね返る動作を設定します。 - -!!! note - - このビヘイビアは、フォースと併用できます。まずオブジェクトにフォースを加えて移動します。次にこのビヘイビアとアクションを追加して、衝突時の跳ね返りを表現します。 - -## 経路探索:障害物を迂回する経路を探し、それをたどる - -[経路探索ビヘイビア](/ja/gdevelop5/behaviors/pathfinding)は、オブジェクトの現在位置と目的の位置を結ぶ経路を計算する高度なアルゴリズムです。経路は、障害物に設定された他のオブジェクトを避ける最短経路になります。 - -これはシミュレーションゲームはもちろんのこと、キャラクターやユニットが障害物を回避しながら個別に移動する要素のあるどんなゲームにも役立ちます。 - -## アンカービヘイビア:オブジェクトを画面に固定してウィンドウのリサイズに影響されない - -[アンカービヘイビア](/ja/gdevelop5/behaviors/anchor)を使うと、オブジェクトをウィンドウ境界(上下左右)に固定できます。ゲームウィンドウをリサイズしたり解像度を変更した場合は、オブジェクトの配置が自動調整され、ウィンドウ境界からの距離を変更前と同じ距離に保ちます。 - -これはモバイルゲームの**ビジュアルコントロール**や、HUD に代表される**ユーザーインターフェイス**の作成で活躍します。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/index.md b/docs/ja/gdevelop5/tutorials/index.md deleted file mode 100644 index ebdc3c1860..0000000000 --- a/docs/ja/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: GDevelop 5 チュートリアル ---- -# GDevelop 5 チュートリアル - -これらのチュートリアルは、ゲームを最初から作成する方法を説明したステップバイステップのガイドです。 - -!!! tip - - GDevelop を初めてさわるという方は、次のチュートリアルから入るのがおすすめです。 - - * **[ゲーム作りの基本コンセプト:GDevelop を使うために知っておきたいこと](/ja/gdevelop5/tutorials/basic-game-making-concepts)** - * **[ジオメトリモンスター:完成形のシンプルなモバイルゲーム](/gdevelop5/tutorials/geometry-monster)**(英語) - * **[プラットフォームゲームを作成する](/ja/gdevelop5/tutorials/platformer)** - * **[スペースシューターゲームを作成する](/gdevelop5/tutorials/space-shooter)**(英語) - -コミュニティ チュートリアル - - * [ノイズジェネレーター拡張機能を理解して自動生成のために使う](/gdevelop5/tutorials/procedural-generation)(英語) - * [シンプルなタンクシューティングゲームを作成する](/ja/gdevelop5/tutorials/tank-shooter) - * [シンプルなエンドレスランナーゲームを作成する](/ja/gdevelop5/tutorials/endless-runner) - * [シンプルなエンドレスカーゲームを作成する](/gdevelop5/tutorials/roadrider)(英語) - * [シンプルなブレイクアウトゲームを作成する](/gdevelop5/tutorials/breakout)(英語) - - -より深く知りたい方向け - - * **[オブジェクトのビヘイビアを作成する方法](/ja/gdevelop5/tutorials/how-to-make-behavior)** - ----- - -# GDevelop ショートガイド(ハウツー) -下記のガイドは GDevelop の特定の機能について説明しています。また、ゲームを設計するための高度なメカニズムも示します。 - - * **[オブジェクトのビヘイビアを作成する方法](/ja/gdevelop5/tutorials/how-to-make-behavior)** - * [オブジェクトを移動させる方法(全アプローチ)](/gdevelop5/tutorials/how-to-move-objects)(英語) - * [プラットフォーマーゲームでキャラクターのジャンプと落下をアニメーションさせる方法](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer)(英語) - * [ゲームに大きな背景を表示する方法](/gdevelop5/tutorials/how-to-display-big-background)(英語) - * [ゲームの残念なパフォーマンスをデバッグする方法](/gdevelop5/tutorials/how-to-debug-poor-performance)(英語) - * [ストレージアクション詳解](/gdevelop5/tutorials/storage-action-explained)(英語) - * [ゲームのサイズを削減する方法](/gdevelop5/tutorials/reduce-size-game)(英語) - * [複雑なロジックを制御する方法 – 有限状態機械(FSM)](/ja/gdevelop5/tutorials/finite_state_machine) - * [切り替え状態を作成する方法](/gdevelop5/tutorials/how-to-make-togglable-states-with-variables)(英語) - * [GDevelop をチームで使う方法(複数の開発者とチームメイト)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team)(英語) - * [Piskel でスプライトシート画像をインポートする方法](/gdevelop5/tutorials/piskel-sprite-sheets)(英語) - * [GitHub と GitHub Desktop を使ってプロジェクトをバックアップ&メンテする方法](/gdevelop5/tutorials/using-github-desktop)(英語) - * [イベントシートのアクションと条件のエディターモードを変更する方法](/gdevelop5/tutorials/change-event-editor-mode)(英語) ----- - -# その他のガイド -下記のガイドはゲーム開発そのものに関連する内容を説明しています。GDevelop に特化したものではありません。 - - * [Cordova でゲームの .apk をビルドする](https://thedeestudio.blogspot.com/2020/01/gdevelop-how-to-manually-export-to.html)(英語) - * [Itch.io にゲームを公開する](/gdevelop5/publishing/publishing-to-itch-io)(英語) - * [publishing to amazon app store](/gdevelop5/publishing/publishing-to-amazon-app-store)(英語) - * [publishing to gamejolt store](/gdevelop5/publishing/publishing-to-gamejolt-store)(英語) - * [publishing to kongregate store](/gdevelop5/publishing/publishing-to-kongregate-store)(英語) - * [ゲームを公開するその前に](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/before-publishing-your-game)(英語) - ----- - -# GDevelop ビデオチュートリアル - - * [コミュニティによるビデオチュートリアル一覧](/gdevelop5/tutorials/videos)(英語)を参照 - - ----- - -# リソース -ゲームの開発に役立つスプライト、音楽やサウンドエフェクト、ゲームサンプル、テンプレート、ソフトウェアを見つけることができるサードパーティーの Web サイトへのリンク。 - - * [リソース一覧](/gdevelop5/tutorials/resources)(英語) \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/2-player-animations.md b/docs/ja/gdevelop5/tutorials/platform-game/2-player-animations.md deleted file mode 100644 index 42ce9fefde..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/2-player-animations.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: プラットフォーム型ゲームの作成方法:プレイヤーアニメーション ---- -# プラットフォーム型ゲームの作成方法:プレイヤーアニメーション - -このチュートリアルでは、プレーヤーの状態が変化しているときに、さまざまなアニメーションを追加する方法と、イベントを使用してアニメーションを変更する方法を説明します。 - -プラットフォーム型ゲームのチュートリアルを最初から読んでいない場合は、[クリックして前のチュートリアル](/ja/gdevelop5/tutorials/platform-game)を読んで下さい。 - -## アニメーションの追加 - -今の状態では、プレーヤーは常に同じスタンディングアニメーションを表示していますが、イベントを使用して変更します。 - -ただし、最初に適切なアニメーションをPlayerオブジェクトに追加する必要があります。 - -### ジャンプするアニメーション - -Playerオブジェクトのエディターを開き、プロパティータブ上にいることを確認してから、ウィンドウの下部にある「+」ボタンをクリックしてアニメーションを追加します。最後に、新しいアニメーションを追加する記号「+」が付いたサムネイルをクリックして、「p1_jump」を追加する画像として選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.56.03.png) - -アニメーションには名前を付けることができます。それらを区別し、イベントで使用する簡単な方法です。「オプションのアニメーション名」をクリックして、必要な名前を入力するだけです。 - -2つのアニメーションの名前として「停止」と「ジャンプ」を入力します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.56.53.png) - -### 走っているアニメーション - -また、キャラクターがプラットフォームを歩いているときに表示する歩行アニメーションを追加する必要があります。画像を追加するとき、5枚の画像を選択し、前に行ったように、p1walk03.png、p1walk04.png...とp1_walk07.pngとして別のアニメーションを追加します。必要に応じて、すべての画像を一度に選択することも、1つずつ選択することもできます。最後に、アニメーションの名前を次の「ランニング」のように設定します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_00.59.15.png) - -これらの画像は、アニメーションを作成するために表示されます。オプションを少し調整する必要があります。まず、「ループしない」オプションをクリックして「ループ」に切り替えます。これにより、最後の指定した画像にに到達したときにアニメーションが最初から再開されます。タイマーは各画像間の時間を秒単位で表示しています。これはアニメーションの速度です。アニメーションがより速く再生されるように、1ではなく0.05を入力します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_01.02.03.png) - -これでオブジェクトの準備ができました。右下の「適用」をクリックします。 - -## イベントを使用したアニメーションの変更 - -### 最初のイベント:ジャンプ時にアニメーション化 - -次に、プレーヤーが何をしているかに応じて、オブジェクトによって表示されるアニメーションを変更する必要があります。イベントを使用します。これらのイベントは、ゲームのルール、オブジェクトのアニメーション化、移動、プレイヤー入力への応答方法を記述するために使用されます。これは、非常に迅速に学習でき、すべての人がアクセスできる視覚的プログラミングの一種です。 - -「新しいシーン(イベント)」というタブをクリックして、シーンのイベントエディターを開きます。 - -現在は、イベントエディタには何もありません。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_01.05.29.png) - -上部のツールバーのイベント追加ボタンをクリックして、最初のイベントを追加します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.40.43.png) - -イベントは、条件のリスト(たとえば、衝突が発生しているかどうか、キーが押されたかどうか、プレーヤーの寿命が短いかどうかなど)と、条件が満たされたときに発生するアクションのリストで構成されます。 - -今はイベントは空です。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.41.32.png) - -この最初のイベントでは、プレーヤーがジャンプしているかどうかを確認し、それに応じてアニメーションを変更します。 -最初にを「条件の追加」をクリックします。 - -新しいウィンドウで、ゲームを作成するために利用可能なすべての条件を確認できます。キャラクターの動作を持つPlayerオブジェクトがジャンプしているかどうかを確認します。 -Platformビヘイビアというカテゴリを開き、「ジャンプ中」を選択します。 - -ウィンドウの右側には、条件を構成するために必要なパラメーターが表示されます。ここでは、「Player」オブジェクトがジャンプしているかどうかを確認するため、最初のパラメーターにPlayerを選択します(2番目のパラメーターは自動的に入力されます)。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.45.29.png) - -条件の準備ができました!ウィンドウを閉じてイベントに追加された条件を確認するには、右下の「OK」をクリックします。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.47.17.png) - -キャラクターがジャンプしているときにプレイヤーのアニメーションを変更するアクションを追加しましょう。 -「条件の追加」をクリックします。 - -開いたウィンドウは似ていますが、利用可能なすべてのアクションが表示されます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.51.10.png) - -スプライトオブジェクトであるPlayerのアニメーションを変更します。「スプライト」カテゴリを開き、「アニメーション」を選択し、最後に「アニメーションの変更(名前)」を選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.52.28.png) - -Player最初のパラメーターのオブジェクトで「ジャンプ中」を 選択し、2番目のフィールドに書き込みます。**注意してください**、あなたはGDevelopアクションや条件のいずれかのテキストは、式を使用することができるように二重引用符を記述する必要があります。これがテキストであることをGDevelopを伝えるために、二重引用符を使用する必要があります。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.54.51.png) - -完了したら、右下の[OK]をクリックします。最初のイベントの準備ができました! - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.56.10.png) - -### 結果を見てみましょう - -ツールバーの[再生]ボタンをクリックして、プレビューを起動します。ジャンプすると、プレイヤーのアニメーションが変化するのがわかります! - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_20.58.31.png) - -ただし、プレーヤーが地面に戻ったとき、アニメーションが停止アニメーションに戻されていないことがわかります。これは、単にGDevelopにそうするように指示したことがないためです!これを修正するために別のイベントを追加しましょう。 - -## 停止と走行中のアニメーション - -新しい空のイベントを追加しましょう。[条件の追加]をクリックし、今回はPlatformerビヘイビアの動作カテゴリ内で[床の上にいる]条件を選択します。上部の検索ボックスを使用して、名前がわかっている場合に条件をすばやく見つけることができます。 - -Playerオブジェクトを選択して、最初のパラメーターを入力します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.52.02.png) - -[OK]をクリックして、条件を確認します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.54.47.png) - -ここで、停止やジャンプ中だけでなく、走行中のアニメーションもキャラクターに表示させる良い機会です。 - -各イベントに2つの条件とアクションを持つ2つのイベントを追加できます。 - - * プレーヤーが地面にいて、*さらに*走っていないときは、停止アニメーションを表示する必要があります。 - * プレイヤーが地面にいて、*さらに*動いているときは、走行中アニメーションを表示する必要があります - -代わりに、**サブイベント**を使用して、プレーヤーが一度地面にいる場合にのみ条件をチェックすることができます。 - -「条件の追加」またはの 近くの空の領域をクリックして、作成したイベントを選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_21.59.36.png) - -次に、ボタンを2回クリックして、サブイベントを追加します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.05.49.png) - -2つの「子」イベントが、現在親イベントと見なされているイベントの下に追加されます。イベントの左側にいくつかの空白が追加され、それらが接続されていることを視覚的に確認するために、線で接続されているのが確認できます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.07.02.png) - -これらのイベント内に条件を追加できるようになりました!最初に、プレーヤーが動いているされているかどうかを確認する条件を追加します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.08.06.png) - -2番目の場合は、同じ条件を追加し「条件の反転」のトグルを確認します。これにより、Playerオブジェクトが移動していないときにイベントのアクションが起動されます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.09.30.png) - -これまでのイベントは次のとおりです。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.10.03.png) - -ほぼ完了です。各イベントに必要なアクションを追加して終了しましょう。最初のイベントを使用してキャラクターの**走行中**のアニメーションを設定します。2番目のイベントを使用してキャラクターの**停止**のアニメーションを設定します。 - -これらのアクションは、ジャンプ中アニメーションの場合と同じ方法で追加できます。アニメーション名を入力するときは、引用符(" ")を忘れないでください。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.15.20.png) - -## プレビュー(および保存)する時です - -ゲームのプレビューを起動して、走行中およびジャンプ中にプレイヤーのアニメーションが変化していることを確認できます! - -私たちができる小さな改善は、プレイヤーが落下しているときにアニメーションをジャンプに設定することです(そうでなければ、プレイヤーが画面の端に到達すると、走行中のアニメーションが再生を続けるようにします)。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.23.10.png) - -## 次のステップ: カメラがプレーヤーを追いかけるようにします - -現時点では、プレイヤーが画面外まですばやく歩くことができるため、探すための大きなステージを構築するのは困難です!チュートリアルの次の部分では、カメラをプレーヤーに追従させる方法を示します。それは本当に簡単です、一つのイベントで十分でしょう! - -➡️ **[チュートリアルの続きはこちら!](/ja/gdevelop5/tutorials/platform-game/3-have-camera-follow-player)** \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md b/docs/ja/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md deleted file mode 100644 index 0da74180f2..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/3-have-camera-follow-player.md +++ /dev/null @@ -1,31 +0,0 @@ ---- -title: カメラをプレイヤーに追随させる ---- -# カメラをプレイヤーに追随させる - -!!! note - - これは [プラットフォーム型ゲームの作成](/jagdevelop5/tutorials/platform-game)のチュートリアルの一部です。 ですが、他のゲームにも参考になります! - -ここまでは、プレイヤーが画面の外にすばやく移動できるため、プレーヤーがどこにいるのかわからないため、大きなマップレベルを構築するのは困難です! - -カメラをプレーヤーに追従させる別のイベントを追加しましょう。これを実現する方法は複数あります。最も簡単なのは、条件なしでイベントを追加し、「オブジェクトの中心にカメラを設定」アクションを呼び出すこです。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.25.53.png) - -新しいイベントは次のようになります。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.26.20.png) - -プレビューを起動して、カメラがプレーヤーの中央に配置されたことを確認できます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.27.31.png) - -## これだけです - -簡単でしょ?他にも便利なアクションがあります。たとえば、アクションを使用して、X軸またはY軸でのみカメラの座標を変更できます。上下に移動せず横スクロールでステージを移動するだけのスクロールタイプのゲームに役立ちます。 - -## 次のステップ:ブロックの間をジャンプ - -ステージが1つしかないのは退屈なことです。別の画像を追加してみましょう。これはブロックではないため、下からジャンプできます - -➡️ **[チュートリアルの続きはこちら!](/ja/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms)** \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md b/docs/ja/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md deleted file mode 100644 index 28f6c30dea..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects.md +++ /dev/null @@ -1,51 +0,0 @@ ---- -title: 背景オブジェクトの追加 ---- -# 背景オブジェクトの追加 - -!!! note - - これは [プラットフォーム型ゲームの作成](/jagdevelop5/tutorials/platform-game)のチュートリアルの一部です。 ですが、他のゲームにも参考になります! - -今のところ、レベルは派手なものなしで非常にシンプルです。背景にいくつかの画像オブジェクトを追加しましょう。 - -## オブジェクトの作成 - -背景にオブジェクトを追加するのは本当に簡単です。希望する画像をスプライトに追加して、シーンに配置するだけです。 - -たとえば、スプライトオブジェクトを作成し、アニメーションを追加し、木の画像を追加します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.45.14.png) - -このオブジェクトに名前を付けて、雲の画像のように別のオブジェクトを追加することもできます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.46.01.png) - -## シーンにオブジェクトを配置し、Zオーダーを変更します - -シーンにオブジェクトを追加すると、プレーヤーがその背後に表示されていることがわかります。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.52.10.png) - -シーン上のすべてのインスタンスには、**Zオーダー**と呼ばれるプロパティがあります。これは数値であり、Zオーダーの高い(数字の大きい)オブジェクトは、Zオーダーの低いオブジェクトの前に表示されます。Zオーダーには任意の数を指定でき、負の値も指定できます。 - -ここで、木と雲のZオーダーを変更して負の値に設定すると、プレーヤーキャラクター(Zオーダーが0以上である必要があります)がそれらの前に表示されます。これを行うには、シーン上のインスタンスを選択します。キーボードのSHIFTを押し続けると、複数のオブジェクトを選択できます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_22.59.47.png) - -次に、左側の**プロパティ**パネルの**Zオーダー**フィールドの値を変更します。たとえば、-2(または任意の負の数)は、これらのオブジェクトがプレーヤーの背後にあることを示しています。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_23.00.40.png) - -これで、求めていた視覚的な結果が得られました。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-27_at_23.01.44.png) - -プレビューを実行して、すべてがうまく動作していることを確認してください! - - -## 次のステップ:コインの表示とゲットしたコインの表示 - -プレーヤーに目標を追加しましょう:できるだけ多くのコインを収集します!これを行うには、イベントを使用してプレーヤーのスコアを記憶し、サウンドを再生し、ゲットしたコインを削除します! - -➡️ **[次のチュートリアルはこちら!](/ja/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins)** \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md b/docs/ja/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md deleted file mode 100644 index 99be1bb53b..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/4-add-jump-thru-platforms.md +++ /dev/null @@ -1,41 +0,0 @@ ---- -title: ブロックの間をジャンプできるようにする ---- -# ブロックの間をジャンプできるようにする - -!!! note - - これは [プラットフォーム型ゲームの作成のチュートリアル](/gdevelop5/tutorials/platform-game)の一部です。 ですが、他のゲームにも参考になります! - -現時点では、すべての配置したブロックは通り抜けられません。プレーヤーがその下にいるときにジャンプすることはできません。それらを通り抜けてジャンプできる新しい配置ブロックを作成できます。 - -## 新しいオブジェクトの作成 - -新しいスプライトオブジェクトを作成し、アニメーションを追加して、次の「橋の丸太」画像を選択します - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.40.34.png) - -オブジェクトの名前を「小さい橋」と変更しました。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.42.01.png) - -## 通り抜けるブロックの作成 - -現時点では、オブジェクトはブロックと見なされていません。オブジェクトエディタを開き、ビヘイビアタブに切り替えます。プラットフォームと呼ばれるビヘイビアを追加します。最後に、「タイプ」フィールドをクリックしたときにリストで「ジャンプスループラットフォーム」を選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.44.30.png) - -## プレビューの実行 - -プレビューを起動して、丸太にジャンプできることを確認できます! - -![](/gdevelop5/tutorials/platform-game/jumpthru.gif) - -いつものことですが、ゲームを保存するのを忘れないで下さい! - -## 次のステップ:背景オブジェクトの追加 - -ステージはまだかなりスカスカです。背景オブジェクトをいくつか追加して、見やすくします。 -その後、コインを追加して、敵を倒せるようにします! - -➡️ **[チュートリアルの続きはこちら!](/gdevelop5/tutorials/platform-game/4-add-backgrounds-objects)** \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md b/docs/ja/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md deleted file mode 100644 index 0f7d7fd5b7..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins.md +++ /dev/null @@ -1,183 +0,0 @@ ---- -title: コインの表示とゲットしたコインの表示 ---- -# コインの表示とゲットしたコインの表示 - -!!! note - - これは [プラットフォーム型ゲームの作成](/jagdevelop5/tutorials/platform-game)のチュートリアルの一部です。 ですが、他のゲームにも参考になります! - -これまでに作成したゲームでは、プレーヤーは何もすることがありません。プレーヤーがコインをゲットできるように追加しましょう。 - -## コインの追加 - -金色のコイン画像を使って、新しいスプライトオブジェクトを作成することから始めます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.29.30.png) - -このオブジェクトは「コイン」という名前にします。 - -ステージに複数のコインを配置することができます。いくつかのコインが必要になるので、シーンエディターの「ドラッグ・アンド・クローン」機能を使用することをお勧めします。コインを選択し、Ctrl(またはmacOSではCmd)を押したまま、コインをドラッグします。これにより複製されます。 - -Shiftキーを押しながら移動すると、元の軸と同じ軸に作成されたコインを移動することもできます。 - -![](/gdevelop5/tutorials/platform-game/clone.gif) - -## 集めたコインの削除 - -プレイヤーがそれらに触れたときにコインオブジェクトを破壊しましょう。新しいイベントを追加し、条件を追加します。2つのオブジェクト間の衝突をテストする条件を選択します。最初のオブジェクトは「Player」、2番目のオブジェクトは「コイン」にする必要があります。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.36.12.png) - -次に、コインを削除するアクションを追加できます。最初の条件で選択された「コイン」オブジェクトのみがアクションで使用されるため、プレーヤーと衝突していたコインのみが削除されます。 - -「全てのオブジェクトに共通のアクション」>「オブジェクト」から、「カテゴリの削除」アクション選択し、削除するオブジェクトとして「コイン」を入力します。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.41.46.png) - -イベントは次のようになります。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-28_at_23.42.34.png) - -プレビューを起動して、プレイヤーがコインの上を通過するとコインが削除されることを確認できます! - -## コインをゲットした時に効果音を鳴らす - -ゲームを、よりダイナミックでやりがいのあるものにするために、コインをゲットしたときにサウンドを再生しましょう。 - -簡単です。すでにcoin.wavゲームフォルダーにサウンドファイルがあります(そうでない場合は、[ここ](http://www.compilgames.net/dl/PlatformerTutorialResources.zip)からリソースをダウンロードして、ゲームフォルダーに展開します。) - -これまでに行ったことのないことです。1つのイベントに実行する複数のアクションを追加できます。サウンドを再生するには、コインを削除するために使用したイベントに別のアクションを追加しましょう。[オブジェクト コインの削除]アクションのすぐ下にある[アクションの追加]をクリックし、オーディオカテゴリから、「サウンドを再生」というアクションを追加します。この方法では、コインを削除するだけでなく、サウンドも再生します。 - -サウンドを再生するために使用できるパラメーター類があります。最初で最も重要なのは、再生するサウンドファイルです。フィールドをクリックし、「新しいオーディオファイルを選択」をクリックします。 -![](/gdevelop5/tutorials/platform-game/choose-new-audio-file_2x.png) - -ゲームフォルダーに入っている、他とファイルとともにダウンロードした、「coin.wav」ファイルを選択します。 -![](/gdevelop5/tutorials/platform-game/choose-coin-wav_2x.png) - -他のパラメーターはそのままにします(例えば、サウンドをリピートしたり、音量100をを変更したり、デフォルト速度を変更しないで下さい。) -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.50.22.png) - -これで全てです!プレビューを起動すると、コインをゲットするたびにサウンドが再生されます 👍 - -## 変数を使用してスコアを計算 - -変数を使用して、プレーヤーのスコアを更新および記憶します。 - -変数は、数値や文字列(テキスト)などの特定の情報を保存および記憶するために使用できる保存場所です。GDevelopには、さまざまなタイプの変数があります。 - - * __**Object 変数**__ オブジェクトの各インスタンスに固有のプライベート変数です。これは、各インスタンスが他のインスタンスと共有されることなく、独自の値を保存できることを意味します。たとえば、各敵の残機数を変更する場合等に役立ちます。 - * __**Scene 変数**__ (最も使用されるもの)は、シーンに付加された変数です。これは、それらの値がゲーム内の他のシーンと共有されないことを意味します。現在再生されているシーンにのみ関連する情報を保存すると便利です。たとえば、プレーヤーの残機数やスコア。 - * __**Global 変数**__ 値はゲーム全体のすべてのシーンで共有されます。弾丸の量やプレーヤーが持っているお金の量など、すべてのシーン間で共有したい情報を保存したい場合に便利です。 - -今回使用しようとする変数はシーン変数であり、「スコア」と呼ばれます。 - -作成した最新のイベントにアクションを追加しましょう。アクションを選択し、「変数」 > 「変数の値」を選択します。このアクションは、スコア変数に100を追加するために使用されるため、次のようにパラメーターを入力します。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.52.43.png) - -GDevelopでは、変数を使用する前に変数を宣言する必要はありません。アクションまたは条件で名前を付けるだけで、変数を宣言せずに使用できます。宣言されていない変数でアクションを使用している場合、GDevelopは変数のアクションを実行した後、トラブルを防ぐためにデフォルト値「0」(または空のテキスト)で自動的に作成します。 - -しかし、ゲームをより良く編成するには、変数を使用する前に変数を宣言することをお勧めします。このようにして、ゲームで使用している変数を簡単に見つけることができます。デフォルト値を0以外に変更することもできます。変数を宣言するに...は、変数名の右側にあるボタン「...」をクリックします。これにより、変数のリストが表示されます。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.54.46.png) - -変数はまだ宣言されていないため、リストが表示されますが、空になっています。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.55.27.png) - -「+」ボタンを クリックして変数を追加し、名前に「スコア」と入力します。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.56.23.png) - -これは完全にオプションでですが、良い習慣であることと思って下さい。 - -## テキストオブジェクトを使用してスコアを表示 - -### テキストオブジェクトの追加 - -現時点では、変数「スコア」は表示されないため、スコアが増加したことを確認できません([デバッガ](/ja/gdevelop5/interface/debugger)を使用しても、プレーヤーは見ることはできません) - -変数「スコア」の値を表示するには、テキストオブジェクトを使用する必要があります。新しいオブジェクトを追加しましょう。作成するオブジェクトのタイプについて尋ねられたときに「テキスト」を選択します。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_17.58.27.png) - -次に、オブジェクトのプロパティを変更して、テキストが黒でデフォルトのサイズより大きくなるようにします。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.09.28.png) - -その後、オブジェクトをシーンに配置できます。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.20.23.png) - -### テキストレイヤーを変更する - -ゲームを起動すると、スコアテキストが残りのオブジェクトとともに表示され、その位置が画面上で固定されていないことがわかります。この問題は、ベースレイヤーの上にレイヤーを使用することで簡単に解決できます。 - -このボタンを使用してレイヤーエディターを開きます。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.34.33.png) - -レイヤーの一覧が表示されますが、現時点ではベースレイヤーのみです。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.35.00.png) - -「+」ボタンを クリックしてレイヤーを追加します。名前に「UI」と入力します(UIはユーザーインターフェイスの略です)。 - -最後に、シーンのテキストインスタンスを選択してテキストオブジェクトをこの新しいレイヤーに移動し、左側のプロパティでUIレイヤーを選択します。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.40.44.png) - -オブジェクトが画面上のどこかに表示されていることを確認してください。たとえば、左上に配置します。シーンエディターの黒い四角形は、ウィンドウのサイズを表します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.42.46.png) - -### スコアの値の表示 - -画面にテキストが表示されたので、Score変数の値を表示するようにします。新しいイベントを追加します。このイベントには条件はありません。つまり、ゲームのフレームが画面にレンダリングされるたびにアクションが実行されます(1秒間に約60回)。 - -アクションを追加し、テキスト変更のカテゴリから、テキストオブジェクト選びます。 - -最初のパラメーターについては、スコアを更新したいオブジェクトを選択します。 -2番目のパラメーターには、= (set to)演算子を選択します(テキストを新しい値に設定します)。 -最後に、最後のパラメーターはテキストの新しいコンテンツを表します。これは、アクションの実行時にGDevelopによってゲーム中に評価される文字列式です。 - -テキストを引用符で囲んで指定することができます(このように:"Hello World")。ただし、式と呼ばれるものも使用できます。式は、特定の値を返す関数です。この場合、スコア変数の値が必要であり、その値を使用してテキストオブジェクトのコンテンツを更新する必要があります。式はより高度なトピックであるため、ここでは詳しく説明しません。 - -ここで知っておく必要があるのは、シーン変数の値を取得するために、変数(変数名)の式を使用する必要があるということです。また、スコアは数値変数ですが、テキストとしての値が必要なので、`ToString(変換式)`というように、式から返された値を文字列に変換する必要があります。これを行うには、ToString(Variable(スコア))という別の式を使用します。 - -最後に、「+」演算子を使用して静的テキストの後にこの式を追加できます(テキストを`"Score : " + ToString(Variable(スコア))`と、二重引用符で囲むことに注意してください)。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.58.12.png) - -GDevelopでは、他の多くの関数と式を利用できます。組み合わせると、高度な作業を行う強力なアクションを作成できます。値フィールドの横にある青いアイコンをクリックすると、式エディターでさらに式を見つけることができます。 - -![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -最後のイベントは次のとおりです。 -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_18.59.31.png) - -ゲームをプレビューしましょう。コインをゲットすると、スコアが表示され更新されることを確認できます! - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-30_at_19.00.24.png) - -##ボーナス:2つのコインを同時にゲットすることを確認する - -2つのコインをまったく同時に収集した場合(たとえば、2つのコインが重なった場合)、スコアは1回しか増加しないことに気づいたかもしれません。たとえば、各コインが100ポイントの価値があり、2つのコインを集めると、スコアは200ではなく100になります。これに対する修正は簡単ですが、まだ対応していません。 For Eachオブジェクトというイベントを使用します。行うことは、ゲットされたすべてのコインについて、スコアに100を加算することをエンジンに伝えることです。 - -開始するには、イベントエディターのツールバーの「+」ボタンをクリックします。 -![](/gdevelop5/tutorials/platform-game/gdevelop_5_2018-05-30_11-30-39.png) - -"for eachオブジェクト"を選択 -![](/gdevelop5/tutorials/platform-game/2018-05-30_11-33-09.png) - -これにより、イベントページの下部にイベントが追加されます。それを上にドラッグして、コインとプレイヤーの衝突のサブイベントにします。 -![](/gdevelop5/tutorials/platform-game/click-to-choose-4.png) - -クリックしてオブジェクトを選択し、コインオブジェクトを選択します。 -![](/gdevelop5/tutorials/platform-game/click-to-choose2.png) - -オブジェクトをサブイベントに追加したので、アクションをサブイベントに移動します(条件によって選択されたコインごとにアクションが繰り返されます)。 - -最初のアクションにカーソルを合わせて右クリックして切り取り、サブイベントのアクションにカーソルを合わせて右クリックして貼り付けます。他の2つのアクションに対してこれを行います。アクションをドラッグアンドドロップすることもできます。これは、カットアンドペーストよりも高速です。 -![](/gdevelop5/tutorials/platform-game/move-to-sub1.png) - -最終的なイベントは次のようになります。 -![](/gdevelop5/tutorials/platform-game/move-to-sub2.png) - -ゲームを実行すると、2枚のコインを同時にゲットした場合、スコアが適切に更新されることがわかります。 - -## 次のステップ:敵の追加 - -すべてのプラットフォーム型ゲームには、敵にジャンプして回避または殺さなければならない敵が存在しています! -いくつか追加して、それらを動かす方法を見てみましょう - -➡️ **[|次のチュートリアルはこちら!](/ja/gdevelop5/tutorials/platform-game/6-add-enemies)**! \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/6-add-enemies.md b/docs/ja/gdevelop5/tutorials/platform-game/6-add-enemies.md deleted file mode 100644 index 0efd8c73fb..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/6-add-enemies.md +++ /dev/null @@ -1,147 +0,0 @@ ---- -title: プラットフォーム型ゲームに敵を追加する ---- -# プラットフォーム型ゲームに敵を追加する - -!!! note - - これは [プラットフォーム型ゲームの作成](/jagdevelop5/tutorials/platform-game)のチュートリアルの一部です。 ですが、他のゲームにも参考になります! - -ステージ上を左右に移動する敵を追加しましょう。プレイヤーは、その上にジャンプして破壊することができます。 - -## 敵のオブジェクトを作成してシーンに追加します - -新しい「スプライト」オブジェクトを作成します。最初のアニメーションにWalkと名前をつけ、画像slimeWalk1.pngを追加し、次の画像にslimeWalk2.pngを追加します。 -敵は常に動いているため、停止やその他のアニメーションは必要ありません。 - -「ループしない」ボタンをクリックしてアニメーションをループに設定し、「ループ」に切り替え、時計アイコンを使用してアニメーション速度を0.5に設定します。 - -ウィンドウは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platormertut_slimeeditor.png) - -「適用」ボタンをクリックして、変更を確認します。 - -次に、オブジェクトの名前をにスライムに変更します。スライムオブジェクトをシーンに追加し、ステージの真上に配置するようにします。 - -今すぐプレビューを実行しても、それほど効果はありません。ステージの上部に静かに座って、歩行アニメーションを再生します。 -動かしてみましょう。 - -## 敵を左右に動かす - -このチュートリアルでは、スライムが左右に移動します。不可視のオブジェクトを使用してこれを行います。スライムがオブジェクトの1つに触れると、方向が逆になります。 - -区切り文字として機能する2つのオブジェクトを追加しましょう。新しいスプライトオブジェクトを作成し、イメージ「Left.png」ファイルを追加します。このオブジェクトに「レフト」と名前を付けます。次に、もう1つのオブジェクト「Right.png」を作成し、イメージを追加します。このオブジェクトには「right」と名前を付けます。 - -最後に、ステージの右側にrightオブジェクトと、ステージの左側にleftオブジェクトを配置します。 - -次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_slimedirection.png) - -アイデアは、スライムがleftオブジェクトと衝突した場合、スライムの方向を左に移動するように設定するということです。そして、rightオブジェクトと衝突している場合、スライムを右に移動するように設定します。 - -最初に「方向」オブジェクト変数を作成します。この変数を使用して方向を変更します。 - -オブジェクト変数をスライムに追加するには、オブジェクトリストでスライムオブジェクトを右クリックし、[オブジェクト変数の編集]を選択します。 - -空のウィンドウが表示されます。これには、スライムオブジェクトに対して宣言したオブジェクト変数のリストが含まれています。何も宣言していないので、今は空です。オブジェクト変数を追加するには、右下隅のプラス記号をクリックします。 - -これにより、ウィンドウに「変数」という変数が追加されます。名前をクリックして、「方向」に変更します。値フィールドをクリックして、「left」と入力します。 -ウィンドウは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable2.png) - -[適用]ボタンをクリックして、変更を確認します。これで、デフォルト値が「left」の「方向」というオブジェクト変数ができました。 - -この変数を使用して、スライムを動かしましょう。 - -イベントエディターで、空のイベントを追加し、条件を追加して、「全てのオブジェクトに共通の条件」 > 「変数」 > 「オブジェクトの変数のテキスト」を選択します。 - -パラメータで、オブジェクトフィールドに「スライム」を選択します。「変数」フィールドで「方向」を選択します。(または「方向」をキーボードを使用して入力)。テストの符号判定に「等しい」を選択し、最後に値に「left]を入力します。引用符の間に値を入れることを忘れないでください。 - -ウィンドウは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_objectvariable3.png) - -OKを押して確認し、イベントに条件を追加します。スライムを左に移動するアクションを追加しましょう。 - -「アクションを追加」をクリックし、「全てのオブジェクトに共通の条件」 > 「動き」 > 「フォース(角度)の追加」から、「「力(角度)を追加」を選択します。いつでも検索ボックスを使用して、探しているものを見つけることができます。 - -パラメータで、オブジェクトフィールドに再度「スライム」を選択します。角度には「180」度(GDevelop座標系の左側)を入力し、速度には100ピクセルを入力します。一定時間有効な状態として、ゲームのすべてのフレームで力が適用されるため、「インスタント」を選択します。 - -ウィンドウは次のようになります。 -![](/gdevelop5/tutorials/platform-game/slime-move-left.png) - -[OK]を押して、イベントに条件を追加します。 - -ここでプレビューを実行すると、スライムが左に移動し始めますが、おそらくスライムは移動し続け、方向を変えないことに気付くでしょう。 - -今回は、スライムオブジェクトと「right」と呼ばれるオブジェクト間の衝突をチェックし、方向変数の値を「right」に変更します。 - -空のイベントを追加し、スライムと「right」というオブジェクトとの衝突をチェックする条件を追加します。これを行う方法はすでに知っているはずです。次に、「オブジェクトの変数のテキストを変更する」アクションを追加します。 - -パラメータで、オブジェクトはスライムを選択し、変数は「方向」を選択し、オペレータは「=(set to)」を選択します。最後に、値に「right」と入力します。二重引用符を忘れないでください。 - -ウィンドウは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_checkobjectvariable.png) - -ここでプレビューを実行すると、方向が「正しい」場合にGDevelopに何をするかを指示しなかったため、何も起きていないことに気付くかもしれません。 - -最後に、同じ2つの同様のイベントを追加しますが、「left」を「right」に反転させ、方向を変更します。完了すると、イベントは次のようになります(後で追加するスプライトを反転するアクションを除く)。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeevent1.png) - -ゲームのプレビューを起動すると、スライムは左右に移動するはずですが、移動してもスライムは左を向いています。向きを変えましょう。 - -スライムを左に移動させるイベントのアクションのリストで、スプライトを水平方向に反転するアクションを追加します。オブジェクトの場合は「スライム」を選択し、値の場合は「いいえ」を選択します(左に移動するときにオブジェクトを反転させたくないため)。スライムを右に移動するために使用されるイベントに対して、同じ時間を繰り返します。オブジェクトが正しく移動しているときにオブジェクトを反転させたいため、今回は「はい」を選択します。 - -イベントは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_moveslimeevent2.png) - -スライムは左右に移動し、移動時に適切な向きになります。 - -## プレイヤーが敵を倒す - -プレイヤーがスライムの上にジャンプしたときに、スライムを破壊するようにしましょう。 - -プレーヤーとスライムの間に衝突があるかどうかを確認する条件を持つ空のイベントを追加します。スライムを削除するアクションを追加します。これは以前に [コインで行った](/gdevelop5/tutorials/platform-game/5-add-coins-and-number-of-collected-coins)ことと似ていますが、今回はスライムで行いました。 - -これを今実行すると、スライムは衝突するとすぐに削除されるはずですが、これはまだ望んでいるものではありません。プレイヤーがその上にジャンプした場合にのみ削除します。 - -これを行うには、イベントにもう1つの条件を追加します。今回は、プレーヤーが落下しているかどうかを確認します。 - -プレビューを実行すると、プレイヤーがスライムにジャンプしたときにスライムが削除されます。 - -プレイヤーがスライムに落ち、プレイヤーが膨らむことなくスライムが消えるので、まだ完璧ではありません。 - -これを行うには、イベントにもう1つのアクションを追加します。今回は、「再度ジャンプを許可する」というアクションを選択します(「プレーヤー」オブジェクトの場合)。次に、「ジャンプキーを押す動作をシミュレートする」という別のアクションを追加して、ジャンプさせます(プレイヤーが跳ねているように見えます)。両方のアクションは、「プラットフォームの動作」カテゴリにあります。 - -この時点で、イベントは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutoriual_killtheslime.png) - -プレビューを実行してスライムの上部にジャンプすると、プレーヤーはそっとバウンドし、スライムが消えます。 - -## 敵がプレイヤーを倒す - -今度は逆のロジックを作りましょう:敵がプレイヤーに触れたらプレイヤーを殺します。 - -空のイベントを追加し、条件を追加して、プレーヤーとスライムの衝突を確認します。次に、プレーヤーを削除するアクションを追加します。 - -スライムを削除する前にプレーヤーを削除したり、プレーヤーを削除する前にスライムを削除したりする可能性があるため、これはそのままでは機能しません。 - -これを回避するには、イベントにもう1つの条件を追加して、プレーヤーが画面中にいるかどうかを確認します。 - -プレビューを実行すると、スライムの上にジャンプしてスライムを殺すことができるはずです。スライムは、衝突の瞬間にプレイヤーが画面中にいる場合にプレイヤーを殺すことができるはずです。 - -## ブロックの区切りを非表示にする - -ここで最後に行う必要があるのは、これらの「left」および「right」の矢印オブジェクトを非表示にすることです。これを行うには、「シーンの開始時」という条件(シーンの開始時に1回だけトリガーされる)と「オブジェクトを左に隠す」および「オブジェクトを右に隠す」というアクションを持つイベントを追加します。 - -これまでのこのチュートリアルのイベントは次のようになります。 -![](/gdevelop5/tutorials/platform-game/gd5_platformertutorial_enemycompletevent.png) - -プレビューを実行すると、矢印の付いた左右のオブジェクトが非表示になり、スライムが常に左右に移動します。スライムの上にジャンプすることでスライムを殺すことができ、プレイヤーが地面にいる間にスライムがプレイヤーに衝突したときにスライムがプレイヤーを殺すことができるはずです。 - - -## 次のステップ:チェックポイントの追加 - -現時点では、プレイヤーの「死」は少し残酷です。それを削除するだけです。代わりに、彼が最後に通過したチェックポイントまで彼を再出現させましょう。プラットフォーマーゲームでは、プレイヤーが死んだときに最初からやり直すことを強制したくない場合、チェックポイントが不可欠です(これは興味深いことですが、イライラすることもあります!) - -➡️ **[7 checkpoints](/ja/gdevelop5/tutorials/platform-game/7-checkpoints)**! - diff --git a/docs/ja/gdevelop5/tutorials/platform-game/7-checkpoints.md b/docs/ja/gdevelop5/tutorials/platform-game/7-checkpoints.md deleted file mode 100644 index fef6bcbd83..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/7-checkpoints.md +++ /dev/null @@ -1,72 +0,0 @@ ---- -title: ゲームにチェックポイントを追加する ---- -# ゲームにチェックポイントを追加する - -前のチュートリアルでは、プレーヤーが敵と衝突したときにプレーヤーを削除していました。これは、ほとんどのゲームで機能する方法ではありません。通常、プレーヤーを削除する代わりに、ゲームには「チェックポイント」があります。「チェックポイント」は、ゲームの状態とプレーヤーの状態を変数に保存します。その後、プレーヤーが死亡すると、ゲームやプレーヤーは「チェックポイント」から再開します。 - -このチュートリアルでは、ゲーム全体の状態とプレイヤーの状態を保存するのは少し高度すぎるかもしれません。代わりに、プレーヤーが「チェックポイント」オブジェクトと衝突した場合、「チェックポイント」オブジェクトの位置を変数内に保存します。また、プレーヤーを削除する代わりに、変数内に保存されているものに位置を再設定します。 - -#### チェックポイントオブジェクトを作成する -ゲームで新しいスプライトオブジェクトを作成することから始めましょう。それを「チェックポイント」と呼びます。任意の.jpgまたは.pngスプライトイメージを使用できます。サボテンのスプライトを使用します。 - -![](/gdevelop5/tutorials/platform-game/checkpoint-object.png) - -次に、スプ​​ライトオブジェクトをシーンに追加します。スプライト画像が大きすぎるか小さすぎる可能性があります。スプライトのハンドルバーを使用して、画像のサイズを変更します。私の場合、上記のサボテンスプライトオブジェクトになります。「チェックポイント」を持ちたい場所にシーンに配置します。オブジェクトスプライトをシーンの複数の場所に追加できます。これにより、複数の「チェックポイント」を設定できます。 - -#### イベントを追加する -シーンに「チェックポイント」オブジェクトができたので、イベントを追加しましょう。「プレイヤー」と「チェックポイント」の間に衝突があるかどうかを確認する条件から始めます。衝突が発生した場合、「checkpoint」オブジェクトスプライトのXおよびY位置をcheckpointXおよびcheckpointYというシーン変数に保存します。 - -![](/gdevelop5/tutorials/platform-game/checkpoint_Var.png) - - -![](/gdevelop5/tutorials/platform-game/checkpoint_event.png) -上記では、**数式**を使用して、「チェックポイント」オブジェクトスプライトのXおよびY位置を取得しています。これは、スコアテキストを更新した方法と同様の方法で行われます。値フィールドの横にある青いアイコンをクリックすると、**数式エディター**でさらに式を見つけることができます。 - -![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -青いアイコンをクリックすると、使用可能なすべての式をカテゴリに分類して検索できます。 - -![](/gdevelop5/tutorials/platform-game/expression-editor.png) - -条件には、「プレーヤー」オブジェクトが衝突した「チェックポイント」オブジェクトのXおよびY位置が保存されます。そのため、「Player」スプライトオブジェクトを削除する代わりに、変数を使用してXとYの位置を設定します。 - -![](/gdevelop5/tutorials/platform-game/expression_playerPosition.png) - -![](/gdevelop5/tutorials/platform-game/checkpoint-event2.png) - -上記の例では、別の式のセットを使用して、保存された変数の値を取得し、「Player」の位置に渡します。 -#### バグを解決する - -一緒にフォローしていて、「チェックポイント」のサボテンも選択した場合、バグを作成したことに気付くかもしれません! -プレイヤーキャラクターはサボテンより背が高いです。この場合、高さの差は「大きくない」です。これにより、一見問題は表示されないかもしれませんが、プレイヤーキャラクターが地面に引っかかっているのに気づくでしょうが、最も近い表面にテレポートされます。 -高さの差が大きかった場合、キャラクターは地面の下に落ちていた可能性があります。したがって、この問題を修正することをお勧めします。. - -![](/gdevelop5/tutorials/platform-game/checkpoint_bug.png) - -この特定のケースでは、Y軸上のサボテンスプライトをプレーヤーと同じかそれ以上にスケーリングすることで問題を簡単に解決できます。ここまでで、スプライトのスケーリング/サイズ変更の方法がわかったので、もう少し難しいが、より正確なアプローチを使用してそれを行う方法を見てみましょう。問題を回避するために数学を使用しましょう。 - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug-fix.png) - -より複雑なソリューションを使用して、強力な表現がいかに強力かを示しています。私の解決策は、変数を使用してプレーヤーのY位置を設定することです。それから、「プレーヤー」の高さから「チェックポイント」の高さを引きます。このようにして、Playerと「チェックポイント」の高さの違いを取得します。変数が返すものからその差を差し引くことで、ソリューションを終了できます。 - -それほど難しくはありませんが、まだ数学を使用している場合は、変数の値から、たとえば30を引きます。 -![](/gdevelop5/tutorials/platform-game/checkpoint-bug-fix-simple.png) - -試行錯誤と一緒に簡単なソリューションを使用すると、最適な数値を見つけることができます。ただし、正確な値を取得するために、使用するもののより複雑な例を示しました。 - -また、Yに値を加算するのではなく、なぜYから減算するのか疑問に思うかもしれません。問題は、「チェックポイント」の高さが「プレイヤー」の高さより低いことです。つまり、プレーヤーを高く設定する必要があるということです。Y軸の値が上から下に向かって増加することに注意してください。Y軸は上部の0から始まります。下に移動するにつれて増加します。技術的には、何かを高くするために低い値が必要です。 :-) - -![](/gdevelop5/tutorials/platform-game/2d-coordinates.png) - -ほとんどの2Dエンジンはこの方法で機能します。座標0,0である左上隅から開始します。X軸に沿って右に行く最初の座標番号を増やします。そして、Y軸で下に行く2番目の座標番号を増やします。これがどのように適用されるかは上の画像で確認できます。 - -ここで、プレビューを実行してプレーヤーが停止すると、その位置は最後に保存された「チェックポイント」値に設定されます。しかし、もう1つのバグがあります!「チェックポイント」と衝突する前にプレーヤーが死亡した場合、変数は値0を返すため、プレーヤーは上のグラフに示されているように、位置0,0(左上隅)で再生成/再表示されます。 - -この問題は、チェックポイント値のデフォルト値をシーンの先頭のプレーヤーの開始位置に設定することで簡単に修正できます。 - -![](/gdevelop5/tutorials/platform-game/checkpoint-bug2-fix.png) - -シーンの開始時には、プレイヤーが既にその位置にいて、プレイヤーの位置を取得し、そのプレイヤーの位置を「チェックポイント」位置として保存することを願っています。プレーヤーがチェックポイントのいずれかと衝突する前に死亡した場合、プレーヤーの元の位置変数を使用して、その位置をシーンの先頭に戻します。 -#### システムの改善 -これまでに学んだことを使用して、チェックポイントに達した場合にテキストを追加してメッセージを表示することができます。次に、サボテンをジャンプさせるアニメーションなどを再生して、もっと面白いものにしましょう。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platform-game/index.md b/docs/ja/gdevelop5/tutorials/platform-game/index.md deleted file mode 100644 index 82d397ba6c..0000000000 --- a/docs/ja/gdevelop5/tutorials/platform-game/index.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: プラットフォーム型ゲームの作り方 ---- -# プラットフォーム型ゲームの作り方 - -このチュートリアルは、**GDevelop**を使い始めるのに役立ちます。プレーヤーが画面に置いた障害物にジャンプしてコインを収集できる、非常にシンプルなプラットフォーム型ゲームを作成します。プラットフォーム型ゲームとは、例えばスーパーマリオのような、キャラクタが画面上に置かれたオブジェクトに乗ったり、ジャンプしてコインを収集したりするアクションゲームのことを総称して言われます。 - -[はじめに](/gdevelop5/getting_started) ページを 読んで、ソフトウェアの概要を確認できます。GDevelopの主要な概念とインターフェースについて説明しています。 - -## GDevelopのダウンロード - -**GDevelop5**を お持ちでない場合は [公式サイト](https://gdevelop.io)からダウンロードできます。Windows、macOS、Linuxで利用できます。 - -必ずこのページからGDevelopをダウンロードして、最新バージョンを入手してください。GDevelopをインストール(または圧縮ファイルを展開)して起動します。 - - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_22.57.02.png) - -## 新しいゲームを作成する - -スタートページで「新しいプロジェクトを作成」を クリックします。「空のプロジェクト」を選択し、新しいゲームを最初から開始します。 - -![](/gdevelop5/tutorials/platform-game/screenshot_20190604200258.png) - -ゲームを作成するには、ゲーム中で使用するグラフィックパーツ(プレイヤーキャラクター、いくつかの配置パーツ、収集するアイテムなど)が必要です。あなたはここにリソースをダウンロードすることができます: http://www.compilgames.net/dl/PlatformerTutorialResources.zip. - -このファイルをダウンロードしたら、プロジェクトを作成したフォルダーにファイルを展開します。 - -## シーンの追加 - -シーンはゲームの一部です。通常、ゲームの各画面はシーンで構成されます。メインメニュー、一時停止メニュー、およびレベルもシーンです。 - -シーンには、画面に表示されるオブジェクトが含まれます。これらのオブジェクトをシーンに配置してレベルを作成できます(これらのオブジェクトは「インスタンス」と呼ばれます)。シーンには、シーンをアニメーション化するために実行されるイベントも含まれます。 - -左側に開いているプロジェクトマネージャーで、「シーン」の下の「+」ボタンをクリックします。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.26.09.png) - -「新しいシーン」と表示されている新しいシーンがリストに追加されます。クリックして開きます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.30.40.png) - -## プレーヤーオブジェクトの作成 - -プレイヤーは、画面上でジャンプして移動できるキャラクターを動かします。このオブジェクトを作成します。 - -右側には、「オブジェクト」というパネルがあります。「+」ボタンをクリックしてオブジェクトを追加します - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.32.40.png) - -ウィンドウがポップアップ表示され、選択可能なさまざまなタイプのオブジェクトが表示されます。 - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -さまざまな種類のオブジェクトが特定の機能を提供します。多くのオブジェクトでは、スプライトオブジェクトを使用します。スプライトオブジェクトは、多くの要素(プレイヤー、画面に配置するブロック、敵、アイテムなど)に使用できるアニメーションオブジェクトです。 - -スプライトリストを クリックします。新しいオブジェクトがシーンに追加され、オブジェクトエディターが開きます。 - -![](/gdevelop5/tutorials/platform-game/screenshot_20190604200645.png) - -オブジェクトは今のところ空です。スプライトオブジェクトはアニメーションで構成され、各アニメーションには1つ以上の画像を含めることができます。アニメーションを追加しましょう!「+」ボタンをクリックします。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.35.50.png) - -アニメーションは追加されますが、画像はなく空のままです。画像を追加するに+は、空白のサムネイルのをクリックします。 - -p1_standプロジェクトフォルダで 呼び出される画像を選択します。画像がオブジェクトに追加されます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.44.56.png) - -右下隅の「適用」ボタンをクリックして、エディターを閉じることができます。 - -## オブジェクトをシーンに配置します - -画面内でプレーヤーを表示するために、シーンに配置します。シーンに追加する各オブジェクトは、オブジェクトの「インスタンス」と呼ばれます。 - -プレイヤーインスタンスは、通常画面内に1つしか存在しないため、一意になりますが、他のオブジェクト(プラットフォーム、コイン、敵など)は、シーン上に複数のインスタンスを持つことができます。 - -オブジェクトをシーンに追加するには、オブジェクトをリストからシーン内にドラッグアンドドロップするだけです。 - -![](/gdevelop5/tutorials/platform-game/add-player.gif) - -## オブジェクトに適切な名前を付けます - -オブジェクトを参照しやすくするために、デフォルトの名前を使用するのではなく、名前を付けます。それを右クリック(または⋯アイコンをクリック)し、名前変更を選択します。次に、「Player」と入力して画面上の任意の場所をクリックするか、Enterキーを押してオブジェクトの名前を変更します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.53.10.png) - -## 障害物などのアイテムの配置 - -現在のところ、画面上に障害物などのアイテムは画面にありません。いくつか追加しましょう。 - -[オブジェクト] リストの「+」ボタンをクリックして、新しいオブジェクトを作成します。今回、タイルスプライトは、オブジェクトのタイプで選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.54.52.png) - -オブジェクトエディタが開きます。タイルスプライトオブジェクトは、アニメーションしないため、スプライトオブジェクトのエディターとは少し異なります。 -「画像の選択」をクリックして、次に「新しい画像を選択」をクリックします。今回は、"grassHalfMid"という画像を選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.57.28.png) - -右下隅の「適用」ボタンをクリックして、エディターを閉じます。リスト内のオブジェクトをクリックして選択し、シーンをクリックして画面に配置します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.59.05.png) - -オブジェクトはシーンに追加されますが、非常に小さなものです。それをクリックして、表示されるハンドルを使用して、プレイヤーとのバランスを考慮してサイズを変更します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.00.01.png) - -また、デフォルトの名前ではなく「草原ブロック」のようにオブジェクトの名前を変更することを忘れないでください。 - -### 定期的に保存を忘れずに! - -これまでの作業を失わないようにしましょう。アプリケーションの[ファイル]メニューで[保存]をクリック(またはCtrl + S / Cmd + Sを押し)して変更を保存します。 - - -## オブジェクトにビヘイビア(動作)を追加する - -### プレイヤー - -プレーヤーの動きはGDevelopのイベントを使用して作成できますが、優れた障害物ブロック内を動き回る仕組みを作成するのは非常に長く時間がかかり困難な作業です。幸いなことに、GDevelopにはすでに使用可能な完全な動きのエンジンが組み込まれています。そのためには、組み込み動作エンジンにアクセスして使用できる「プラットフォーマービヘイビアー」を使用する必要があります。 - -「Player」のオブジェクトエディターを開きます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.02.34.png) - -「ビヘイビア」タブに 切り替えて「+」ボタンをクリックし、オブジェクトに動作を追加します。利用可能なビヘイビアのリストから "Platformer character" を選択します。その後、エディターで動作を確認できます。多くのパラメーターを調整できます。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.04.41.png) - -ジャンプ速度などのプロパティを変更できます。ジャンプをより強力にするために、たとえば800に設定してみましょう。 - - -### 障害物ブロック - -また、オブジェクトを障害物ブロックのように設定する必要があります。プレーヤーはそれらの上を歩いてジャンプできます。そうしないと、キャラクターに着地したときに何をするかをキャラクターに指示しなかったため、プレイヤーはオブジェクトを通り抜けます。オブジェクトをプラットフォームに設定すると、キャラクターはそれと衝突し、その上を歩くことができます。 - -「草原ブロック」オブジェクトをプラットフォームに設定するには、「草原ブロック」のオブジェクトエディターを開きます。[ビヘイビア]タブに切り替えて、動作を追加します。今回は、Platformビヘイビアを選択します。. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.09.42.png) - -変更可能なオプションもいくつかあります。たとえば、「ブロックの端をつかむ」オプションは、プラットフォーマーキャラクターがプラットフォームの端をつかむことを可能にするためにあります。すぐにこのオプションを有効にすると、キャラクターが端をつかんだときに表示されるアニメーションがないため、結果は奇妙に見えます。これをチェックしないでおきましょう。 - - -## プレビューの実行 - -この時点で、ツールバーの画面上部にある「プレビュー」ボタンを押して、ゲームをテストできるはずです。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.13.25.png) - -ボタンを押すと、プレビューが生成され、その直後に新しいウィンドウが開きます。 - -デフォルトのキーを使用して歩き回ったりジャンプしたりできます。矢印キーでキャラクターを動かし、"Shift"または"Space"を押してジャンプします。 -以前と同じように、シーンに他の障害物ブロックをいくつか自由に追加してください。キャラクターが通り抜けないように、配置したものにビヘイビアーを追加することを忘れないで下さい。 - -今のところ、オブジェクトにはアニメーションがありません。後で追加します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.14.18.png) - -オブジェクトが動いていない場合は、適切なビヘイビアを追加したことを確認してください。 - - -## 背景色を変更する - -グレーの背景は少し退屈です。後で画像を追加できますが、今のところは、物事をシンプルにしましょう。エディターで、グレーの背景を右クリックし、「シーンのプロパティ」を選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.16.03.png) - -「シーンの背景色の変更」をクリックし、背景の素敵な色を選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.18.08.png) - - -## 次のステップ:プレイヤーのアニメーション - -私たちのゲームは現時点では非常に基本的なものであり、プレイヤーはジャンプや実行中にアニメーションしません。チュートリアルの次の部分では、さまざまなアニメーションを追加する方法と、プレーヤーの状態が変化したときにイベントを使用してアニメーションを変更する方法を示します。 - -➡️ **[チュートリアルの続きはこちら!](/ja/gdevelop5/tutorials/platform-game/2-player-animations)** \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/index.md b/docs/ja/gdevelop5/tutorials/platformer/index.md deleted file mode 100644 index 60681e4197..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/index.md +++ /dev/null @@ -1,129 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 1:さあ、はじめよう ---- -# プラットフォーマー チュートリアル Part 1:さあ、はじめよう - -このチュートリアルでは、GDevelop を使ったプラットフォーマーゲームの作り方を説明します。GDevelop でゲームを作ったことが一度もない人にとっては、最高の初体験になるでしょう。 - -次の内容を含んでいます。 - -- プラットフォーム、敵、収集コインを含むレベルデザイン術。 -- 移動し、ジャンプし、敵をやっつけるプレイヤーキャラクターの作成。 -- 死んだときにチェックポイントへ戻してプレイを継続する方法。 - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 1** です。 - -1. プラットフォーマー チュートリアル Part 1 -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - -## ステップ 1:GDevelop のインストール - -まだ GDevelop を入手していなければ、いまダウンロードしてインストールしましょう。くわしいインストール手順は[はじめに](/gdevelop5/getting_started)のページを参照してください。 - -## ステップ 2:ゲームアセットのダウンロード - -「アセット」という用語は、ゲームで使用するオーディオやビジュアルメディアを指します。効果音やスプライトなどが、それです。どんなゲームにもアセットが必要です。人生をちょっぴり楽にするため、このチュートリアルに必要なアセットをあらかじめ用意しておきました。 - -次の URL からダウンロードしてください。 - -http://www.compilgames.net/dl/PlatformerTutorialResources.zip - -!!! note - - これとは違うアセットを使うのも、大歓迎です。ただしその場合、当然ですがこのチュートリアルで掲載するスクリーンショットとあなたの作るゲームは違う見た目になるでしょう。 - -## ステップ 3:新しいプロジェクトを作成する - -GDevelop では、_プロジェクト_がゲームのアセットやロジックの容れ物になります。このチュートリアルで「プロジェクト」といえば、だいたい「ゲーム」と同じ意味だと思ってください。 - -ではプロジェクトを以下の手順で作成しましょう。 - -1. GDevelop を起動します。 -2. **新しいプロジェクトを作成する**を選択します。 -3. プロジェクト用のフォルダーを指定します。 -4. **空のゲーム**を選択します。 - -![](/gdevelop5/tutorials/platformer/create-project.gif) - -## ステップ 4:ゲームにシーンを追加する - -ゲームは_シーン_の集まりで構成されます。ふつうは各シーンがゲーム内の違う画面を担当します。たとえばメインメニュー、ポーズメニュー、各レベルはどれも違うシーンになります。 - -シーンは次の手順で追加します。 - -1. **シーン**パネルを展開します(もしまだ展開していなければ)。 -2. **クリックしてシーンを追加**を選択します。 - -追加したシーンを選んで、開きましょう。 - -![](/gdevelop5/tutorials/platformer/add-scene.gif) - -!!! note - - プロジェクトに複数のシーンを追加すると、一覧の先頭のシーンが、ゲーム開始時に GDevelop がロードする最初のシーンになります。 - -## ステップ 5:シーンにオブジェクトを追加する - -シーンは[オブジェクト](/gdevelop5/objects)の集まりで構成されます。ユーザーが目にするものや操作するものは、すべてオブジェクトです。プレイヤーキャラクター、敵、背景パーツなど全部そうです。 - -GDevelop には、いろいろな種類のオブジェクトが用意されています。オブジェクトの種類によって、用途と機能が違います。一番よく使われるオブジェクトはスプライトでしょう。これは画像を表示し、(オプションで)アニメーションさせることができます。 - -スプライトは次の手順で作成します。 - -1. **オブジェクト**パネルの**新しいオブジェクトを追加**をクリックします。 -2. **スプライト**を選択します。 -3. **オブジェクト名**フィールドに「Cloud」と入力します。 -4. 開いているオブジェクトエディターの**アニメーションを追加**をクリックします。ラベルには**_アニメーション_を追加**と書いてありますが、スプライトオブジェクトは必ずアニメーションするとは限りません。 -5. **追加**をクリックします。 -6. アセットの「cloud2.png」を選択します。 -7. **適用**を選択します。 - -「Cloud」オブジェクトをシーンにドラッグして、1 個以上コピーします。 - -![](/gdevelop5/tutorials/platformer/add-object-instance.gif) - -!!! note - - シーンに配置したオブジェクトの各コピーのことを、オブジェクトの_インスタンス_と呼びます。 - -## ステップ 6:背景色を変更する - -グレーの背景の上では、白い雲はあまり見栄えがよくありません。 - -シーンの背景色をもっとましな色に変更しましょう。 - -1. シーンの背景を右クリックします。 -2. **シーンプロパティ**を選択します。 -3. **シーンの背景色**をクリックします。 -4. いい感じの青を選びます。 - -![](/gdevelop5/tutorials/platformer/set-scene-background-color.jpg) - -## ステップ 7:ゲームをプレビューする - -定期的にゲームをプレビューして確認する癖をつけるのは、よいことです。息抜きにもなるし、バグを見つけるのが簡単になります。 - -ゲームのプレビューを起動するには、ツールバーの**プレビュー**ボタンをクリックします。 - -![](/gdevelop5/tutorials/platformer/preview-button.jpg) - -プレビューを停止するには、プレビューウィンドウを閉じます。 - -## ステップ 8:ゲームを保存する - -定期的にゲームを保存する癖をつけるのは、これまたよいことです。ゲームの保存は**ファイル**メニューからおこなうか、次のキーボードショートカットを使います。 - -- Windows の場合は `Ctrl` + `S` -- macOS の場合は `Cmd` + `S` - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) で、プレイヤーキャラクターの作り方をご説明します。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-2.md b/docs/ja/gdevelop5/tutorials/platformer/part-2.md deleted file mode 100644 index 3aa59f933a..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-2.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 2:プレイヤーキャラクターを作ろう ---- -# プラットフォーマー チュートリアル Part 2:プレイヤーキャラクターを作ろう - -今回はプレイヤーキャラクターの作り方を説明します。 - -次の内容を含んでいます。 - -- プレイヤーキャラクターを表示するオブジェクトを作成する -- 矢印キーでオブジェクトを操作できるようにする -- カメラにプレイヤーキャラクターを追いかけさせる - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 2** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. プラットフォーマー チュートリアル Part 2 -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - -## ステップ 1:オブジェクトを作成する - -最初に、プレイヤーキャラクターを表示するオブジェクトを作成します。チュートリアルの Part 1 をお読みになっていれば、手順はもうお分かりでしょう。 - -プレイヤーキャラクター用のオブジェクトを作成する手順は次の通りです。 - -1. 「Player」という名前の**スプライト**オブジェクトを作成します。 -2. アニメーションの唯一のフレームとして「p1_stand.png」アセットを使います。 -3. アニメーションの名前に「Idle」(待機)と入力します。 -4. オブジェクトをシーンにドラッグしてインスタンスを配置します。 - -![](/gdevelop5/tutorials/platformer/player-object.jpg) - -!!! note - - キャラクターをアニメーションさせる方法は[プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) で説明します。 - -## ステップ 2:オブジェクトにビヘイビアを追加する - -ゲームをプレビューすると分かりますが、この「Player」オブジェクトはまだ操作できません。なぜなら、デフォルトのままではオブジェクトは何もしないからです。オブジェクトに何かさせるには、1 つ以上の[ビヘイビア](/ja/gdevelop5/behaviors)を割り当てる必要があります。 - -GDevelop には数クリックでオブジェクトに追加できるビヘイビアがたくさん付属しています。そのひとつに**プラットフォーマーキャラクター**ビヘイビアがあり、これを使うとオブジェクトをプレイヤーキャラクターとして操作できるようになります。 - -では以下の手順で**プラットフォーマーキャラクター**ビヘイビアをオブジェクトに追加しましょう。 - -1. オブジェクトパネル上で **Player** オブジェクトを右クリックします。 -2. **オブジェクトを編集**を選択します。 -3. **ビヘイビア**タブに切り替えます。 -4. **オブジェクトにビヘイビアを追加**をクリックします。 -5. **プラットフォーマーキャラクター**を選択します。 -6. **適用**をクリックします。 - -ゲームをプレビューすると、矢印キーでキャラクターを操作できるはずです。ただし、これには副作用があります。**プラットフォーマーキャラクター**ビヘイビアは重力の影響を受けるため、今の状態ではプレイヤーキャラクターがあっという間にフレームから落ちていってしまいます。 - -![](/gdevelop5/tutorials/platformer/platformer-character-behavior-preview.gif) - -## ステップ 3:カメラにオブジェクトを追いかけさせる - -キャラクターがフレームから落ちるのを防ぐために、プラットフォーム(足場)が必要です。それから、プレイヤーを追いかけるカメラも。[チュートリアルの次の章](/gdevelop5/tutorials/platformer/part-3)では、プラットフォームを作ります。なので、ここではカメラを作りましょう。 - -プレイヤーを追いかけるカメラの作成には、[イベント](/ja/gdevelop5/events)を使います。GDevelop のイベントには、原因と結果を定義できます。すなわち、何かが起きると(原因)別の何かが引き起こされる(結果)ように設定するのです。 - -イベントは 2 つの部分から構成されます。条件とアクションです。条件はイベントがいつ実行されるかを定義し、アクションはイベントが実行されると何が起きるのかを定義します。 - -GDevelop は、ゲームに必要と思われるあらゆる種類の条件とアクションを取り揃えています。ここで利用できる選択肢を把握することが、GDevelop を使いこなす上で重要な位置を占めています。今回の場合で言うと、このゲームには**オブジェクトの中央にカメラを合わせる**というアクションがぴったりです。 - -**オブジェクトの中央にカメラを合わせる**アクションを追加する手順は、次の通りです。 - -1. イベントエディターを開きます。 -2. **新しいイベントを追加**をクリックします。 -3. 条件を指定せずに、**アクションを追加**をクリックします。条件を指定しないと、アクションは無条件に毎フレーム実行されます。したがって、ゲームが毎秒 60 フレームで実行されたなら、アクションも毎秒 60 回実行されます。 -4. **その他のアクション**をクリックします。 -5. **レイヤーとカメラ**を展開します。 -6. **オブジェクトの中央にカメラを合わせる**を選択します。 -7. 「Player」オブジェクトを選択します。 -8. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/center-camera-event.jpg) - -ゲームをプレビューすると、キャラクターはやっぱり落下するでしょう。プラットフォームがまだありませんから。でもカメラは、キャラクターを追いかけ続けるはずです。その結果、今度はキャラクターが画面から消えることはありません。 - -![](/gdevelop5/tutorials/platformer/center-camera-on-object-preview.gif) - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) で、お待ちしています。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-3.md b/docs/ja/gdevelop5/tutorials/platformer/part-3.md deleted file mode 100644 index 0b3bda64a8..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-3.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 3:プラットフォームを作ろう ---- -# プラットフォーマー チュートリアル Part 3:プラットフォームを作ろう - -今回はプラットフォーム(足場)の作り方を説明します。これでプレイヤーがその上を移動したりジャンプできる、しっかりとした土台ができあがります。 - -次の内容を含んでいます。 - -* タイルスプライトオブジェクトの作成 -* プラットフォームをプラットフォームらしくさせる - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 3** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. プラットフォーマー チュートリアル Part 3 -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - - -## ステップ 1:オブジェクトを作成する - -最初のステップは、プラットフォーム用のオブジェクトを作成することです。チュートリアルの Part 1 と Part 2 をお読みになっていればお分かりの通り、まったく同じではないにしても、これも似たような手順です。 - -主な違いは、このオブジェクトがタイルスプライトオブジェクトである、ということでしょう。これは「領域全体に画像を繰り返し表示する」タイプのオブジェクトで、プラットフォームのような、小さくて四角いイメージ(*タイル*と呼ばれる)の組み合わせで構成される何かに最適です。 - -では次の手順でプラットフォームを作成しましょう。 - -1. **オブジェクト**パネルの**新しいオブジェクトを追加**をクリックします。 -2. **タイルスプライト**を選択します。 -3. **オブジェクト名**フィールドに「GrassPlatform」と入力します。 -4. **画像を選択**をクリックします。 -5. **Choose a new image** をクリックします。 -6. ファイルを開くダイアログが表示されたら、アセットの「grassHalfMid」を選択します。 -7. **適用**をクリックします。 - -オブジェクトをシーンにドラッグして、インスタンスをいくつか配置します。プラットフォームの長さがバラバラになるように、インスタンスの幅を調整してください。 - -![](/gdevelop5/tutorials/platformer/grass-platform-resize.gif) - -## ステップ 2:オブジェクトにビヘイビアを追加する - -シーンにプラットフォームを追加しただけでは、十分ではありません。プレイヤーキャラクターがその上を歩けるように、オブジェクトにビヘイビアを追加する必要があります。ありがたいことに、GDevelop にはその名も**プラットフォーム**という、おあつらえ向きのビヘイビアがあります。 - -![](/gdevelop5/tutorials/platformer/platform-behavior.jpg) - -オブジェクトに**プラットフォーム**ビヘイビアを追加しましょう。 - -1. 「GrassPlatform」オブジェクトの**ビヘイビア**タブを開きます。 -2. **オブジェクトに新しいビヘイビアを追加**をクリックして、**プラットフォームビヘイビア**を選択します。 -3. **適用**をクリックします。 - -![](/gdevelop5/tutorials/platformer/grass-platform-add-behavior.jpg) - -ゲームをプレビューすると、プレイヤーがプラットフォームの上を移動できるようになっているはずです。 - -![](/gdevelop5/tutorials/platformer/grass-platform-behavior.gif) - -## ステップ 3:違う種類のプラットフォームを作成する - -GDevelop には**ジャンプスループラットフォーム**ビヘイビアというものもあります。このビヘイビアは、プレイヤーがプラットフォームの真下からジャンプして(プラットフォームに跳ね返されずに)上に上がれるようにします。これはレベルに多様性をもたらしてくれます。 - -**ジャンプスループラットフォーム**ビヘイビアは次の手順で作成します。 - -1. 「SmallBridge」という名前の**タイルスプライト**オブジェクトを作成します。 -2. オブジェクトのイメージに「bridgeLogs.png」アセットを使います。 -3. **ビヘイビア**タブを開きます。 -4. **オブジェクトに新しいビヘイビアを追加**をクリックして、**プラットフォームビヘイビア**を選択します。 -6. **タイプ**ドロップダウンリストから**ジャンプスループラットフォーム**を選択します。 -7. **適用**をクリックします。 - -オブジェクトをシーンにドラッグしてインスタンスをいくつか配置します。 - -![](/gdevelop5/tutorials/platformer/jump-thru-platform-preview.gif) - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) で、お待ちしています。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-4.md b/docs/ja/gdevelop5/tutorials/platformer/part-4.md deleted file mode 100644 index 556ff94eb4..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-4.md +++ /dev/null @@ -1,138 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 4:プレイヤーキャラクターをアニメーションさせよう ---- -# プラットフォーマー チュートリアル Part 4:プレイヤーキャラクターをアニメーションさせよう - -今回はプレイヤーキャラクターにアニメーションをさせる方法を説明します。 - -次の内容を含んでいます。 - -- オブジェクトにアニメーションを追加する -- イベントを使ってアニメーションをトリガーする - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 4** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. プラットフォーマー チュートリアル Part 4 -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - - -## ステップ 1:プレイヤーにジャンプするアニメーションを追加する - -GDevelop ではオブジェクトにアニメーションを追加して、そのアニメーションを(プレイヤーがジャンプしたときのような)何かのきっかけを合図にトリガーすることができます。 - -### 「Player」オブジェクトに「Jumping」アニメーションを追加する - -「Player」オブジェクトにジャンプするアニメーションを追加する手順は次の通りです。 - -1. **オブジェクト**パネル上で **Player** オブジェクトを右クリックします。 -2. **オブジェクトを編集**を選択します。 -3. **アニメーションを追加**をクリックします。 -4. アニメーションの名前に「Jumping」(ジャンプ)と入力します。 -5. **追加**をクリックします。 -6. ファイルを開くダイアログが表示されたら、アセットの「p1_jump.png」を選択します。 - -![](/gdevelop5/tutorials/platformer/part-4-01.jpg) - -これでオブジェクトにアニメーションは追加されましたが、それをトリガーするものが何もないのでまだ再生しない状態です。 - -### 「Jumping」アニメーションをトリガーする - -「Jumping」アニメーションをトリガーする手順は次の通りです。 - -1. イベントエディターに切り替えます。 -2. 新しいイベントを作成します。 -3. 「Player」オブジェクトの**ジャンプ中である**条件を追加します。 -4. **名前でアニメーションを変更する**アクションをイベントに追加します。 -5. **アニメーションの名前**フィールドに「"Jumping"」と入力します。名前を二重引用符でくくるのをお忘れなく(つまり `"Jumping"` です)。 -6. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/part-4-02.jpg) - -ここまでの変更によって、ジャンプするアニメーションがトリガーされるようになりました。 - -![](/gdevelop5/tutorials/platformer/part-4-03.gif) - -## ステップ 2:プレイヤーに待機アニメーションを追加する - -ジャンプするアニメーションには、ひとつ問題があります。プレイヤーがジャンプし終わっても、リセットされないのです。これを改善するには、プレイヤーが着地したときに「待機」アニメーションをトリガーするようにします。 - -### プレイヤーの接地状態を検出する - -GDevelop はプラットフォームの表面を_地面_として認識します。 - -オブジェクトの接地状態は、次の手順で検出できます。 - -1. 新しいイベントを作成します。 -2. 「Player」オブジェクトの**は地面上にいる**条件を追加します。 - -![](/gdevelop5/tutorials/platformer/part-4-04.jpg) - -### プレイヤーの静止状態を検出する - -「待機」アニメーションをトリガーするときは、プレイヤーが静止していないと困ります。次のステップで説明しますが、プレイヤーがもし移動していたら「走り」アニメーションをトリガーすべきなので。 - -次の手順で、プレイヤーが移動していないことを確認します。 - -1. 「Player」オブジェクトの**は動いている**条件を追加します。 -2. **条件を反転**オプションを_オン_に切り替えます。 - -**条件を反転**オプションには、条件のテスト結果を反転させる作用があります。したがって**は動いている**条件は、今や**は動いていない**条件に変わったということです。 - -![](/gdevelop5/tutorials/platformer/part-4-05.jpg) - -### 「Idle」アニメーションをトリガーする - -ここまでの条件を両方満たしたときこそ、「待機」アニメーションをトリガーすべきときです。 - -1. **名前でアニメーションを変更する**アクションを追加します。 -2. **アニメーションの名前**フィールドに「"Idle"」と入力します。名前を二重引用符でくくるのをお忘れなく(つまり `"Idle"` です)。 - -![](/gdevelop5/tutorials/platformer/part-4-06.jpg) - -ゲームをプレビューすると、ジャンプした後「Player」オブジェクトが「待機」アニメーションにリセットされるはずです。 - -![](/gdevelop5/tutorials/platformer/part-4-jumping-with-idle-animation.gif) - -## ステップ 3:プレイヤーに走るアニメーションを追加する - -### 「Player」オブジェクトに「Running」アニメーションを追加する - -1. 「Player」オブジェクトに「Running」と名付けたアニメーションを追加します。 -2. ファイルを開くダイアログが表示されたら、以下のアセットをすべて選択します。 - - - p1_walk03.png - - p1_walk04.png - - p1_walk05.png - - p1_walk06.png - - p1_walk07.png -3. **ループ**オプションにチェックを入れます。このオプションを有効にすると、アニメーションを(一回だけ再生して停止するのではなく)連続再生するようになります。 -4. **適用**をクリックします。 - -![](/gdevelop5/tutorials/platformer/part-4-07.jpg) - -### 「Running」アニメーションをトリガーする - -1. 新しいイベントを作成します。 -2. 「Player」オブジェクトの**は地面上にいる**条件を追加します。 -3. 「Player」オブジェクトの**は動いている**条件を追加します。 -4. **名前でアニメーションを変更する**アクションをイベントに追加します。 -5. **アニメーションの名前**フィールドに「"Running"」と入力します。名前を二重引用符でくくるのをお忘れなく(つまり `"Running"` です)。 -6. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/part-4-08.jpg) - -ゲームをプレビューすると、プレイヤーが移動したときに「走り」アニメーションが再生されます。 - -![](/gdevelop5/tutorials/platformer/part-4-running-animation.gif) - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) です。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-5.md b/docs/ja/gdevelop5/tutorials/platformer/part-5.md deleted file mode 100644 index 5da25b6751..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-5.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 5:収集コインをゲームに追加しよう ---- -# プラットフォーマー チュートリアル Part 5:収集コインをゲームに追加しよう - -今回は収集コインをゲームに追加する方法を説明します。 - -次の内容を含んでいます。 - -- プレイヤーが接触したときにオブジェクトを削除する(サウンドも再生する) -- 変数を使ってデータを管理する -- シーンにテキストを追加する - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 5** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. プラットフォーマー チュートリアル Part 5 -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - - -## ステップ 1: 収集コインを作成する - -最初に、プレイヤーが収集できるコインを作成します。このステップは 2 つのパートに分けられます。コインの作成をする部分と、プレイヤーの接触を感知するイベントによってコインを収集可能にする部分です。 - -### コインのオブジェクトを作成する - -1. 「Coin」という名前の**スプライト**オブジェクトを作成します。 -2. オブジェクトの画像にアセットの「coin.png」を指定します。 -3. オブジェクトをシーンにドラッグして、1 個以上のインスタンスを配置します。 - -![](/gdevelop5/tutorials/platformer/05-01-coin-object.jpg) - -!!! note - - シーンに配置済みのコインを複製するには、`Ctrl` キー(macOS の場合は `Cmd` キー)を押しながら、コインのインスタンスをドラッグします。 - -### コインを収集可能にする - -1. 新しいイベントを作成します。 -2. 「Player」オブジェクトの**衝突**条件をイベントに追加して、「Coin」との接触をテストします。 -3. **オブジェクトを削除する**アクションをイベントに追加して、「Coin」オブジェクトを削除するように設定します。 -4. **サウンドを再生する**アクションをイベントに追加して、プレイヤーがコインを収集したときの効果音を再生します(効果音には「coin.wav」アセットを使います)。 - -![](/gdevelop5/tutorials/platformer/05-02-coin-collectible.jpg) - -ゲームをプレビューして、プレイヤーがコインと接触するとコインが消えて効果音が鳴ることを確認しましょう。 - -![](/gdevelop5/tutorials/platformer/05-02-collect-coin-preview.gif) - -## ステップ 2: 収集コインを管理する - -ユーザーがコインを収集するたびに、プレイヤーが獲得したコインの数を更新して記憶しておく必要があります。そのために、[変数](/ja/gdevelop5/all-features/variables)を使います。 - -変数とは、データを格納する容れ物のことです。代数を習ったことがある人なら、変数はおなじみのはずです。よく「x」とか「y」とかの文字で表されていた、アレです。 - -GDevelop には 3 種類の変数があります。 - -* オブジェクト変数 -* シーン変数 -* グローバル変数 - -変数の種類それぞれについての詳しい説明はこのチュートリアルの取り扱い範囲を超えるため、[変数のスコープ](http://wiki.compilgames.net/doku.php/ja/gdevelop5/all-features/variables#スコープ)で違いを確認してみてください。今回の場合は、シーン変数を使うのがいいでしょう。この変数は、シーンのあいだじゅう存在し続けます。 - -集めたコインの数を管理するシーン変数の作り方は、次の通りです。 - -1. **シーン変数の値**アクション(変数カテゴリーの下にあります)を、手前で作成したイベントに追加します。 -2. **変数**フィールドに「Score」と入力します。これが変数の名前になります。 -3. **変更記号**ドロップダウンリストから**+(足す)**を選択します。 -4. **値**フィールドに「1」と入力します(二重引用符は要りません)。 -5. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/05-03-scene-variable.jpg) - -これでプレイヤーが集めたコインの数を管理できるようになりました。ただし、コインの数は(まだ)画面に表示されません。 - -## ステップ 3: 集めたコインの数を表示する - -集めたコインの数を表示するには、テキストを表示するオブジェクトと、そこに表示するテキストを更新するイベントが必要です。 - -### テキストを表示するオブジェクトを作成する - -1. 「Score」という名前の**テキスト**オブジェクトを作成します。 -2. **最初に表示するテキスト**フィールドに「スコア:0」と入力します。これがオブジェクトに表示されるデフォルトのテキストになります。 -3. **適用**をクリックします。 -4. オブジェクトをシーンにドラッグしてインスタンスを配置します。 - -![](/gdevelop5/tutorials/platformer/05-04-text-object.jpg) - -### 集めたコインの数で「Score」オブジェクトを更新する - -コイン数を表示するテキストを更新する前に、ここで[式](/ja/gdevelop5/expressions)について確認しておきましょう。 - -GDevelop の式は、表計算ソフトの数式や、プログラミング言語の関数のようなものです。式には値を渡して、結果の値を受け取ることができます。 - -たとえば「Score」変数の値を取得するための `Variable` 式は次のようになります。 - -``` -Variable(Score) -``` - -「Score」変数は数値を格納しているので、この式は数値を返します。数値は `ToString` 式を使って文字列に変換できます。 - -``` -ToString(Variable(Score)) -``` - -式は GDevelop の最も高度な、そして最もパワフルな概念のひとつです。この概念をすぐに理解できなかったとしても、心配しないでください。このチュートリアルにしたがって、式を*実際に使う*のが秘訣です。実践ほど役に立つものはありません。 - -集めたコインの数で「Score」オブジェクトを更新する方法は、次の通りです。 - -1. 新しいイベントを作成します。 -2. 条件を指定せずに、「Score」オブジェクトに対する**テキストを修正する**アクションを追加します。条件を指定しないと、アクションは必ず毎フレーム実行されます。これによって、スコアを常に正確に表示できます。 -3. **変更記号**ドロップダウンリストから**=(代入)**を選択します。 -4. **値**フィールドに `"スコア:" + ToString(Variable(Score))` と入力します。`ToString` と `Variable` 式で、集めたコインの数値を文字列に変換しています。また `+` 演算子で 2 つの文字列を 1 つに連結しています。 -5. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/05-05-modify-text-object.jpg) - -ゲームをプレビューすると、収集コインが画面に表示されます。 - -![](/gdevelop5/tutorials/platformer/05-06-score-preview.gif) - -!!! tip - - 値フィールドの脇に表示される青いアイコンをクリックすると、_式エディター_が表示されます。 - - ![](/gdevelop5/tutorials/platform-game/expression-icon.png) - - カテゴリー別に分類された利用可能なすべての式を、そこで検索できます。 - - ![](/gdevelop5/tutorials/platform-game/expression-editor.png) - - -### テキストを別のレイヤーに移動する - -「Score」オブジェクトには問題が一つあります。集めたコインの数は、プレイヤーが特定の位置にいるあいだだけ見えていて、プレイヤーが移動すると画面から外れてしまうのです。 - -この問題を解決するには、「Score」オブジェクトを別のレイヤーに移動する必要があります。 - -1. **レイヤーエディターを開く**アイコンをクリックします。 -2. **レイヤーを追加**をクリックします。 -3. レイヤー名に「UI」と入力します。 -4. シーンエディターの「Score」インスタンスを選択します。 -5. プロパティパネルの**レイヤー**ドロップダウンリストから**UI**を選択します。 - -![](/gdevelop5/tutorials/platformer/05-07-change-layer.gif) - -ゲームをプレビューすると、スコアが同じ位置に固定されているはずです。 - -![](/gdevelop5/tutorials/platformer/05-08-score-ui-layer-preview.gif) - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) です。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-6.md b/docs/ja/gdevelop5/tutorials/platformer/part-6.md deleted file mode 100644 index 302f365b8a..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-6.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 6:敵をゲームに追加しよう ---- -# プラットフォーマー チュートリアル Part 6:敵をゲームに追加しよう - -今回は決まったルートを行ったり来たりする敵の作り方を説明します。チュートリアルの次章では、ここで作る敵をやっつける――もしくは、やっつけられる――方法を説明する予定です。 - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 6** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. プラットフォーマー チュートリアル Part 6 -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - - -## ステップ 1:敵オブジェクトを作成する - -1. 「Slime」という名前のスプライトオブジェクトを作成します。 -2. 以下のアセットを使って、オブジェクトにアニメーションを追加します。 - - - slimeWalk1.png - - slimeWalk2.png -3. **ループ**オプションにチェックを入れます。 -4. オブジェクトをシーンにドラッグしてインスタンスを配置します。 - -![](/gdevelop5/tutorials/platformer/06-01.jpg) - -ゲームをプレビューすると、画面にアニメーションする敵が表示されます。 - -![](/gdevelop5/tutorials/platformer/06-02.gif) - -## ステップ 2:敵を右に移動させる - -このチュートリアルの前の章で、変数には 3 種類あると説明しました。 - -- オブジェクト -- シーン -- グローバル - -このうち、_オブジェクト_変数は特定のオブジェクトに関連付けされた変数です。これはつまり、この変数が保持する値は関連付けされたオブジェクトのみで利用できる――そして、そのオブジェクトのみに関係する――ということです。 - -では「Slime」オブジェクトに、次の手順でオブジェクト変数を追加しましょう。 - -1. オブジェクトパネルの「Slime」オブジェクトを右クリックします。 -2. **オブジェクト変数を編集**を選択します。 -3. 「方向」という名前の変数を追加し、値に「右」と入力します。これが変数のデフォルト値になります。 -4. **適用**をクリックします。 - -この「方向」変数は、敵の現在の方向を保持するのに使います。この後のステップで、変数の値を変更すると敵の向きも変わるようにする予定です。 - -![](/gdevelop5/tutorials/platformer/06-03.jpg) - -敵が右を向くようにするために、イベントを作成します。 - -1. イベントエディターを開きます。 -2. 新しいイベントを作成します。 -3. 条件を作成して、「Slime」オブジェクトの**オブジェクト変数のテキスト**条件を選択します。 -4. **変数**フィールドに「方向」と入力します。 -5. **テスト記号**フィールドから**=(と等しい)**を選択します。 -6. **比較する値**フィールドに「"右"」と入力します(二重引用符も含めます)。 -7. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/06-04.jpg) - -続いて、イベントにアクションを追加します。 - -1. イベントに**オブジェクトを移動する(角度)**アクションを追加します。(訳注:実際にはこの手前に、新しいイベントを作成して「Slime」オブジェクトの方向変数のテキストが "左" であることをテストする条件の追加が必要と思われる) -2. **オブジェクト**フィールドから「Slime」を選択します。 -3. **角度**フィールドに「0」と入力します。 -4. **速度**フィールドに「100」と入力します。 -5. **瞬間的**オプションを有効にします。 -6. **OK**をクリックします。 - -![](/gdevelop5/tutorials/platformer/06-05.jpg) - -完成したイベントは下図のようになります。 - -![](/gdevelop5/tutorials/platformer/06-06.jpg) - -このイベントにもとづいて、「方向」変数の値が「右」のあいだ「Slime」は右へ移動します。今のところオブジェクトの方向は変わらないので、必然的にプラットフォームの端まで行くとそのまま落ちてしまいます。 - -![](/gdevelop5/tutorials/platformer/06-07.gif) - -## ステップ 3:敵の方向を変更する - -敵の方向を変更するには、シーンに 2 つの見えないオブジェクトを追加する必要があります。ひとつを「右へ」、もうひとつを「左へ」と名付けておきましょう。これを敵の両側に配置します。 - -それから、敵がこのオブジェクトのどちらかに接触したら方向を変えるようにします。これで、あたかも敵が決められた経路に沿って巡回しているかのような幻想が生みだされます。 - -このステップでは、まず「左へ」オブジェクトの作成に焦点を当てます。敵がこのオブジェクトに接触したら、右から左に方向を変えるようにします(これを作り終わったら、次は「右へ」オブジェクトの作成に移ります)。 - -### 「左へ」オブジェクトを作成する - -1. 「左へ」という名前のスプライトオブジェクトを作成します。 -2. デフォルトの画像にアセットの「left.png」を指定します。 -3. オブジェクトをシーンにドラッグしてインスタンスを(敵の右側に)配置します。 - -![](/gdevelop5/tutorials/platformer/06-08.jpg) - -### 敵が「左へ」オブジェクトと接触したことを検知する - -1. 新しいイベントを作成します。 -2. 「Slime」オブジェクトの**衝突**条件をイベントに追加して、「左へ」オブジェクトとの接触をテストします。 - -![](/gdevelop5/tutorials/platformer/06-09.jpg) - -### 「方向」変数の値を変更する - -1. **オブジェクト変数のテキストを修正**アクションをイベントに追加します。 -2. **変数**フィールドに「方向」と入力します。 -3. **変更記号**ドロップダウンリストから**=(代入)**を選択します。 -4. **値**フィールドに「"左"」と入力します(二重引用符も含めます)。 - -![](/gdevelop5/tutorials/platformer/06-10.jpg) - -### 「Slime」オブジェクトを反転させる - -1. **オブジェクトを水平方向に反転させる**アクションをイベントに追加します。 -2. **反転を有効にする**オプションを**はい**に設定します。 - -これで「Slime」オブジェクトが移動する方向が変わるだけでなく、オブジェクト自体の*向きも変わる*ようになります。 - -### 敵の方向を変更する - -1. イベントに**オブジェクトを移動する(角度)**アクションを追加します。(訳注:実際にはこの手前に、新しいイベントを作成して「Slime」オブジェクトの方向変数のテキストが "左" であることをテストする条件の追加が必要と思われる) -2. **オブジェクト**フィールドから「Slime」を選択します。 -3. **角度**フィールドに「180」と入力します。 -4. **速度**フィールドに「100」と入力します。 -5. **瞬間的**オプションを有効にします。 -6. **OK**をクリックします。 - -ゲームをプレビューすると、敵が「左へ」オブジェクトに接触すると向きを変えるはずです。 - -![](/gdevelop5/tutorials/platformer/06-12.gif) - -### 「左へ」オブジェクトを非表示にする - -1. 新しいイベントを作成します。 -2. **シーンが始まった**条件をイベントに追加します。 -3. 「左へ」オブジェクトに**非表示にする**アクションを追加します。 - -![](/gdevelop5/tutorials/platformer/06-11.jpg) - -ゲームをプレビューすると、まるで敵が自分の「判断」で向きを変えるように見えるでしょう。 - -![](/gdevelop5/tutorials/platformer/06-13.gif) - -## ステップ 4:敵の方向を変更する(2 度目) - -今のところ、敵が「左へ」オブジェクトに接触したら、右から左へ方向を変えて、そのままずっと左へ移動し続けます。そこでもう一度方向を変えるように、今度は「右へ」オブジェクトを作成することにします。このオブジェクトは「左へ」オブジェクトとほぼ同じで、下記の部分だけが異なります。 - -- 画像にはアセットの「right.png」を指定する -- 「Slime」オブジェクトが「右へ」オブジェクトと接触したとき、「方向」変数には "右" を代入する -- **オブジェクトを水平方向に反転させる**アクションの**反転を有効にする**オプションは**いいえ**に設定する - -この通り作成したら、「右へ」オブジェクトをシーンにドラッグしてインスタンスを敵の左側に配置します。 - -![](/gdevelop5/tutorials/platformer/06-14.jpg) - -ゲームをプレビューすると、敵が見えないマーカーのあいだを行ったり来たりするようになります。 - -![](/gdevelop5/tutorials/platformer/06-15.gif) - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) です。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-7.md b/docs/ja/gdevelop5/tutorials/platformer/part-7.md deleted file mode 100644 index 0c0ccefd32..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-7.md +++ /dev/null @@ -1,73 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 7:敵がプレイヤーを殺せる(そしてプレイヤーも敵を殺せる)ようにしよう ---- -# プラットフォーマー チュートリアル Part 7:敵がプレイヤーを殺せる(そしてプレイヤーも敵を殺せる)ようにしよう - -今回は、敵をやっつける――そして敵にもプレイヤーをやっつけさせる――方法を説明します。 - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 7** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. プラットフォーマー チュートリアル Part 7 -8. [プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) - - -## ステップ 1:プレイヤーを殺す - -敵に接触するとプレイヤーが死ぬようにします。プレイヤーを「キル」する一番簡単な方法は、敵と接触したときに「Player」オブジェクトを削除することです。 - -次の手順で、敵と接触した「Player」オブジェクトを削除します。 - -1. 新しいイベントを作成します。 -2. 「Player」オブジェクトの**衝突**条件をイベントに追加して、「Slime」オブジェクトとの接触をテストします。 -3. 「Player」オブジェクトの**は地面上にいる**条件を追加します。これはプレイヤーがプラットフォーム上にいるときだけ(つまりジャンプ中ではない)やられるようにするためです。 -4. **オブジェクトを削除する**アクションをイベントに追加して、「Player」オブジェクトを削除します。 - -![](/gdevelop5/tutorials/platformer/07-01-kill-player.jpg) - -ゲームをプレビューすると、敵にぶつかったプレイヤーが死にます。 - -![](/gdevelop5/tutorials/platformer/07-02-killing-player-preview.gif) - -## ステップ 2:敵を殺す - -ジャンプしたプレイヤーが敵を踏みつけると、敵が死ぬようにします。さっきの手順に似た内容ですが、今度「死ぬ」のは「Slime」オブジェクトの方です。 - -次の手順で、プレイヤーが踏みつけたときに「Slime」オブジェクトを削除します。 - -1. 新しいイベントを作成します。 -2. 「Player」オブジェクトの**衝突**条件をイベントに追加して、「Slime」オブジェクトとの接触をテストします。 -3. 「Player」オブジェクトに**は落下中である**条件を追加します。これはプレイヤーがジャンプ中のときだけ(つまりプラットフォーム上にいるのではない)敵が死ぬようにするためです。 -4. **オブジェクトを削除する**アクションをイベントに追加して、「Slime」オブジェクトを削除します。 - -![](/gdevelop5/tutorials/platformer/07-03-kill-enemy.jpg) - -ゲームをプレビューすると、プレイヤーが踏みつけた敵は死にます。 - -![](/gdevelop5/tutorials/platformer/07-04-killing-enemy-preview.gif) - -## (オプション)ステップ 3:敵の頭上で跳ね返る - -多くのプラットフォームゲームでは、プレイヤーが敵を踏みつけると、敵の上でプレイヤーが弾むような動きをします。それによって、敵にあるていどの弾力性を感じさせる効果があります。 - -次の手順で、敵の頭上でプレイヤーが跳ね返るようにします。 - -1. 「Player」オブジェクトに**再ジャンプを許可する**アクションを追加します。 -2. 「Player」オブジェクトに**ジャンプキー押下シミュレーション**アクションを追加します。 - -![](/gdevelop5/tutorials/platformer/07-05-bounce-kill.jpg) - -ゲームをプレビューすると、敵を踏みつけたときにプレイヤーが跳ね返るようになります。 - -![](/gdevelop5/tutorials/platformer/07-06-killing-enemy-bounce-preview.gif) - -## 次のステップ - -次は[プラットフォーマー チュートリアル Part 8](/ja/gdevelop5/tutorials/platformer/part-8) です。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/platformer/part-8.md b/docs/ja/gdevelop5/tutorials/platformer/part-8.md deleted file mode 100644 index 2a86c8ba56..0000000000 --- a/docs/ja/gdevelop5/tutorials/platformer/part-8.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: プラットフォーマー チュートリアル Part 8:チェックポイントをゲームに追加しよう ---- -# プラットフォーマー チュートリアル Part 8:チェックポイントをゲームに追加しよう - -今回はチェックポイントをゲームに追加する方法を説明します。そしてプレイヤーが死んだときは、最寄りのチェックポイントに送るようにします。 - -## シリーズ - -いま読んでいるのは[プラットフォーマー チュートリアル](/ja/gdevelop5/tutorials/platformer)の **Part 8** です。 - -1. [プラットフォーマー チュートリアル Part 1](/ja/gdevelop5/tutorials/platformer) -2. [プラットフォーマー チュートリアル Part 2](/ja/gdevelop5/tutorials/platformer/part-2) -3. [プラットフォーマー チュートリアル Part 3](/ja/gdevelop5/tutorials/platformer/part-3) -4. [プラットフォーマー チュートリアル Part 4](/ja/gdevelop5/tutorials/platformer/part-4) -5. [プラットフォーマー チュートリアル Part 5](/ja/gdevelop5/tutorials/platformer/part-5) -6. [プラットフォーマー チュートリアル Part 6](/ja/gdevelop5/tutorials/platformer/part-6) -7. [プラットフォーマー チュートリアル Part 7](/ja/gdevelop5/tutorials/platformer/part-7) -8. プラットフォーマー チュートリアル Part 8 - -## ステップ 1:チェックポイントオブジェクトを作成する - -最初のステップでは、チェックポイント用のオブジェクトを作成します。チュートリアルもここに差し掛かれば、もはやおなじみの手順でしょう。うろ覚えな感じがしたら、[オブジェクト](/ja/gdevelop5/objects)を読んでみてください。 - -では次の手順でチェックポイントオブジェクトを作成しましょう。 - -1. 「Checkpoint」という名前のスプライトオブジェクトを作成します。 -2. チェックポイントのイメージには「bush.png」アセットを使います。 -3. オブジェクトをシーンにドラッグして、1 個以上のインスタンスを配置します。 - -## ステップ 2:プレーヤーがチェックポイントに到達したら座標をセーブする - -プレーヤーがチェックポイントに到達したら、チェックポイントの座標を変数に保存するようにします。そうすれば、プレイヤーが死んだときにその座標に送り返せます。 - -オブジェクトの X 座標と Y 座標には、次の構文でアクセスできます。 - -``` -オブジェクト名.X() -オブジェクト名.Y() -``` - -これらの文は、両方とも式の例です。 - -次の手順で、「Player」オブジェクトがチェックポイントに到達したときに座標を保存します。 - -1. 新しいイベントを作成します。 -2. 「Player」オブジェクトの**衝突**条件を作成して、「Checkpoint」と衝突しているかチェックします。 -3. **シーン変数の値**アクションを作成して、そこで「CheckpointX」変数に `Checkpoint.X()` の値を代入します。 -4. **シーン変数の値**アクションを作成して、そこで「CheckpointY」変数に `Checkpoint.Y()` の値を代入します。 - -![](/gdevelop5/tutorials/platformer/08-01.jpg) - -## ステップ 3:プレーヤーを直前のチェックポイントに送る - -ここまでは、「Player」オブジェクトが「Slime」オブジェクトと接触したら、**オブジェクトを削除する**アクションで「Player」オブジェクトをシーンから削除していました。しかしゲームにはいまやチェックポイントが設置されているので、「Player」オブジェクトを削除する必要はもうありません。 - -代わりに「Player」オブジェクトを直前のチェックポイントに送ることにしましょう。 - -1. **オブジェクトを削除する**アクションを削除します。 -2. 「Player」オブジェクトの**オブジェクトの位置**アクションを作成します。 -3. **変更記号**フィールドをすべて**=(代入)**にします。 -3. **X 位置** に `Variable(CheckpointX)` と入力します。 -4. **Y 位置** に `Variable(CheckpointY)` と入力します。 - -![](/gdevelop5/tutorials/platformer/08-02.jpg) - -ゲームをプレビューすると、死んだプレイヤーが直前のチェックポイントに送り返されます。 - -![](/gdevelop5/tutorials/platformer/08-04.gif) - -## ステップ 4:プレイヤーのデフォルト座標を設定する - -`CheckpointX` と `CheckpointY` 変数は、プレイヤーが最初のチェックポイントに到達するまで存在しません。そのためプレイヤーが最初のチェックポイントに到達する前に死ぬと、GDevelop はプレイヤーをデフォルト座標「0,0」に送り返します。 - -これは次の理由で、望ましくありません。 - -- デフォルト座標に何か存在するかもしれない(敵とか) -- デフォルト座標の下にはプラットフォームがないかもしれない - -これを是正するため、`CheckpointX` と `CheckpointY` 変数に、あらかじめ "Player" オブジェクトの初期座標を設定しておきましょう。初期座標は、シーンエディターに「Player」オブジェクトを配置したその場所が適当です。 - -次の手順で、初期座標を設定します。 - -1. 新しいイベントを作成します。 -2. **シーンが始まった**条件をイベントに追加します。 -3. **シーン変数の値**アクションを作成して、そこで「CheckpointX」変数に `Player.X()` の値を代入します。 -4. **シーン変数の値**アクションを作成して、そこで「CheckpointY」変数に `Player.Y()` の値を代入します。 - -![](/gdevelop5/tutorials/platformer/08-03.jpg) - -## 次のステップ - -ついにこのチュートリアルをやり通しましたね。おめでとうございます! - -ここからは、[ジオメトリモンスター](/gdevelop5/tutorials/geometry-monster/1-install-and-setup)のような他のチュートリアルに挑戦するもよし、プラットフォームゲームをさらに発展させていくもよし、です。これまでに身につけたことを生かせば、あなたにしか作れないものがきっとできるはず。 \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/roadrider.md b/docs/ja/gdevelop5/tutorials/roadrider.md deleted file mode 100644 index d3a22af2e4..0000000000 --- a/docs/ja/gdevelop5/tutorials/roadrider.md +++ /dev/null @@ -1,621 +0,0 @@ ---- -title: ロードライダー - エンドレスカーゲームチュートリアル ---- -# ロードライダー - エンドレスカーゲームチュートリアル -このチュートリアルは、GDevelopに慣れるのにとても役立ちます。このチュートリアルの内容は、エンドレスの車のゲームを作ることです。プレイヤーは道路上の車をかわす必要があります。ゲームにはスコアがあり、車が通過すると自動的にスコアアップされます。. - -![](/gdevelop5/tutorials/peek_2019-05-30_19-46.gif) - -## GDevelopのダウンロード -GDevelopをまだお持ちでない場合は、[GDevelopの公式Webサイト](https://gdevelop.io/download/)からダウンロードできます。Windows、macOS、Linuxで利用できます。 - -GDevelopをダウンロードした後、インストールが終了するとDevelopを起動できます。 - -> このゲームのオブジェクトを作成するために使用されるアセット(ゲーム中で使用するデータ)が必要です。 [ここから](/gdevelop5/tutorials/road-rider-resources.zip)ダウンロードしてください。ゲームの保存場所として選択したディレクトリに.zipファイルをダウンロードして解凍します。 - -## 新しいプロジェクトの作成 -スタートページで「新しいプロジェクトの作成」をクリックします。 - -![](/gdevelop5/linux-start-page.png) - -空のゲームと表示されるダイアログボックスで(このオプションを見つけるには下にスクロールする必要がある場合があります)を クリックし、プロジェクトを保存する場所を選択します。 - -![](/gdevelop5/tutorials/annotation_2019-07-04_220443.png) - -## 新しいシーンの作成 - -シーンは、ゲームを作成している間、ほとんどの時間作業するエリアです。シーンは基本的にゲーム内のステージ(またはメニュー、アイテムなど)です。画面に配置できるオブジェクトが含まれています。 - -空のゲームをクリックするとすぐに、画面の左側にパネルが表示されます。これはプロジェクトマネージャーと呼ばれるものです。プロジェクトマネージャーのシーンでオプションをクリックします。 - -「シーンの追加」と表示されるドロップダウンからオプション を使用して、新しいシーンを作成します。作成された「新しいシーン」をクリックして、新しいシーンに移動します。 - -![](/gdevelop5/tutorials/add-scene-button2.png) - -## 新しいオブジェクトの作成 - -右側のオブジェクトパネルから「オブジェクトの追加」オプションを選択します。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.32.40.png) - -続いて「新しいオブジェクト」ダイアログウインドウがポップアップするので、「スプライト」を選択します。 - -![](/gdevelop5/tutorials/annotation_2019-07-05_171958.png) - -オブジェクトはデフォルトでNewObjectと表示されてダイアログの上部に表示されます。各オブジェクトに説明できる名前を付けて、イベントでそれらを処理するときにそれらが何であるかを理解できるようにすることをお勧めします。 -今回は名前を_Car_に設定します。 - -オブジェクトにアニメーションを追加しましょう。アニメーションには、スプライトオブジェクトの画面に表示される画像が含まれています。 - -オブジェクトにアニメーションを追加するには、「クリックしてアニメーションを追加」の横にある**+**記号をクリックしますClick to add an animation - -![](/gdevelop5/tutorials/add-animation.png) - -「car.png」という名前の画像をアニメーションとして追加し、「適用」オプションをクリックします。. - -![](/gdevelop5/screenshot_from_2019-05-20_13-54-57.png) - -同様に、アニメーションとして画像「highway.png」で構成される、新しいスプライトオブジェクト_Highway_を追加します。 - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_00-58-55.png) - -次のステップは、4台の車を異なるスプライトオブジェクトとして追加することです。 -これらは、ぶつからないように回避する必要があるオブジェクトになります。 -それらにBlue、Gray、Green、Pinkという名前を付けることができ、それぞれに「blue-car.png」、「gray-car.png」、「green-car.png」、「pink-car.png」のアニメーション画像があります。 - -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-41-27.png) - -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-03.png) - -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-30.png) - -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_20-42-54.png) - -アニメーション用に「tree.png」を持つ 新しいスプライトオブジェクト「ツリー」を作成します。このオブジェクトは、ゲームの進行中に道路の両側に配置される街路樹として使用されます。 - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_00-57-11.png) - -新しいスプライトオブジェクト_Explosion_(爆発の意味)を作成し、「Explosion1.png」から「Explosion8.png」までのすべての画像を選択します。 - -![](/gdevelop5/screenshot_from_2019-05-20_14-14-45.png) - -このステップの終わりまでのシーンには、8つのオブジェクトが含まれているはずです。 - -![](/gdevelop5/tutorials/screenshot_from_2019-05-30_21-22-38.png) - -## Adding top-down movement to the car -Adding a top-down movement behavior to the car will allow us to set its maximum speed as well as the acceleration and deceleration of the car. This will allow the car to slowly gain the speed rather than starting with the maximum speed. For this, we will have to open the `Object Editor`. - -To do this, you can either double-click on the _Car_ object from the object side panel or click on the three-dot-menu beside the object and click on edit object. - -![](/gdevelop5/tutorials/annotation_2019-07-06_124410.png) - -Click on the `BEHAVIORS` tab at the top of the panel and click on the **+** button beside `Click to add a behavior to the object`. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_19-44-47.png) - -Choose `Top-down movement` in the `Add a new behavior to the object` pop-up. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_19-42-06.png) - -This opens a wide variety of options to alter. You can see the default values for the related to the behavior. Set the deceleration to 400 and untick the boxes having the options `Rotate object` and `Default controls` and click `APPLY`. Rest of the default values are fine for our game. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_19-37-09.png) - -## Creating a new event -An event is a pair of conditions and actions. When a given set of conditions is true, the corresponding action or set of actions is performed. - -While making this game we will encounter a few events with no conditions and one or more actions assigned to them. In such a case, the action is performed on every frame created. - -To add a new event, open the `NEWSCENE (EVENTS)` tab from the top - -![](/gdevelop5/tutorials/scene-events-tab.png) - -From the events editor toolbar choose the option that says `Add a new empty event`. - -![](/gdevelop5/add-event-button.png) - -This will create a new event with an empty condition and an empty action. - -![](/gdevelop5/screenshot_from_2019-05-20_14-49-49.png) - -## Create instances of Car and Highway -To create an instance of the _Car_ object we can drag and drop the object from the Objects panel to the scene and give it the coordinates of our choice. - -![](/gdevelop5/tutorials/peek_2019-05-26_11-58.gif) - -If you need to alter the coordinates of the object after getting it on the scene, you can do so by the drag and drop method, but by dragging the object on the scene. - -Another method to move the object is by changing the X and Y-coordinates in the Object properties panel on the left side. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_01-25-21-1.png) - -You can choose the values of your choice but if you want results similar to that of the tutorial, you are expected to have the same values. - -Similarly, to create an instance of _Highway_ you can drag and drop the object to the scene and set its X and Y-coordinates. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_01-55-46.png) - -A user can use the preview feature provided by GDevelop. Using this feature, you can see how the game behaves in the real world. You can preview your project by clicking on `Launch a preview of the scene` icon above the scene. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_01-58-08.png) - -You should see something similar to the image shown below. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-31_17-24-28.png) - -We see a few problems: - - * The _Car_ is not fully visible. - * The part of the screen below the _Highway_ is empty. - * The _Highway_ is too far away from the center of the screen. - -### Making the car visible -To make the car visible, we need to know the reason for it being hidden under the _Highway_. The answer is, `Z Order`. - -!!! note - - Z Order of an object is the property which decides whether the object should be displayed on the front or the back. An object with a certain Z Order assigned to it will always be shown in front of the objects with lower Z Order value and behind the objects with higher Z Order value. - - -In our case, we can assign a Z Order of 1 to the _Highway_ and 2 to the _Car_. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_02-20-14.png) - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_02-21-37.png) - -### Creating the bottom part of the Highway -To create the bottom part of the _Highway_, we can elongate the height of our object _Highway_. - -To do this, you can click and drag the white box at the corner of the _Highway_. - -![](/gdevelop5/tutorials/peek_2019-05-26_12-33.gif) - -Another way to do this is to tick the box beside `Custom size` option in the Properties panel and enter the height and width of your choice. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_02-41-35.png) - -### Getting our game to the center of the window -To get our game to the center of the preview window, we will create our first event. - -But before that, we need to determine the X position and Y position of the camera. - -!!! note - - The coordinates of an object depict the location of the top-left corner of our object rather than the center of the object and coordinates of the center of the camera is the center of the displayed window. - -For the X position, the camera has to be at the center of the window/highway. The width of the _Highway_ is 535 pixels. So the center of the _Highway_ will lie at 267.5 pixels. - -Similarly, to set the Y position of the camera, we can keep it a little above the _Car_ so that the player can get a better view of the cars approaching. set it at 350 pixels. - -First, [create a new empty event using the explanation above.](http://wiki.compilgames.net/doku.php/gdevelop5/tutorials/rpts?#creating_a_new_event) - -We need to make an event such that the game lies in the center of the screen. Therefore, setting the X and Y-coordinates will be our action. - -This action needs to be true for all frames, i.e. for all conditions. And so that the action is true for all conditions, we enter no condition. - -To add an action, click on the `Add action` option. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-01-43.png) - -To choose an action, you can either choose it from the various drop-down menus available or you can use the search bar at the top. - -For example, to change the position of the camera, you can go to Layers and Cameras followed by `Camera center X position`. The right part of the window will now display configurable parameters. - -Because we want to set the X position equal - neither less nor more - to 267.5, choose the **= (set to)** option in `Modification's sign`. In the `Value` field, you can enter the desired X coordinate of the camera. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-22-36.png) - -Else, you can search for the action in the top `Search` bar. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-33-40.png) - -Click `OK`. - -You can now see the added action in the Events Editor. - -To set the Y position of the camera center, click on `Add action` in the same event. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_12-29-55.png) - -You can now follow a similar procedure for Y position as you did for X position but make sure that this time you choose the `Camera center Y position` option and enter the Y coordinate. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_14-54-19.png) - -To make sure that all your progress has been saved, click on `Save` in the `File` menu or press Ctrl + S. - -## Moving the car -To move the _Car_, we need to create an event such that the car translates as well as rotates to some degree when left or right key is pressed. - -As we can deduce from the above statement, the condition of the events will be left key press and right key press. - -!!! warning - - Remember that each key press (left and right) should have different events because we need to have different motions for each of them. - -We will start with the event that has the condition of left key press. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_15-09-13.png) - -For the action, when the left key is pressed, the _Car_ should have a movement on the left side. This can be easily done using an action `Simulate left key press` that would simulate the left side movement for the object selected (_Car_). - -But make sure to use the action with the same behavior as your object (top-down movement). So, we need to choose it from the `Top-down movement` drop-down. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_15-18-20.png) - -Now we need to give our _Car_ the desired rotation for a better visual experience. If we just give rotation to the object it will rotate up to 180 degrees. - -To avoid such a result, we need to set a final angle too. We will assume it to be 30 degrees on both sides, i.e. -30 degrees for the left key press and 30 degrees for the right key press. - -But before we move ahead, we also need to assign the `Angular speed` for the rotation. We will be using a value of 60 degrees/second for the same. - -Remember that the angular speed will be the same for both the key presses. It cannot be negative because it is the "Angular speed", and speed cannot be negative. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-18-34.png) - -We can repeat a similar event for right key press. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-05.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-42-37.png) -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_16-52-25.png) - -If you preview your project, you should be able to control your _Car_ using the left and right arrow keys. - -But we still encounter one problem, the car does not return to its original state when we leave the keys. Instead, it stays oriented at an angle. Let's solve this problem now. - -### Returning the car to its original orientation -We need to return the car to an angle of 0 degrees when none of the arrow keys are pressed. In other words, we need to return the car to an angle of 0 degrees when the conditions, right key press and left key press are inverted. - -To achieve this, we add a new event and try to add the above 2 conditions, i.e. right key press inverted and left key press inverted. We add a condition `Left key is pressed` and turn on the switch below that says `Invert conditions`. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_17-14-21.png) - -In the same event, we add a similar inverted condition for right key press. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_17-19-07.png) - -For the action, we will make an action for rotating it towards 0 degrees with an angular velocity of choice similar to what we did for the non-inverted conditions of key press. - -!!! note - - Make sure to include both the conditions in the SAME EVENT because we want the vehicle to return to 0 degrees only when neither left nor right arrow key is pressed. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_17-46-07.png) - -Now, the car moves and rotates to an extent when an arrow key is pressed and rotates back to the original angle when the keys are released. - -## Adding traffic cars to be dodged to the scene -Now, we need to begin creating traffic cars which should be dodged by the _Car_. To maintain uniformity and simplicity in the game, we will create the objects at a fixed Y position and a random X position within a fixed time interval such that all the traffic cars created lie between the yellow lines of the _Highway_. - -For a fixed time interval, we can use the `Timer` feature that GDevelop provides. To set a timer, we will create an event with the condition `Value of a scene timer`. Now, you need to fill the desired time interval between the creation of two consecutive instances of traffic cars on each side in the `Time in seconds` field. - -After entering the time you need to enter the name of the timer. It can be any name of your choice but remember to fill it within quotes. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_14-34-32.png) - -For the first action, we can make use of a `Scene Variable`. A variable allows you to store number or text in the computer memory and a scene variable allows you to store a number or text only when a particular scene is active. You can [read more about variables here.](/gdevelop5/all-features/variables) - -To create a new variable, go to the Scene Editor, right-click on the background and click on `Scene properties`. From the pop-up that appears, click on the `EDIT SCENE VARIABLES` button. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_00-53-39.png) - -Now click on the **+** button on the bottom-right of the new dialog, enter a name for your variable and click `APPLY`. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-03-11.png) - -We will name our scene variable 'CarLeft'. To assign a value to your scene variable, use the action `Value of a scene variable`. Enter the name of the variable you created in the `Variable` field. - -To create the cars at random, we can assign a value using the expression "RandomInRange". `RandomInRange(min, max)` is used to return a random integer between the minimum and maximum specified in the expression. - -We'll use the expression `RandomInRange(1, 2)` such that whenever the expression returns 1, we will create a blue car in the first (leftmost) lane and whenever it returns 2, we will create a gray car in the second lane. Therefore, set the `Modification's sign` to **= (set to)** and the value to "RandomInRange(1, 2)". - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-14-42.png) - -You can add a similar action for a variable _CarRight_ which can be used to create traffic cars on the right side of the highway. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_03-14-25.png) - -Before adding events to check the value of our scene variable _Car1_, we will add one more action in the same event which will set the value of our timer to 0. To do this, we will use the `Start (or reset) a timer` action. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-05_14-25-13.png) - -This is what our Events Editor should look like: - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-24-49.png) - -To check the value of _Car1_ and to create the corresponding traffic cars at the same moment as the _CarTimer_ is reset, we will add a sub-event for each condition. A sub-event is performed only if the parent event's condition is true. You can [read more about events here.](/gdevelop5/events) - -You can create a sub-event by clicking on the `Create a sub-event to the selected event` button at the top. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-26_at_22.05.49.png) - -This will create a sub-event for the selected event. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_22-09-38.png) - -In the condition of the sub-event, we will check if the value of _CarLeft_ is equal to 1. To do this, we will add the `Value of a scene variable` condition. Enter the variable name _CarLeft_ in the `Variable` field, set the `Sign of the test` to **= (equal to)** and fill '1' in the `Value to compare` field. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_01-41-24.png) - -For the action, you can create the object _Blue_ at the X coordinate of the first lane (70) and Y coordinate such that the object is created well above the window so that by the time it reaches the window with an acceleration of 1000 it reaches its constant maximum speed else the user might see the car accelerating in the window. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-42-00.png) - -You can add a similar sub-event for _Gray_ with the condition checking if the value of _Car1_ is 2. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-46-17.png) - -If the condition is true, we will add an action to create _Gray_ at the X position of the second lane (175) and Y coordinate -500. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-50-59.png) - -Similar to what we did for variable _CarLeft_, we will now check the value of _CarRight_ and create _Green_ at (280, -500) if the value of _CarRight_ is 1. If the value is 2, we will create _Pink_ at the position (385, -500). - -Here is the resulting events sheet so far. If you are on the same page as the tutorial, you can save your game and proceed. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-03_02-59-41.png) - -## Adding surrounding trees to the game -After adding the traffic cars to be dodged, we will now add the surrounding trees which will simulate a moving background. We will use the object _Tree_ for this purpose. - -To create object _Tree_ we use another timer _TreeTimer_, similar to how we used _TrafficTimer_. We will use these trees for moving background simulation by moving them in the backwards direction on both sides of the road. - -![](/gdevelop5/screenshot_from_2019-06-05_16-15-04.png) - -We will set their Y coordinates such that they are created above the screen and for better viewing experience, you can create them at different Y positions so that they are not perfectly aligned. - -We will set the X coordinates for both trees on both the sides such that the trees are right beside the _Highway_. The dimensions of the tree are 150×150 pixels. - -For the left side of the _Highway_ we will set the X position to -150 pixels and the Y position to -400 pixels. - -![](/gdevelop5/screenshot_from_2019-06-05_17-01-40.png) - -For the right side, the X position will be set to 535 pixels and Y position to -500 pixels. - -![](/gdevelop5/screenshot_from_2019-06-05_17-05-13.png) - -We need to add one more action to reset the _TreeTimer_ to 0 when it is greater than 1 second. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-05_16-36-47.png) - -## Moving the trees -In the game, we need to move the trees such that they never stop, i.e. without any condition. So we add an event and add action to that event without any conditions. - -Our trees should move in the direction opposite to that of the _Car_ so that we can simulate a moving background. To do this, the event we add should add a downward force to the object _Tree_. - -Add the action `Add a force` to the _Tree_. The movement of the car should be in the vertical direction only. There should not be a horizontal component of the force applied to it. So the speed on the X axis should be set to 0 and the speed on the Y axis will be set to 300 pixels/second. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_16-55-28.png) - -## Moving the traffic cars -To move the traffic cars, we can add events with no conditions and add a vertical force. But if we try to do it in a way similar to what we did for _Tree_, we will have to add these events for each and every car individually. To simplify this, we can use the `Object Groups` feature provided by GDevelop. - -An object group is a collection of objects. You can classify similar types of objects in an object group. You can then use the conditions and actions on a group object rather than repeating it for each and every object separately. - -_Blue_ and _Gray_ that should move on the left side of the highway will have the same motion for each object created. Similarly, _Green_ and _Pink_ should also have the same motion. So we can classify the 4 traffic cars to 2 object groups. - -To open the `Groups Editor`, click on the `Open the objects groups editor` icon in the toolbar. - -![](/gdevelop5/objects/groups-button.png) - -This will open the object groups list. All the object groups in the scene will be visible on the list. To add a new object group to the list, click on the **+** sign beside `Click to add a new group`. This will add a new group to the list. - -![](/gdevelop5/objects/group-group.png) - -To rename the group name, click on the three-dot-menu or right click on the object group name and choose "Rename". We will name the group _TrafficLeft_. Now add another group and rename it to _TrafficRight_. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-17-54.png) - -To add objects to _TrafficLeft_, click on the group name. A new dialog will appear. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-29-42.png) - -Click on the `Choose an object to add to the group` field and choose the object _Blue_ followed by _Gray_ and click APPLY. This object group represents the cars on the left side of the highway. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_20-24-37.png) - -Similarly, add _Green_ and _Pink_ to the group _TrafficRight_. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_20-25-43.png) - -To move the cars we will now add an event with no conditions. We will now add a downward acting force to _TrafficLeft_ and _TrafficRight_. - -Objects in _TrafficLeft_ are cars that move in the same direction as _Car_. So these cars should move at a pace slower than _Tree_ so it looks like the cars are moving faster than the background but slower than _Car_. We will apply a force of 100 pixels/second in the Y direction for _TrafficLeft_. The X component should be 0. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-37-29.png) - -On the other hand, objects in _TrafficRight_ move in the direction opposite to that of _Car_. So these cars should move faster than _Tree_ so that they look like moving in the backward direction. We will apply a force of 500 pixels/second in the Y direction for _TrafficRight_. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_19-56-14.png) - -On starting a preview of the project, you might not be able to see the traffic cars yet. You can solve this problem by setting a Z order for the objects in the same event. To use the action for all the objects at once, create a new object group _Traffic_. Add all the objects to the group. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-08_20-29-50.png) - -!!! note - - To see the traffic cars, you should set a Z order higher than the object covering it, i.e. _Highway_. - -Set the Z order of _Traffic_ higher than the Z order for _Highway_. - -![](/gdevelop5/screenshot_from_2019-06-06_00-44-32.png) - -You may now check the events we have created so far and then save your game. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_00-52-22.png) - -Before moving on to the event for a collision between _Car_ and _Traffic_, we notice that the car's motion is not limited to the road. - -## Limiting the car's motion between the yellow lines -To limit the car's motion between the yellow lines, we need to add a new event to check the X position of the _Car_. - -We will add two different events for each side because the force applied should be positive when _Car_ is on the left side and negative when _Car_ is on the right side. - -The distance of the yellow lines from both ends is 60 px while the width of the _Car_ is 80 px, so its motion has to be limited between 60 px and (535 - 60 - 80), i.e. 395 px. - -The force applied to the car should be greater than or equal to the maximum speed of the _Car_, set in its behavior (200, in our case). - -Our first event will include a condition that checks if the X position of the _Car_ is less than 60 px. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-12.png) - -If the condition is satisfied, a force greater than or equal to the maximum speed of the car should be applied in the opposite direction. Therefore, a force greater than or equal to 200 pixels/second should be applied on the _Car_ along the X-axis. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_17-40-33.png) - -Similarly, we need to add another event, with the condition to check if the X position of the _Car_ is more than 395 px. - -![](/gdevelop5/screenshot_from_2019-06-06_01-07-54.png) - -If the condition is true, a force with a magnitude higher than 200 pixels/second should be applied in the negative X direction. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-12-36.png) - -If you preview the game, you should now be able to see _Tree_ and all the objects in the group _Traffic_ and the motion of the car should be constrained between the yellow lines. - -Now, we need to set how the game behaves when there's a collision between _Car_ and _Traffic_. - -## Collision between Car and Traffic -In the next event we create, we need to set the condition such that it checks a collision between _Car_ and _Traffic_. - -For this, you can use the `Collision` condition and set the objects to _Car_ and _Traffic_. - -![](/gdevelop5/screenshot_from_2019-06-06_01-21-32.png) - -In case of this condition being true, we need to create an object _Explosion_. You can use the action `Create an object` and fill _Explosion_ in the `Object to create` field. - -We need to create this object at the coordinates same as that for _Car_. To achieve this, you can use "Car.X()" and "Car.Y()" in the X position and Y position respectively. - -!!! note - - "Car.X()" and "Car.Y()" denote the X and Y position of the _Car_ respectively. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-30-10.png) - -If you watch the preview, there encounter a few minor issues: - - * _Explosion_ cannot be seen. - * _Car_ keeps moving. - * _Traffic_ keeps moving - -We will now solve these problems. Make sure that you add these actions for the same `Collision` condition. - - * To make the _Explosion_ visible, add an event to set the Z Order of the object _Explosion_ so that it is higher than that of the _Highway_ - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-37-12.png) - - * To remove the instance of _Car_ we shall now add an event to delete the object _Car_. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_18-42-15.png) - - * Similar to what we did for _Car_, to remove an instance of _Traffic_ we can delete the object _Traffic_ too. - -![](/gdevelop5/screenshot_from_2019-06-06_01-25-59.png) - -You can watch the preview now. Our game is ALMOST complete. We cannot say that the game is complete until we can see the score made by an individual. - -## Setting the background color -The gray background does not really suit the game. As there will be trees on both sides of the road, the green color might be the best. To do so, you can right-click anywhere on the scene and select `Scene properties`. Click on the box below `Scene background color` that says `Click to choose`. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_18-04-16.png) - -You can choose the color of your choice and click `OK` in the `Scene properties`. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-22_18-27-13.png) - -## Displaying score in the scene -To display the score, we will make an event such that when any object in the group _Traffic_ passes a predefined position, the value of the score is updated. To do this, we need to use the help of a scene variable. - -Let's start with creating an object _Score_. - -For this, you need to go to the Scene Editor and create a new object and choose `Text` from the `Add a new object` table. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_19-03-50.png) - -You can rename the object to _Score_ and choose the text properties from the `Properties` panel. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_19-06-51.png) - -You can now drag and drop the _Score_ object on the screen. You can also change the coordinates of the object from the `Properties` panel. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_19-14-05.png) - -The score in our game will be shown as a number. You cannot directly add a number to a number stored in `Text`. - -But you can do it using a variable. To update the score, we need to add a number to the variable defined every time a tree crosses a predefined position and then send that value to the text object. - -To repeat it for each object in _Traffic_, we will make a `For each object` event. To make a `For each object` condition, click on the `Choose and add an event` icon at the top. - -![](/gdevelop5/tutorials/choose-and-add-event.png) - -From the menu that appears, choose the `For each object` option. - -We need to repeat this event for each _Traffic_, so choose _Traffic_ for the object to be repeated. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-09-36.png) - -Because we want to update our variable every time _Traffic_ crosses a position, we will have to add a condition to check if the position of _Traffic_ is greater than or equal to 700. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-20-00.png) - -Our action will be to create and change the value of a scene variable. Create a new scene variable _Points_ similar to how we created variables _CarLeft_ and _CarRight_. - -![](/gdevelop5/tutorials/screenshot_from_2019-06-06_19-55-23.png) - -Now, we will add an action `Value of a scene variable`. Enter the variable you created in the `Variable` field. - -Every time the _Traffic_ passes the Y-position of 700, we will add 100 to the _Score_. Therefore, we set the `Modification's sign` to **+ (add)** and the `Value` to 100. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-49-42.png) - -To send this value to our _Score_ we will make an event with no condition because our score should always denote the value of our variable. - -We will use the action `Modify the text`. Enter _Score_ in the `Object` field and set the `Modification's sign` to **= (set to)**. - -Our text should display "Score: " followed by the value of the variable. But, the problem is that a `Text` can only display a string/text, not a number. - -To counter this problem, we will first convert the variable to string and then send it to the text. - -To do this, we will write ""Score: " + ToString(Variable(Points))" in the `Text` field. Note the quotes and **+** sign in the text. Quotes help us to distinguish a string and a function while + is used to concatenate two strings. - -!!! note - - Even though the second part of `Text` is addressed as a function in the above paragraph, remember that the end result of the function will be a string. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_22-34-19.png) - -If we now preview the game, we'll see that the _Score_ keeps on updating with every frame. This is because the condition checks if the Y position of _Traffic_ is greater than or equal to 700. - -To solve this problem as well as to optimise the game by freeing up memory, we will add another action to the event which will delete the object _Traffic_. - -This action will free up some amount of memory as well as help us solve the _Score_ problem by deleting the tree in the very next frame of _Traffic_ crossing a Y position of 700. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_21-56-15.png) - -Now if you preview the game, you will see that the score keeps updating even after the collision between _Car_ and _Traffic_ takes place. For this, we can add another condition in the tree deleting event that would check if the object _Car_ is visible. - -!!! warning - - There is a difference between the visibility of an object and its existence. An object might not be visible but may exist but if an object ceases to exist (like the _Car_ in our case), it directly implies that it is not visible. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-23_22-40-45.png) - -To optimise our game for the long run, we can also use a similar `For each object` event for deleting _Tree_ - -The condition of the event will be to check if Y position of _Tree_ is more than 700 while the action would be to delete the object _Tree_. - -![](/gdevelop5/tutorials/screenshot_from_2019-05-24_00-03-41.png) - -This is what our Event Editor should look like: - -![](/gdevelop5/tutorials/screenshot_from_2019-05-24_00-12-11.png) - -You have now created an infinite car game in which the score gets updated as we pass by the trees. - -Enjoy the game. - -## Add new features - -You can now pose new challenges in front of yourself like allowing the car to go off the highway or allowing the movement of the car in front and back too. - -GDevelop offers many tutorials for users to get more familiar with it. You can [see them here.](/gdevelop5/tutorials) \ No newline at end of file diff --git a/docs/ja/gdevelop5/tutorials/tank-shooter.md b/docs/ja/gdevelop5/tutorials/tank-shooter.md deleted file mode 100644 index 49a13e2727..0000000000 --- a/docs/ja/gdevelop5/tutorials/tank-shooter.md +++ /dev/null @@ -1,344 +0,0 @@ ---- -title: タンクシューター-初心者向けチュートリアル ---- -# タンクシューター-初心者向けチュートリアル - -このチュートリアルは、GDevelopの仕組みを理解するのに役立ちます。非常にシンプルなゲームを作成します。このゲームでは、敵はプレイヤーに向かって移動します。プレイヤーは敵を撃つことができます。敵がプレイヤーの弾丸でヒットすると爆発します。 ![](/gdevelop5/tutorials/beginner-tutorial-screenshot.png) - -ソフトウェアの概要を取得するには、最初に [](/gdevelop5/getting_started) ページを読んで下さい。 - -### GDevelopのダウンロード - -GDevelopをまだインストールしてない場合は、公式Webサイトからダウンロードしてください: [gdevelop-app.com](http://gdevelop-app.com) - -このページからGDをダウンロードして、最新バージョンであることを確認してください。 GDevelopをインストールしたら、起動します。インターフェイスの「開始」ページが表示されます。 ![](/gdevelop5/start_page.png) - -### プログラムソースをダウンロードする - -完成したプロジェクトは、ここ ![](/gdevelop5/tutorials/beginner-tutorial.zip)からダウンロードできます。 このプロジェクトをダウンロードすると、ゲームがどのように作成されたかを確認できます。あなたが何かうまくいかない動作を理解する場合の例としてそれを持っていることは、あなたの進歩をチェックする良い方法です。 - -### 新しいプロジェクトの作成 - -「開始」ページで「新規プロジェクトの作成」をクリックします。 - -次に、テンプレートを使用して新しいプロジェクトを作成するか、「空のゲーム」プロジェクトを作成するオプションがあります。 ![](/gdevelop5/create-new-project-window.png) - -このチュートリアルでは、空のゲームプロジェクトが必要ですが、このオプションを選択する前に、ゲームを保存するフォルダーを選択する必要があります。\[新しいゲームの作成\]ページの下部に、\[フォルダーの選択\]領域があります。このオプションを表示するには、下にスクロールする必要がある場合があります。デフォルトの場所を保持するか、ゲームを保存する場所を選択します。. - -![](/gdevelop5/tutorials/select-project-folder.png) - -任意の場所を選択するには、「フォルダの選択」ボタンを選択・クリックします。コンピューター上のファイルシステムを参照します。使用するフォルダーを見つけます。 ![](/gdevelop5/choose-folder-button.png) - -フォルダを選択したら、リストの空の「空のゲーム」プロジェクトオプションを選択/クリックします。 ![](/gdevelop5/empty-game-button.png) - -### 新しいシーンの作成 - -新しいシーンを作成することは、やるべきことの最初です。プロジェクトマネージャーの「シーンを追加\]ボタンをクリック・選択します。 ![](/gdevelop5/tutorials/add-scene-button.png) - -次に、作成したばかりの新規シーンをクリックします。「シーン」エディタが開きます。 - -### 画像とリソースを入手する - -先に進む前に、ゲームにいくつかの画像が必要になります。 ここからダウンロードできます:[画像のダウンロード](http://www.compilgames.net/dl/BeginnerTutorial2Images.zip) - -このファイルをダウンロードしたら、中のコンテンツファイルをプロジェクトを作成したフォルダーに展開・コピーします。 - -### プレイヤーの砲塔を作成する - -プレイヤーは敵を撃つために砲塔を制御します。シーンの「オブジェクト」エディターで、「新しいオブジェクトを追加」を選択します。 ![](/gdevelop5/tutorials/add_new_object.png) - -オプションの新しいウィンドウリストがポップアップ表示されます。作成されるオブジェクトのタイプを選択します。 ![](/gdevelop5/objects/object-types.png) - -まず、スプライトオブジェクトを作成します。ポップアップリストから「スプライト」を選択します。次に、オブジェクトのプロパティパネルが表示されます。プロパティパネルが表示されない場合は、オブジェクトエディターで新規オブジェクトを右クリックし、ポップアップリストから\[オブジェクトの編集\]を選択します。 - -最後に、オブジェクトにアニメーションを追加します。プロパティウィンドウで\[アニメーションを追加\]ボタンをクリック・選択します。 ![](/gdevelop5/tutorials/add-animation.png) - -これで、オブジェクトのアニメーションプロパティが表示されます。 ![](/gdevelop5/objects/animation-properties.png) - -砲塔画像をアニメーションとして追加する必要があります。 大きなプラス記号をクリックし![](/gdevelop5/tutorials/plusaddobject.png). プロジェクトフォルダを参照します。画像「aaguntopdown.png」を見つけます。 - -画像がウィンドウに表示されます。 ![](/gdevelop5/tutorials/turret-animation-window.png) - -最後に「適用」をクリックして変更を保存します。 - -オブジェクトの名前を変更します。シーンの「オブジェクト」エディターでタレットオブジェクトを右クリックします。表示されるポップアップリストから\[名前の変更\]を選択します。新しい名前に「タレット」という名前を入力します。これにより、後で「タレット」という名前を使用してこのオブジェクトを参照できます。タレットとは「砲塔」のことです。 ![](/gdevelop5/tutorials/rename-turret.png) - -### 砲塔をシーンに追加する - -「タレット」をシーンに追加するには、シーンの「オブジェクト」エディターでタレットを選択またはクリックしてから、「シーン」エディターをクリックします。 - -このアクションにより、シーンに「タレット」が作成されます。次に、「タレット」を選択、移動、回転できます。 ![](/gdevelop5/tutorials/turret-selected-inscene.png) - -### 最初のイベント - -次に、ゲーム全体をアニメーション化するために使用される「イベント」を作成します。 最初のイベントでは、「タレット」をプレイヤーのマウスに向かって回転させる必要があります。 - -「新規シーン(イベント)」タブをクリックして「イベント」エディタを選択します。 ![](/gdevelop5/tutorials/scene-events-tab.png) - -「イベント」エディタ画面の上部にツールバーが表示されます。ツールバーの「イベントの追加」ボタンを選択またはクリックして、新しいイベントを作成します。ツールバーの各ツールの使用方法を忘れた場合は、ツールの画像の上にマウスを移動すると、ツールのポップアップヘルプの説明が表示されます。 ![](/gdevelop5/add-event-button.png) - -空の条件と空のアクションを含む新しい「イベント」が作成されます。「条件」は画面の左側にあります。「アクション」は画面の右側にあります。カーソルを右側の「アクション」の上に置きます。「アクションの追加」を選択・クリックします。 ![](/gdevelop5/tutorials/add-action.png) - -次に、最初のアクションを作成します。このアクションは、「タレット」をマウスに向けます。\[アクションの追加\]をクリック/選択すると、新しいリストパネルが表示されます。アクション「すべてのオブジェクトに共通のアクション」を選択します。その他のオプションのドロップダウンリストが表示されます。「角度」を選択/クリックします。別のドロップダウンリストが表示されます。「位置に向かって回転」を選択またはクリックします。 ![](/gdevelop5/tutorials/rotate-toward-position-action.png) - -「位置に向かって回転」を選択すると、選択パネルの右側に別の選択肢のリストが開きます。アクションの名前とアクションのパラメーターが表示されます。「オブジェクト」を選択/クリックして、最初のパラメーターを入力します。「タレット」が利用可能なオブジェクトのリストからポップアップします。リストから「タレット」を選択します。 ![](/gdevelop5/tutorials/select-turret-object-parameter.png) - -次のパラメーターについては、MouseX()およびMouseY()オブジェクトがマウスの位置に向かって回転するようにします。ゲームが起動されると、これらの2つの式はマウスの現在のXおよびY位置を取得します。「角速度」に0を入力します。「角速度0」は、オブジェクトの即時回転が発生することを意味します。それが「タレット」を回転させるために必要なことです。オブジェクトの回転速度を制御するには、「角速度」に小さい値を入力します。たとえば、「タレット」オブジェクトの速度を落とすには、値100などを入力します。 - -この時点で、このイベントのパラメーターは次のようになります。 ![](/gdevelop5/tutorials/rotate-toward-pos-event-parameters.png) - -マウスのX位置とY位置を取得するために式を使用しています。値フィールドの隣にある青いアイコンをクリックすると、「式」エディタでさらに式を見つけることができます。 ![](/gdevelop5/tutorials/platform-game/expression-icon.png) - -「式」エディターアイコンをクリックすると、使用可能なすべての式を検索できます。式はカテゴリに分類されます。 - -![](/gdevelop5/tutorials/platform-game/expression-editor.png) - -「式」エディターに加えた変更を保存するには、パネルの右下隅にある「OK」ボタンを選択/クリックします。 - -これで、シーンの上にあるツールバーの「プレビュー」ボタンを押してプレビューを実行できます ![](/gdevelop5/preview-button.png) - -「タレット」はマウスの位置に向かって回転します。回転が機能しない場合は、上記の手順をもう一度よく見るか、完成したチュートリアルを参照してください。 ![](/gdevelop5/tutorials/turret-rotate-toward-mouse.png) - -### 砲塔から弾丸を撃つ - -プレイヤーが敵に弾丸を発射できるようにしたいと考えています。これを設定するには、新しい「弾丸」オブジェクトが必要になります。GDインターフェイスの右側にあるシーンの「オブジェクト」リストで、「タレット」オブジェクト(砲塔)をマウスでクリックします。「新しいオブジェクトを追加」を選択するか、「新しいオブジェクトを追加」ボタンをクリックします。 ![](/gdevelop5/tutorials/turret-add-new-object.png) - -ポップアップリストパネルから\[スプライト\]を選択します。次に、追加ボタンを選択してアニメーションを追加します。「Bullet.png」画像ファイルを選択します。新しいオブジェクトの名前を「bullet」に変更します。bulletは弾丸のことです。新しいオブジェクトを追加するために追加のヘルプが必要な場合は、上記の「タレット」オブジェクトの説明を参照してください。 - -次に必要なイベントは、マウスの左ボタンがクリック・押されたかどうかを確認します。押された・クリックされた場合、アクションは発射される弾丸を作成します。箇条書きを作成するには、「新規シーン(イベント)」タブに移動します。新しいイベントを追加します。繰り返しますが、追加のヘルプが必要な場合は、上記の「タレット」イベントを参照してください。「新しいオブジェクトの作成」がイベントの最初のアクションになります。このアクションは、「すべてのオブジェクトの共通アクション」「オブジェクト」パネルで使用できます。 ![](/gdevelop5/tutorials/create-object-action.png) - -「新しいオブジェクトを作成」を選択すると、選択パネルの右側に別の選択肢のリストが開きます。アクションの名前とアクションのパラメーターが表示されます。「オブジェクト」を選択/クリックして、最初のパラメータを入力します。「bullet」が使用可能なオブジェクトのリストからポップアップ表示されます。リストから「bullet」を選択します。 ![](/gdevelop5/tutorials/create-object-action-parameters.png) - -ゲームにはレイヤーが1つしかないため、レイヤーパラメーターは必要ありません。\[OK\]をクリックして、アクションを完了します。 - -次に、この最初のアクションの後に別のアクションを追加します。別のイベントを作成しないでください。最初のアクションの下にある「アクションを追加」をクリックしてください! - -![](/gdevelop5/tutorials/add-second-action.png) - -今回は、「すべてのオブジェクトに共通のアクション」、「移動」、「力の追加(角度)」というアクションを選択します。 - -![](/gdevelop5/tutorials/add-force-angle-action.png) - -GDevelopは組み込みのフォースシステムを提供します。このシステムにより、ゲームオブジェクトを簡単に移動できます。この場合、弾丸が発射されると、アクションは弾丸をマウスに向かって移動するために使用されます。最初のパラメーター(オブジェクト)として「bullet」と入力すると、GDevelopは前のアクションで作成したばかりの弾丸を移動します。 - -「動きの角度」には、砲塔と同じ角度を付けます。2番目のパラメーターに「turret.Angle()」と入力します。3番目のパラメーターには、「400」と入力します。弾丸は毎秒400ピクセルの速度で移動します。最後に、「Permanent(永久)」オプションをクリックします。この最後のパラメーターは、弾丸に常に適用されるように力に伝えます。移動が開始された後、このパラメーターは弾丸の移動を維持します。 - -![](/gdevelop5/tutorials/add-force-angle-parameter-permanent.png) - -プレーヤーが発砲すると、2つのアクションが開始されます。例:マウスの左ボタンを押す。「イベント」エディターでこのイベントを作成するには、イベントに条件を追加する必要があります。「条件を追加」をクリック・選択します。 ![](/gdevelop5/tutorials/add-condition.png) - -「マウスとタッチ」「マウスボタンを押したまままたはタッチしたまま」という条件を選択します。 ![](/gdevelop5/tutorials/mouse-button-pressed-condition.png) - -右側のパネルのポップアップで、ボタンをクリックしてパラメーターをテストします。リストから「左」を選択します。 ![](/gdevelop5/tutorials/mouse-button-pressed-parameter.png) - -最後に「OK」ボタンをクリックしてウィンドウを閉じます。これで、条件がイベントに追加されました。 - -ここでゲームをプレビューすると、2つの問題があることがわかります。 - -- 弾丸の発射速度が速すぎる -- 弾丸はオブジェクトの原点に表示されます。これは非現実的に見えます - -速すぎる弾丸の最初の問題に対処するために、タイマーを使用します。作成した最後のイベントに2番目の条件を追加します。カテゴリ「タイマーと時間」内の条件「シーンタイマーの値」を選択します。 - -![](/gdevelop5/tutorials/timer-value-condition.png) - -パネルが右側に表示されます。最初のパラメーター「Object」は、オブジェクトの名前を示します。空白のままにします。2番目のパラメーター「タイマーの名前」は、タイマーの名前です。「firerate」と入力します。 *タイマーの名前の引用符を忘れないでください!*3番目のパラメーター「秒単位の時間」に0.25を入力します。 ![](/gdevelop5/tutorials/timer-value-condition-parameters.png) - -まだ完了していません!0.25秒ごとに弾丸を撃ちます。そのためには、タイマーをリセットして、0.25秒後に0から開始する必要があります。アクションを追加しましょう:「タイマーと時間」「シーンタイマーの開始(またはリセット)」。このアクションは、同じイベントの「移動」アクションのすぐ下に配置されます。 ![](/gdevelop5/tutorials/reset-timer-action.png) - -タイマーの名前であるパラメーターとして「firerate」を入力します(ここでも引用符に注意してください!) ![](/gdevelop5/tutorials/reset-timer-action-parameter.png) - -この条件とアクションのペアにより、最後の弾丸が作成されてから少なくとも0.25秒が経過したときに、弾丸を発射するために使用されるアクションが確実に繰り返されます。 ![](/gdevelop5/tutorials/shoot-bullet-event1.png) - -次に、砲塔の砲弾から弾丸が発射されるように設定する必要があります。 - -そのために、カスタムポイントを「turret」(砲塔)オブジェクトに追加します。次に、そのポイントの位置に弾丸を作成します。シーンインタフェース画面の右側にある「turretオブジェクトを右クリックして、オブジェクトのプロパティを開きましょう。 ポップアップリストから\[オブジェクトの編集\]を選択します。この選択により、オブジェクトにアニメーションを追加するウィンドウが表示されます。「ポイントの編集」というボタンが表示されます。 ![](/gdevelop5/tutorials/edit-point-button.png) - -ボタンをクリックすると、オブジェクトには現在、デフォルトで「Origin」(起点)ポイントと「Centre」(中心)ポイントの2つのポイントがあることがわかります。 ![](/gdevelop5/tutorials/default-points.png) - -これらのポイントの名前は変更できませんが、デフォルトの位置は変更できます。この場合、オブジェクトにもう1つポイントを追加します。 - -「追加」ボタン(プラス記号)をクリックして、「タレット」オブジェクトにカスタムポイントを追加しましょう。リストに新しいポイントが追加されたことがすぐにわかります。名前「Point」と位置0,0で識別できます。このポイントの名前を「Canon」に変更し、X位置を110、Y位置を35に設定してみましょう。 ![](/gdevelop5/tutorials/custom-point-name-position.png) - -これで、ゲームをプレビューすると、Canonと設定した最後にカスタムポイント ![](/gdevelop5/tutorials/custom-point-preview.png) が表示されます。ウィンドウを閉じて、変更を適用します。 - -行うべきことは、GDevelopに「turret」オブジェクトの「Canon」ポイントから弾丸を発射するように指示することだけです。 したがって、「リストの作成」アクションでは、turret.X()およびturret.Y()の式「turret.PointX("Canon)"」と「turret.PointY("Canon")」に変更する必要があります。 - -これらを変更するには、エディター内の式をクリックします。 ![](/gdevelop5/tutorials/replace-expression-in-editor.png) *ポイントの名前は大文字と小文字が区別されるため、Canonの大文字Cを忘れないでください* - -ここでプレビューを実行すると、弾丸は「turret」の「Canon」から発射されますが、弾丸が少しずれている場合があります。これは、弾丸の原点が左上隅にあるために発生します。砲塔のキヤノンポイントで行ったのと同じ方法で、弾丸の原点の位置を中央に変更します。 ![](/gdevelop5/tutorials/bullet_origin_point.png) - -### 砲塔を攻撃する敵を作成する - -まず、敵に使用するオブジェクトを作成する必要があります。 オブジェクトリストにオブジェクトを追加します(既存のオブジェクトを右クリック\>オブジェクトを追加します。以前と同様にスプライトオブジェクトを選択します)。「enemy」(敵)という名前を付けます。 - -オブジェクトを編集し(リストを右クリックしてリストから\[オブジェクトを編集\]を選択)、次にオブジェクトに2つの画像:tank2fr1.pngとtank2fr2.pngのアニメーションさせる画像ファイルを追加します。 - -![](/gdevelop5/tutorials/enemy-animation.png) - -次に、画像間の時間を0.05に変更し、アニメーションをループに変更して、アニメーションを繰り返します。 - -![](/gdevelop5/tutorials/enemy-animation-speed.png) - -完了したら「適用」をクリックします。 - -### ちょっと待って!時間を節約しましょう! - -先に進む前に、頻繁に保存することを忘れないでください。\[ファイル\]、\[保存\]の順にクリックしてプロジェクトを保存します。 ![](/gdevelop5/tutorials/save-project.png) - -### 敵の AI - -ゲームに戻りましょう。敵を砲塔に向かって移動させます。「イベント」エディターに移動して、新しいイベントを追加します。毎秒敵を作りたいです。「シーンタイマーの値」というカテゴリ「タイマーと時間」にある条件を追加します。「Times of seconds」に1を入力し、「Timer's name」に「EnemyCreation」を入力します。 *タイマーの名前を入力するときは、引用符を忘れないでください* - -次のステップは、敵オブジェクトを作成するアクションを追加することです。「アクションを追加」をクリックします。「すべてのオブジェクトの共通アクション」、「オブジェクト」を検索し、「オブジェクトの作成」を選択します。最初の「作成するオブジェクト」パラメーターで「enemy」を選択します。 - -2番目の「X位置」パラメーターには、式を入力しますRandom(800)。この式は、0〜800の乱数を返します。それぞれの敵が作成されると、画面の位置が異なります。 - -Y位置には、-50を入力します。この値は、画面領域の外側に敵を作成します。画面外に敵を作成すると、ゲームのプレイヤーは、敵の戦車がどこからともなく現れたと感じなくなります。 - -最後に、タイマーをリセットするアクションを追加しましょう(「タイマーと時間」、「シーンタイマーの開始(またはリセット)」)。タイマーの名前として「EnemyCreation」と入力します。繰り返しますが、タイマーの名前を入力するときに引用符を忘れないでください。 - -この時点で、イベントは次のようになります。 ![](/gdevelop5/tutorials/create-enemy-event.png) - -今すぐプレビューを実行しても、何もわかりません。敵は画面外に作成されるため、敵を見ることができません。敵を見るためには、敵をプレイヤーの方に移動する必要があります。 - -これを行うには、別のイベントを追加します。このイベントには条件はありません。「アクションを追加」を選択します。「すべてのオブジェクトに共通のアクション」、「移動」を選択し、「オブジェクトに向かって移動する力を追加」を選択します。 ![](/gdevelop5/tutorials/move-object-toward-other-event.png) - -「オブジェクトに向かって移動する力を追加する」の右側のパネルで、最初のパラメーターに「enemy」を選択します。2番目のパラメーターに「turret」を選択します。速度を上げるには毎秒150ピクセルを入力してください。移動力はゲームのすべてのフレームに適用されるため(条件がないため)、この移動力の適用には「Instant」を選択します。 - -![](/gdevelop5/tutorials/enemy-turret-move-object-toward-another-instant.png) - -プレビューを実行すると、敵が砲塔に向かって移動していることがわかります。ただし、敵が実際に砲塔に向かって回転しないことに気付くかもしれません。それについて何かをしましょう。 - -移動後に2番目のアクションを追加します:「すべてのオブジェクトに共通のアクション」、「角度」、「位置に向かって回転」。パネルの右側にある最初のパラメーターには、「敵」を選択します。敵を回転させたい。X位置とY位置については、式を使用してタレットの中心点を取得し、敵を角速度0でその点に向かって回転させます。角速度0は、オブジェクトを即座に回転させます。 - -![](/gdevelop5/tutorials/rotate-object-toward-position.png) - -この時点で敵のイベントは次のようになります。 - -![](/gdevelop5/tutorials/create-rotate-move-enemies-event.png) - -ここでプレビューを実行すると、敵は砲塔に向かって移動および回転します。 - -![](/gdevelop5/tutorials/turret-screenshot-enemies-moving.png) - -### 爆発のアニメーション効果を追加する - -戦車を破壊する時です!まず、弾丸が戦車に衝突したとき、戦車の位置で爆発が必要です。新しいスプライトオブジェクトを追加し、「explosion」という名前を付けて、Explosion_で始まるアニメーションにすべての画像を追加します。 ![](/gdevelop5/tutorials/select-all-explosion-images.png) - -すべての画像がアニメーションに追加されたら、画像間の時間を0.01秒に設定します。 ![](/gdevelop5/tutorials/explosion-animation-speed.png) - -「適用」をクリックして、アニメーションを保存します。 - -次に、弾丸が敵と衝突したときに爆発を作成します。 新しい条件を追加します。「すべてのオブジェクトに共通の条件」\>「衝突」\>「衝突」を選びます。 ![](/gdevelop5/tutorials/collision-check-event.png) - -右側のパネルで、最初のパラメーターに「bullet」(砲弾)を選択します。2番目のパラメーターには、「enemy」を選択します。 ![](/gdevelop5/tutorials/collision-between-object-condition-parameters.png) - -弾丸と敵を作成したのと同じ方法で、explosion(爆発)オブジェクトを作成するアクションを追加します。 XとYの位置については、enemy.X()およびenemy.Y()という式を使用します。この式は、弾丸と衝突しているenemy(敵)オブジェクトのXおよびY位置を取得します。 ![](/gdevelop5/tutorials/create-explosion-event-parameters.png) - -最後に、爆発を作成した後にアクションを追加します。すべてのオブジェクトに共通のアクション\>オブジェクト\>オブジェクトを削除し、パラメーターの右側で敵を削除したいオブジェクト敵を選択します。敵が削除された直後に弾丸も削除するには、同じアクションを再度追加します。この時点で、イベントは次のようになります。 ![](/gdevelop5/tutorials/enemy-moving-rotating-exploding.png) - -今すぐプレビューを実行すると、いくつかの問題に気付くでしょう: - -- まず、爆発オブジェクトは敵の位置に正確に作成されません。 -- 次に、作成された爆発オブジェクトはシーンに残ります。 - -シーンに残る「爆発」オブジェクトの最初の問題を解決するには、アニメーションが終了した後に爆発オブジェクトを削除する必要があります。新しく空のイベントと条件「スプライト」\>「Animations and Images」\>「Animation finished」を追加します。 ![](/gdevelop5/tutorials/animation-finished-event.png) - -右側のポップアップパネルのパラメーターについては、「爆発」オブジェクトを選択します。「爆発」オブジェクトが終了したら、爆発のアニメーションを削除します。 ![](/gdevelop5/tutorials/check-animation-finished-event-parameter.png) - -アニメーションの「爆発」オブジェクトを削除するには、「爆発オブジェクトを削除」アクションを追加します。 - -2番目の問題を解決するには、まずその原因を理解する必要があります。爆発オブジェクトを作成するとき、式enemy.X()and を使用しましたenemy.Y()。 「enemy」オブジェクトの「Origin」に「explosion」オブジェクトを作成しました。「Origin(起点)」ポイントは、デフォルトでは「敵」(0)の左上隅にあります。また、「explosion」オブジェクト(0)の左上隅である「Origin」ポイントから爆発を作成しています。 - -この問題を解決するには、爆発の起点位置を変更する必要があります。「Origin」ポイントは、オブジェクトの中心に配置する必要があります。オブジェクトを右クリックし、リストから\[オブジェクトの編集\]を選択して、「explosion」オブジェクトを編集する必要があります。次のウィンドウで、「ポイントの編集」を選択します。 - -次に、「Origin」ポイントのX位置とY位置を120に変更します。これにより、ポイントが「explosion」画像の中央に設定されます。 ![](/gdevelop5/tutorials/change-origin-point-position.png) - -最後に、「enemy」の「Origin」に「explosion」オブジェクトを作成する代わりに、中心点にオブジェクトを作成する必要があります。 以下のように、enemy.X()からenemy.PointX("Centre")と、enemy.Y()からenemy.PointY("Centre")のように、爆発を作成するアクションで式を変更する必要があります。 ![](/gdevelop5/tutorials/create-explosion-new-expression.png) - -ここでプレビューを実行すると、敵はオブジェクトの中心からリアルに見えるように爆発します。 ![](/gdevelop5/tutorials/turret-screenshot-enemies-are-exploding.png) - -### さらに爆発とゲームオーバーを追加する - -今まで、プレイヤーは死にませんでした。敵の戦車がプレイヤーの砲塔を攻撃しているとき、砲塔を破壊する必要があります。 新しいイベントを追加します。あなたが従ったのと同じ手順に従って、敵を破壊するイベントを作成します。 - -- 敵の戦車と砲塔間の衝突をテストする条件を追加します -- 砲塔の位置で爆発を作成します -- 砲塔を破壊するアクションを追加します - -![](/gdevelop5/tutorials/delete-turret-on-collision-event.png) - -さらに、砲塔が破壊されたときに「ゲームオーバー」というテキストを表示すると面白いでしょう。 シーンオブジェクトリストを使用して新しいオブジェクトを追加します。 今回は、「テキスト」オブジェクトを選択します。「GameOver」という名前を付けます。 ![](/gdevelop5/tutorials/select-text-object-from-list.png) - -オブジェクトを右クリックして「GameOver」オブジェクトを編集します。ポップアップリストから\[オブジェクトの編集\]を選択します。 ここで、テキストを「ゲームオーバー」、テキストの色を赤、テキストサイズを40に変更します ![](/gdevelop5/tutorials/edit-text-object.png) - -フォントのパスを入力するだけでカスタムフォントを設定することもできます。この場合、フォントはプロジェクトフォルダーにあります。フォントファイルの名前を入力するだけです。 ![](/gdevelop5/tutorials/custom-text-font.png) - -最後に、「Game Over」テキストオブジェクトをシーンに追加します。 - -次のステップは、テキストオブジェクトを非表示にすることです。次に、シーンに砲塔がない場合(砲塔が破壊されることを意味します)、表示します。新しい空のイベントを追加し、条件「シーン」、「シーンの開始時」を追加します。 ![](/gdevelop5/tutorials/at-the-beginning-of-the-scene-condition.png) - -この条件にはパラメーターがありません。シーンの先頭でアクションを1回実行するだけです。 次に、アクションを「シーンの先頭で」イベントに追加します。「すべてのオブジェクトの共通アクション」\>「可視性」\>「非表示」を選択します。 ![](/gdevelop5/tutorials/hide-object-event.png) - -このオブジェクトを非表示にしたいので、パラメーターにはGameOverオブジェクトを選択します。 ![](/gdevelop5/tutorials/hide-object-event-parameter.png) - -シーンにturretがない場合、「GameOver」テキストオブジェクトを表示します。 新しい空のイベントを追加します。「すべてのオブジェクトに共通の条件」\>「オブジェクト」\>「オブジェクトの数」という条件を追加します。 ![](/gdevelop5/tutorials/objects-count-condition.png) - -右側の最初のパラメーターには砲塔オブジェクトを選択し、テストの符号には等号を選択し、テストの値には0を入力します。シーン内の砲塔の数が0かどうかをテストするためです。 ![](/gdevelop5/tutorials/object-count-condition-parameters.png) - -そして、やりたいことは、シーンに砲塔がない場合はGameOverというテキストを表示することです。そのため、すべてのオブジェクトに共通アクション\>可視性\>表示のアクションを追加し、パラメーターにGameOverオブジェクトを選択します。 ![](/gdevelop5/tutorials/destroy-turret-event.png) - -最後に、やるべき効果は、ゲームを停止し、少し遅れてゲームオーバーを表示することです。 2番目の条件「タイマーと時間」、「シーンタイマーの値」を追加します。時間パラメータには0.1を入力し、名前パラメータには「GameOver」を入力します。2番目のアクション「タイマーと時間」、「時間スケールの変更」を追加します。ゲームを停止し、0.1秒後にゲームオーバーテキストを表示するには、パラメーターとして0を入力します。 - -下記は、すべてのイベントを表示しています。 ![](/gdevelop5/tutorials/all-events.png.) - -ゲームをプレビューできます。タレットが破壊されると、少し遅れてGame Overテキストが表示され、ゲームが停止します。 ![](/gdevelop5/tutorials/gameover-screenshot.png) - -### ゲームの最適化 - -弾丸が画面領域の外側にある場合、弾丸の表示は不要になりますが、画面外であっても、弾丸にはまだ動きがあります。弾丸と戦車との衝突もチェックされています。 すべてのデバイスには、メモリと処理能力のリソースが限られています。オブジェクトが画面外にある場合、オブジェクトの状態とアクションを引き続きチェックすることにより、貴重なリソースを無駄にしています。 ゲームをプレイしているデバイスのメモリの制限に達すると、ゲームの速度が低下したり、クラッシュしたり、プレイできなくなったりする可能性があります。できるだけ多くのデバイスでゲームをプレイできるようにするには、常にゲームを最適化する必要があります。 そのための1つの方法は、ゲームで不要になったオブジェクトを削除することです。このようにして、ゲームで使用されるメモリと処理能力の量を少なくします。 - -弾丸が砲塔から離れすぎている場合、弾丸を破壊するイベントを追加できます。これは簡単ですが、ビヘイビア(動作)を使用することもできます。 GDevelopの動作は、特定の機能をオブジェクトに追加します。この場合、弾丸に「画面外破壊」ビヘイビアーを追加します。その後、ゲーム画面の外にいるときに破壊されます。 - -シーンの「オブジェクト」リストで、「bullet」オブジェクトを右クリックします。ポップアップセレクタから\[オブジェクトの編集\]を選択します。「プロパティパネル」が開きます。「動作」タブを選択またはクリックします。「動作」タブには、オブジェクトに追加したすべての動作が表示されます。今は空です。 ![](/gdevelop5/behaviors-tab.png) - -「クリックしてオブジェクトにビヘイビアを追加する」ボタンをクリックします。 ![](/gdevelop5/add-behavior-button.png) - -次に、画面外の動作を破棄するリストから選択します。 ![](/gdevelop5/behaviors/destroy-outside-screen-behavior-inlist.png) - -次に、動作がリストに追加されるのを確認します。通常、ビヘイビアにパラメータがある場合は、ここにも表示されるため、変更できます。しかし、この動作にはパラメーターがありません。画面の外にあるオブジェクトを破壊するだけです。\[適用\]をクリックすると完了です。 - -今すぐプレビューを実行する場合、ゲームは非常にシンプルであり、おそらく2GB以上のRAMとデュアルコアCPUを備えたデバイスを使用しているため、おそらく違いに気付かないでしょう。単純なゲームには十分なリソースがありますが、数百、数千の弾丸を自由に試せる場合、それらを破壊せずにしばらくすると少し遅くなることがあります。 - -### 背景の追加 - -最後に背景を追加します。これにより、ゲームがより完成した外観になります。 - -新しいスプライトオブジェクトを追加します。「背景」という名前を付けます。「background.jpg」画像ファイルをオブジェクトに追加します。次に、通常どおりオブジェクトをシーンに追加できます。シーン全体を埋めるようにしてください。簡単にするために、上部のボタンを使用してグリッドを有効にすると、オブジェクトの配置に役立ちます。 ![](/gdevelop5/toggle-grid-button.png) - -背景オブジェクトが他のすべてのオブジェクトを覆っていることに注意してください。この問題を解決するには、オブジェクトのZオーダーを変更する必要があります。背景オブジェクトが選択されている間、シーンエディター画面の左側に、「プロパティ」リストが表示されます。\[プロパティ\]リストが表示されない場合は、GDインターフェイスの上部にあるツールバーの\[プロパティ\]ボタンを使用して開くことができます。 ![](/gdevelop5/object-properties-button.png) - -プロパティエディターを使用して、あらゆる種類のプロパティを変更できます。オブジェクトの位置、角度、サイズを変更できます。この場合、Zオーダーを変更します。 ![](/gdevelop5/objects/object-zorder-properties.png) - -Zオーダーの値を低い数値に変更します。背景には、負の数-1を使用します。負の値の理由は、弾丸、敵、爆発を作成するとき、デフォルトでZオーダー0で作成するためです。背景を0未満に配置する必要があります。そうしないと、ゲーム内の砲塔以外は表示されません。それを修正するもう1つの方法は、GDevelopにタンクと爆発と弾丸をより高いZオーダーに配置するように指示することです。バックグラウンドを0に配置することもできますが、開発者が自分で決める必要があるものです。すべての問題には、さまざまな解決策があります。 - -できました!ゲームが完了し、共有する準備ができました。 - -### コメントの追加 - -これでゲームは終了です。プレイ可能です。ソースを他の人と共有したい場合はどうしますか?あなたがチームで働いているとしましょう。チームの誰かがゲームに変更を加えたいと考えています。その人は、敵、弾丸、または砲塔のイベントを探す場所をどのように知っていますか?あなたには馬鹿げているかもしれません。GDevelopのイベントのほとんどは、一目瞭然です。私たちのゲームは、何が起こっているのかを見るのに十分なほど単純です。ただし、数百または数千のイベントで構成されるゲームがある状況を想像してください。ここでコメントが役立ちます。ゲームのリマインダーを他の人や自分自身に残すことができます。あなたがゲームを作った人であるとしても、大きな複雑なゲームでは、私を信頼してください。これは特に数ヶ月後です。*プロジェクトのサイズに関係なく常にコメントを使用します。*それはちょうど良いプログラミングの実践です。 - -ゲームにコメントを追加するには、\[イベント\]画面の上部にあるツールバーの\[コメントを追加\]ボタンをクリックするだけです .![](/gdevelop5/add-comment-button.png) - -「イベント」エディタに黄色のボックスが表示されます。ボックスをクリックすると、コメントの書き込みを開始できます。 ![](/gdevelop5/tutorials/comment.png) - -各イベントとコメントの位置を変更するには、マウスを左側の青い縁の上に移動して上下にドラッグします。最初のコメントは次のようになります。 ![](/gdevelop5/tutorials/all-events-with-comments.png) - -### あなた自身で GDevelop で新しい発見をしましょう - -次の [](/ja/gdevelop5/tutorials) と [](/ja/gdevelop5/getting_started) を読み進めましょう。 - -また、GDevelopには多数のサンプルとテンプレートがバンドルされています!詳細については次を参照して下さい。 [gametemplates.itch.io](https://gametemplates.itch.io/gdevelop-examples) - -また、[公式フォーラム](http://forum.compilgames.net/)で質問することもできます。 diff --git a/docs/javascript/translate.js b/docs/javascript/translate.js new file mode 100644 index 0000000000..c571b8ef82 --- /dev/null +++ b/docs/javascript/translate.js @@ -0,0 +1,130 @@ +(() => { + // Can't import as it's not a module. + const translateSvg = + ''; + + const isGoogleTranslatedUrl = (url) => { + // Check if the URL is a translated URL. + const googleTradRegex = /translate\.goog/; + return googleTradRegex.test(url); + }; + + const isGoogleTranslateUrl = (url) => { + // Check if the URL is a Google Translate URL (to be translated) + const googleTradRegex = /translate\.google\.com/; + return googleTradRegex.test(url); + }; + + const getOriginalUrl = (googleTradUrl) => { + // Extract the original URL from the Google Translate URL. + // URL can look like this: + // https://translate.google.com/website?sl=en&tl=fr&hl=fr&u=https://www.youtube.com/watch?v%3D595-swNh0Mw%26list%3DPL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8%26index%3D1 + // We need to extract the value of the "u" parameter, with the query params. + const url = new URL(googleTradUrl); + const originalUrl = url.searchParams.get("u"); + if (originalUrl) { + // Decode the URL and return it + return decodeURIComponent(originalUrl); + } + // Otherwise, return the original Google Translate URL + return googleTradUrl; + }; + + function showGoogleTranslateBar() { + const userLang = navigator.language || navigator.userLanguage || "en"; + const sourceLangCode = "en"; + const userLangCode = userLang.split("-")[0]; // Get the language code (e.g., "en", "fr") + // For some reason, if trying to translate from English to English, Google Translate + // does not work. So we need to change the target language to French in that case. + const targetLangCode = userLangCode === "en" ? "fr" : userLangCode; + + const currentUrl = window.location.href.replace( + // This is to test locally. + "http://localhost:8000/", + "https://wiki.gdevelop.io/" + ); + + if (isGoogleTranslatedUrl(currentUrl)) { + // If the page is already a Google Translate page, it is hard to get the original URL. + // So we just don't do anything. + return; + } + + // If the page is not a Google Translate page, we need to open the Google Translate page. + window.open( + "https://translate.google.com/translate?sl=" + + sourceLangCode + + "&tl=" + + targetLangCode + + "&u=" + + encodeURIComponent(currentUrl), + // Replace the current page with the translated page + "_self" + ); + } + + // Add event listener to the language icon when the page loads + document.addEventListener("DOMContentLoaded", function () { + const headerTitle = document.querySelector(".md-header__title"); + if (headerTitle) { + const translateButton = document.createElement("button"); + + translateButton.innerHTML = translateSvg; + translateButton.className = "md-header__button md-icon"; + translateButton.id = "translate-button"; + translateButton.title = "Translate this page"; + + translateButton.addEventListener("click", showGoogleTranslateBar); + + // Insert the button after the header title + headerTitle.parentNode.insertBefore( + translateButton, + headerTitle.nextSibling + ); + } + + document.querySelectorAll("a").forEach((link) => { + const href = link.getAttribute("href"); + if (!href) { + return; + } + + if (!isGoogleTranslateUrl(href)) { + return; + } + + let originalUrl = getOriginalUrl(href); + if (!originalUrl.includes("wiki.gdevelop.io")) { + // If the original URL is not from the wiki, we need to change it to the original URL. + // Otherwise, we just keep the original URL. + link.href = originalUrl; + } + }); + }); + + // Search container is added dynamically by mkdocs when search is opened. + // So we need to listen to dom updates to detect the search container. + const observer = new MutationObserver((mutations) => { + mutations.forEach((mutation) => { + if (mutation.addedNodes.length) { + mutation.addedNodes.forEach((node) => { + if ( + node.nodeType === 1 && + node.classList.contains("DocSearch-Container") + ) { + // Prevent translating everything inside that component by adding class "notranslate". + // It should be enough to prevent everything inside the component to be translated. + node.classList.add("notranslate"); + } + }); + } + }); + }); + const config = { childList: true, subtree: true }; + const targetNode = document.body; + observer.observe(targetNode, config); + // Stop observing when the page is unloaded + window.addEventListener("beforeunload", function () { + observer.disconnect(); + }); +})(); diff --git a/docs/ko/gdevelop5/getting_started.md b/docs/ko/gdevelop5/getting_started.md deleted file mode 100644 index 691e2da915..0000000000 --- a/docs/ko/gdevelop5/getting_started.md +++ /dev/null @@ -1,65 +0,0 @@ ---- -title: 시작하기 ---- -# 시작하기 - -## GDevelop 온라인을 사용하거나 데스크탑 버젼을 다운로드 하세요. - -* 시작하기 위해, [GDevelop 온라인 체험]을 할 수 있습니다. (https://editor.gdevelop.io). -* 자신만의 게임을 만들려면, [GDevelop 웹사이트의 데스크탑 버젼]을 -## GDevelop 온라인을 사용하거나 데스크탑 버젼을 다운로드 하세요. - -* 시작하기 위해, [GDevelop 온라인 체험]을 할 수 있습니다. (https://editor.gdevelop.io). -* 자신만의 게임을 만들려면, [GDevelop 웹사이트의 데스크탑 버젼]을 저장하고 게시하세요. (https://gdevelop.io). - -GDevelop을 다운로드했으면, 설치 프로그램을 열고 소프트웨어를 설치하세요. - -* Window 시스템에서, *설치 프로그램을 시작* 한 후에, 실행하기 위해 데스크탑의 *GDevelop 아이콘* 을 이용하세요. 설치프로그램 파일(zip 파일과 같은)을 *압축해제* 하고 소프트웨어를 어떤 폴더에든 넣을 수 있습니다. -* MacOS에서, *DMG 파일* 을 시작하고, GDevelop을 *Application* 으로 드래그한 다음 Application 폴더에서 GDevelop를 엽니다. -* Linux에서는, 아카이브를 *압축해제* 하고 실행파일을 실행합니다. -응용 프로그램이 시작되면, 시작 페이지가 표시됩니다. 시작 페이지에서 기존 프로젝트를 열거나 새로운 프로젝트를 생성할 수 있습니다. - -![](/gdevelop5/start_page.png) -#### 새 프로젝트 만들기 - -새 프로젝트를 만들기 위하여, 시작 페이지에서 "새 프로젝트 만들기"를 선택합니다. - -새 윈도우 창이 열리는 것을 확인할 수 있습니다. 당신은 새 윈도우 창에서 다양한 템플릿과 예제, 혹은 빈 프로젝트를 선택하실 수 있습니다. 예제가 특정 기능을 어떻게 사용하는지 보여주는 것이라면 시작하기는 당신이 직접 플레이하고, 공부하고, 수정할 수 있도록 만들어진 게임입니다. - -빈 프로젝트는 어떠한 에셋이나 이벤트, 장면 등도 들어있지 않습니다. - 말그대로 텅 빈 프로젝트입니다. - -![](/gdevelop5/create-new-project-window.png) - -새 윈도우 창의 꼭대기에서 프로젝트를 저장할 장소를 선택하실 수 있습니다. -![](/gdevelop5/project-default-location.png) - -프로젝트를 저장할 위치를 선택하셨다면 시작하기나 예제에서 게임을 선택해 줍니다. - -!!! note - - 기본적으로 새 게임은 "문서" 폴더의 "GDevelop Projects"에 저장됩니다. -#### 프로젝트 열기 - -프로젝트를 열기 위하여 시작 페이지에서 "프로젝트 열기"를 선택합니다. - -그 다음 브라우저 창을 통해 실행할 프로젝트를 선택합니다. 만약 온라인으로 이용하고 계신다면 구글 드라이브를 통해 저장, 불러오기를 하실 수 있습니다. GDevelop 5의 프로젝트 파일은 기본적으로 ".json" 파일로 저장됩니다. - -GDevelop 4를 사용하실 경우 [이 곳](/gdevelop5/getting_started/open-gdevelop-4-project)에서 당신의 파일을 GDevelop 5로 여는 방법을 확인하실 수 있습니다. -#### 다음 단계: 튜토리얼 시작하기 - -계속하시려면 **[GDevelop의 기본 개념](/gdevelop5/tutorials/basic-game-making-concepts)**을 확인하십시오. - -이 곳에서 제공하는 튜토리얼과 다양한 문서들을 통해 최고의 학습 효과를 경험하실 수 있습니다. [튜토리얼](/gdevelop5/tutorials)을 읽고 따라해보세요! -#### 더 알아보기 - -더 많은 정보를 얻고 싶다면 아래 링크를 참고하세요. 모든 것이 설명되어있습니다: - - * [interface](/gdevelop5/interface) - * [objects](/gdevelop5/objects) - * [behaviors](/gdevelop5/behaviors) - * [events](/gdevelop5/events) - * [all features](/gdevelop5/all-features) - * [publishing](/gdevelop5/publishing) - -GDevelop에 들어있는 **예제**도 확인해 보세요! 예제를 통해 GDevelop의 다양한 기능들을 학습하실 수 있습니다. - diff --git a/docs/ko/gdevelop5/index.md b/docs/ko/gdevelop5/index.md deleted file mode 100644 index 5fd93f6574..0000000000 --- a/docs/ko/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop5 - -GDevelop은 누구나 사용할 수 있도록 설계된 오픈소스, 크로스 플랫폼 **게임 엔진**입니다 - 프로그래밍을 하신 경험이 없어도 사용하실 수 있습니다! GDevelop을 사용하신 경험이 없으시면 [온라인으로 체험](https://editor.gdevelop.io)하시거나 [데스크탑에 설치](http://gdevelop.io/download)하세요! - -이 **위키 사이트**는 소프트웨어에 대한 전반적인 사용법과 튜토리얼을 제공합니다: GDevelop은 언제나 여러분의 기여를 환영합니다! - -# 시작하기 - -➡️GDevelop 5를 시작하기 위해서, [시작 페이지](/gdevelop5/getting_started), **[기본 게임 제작 개념](/gdevelop5/tutorials/basic-game-making-concepts)**을 읽고 [튜토리얼](/gdevelop5/tutorials)을 확인하십시오. diff --git a/docs/ko/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/ko/gdevelop5/tutorials/basic-game-making-concepts.md deleted file mode 100644 index a7ebc88298..0000000000 --- a/docs/ko/gdevelop5/tutorials/basic-game-making-concepts.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: basic-game-making-concepts ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# 기본적인 게임 제작: GDevelop을 시작하기 위해 알아야 할 사항 - -GDevelop의 기본 원리는 간단합니다. 프로그램을 시작하기 위해 아래의 내용을 읽어 봅시다. GDevelop를 설치하지 않으셨다면 [최신 버전](https://gdevelop.io/download)을 설치하세요. - -## 화면에 물체를 나타내기: 오브젝트 - -화면에 있는 모든 것을 **"오브젝트"**라고 합니다. 다양한 종류의 오브젝트는 다양한 게임 요소들을 화면에 나타냅니다. 예를 들어 대부분의 게임 그래픽은 "스프라이트"로, 텍스트는 "텍스트"로, 불이나 스파크같은 이펙트들은 "입자"로 나타낼 수 있습니다. - -## 오브젝트의 위치를 지정하기: 좌표 - -GDevelop 화면/장면 상의 오브젝트는 **X, Y 좌표**를 가집니다. 좌표는 *데카르트 평면*의 X축과 Y축에 대응합니다. - -X 좌표는 왼쪽으로 갈수록 *감소*하고, 오른쪽으로 갈수록 *증가*합니다. Y 좌표는 아래로 갈수록 *증가*하고 위로 갈수록 *감소*합니다. - -![pres_coord1.png](/wiki/pres_coord1.png) - -오브젝트를 이동하거나 회전시키기 위하여 원하는 각도를 설정할 필요가 있습니다. 아래의 그림은 GDevelop가 이해하는 회전각도를 나타냅니다: - -![pres_coord2.png](/wiki/pres_coord2.png) - -만약 **사인**이나 **코사인**과 같은 삼각함수를 이용할 경우, 각도를 라디안으로 표현해야 합니다. (1 라디안은 180/π 도이고, 1도는 π/180 라디안입니다. π(원주율)은 대략 3.14159에 가까운 값입니다.) - -## 이벤트와 이벤트가 오브젝트를 선택하는 법 - -당신은 게임의 규칙을 만들기 위해 이벤트를 만듭니다. 이벤트는 조건과 액션으로 이루어져 있습니다. 대부분의 조건과 액션은 오브젝트에 적용됩니다: - -* 조건은 오브젝트에 **테스트**를 실행합니다. * 액션은 오브젝트를 **움직이게 합니다.** 액션으로 오브젝트의 위치나 생김새 등등을 바꿀 수 있습니다. - -조건이 없는 액션은 모든 오브젝트에 적용됩니다. 만약 오브젝트를 이벤트에서 최초로 사용할 경우, GDevelop는 그 장면의 그 오브젝트의 이름을 가진 **모든 오브젝트**를 시험하거나 수정할 것입니다. 만약 오브젝트를 같은 이벤트에서 다시 사용한다면 GDevelop는 이전 조건에 적용된 오브젝트만 시험하거나 수정할 것입니다. - -예를 들어봅시다. 아래의 이벤트는 조건을 가지지 않고 있습니다. 따라서 "Square"라는 이름의 **모든** 오브젝트를 삭제할 것입니다. - -![](/gdevelop5/tutorials/delete-square.png) - -아래의 이벤트는 조건을 가지고 있습니다. 따라서 **오직** 100픽셀 이하의 X 좌표를 지닌 "Square"오브젝트만이 삭제될 것입니다. - -![](/gdevelop5/tutorials/delete-square-condition.png) - -!!! note - - **액션을 넣어줍시다!** 🎮아래의 예제를 온라인으로 열어봅시다: - -[![](/gdevelop5/tutorials/objectselection-pickobject.png)](https://editor.gdevelop.io/?project=example://object-selection) - -## 이벤트: 순서가 중요하다 - -이벤트에서 순서는 **매우 중요합니다!!** - -제일 위에 있는 이벤트가 먼저 실행됩니다. 이벤트는 게임이 비춰질 경우 계속 실행됩니다. 비추어지는 것을 우리는 프레임이라고 부릅니다. 매초마다 60번 실행됩니다. 아래의 예제는 동등하지 않습니다: - -![](/gdevelop5/tutorials/create-then-delete-square.png) - -![](/gdevelop5/tutorials/delete-then-create-square.png) - -* The first pair of events actions create a "Square" object at coordinates X: 100. Y: 200 (100;200). Then the event deletes the created square immediately. **No** "Square" is displayed on the screen. It's deleted just after being created. * The second pair of events actions deletes all the "Square" objects from the scene/screen. It then creates one "Square" at the scene/screen coordinates X: 100, Y: 200 (100;200). This event shows a square is **visible** on the scene (before being deleted at the next frame. It will, then, be recreated immediately. - -## Behaviors: pre-defined rules and logic for objects - -**Behaviors** allow to enhance an object with some *pre-defined logic*. Behaviors can be fairly simple, automating simple tasks or much more advanced. For example: - -* A behavior can be used to *automatically* remove an object from the game when it *goes out of the screen* (limiting the game memory usage). * Another behavior can be used to *move objects on the screen with the keyboard arrows*. * Yet another behavior can be used to allow the object to be *dragged on screen* with the mouse or by touching the object. * The *Physics* behavior is an example of an advanced behavior which make your objects move in a realistic way, following the laws of physics. - -**Objects** and **Behaviors** can be manipulated using events. You can read the pages about [Objects](/gdevelop5/objects) and [Behaviors](/gdevelop5/behaviors) to know more about them. - -!!! note - - You can create *custom behaviors* for your objects. It's even recommended when your game grows. This allow you to put logic about what your objects are doing in the custom behaviors, rather than bloating the events sheet of the scene. You can [read more in this article](/gdevelop5/tutorials/how-to-make-behavior). - -## Moving objects: using the built-in forces - -Moving objects can be achieved with **forces**. Forces are used to "push" objects. - -You can specify: - -- the coordinates of a force on the X and Y axis, in pixels, -- or its polar coordinates (the force angle, in degrees, and length, in pixels), -- if the force is instant (will only push "a bit" the object) or continuous (will keep pushing the object until it's removed). - -### Example - -Say you want to move an object towards the bottom: - -![pres_vector.png](/wiki/pres_vector.png) - -You can add a force using X/Y coordinates by specifying 0 for the X coordinate and, say, 150 pixels for the Y coordinate. You can also use polar coordinates and add a force with an angle of 90° and a length of 150 pixels. - -### Other ways of moving objects - -Some "behaviors", like the Physics engine or Pathfinding, may move the objects by themselves. In this case, it is better not to use the builtin forces system and instead rely only on actions provided by these behaviors. - -!!! note - - **See it in action!** 🎮Open this example online: - -[![](/gdevelop5/tutorials/moveobjectwithphysics.png)](https://editor.gdevelop.io/?project=example://move-object-with-physics) - -!!! note - - These other ways of moving objects are explained in [this how-to page](/gdevelop5/tutorials/how-to-move-objects). - -## Storing any information in memory: Variables - -A Variable allows you to store **data**. For example, a variable can store a number or a text. We might compare them to drawers or boxes where we can file notes. Any data can be stored in a variable, as long as it is in *text* or *number* format. Such things as the number of lives a player has remaining, a player's high score, the number of bullets left, and/or the number of enemies killed are all examples of what can be stored in a variable. You are probably going to store numbers in variables as a common practice. - -![pres_variable.png](/wiki/pres_variable.png) - -Actions and conditions test or change a variable *value*. - -#### Where are variables stored? (variable "scope") - -The *scope* of a variable determines the place a variable can be accessed. In GDevelop, there are three variable scopes are available: - -* **Global** variables are accessible from all the game scenes. For instance, they can be used to store the player's score across different levels/scenes. * **Scene** variables are only accessible from the scene they are created in. They can be used for data that only concerns one scene. A Scene variable would be able to access the time remaining to complete the level/scene. - -* **Object** variables only concern one object. For example, a hero can have a "Health" or "Ammo" variable. - -!!! note - - Read more about variables on the [Variables](/gdevelop5/all-features/variables) page. Variables are used a lot in games: most examples use them and tutorials will make use of them too. - -!!! note - - Want to see how variables are used in a video tutorial? Check this tutorial: [Variables explained for Non-programmers](https://www.youtube.com/watch?v=SRfpBTgx-PY). - -## An advanced notion: the "time elapsed" since last frame (TimeDelta) - -The game evaluates events and repaints the screen several times per second: we say that the game is *refreshed*, *updated* during a "tick". How often this happens depends on your computer resources: a slow computer can render 25 frames per second, a fast one 60. GDevelop can usually make sure that this value is the same on all computers. However, the speed of some operations can change from computer to computer, for example, mathematical operations and the rendering of movements. - -To make the speed of changes constant, use the *`TimeDelta()` expression*, which returns the time in seconds since the last frame. For example, don't do this: - -![](/gdevelop5/tutorials/update-life-no-timedelta.png) - -But do this instead: - -![](/gdevelop5/tutorials/update-life-timedelta.png) - -* The first event is adding 20 to the variable every time the game is refreshed (i.e. as much as possible, up to 60 times per second). It's **not correct** to use such event as the speed of the increase of the variable will not be the same from computer to computer: we cannot predict the value of the variable after 10 seconds for example - as it depends on the number of frames of the game painted. - -* The second event is **correct and reliable** : The number 300 is multiplied by TimeDelta(). Thus, the variable will be increased at the same time on all computers. As TimeDelta() returns a time in second, it allows you to quantify exactly the amount: In our case, the variable will grow at 300 units/second. Thus, we can predicate that life will increase by 3000 units in 10 seconds - whatever the number of frames painted during this time. - -!!! note - - As GDevelop will run your game at a maximum of 60 images per second, you usually won't notice an issue if you're using the first event. It's still a good idea to keep an eye on this and use the version with `TimeDelta()` instead. - -**Rule of Thumb:** Use _TimeDelta()_ when you want to continually add some amount to a value. If your action is meant to be launched only once (for example, during a collision where you then delete the object), it's ok to use a discrete value without TimeDelta - as it does not depend on the speed of the game. - -!!! note - - When you're moving an object using forces, there is no need to use TimeDelta() as GDevelop automatically uses it. - -## And... that's almost all you need to know - -➡️ You can continue to read **[the tutorials](/gdevelop5/tutorials)** to know more about creating real games with GDevelop! diff --git a/docs/ko/gdevelop5/tutorials/index.md b/docs/ko/gdevelop5/tutorials/index.md deleted file mode 100644 index 8ca94fcd75..0000000000 --- a/docs/ko/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,53 +0,0 @@ ---- -title: GDevelop 5 튜토리얼 ---- -# GDevelop 5 튜토리얼 - -해당 튜토리얼들은 처음부터 게임을 만드는 방법을 설명하는 단계별 가이드입니다. - -- [기본적인 게임 제작: GDevelop을 시작하기 위해 알아야 할 사항](/gdevelop5/tutorials/basic-game-making-concepts) -- [플랫폼 게임 만들기](/gdevelop5/tutorials/platformer/start) -- [Tank Shooter 게임 만들기](/gdevelop5/tutorials/tank-shooter) -- [간단한 Endless Runner game 만들기](/gdevelop5/tutorials/endless-runner) -- [간단한 Breakout game 만들기](/gdevelop5/tutorials/roadrider) - -# GDevelop 5 영상 튜토리얼 - -- [영상 튜토리얼 목록](/gdevelop5/tutorials/videos) - ------------------------------------------------------------------------- - -# GDevelop 5 가이드 (방법) 다음의 가이드들은 GDevelop의 특정 부분에 대한 설명을 제공하고, 또한 게임을 디자인하기 위한 몇 가지 고급 기술도 보여줍니다. - -- [복잡한 논리 처리 방법 – The finite state machine (FSM)](/gdevelop5/tutorials/finite_state_machine) -- [플렛포머 게임 속 캐릭터 점프와 낙하를 애니메이션화하기](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) -- [게임에서 큰 배경화면 출력하기](/gdevelop5/tutorials/how-to-display-big-background) -- [성능 저하 게임 디버깅하기](/gdevelop5/tutorials/how-to-debug-poor-performance) -- [저장 액션 설명](/gdevelop5/tutorials/storage-action-explained) -- [게임의 크기 줄이기](/gdevelop5/tutorials/reduce-size-game) - ------------------------------------------------------------------------- - -# 기타 가이드 아래의 가이드들은 게임 개발 관련 설명을 제공합니다. 이것들은 GDevelop에만 해당하는 것이 아닙니다. - -* [itch-io에 게임 게시하기](/gdevelop5/publishing/publishing-to-itch-io) - -* [Amazon App Store에 게임 게시하기](/gdevelop5/publishing/publishing-to-amazon-app-store) - -* [Game Jolt에 게임 게시하기](/gdevelop5/publishing/publishing-to-gamejolt-store) - -* [Kongregate에 게임 게시하기](/gdevelop5/publishing/publishing-to-kongregate-store) - ------------------------------------------------------------------------- - -# 리소스 - -게임 퀄리티 향상을 위해 게임 예시,템플릿, 소프트웨어와 스프라이트, 음악, 음향 이펙트를 찾을 수 있는 타사 웹 사이트에 연결하세요. - -- [리소스 목록](/gdevelop5/tutorials/resources) - ------------------------------------------------------------------------- - -!!! note - - 위키는 누구든 편집할 수 있습니다. 주저하지 말고 계정을 만들어서 글을 향상시키거나 실수를 고치거나 새 가이드를 쓰면서 기여하세요! diff --git a/docs/logocompleteeffecttranparent400x100.png b/docs/logocompleteeffecttranparent400x100.png deleted file mode 100644 index ec3fd24b1e..0000000000 Binary files a/docs/logocompleteeffecttranparent400x100.png and /dev/null differ diff --git a/docs/nl/gdevelop5/tutorials/platformer/index.md b/docs/nl/gdevelop5/tutorials/platformer/index.md deleted file mode 100644 index d10094ebf4..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/index.md +++ /dev/null @@ -1,133 +0,0 @@ ---- -title: Platformer tutorial, Deel 1 - beginnen met het spel ---- -# Platformer tutorial, Deel 1: beginnen met het spel - -Deze tutorial legt uit hoe je een platformgame kunt maken met GDevelop. Als je nog nooit een game met GDevelop hebt gemaakt, is dit een geweldige plek om te beginnen. - -Je leert het volgende: - -- Een level ontwerpen met platforms, vijanden en munten die je kan verzamelen. -- Het maken van een speelbaar personage dat kan bewegen, springen en vijanden kan doden. -- Het personage terugbrengen naar het checkpoint als deze dood gaat. - -## Reeks - -Je leest **Deel 1** van de [Platformer Tutorial](/nl/gdevelop5/tutorials/platformer). - -1. Platformer Tutorial, Deel 1 -2. [Platformer Tutorial, Deel 2](/nl/gdevelop5/tutorials/platformer/part-2) -3. [Platformer Tutorial, Deel 3](/gdevelop5/tutorials/platformer/part-3) -4. [Platformer Tutorial, Deel 4](/gdevelop5/tutorials/platformer/part-4) -5. [Platformer Tutorial, Deel 5](/gdevelop5/tutorials/platformer/part-5) -6. [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6) -7. [Platformer Tutorial, Deel 7](/gdevelop5/tutorials/platformer/part-7) -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - -## Stap 1: Installeer GDevelop - -Download en installeer GDevelop als je dat nog niet hebt gedaan. Je vindt de volledige instructies voor het instellen van de software op de pagina [Getting Started](/gdevelop5/getting_started). - -## Stap 2: Download de assets voor de game - -De term *assets* verwijst naar de audio- en visuele media van een game, zoals geluiden en sprites. Elke game heeft assets nodig en om je leven een beetje gemakkelijker te maken, biedt deze tutorial de assets die je nodig hebt om de game te maken. - -Je kunt de assets downloaden via de volgende URL: - -http://www.compilgames.net/dl/PlatformerTutorialResources.zip - -!!! note - - Je bent ook meer dan welkom om andere assets te gebruiken. Natuurlijk zal de game die je in de schermafbeeldingen ziet er anders uitzien dan de game die je uiteindelijk maakt. - -## Stap 3: Maak een nieuw project - -In GDevelop is een _project_ een container voor de assets en logica van de game. In deze tutorial worden de termen "project" en "game" als synoniemen gebruikt. - -Om een nieuw project te maken: - -1. Star GDevelop. -2. Selecteer **Create a new project**. -3. Kies een map voor het project. -4. Selecteer **Empty game**. - -![](/gdevelop5/tutorials/platformer/create-project.gif) - -## Stap 4: Een scène toevoegen aan de game - -Een game bestaat uit _scènes_. Meestal is elke scène een ander scherm in de game. Het hoofdmenu, het pauzemenu en elk niveau in een game zouden bijvoorbeeld allemaal verschillende scènes zijn. - -Om een scène aan de game toe te voegen: - -1. Vouw het paneel **Scenes** uit (als het nog niet is uitgevouwen). -2. Selecteer **Click to add a scene**. - -Selecteer vervolgens de scène om deze te openen. - -![](/gdevelop5/tutorials/platformer/add-scene.gif) - -!!! note - - Als je meerdere scènes aan een project toevoegt, is de eerste scène in de lijst de scène die GDevelop laadt wanneer de game start. - -## Step 5: Een object aan een scène toevoegen - -Een scène bestaat uit [objects](/gdevelop5/objects). Alles wat de gebruiker ziet of waarmee hij interactie heeft, is een object, inclusief het speelbare personage, vijanden en delen van de omgeving. - -GDevelop biedt verschillende soorten objecten die je aan een game kunt toevoegen. Elk type object heeft unieke kenmerken en use-cases. Het meest voorkomende type object is het Sprite-object, waarmee je een afbeelding kunt maken die je (optioneel) kunt animeren. - -Om een object te maken: - -1. In het **Objects** paneel, klik op **Add a new object**. -2. Selecteer **Sprite**. -3. In het **Object name** veld, type "Cloud". -4. Wanneer de object editor opent, klik op **Add an animation**. Op het label staat **Add an _animation_**, maar de Sprite-objecten hoeven niet perse geanimeerd te worden. -5. Klik op **Add**. -6. Selecteer de asset "cloud2.png". -7. Selecteer **Apply**. - -Sleep vervolgens een of meer exemplaren van het "Cloud"-object naar de scène. - -![](/gdevelop5/tutorials/platformer/add-object-instance.gif) - -!!! note - - Elke kopie van een object dat in een scène verschijnt, wordt een _instantie_ van dat object genoemd. - -## Stap 6: Verander de achtergrond kleur - -De witte wolken zien er niet geweldig uit op de grijze achtergrond. - -Om de achtergrondkleur van de scène aan te passen: - -1. Klik met de rechtermuisknop op de achtergrond van de scène. -2. Selecteer **Scene properties**. -3. Klik op **Scene background color**. -4. Kies een mooie kleur blauw. - -!!! tip - - Je kan een hexadecimale waarde invoeren (bijv. #00000) of een naam van de kleur (bijv. Black) - -![](/gdevelop5/tutorials/platformer/set-scene-background-color.jpg) - -## Stap 7: Voorbeeld van de game bekijken - -Het is goed om er een gewoonte van te maken om regelmatig een voorbeeld van je game te bekijken. Als er dan iets niet werkt is het makkelijker om het probleem te achterhalen. - -Klik op de knop **Preview** in de werkbalk om een voorbeeld van de game te starten. - -![](/gdevelop5/tutorials/platformer/preview-button.jpg) - -Sluit het venster om de game te stoppen. - -## Stap 8: De game opslaan - -Het is ook goed om er een gewoonte van te maken om regelmatig je games op te slaan. Je kunt de game opslaan via het menu **File** of door een sneltoets te gebruiken: - -- `CTRL` + `S` voor Windows -- `CMD` + `S` voor macOS - -## De volgende stap - -Lees [Platformer Tutorial, Deel 2](/nl/gdevelop5/tutorials/platformer/part-2) en leer hoe je een speelbaar personage kan toevoegen aan de game. \ No newline at end of file diff --git a/docs/nl/gdevelop5/tutorials/platformer/part-2.md b/docs/nl/gdevelop5/tutorials/platformer/part-2.md deleted file mode 100644 index a7b5877738..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/part-2.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Platformer Tutorial, Deel 2 - Maak een speelbaar personage ---- -# Platformer Tutorial, Deel 2: Maak een speelbaar personage - -In dit deel van de tutorial wordt uitgelegd hoe je een speelbaar personage aan het spel kunt toevoegen. - -Je leert het volgende: : - -- Een object maken voor het speelbare personage. -- De speler het object laten besturen met de pijltjestoetsen. -- Het speelbare personage volgen met de camera. - -## Reeks - -Je leest **Deel 2** van de [Platformer Tutorial](/nl/gdevelop5/tutorials/platformer). - -1. [Platformer Tutorial, Deel 1](/nl/gdevelop5/tutorials/platformer) -2. Platformer Tutorial, Part 2 -3. [Platformer Tutorial, Deel 3](/gdevelop5/tutorials/platformer/part-3) -4. [Platformer Tutorial, Deel 4](/gdevelop5/tutorials/platformer/part-4) -5. [Platformer Tutorial, Deel 5](/gdevelop5/tutorials/platformer/part-5) -6. [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6) -7. [Platformer Tutorial, Deel 7](/gdevelop5/tutorials/platformer/part-7) -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - -## Stap 1: Maak een object - -De eerste stap is om een object te maken voor het speelbare personage. Als je het eerste deel van deze tutorial hebt gevolgd, zou het bekend moeten zijn hoe dit moet. - -Om een object maken voor het speelbare personage: - -1. Maak een **Sprite** object met de naam "Player". -2. Gebruik de asset "p1_stand.png" als het enige frame van de animatie. -3. Geef de animatie de naam "Idle". -4. Sleep een instantie van het object in de scène. - -![](/gdevelop5/tutorials/platformer/player-object.jpg) - -!!! note - - [Platformer Tutorial, Part 4](/gdevelop5/tutorials/platformer/part-4) legt uit hoe je het personage kan animeren. - -## Step 2: Voeg een behavior toe aan het object - -Als je een voorbeeld van de game bekijkt, kun je het object "Player" niet besturen. Dit komt omdat objecten standaard niets doen. Om objecten iets te laten doen, moet je er een of meer [behaviors](/gdevelop5/behaviors) aan toevoegen. - -GDevelop wordt geleverd met een grote bibliotheek met behaviors die je met een paar klikken aan objecten kunt toevoegen. Een van deze behaviors is het **Platformer character** behavior, waarmee je een object kunt besturen als speelbaar personage. - -Om het **Platformer character** behavior toe toe voegen aan het object: - -1. Klik met de rechtermuisknop op het object **Player**. -2. Selecteer **Edit object**. -3. Ga naar de tab **Behaviors**. -4. Klik op **Add a behavior to the object**. -5. Selecteer **Platformer character**. -6. Klik op **Apply**. - -Als je een voorbeeld van de game bekijkt, kun je de speler besturen met de pijltjestoetsen. Het **Platformer character** behavior zorgt er ook voor dat er nu zwaartekracht is voor de speler. Hierdoor valt het de het speelbare personage nu uit het scherm. - -![](/gdevelop5/tutorials/platformer/platformer-character-behavior-preview.gif) - -## Step 3: Volg een object met de camera - -Om te voorkomen dat het personage uit beeld valt, heeft de game platforms nodig en een camera die de speler volgt. De [next part of the tutorial](/gdevelop5/tutorials/platformer/part-3) gaat over de platforms, en dit gedeelte over de camera. - -Om de camera de speler te laten volgen is het nodig om een [event](/gdevelop5/events) toe te voegen. In GDevelop kun je met events oorzaak en gevolg bepalen, dus als er iets gebeurt (oorzaak), kun je ervoor zorgen dat er iets anders gebeurt (gevolg). - -Events bestaan uit twee delen: condities en acties. De conditie is wat bepaalt wanneer het event plaatsvindt en de actie is wat er gebeurt wanneer het event plaatsvindt. - -GDevelop heeft een grote bibliotheek met condities en acties die allerlei functies aan een game toevoegen. Een groot deel van het leren van GDevelop is het ontdekken van de beschikbare opties. In dit geval heeft de game de actie **Center the camera on an object** nodig. - -Om de actie **Center the camera on an object** toe te voegen: - -1. Open de Events editor. -2. Klik **Add a new event**. -3. Klik op **Add action** zonder een conditie toe te voegen. Wanneer je geen conditie opgeeft wordt de actie elk frame uitgevoerd. Als de game dus op 60 frames per seconde draait, wordt de actie 60 keer per seconde uitgevoerd. -4. Klik op **Other actions**. -5. Vouw **Layers and cameras** uit. -6. Selecteer **Center the camera on an object**. -7. Selecteer het "Player" object. -8. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/center-camera-event.jpg) - -Als je een voorbeeld van de game bekijkt, valt de speler nog steeds - er zijn tenslotte nog steeds geen platforms - maar de camera volgt de speler nu. Hierdoor blijft de speler op het scherm. - -![](/gdevelop5/tutorials/platformer/center-camera-on-object-preview.gif) - -## De volgende stap - -Read [Platformer Tutorial, Part 3](/gdevelop5/tutorials/platformer/part-3) \ No newline at end of file diff --git a/docs/nl/gdevelop5/tutorials/platformer/part-3.md b/docs/nl/gdevelop5/tutorials/platformer/part-3.md deleted file mode 100644 index ee47827ed2..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/part-3.md +++ /dev/null @@ -1,85 +0,0 @@ ---- -title: Platformer Tutorial, Deel 3 - Platforms maken ---- -# Platformer Tutorial, Deel 3: Platforms maken - -In dit deel van de tutorial wordt uitgelegd hoe je platforms aan het spel kunt toevoegen. Dit geeft de speler wat vaste grond om over te bewegen en tussen te springen. - -Je leert het volgende: - -* Het toevoegen van Tiled Sprite objects. -* Het maken van een platform dat zich gedraagd als een platform. - -## Reeks - -Je leest **Deel 3** van de [nl:[gdevelop5:tutorials:platformer:start|Platformer Tutorial]]. - -1. [Platformer Tutorial, Deel 1](/nl/gdevelop5/tutorials/platformer) -2. [Platformer Tutorial, Deel 2](/nl/gdevelop5/tutorials/platformer/part-2) -3. Platformer Tutorial, Deel 3 -4. [Platformer Tutorial, Deel 4](/gdevelop5/tutorials/platformer/part-4) -5. [Platformer Tutorial, Deel 5](/gdevelop5/tutorials/platformer/part-5) -6. [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6) -7. [Platformer Tutorial, Deel 7](/gdevelop5/tutorials/platformer/part-7) -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - - -## Stap 1: Maak een object - -De eerste stap is het maken van een object voor het platform. Als je het eerste en tweede deel van deze tutorial hebt gevolgd, is dit een soortgelijk -- maar niet precies hetzelfde-- proces. - -Het belangrijkste verschil is dat dit object een Tiled Sprite object moet zijn. Dit type object "geeft een afbeelding weer die over een gebied wordt herhaald". Het is ideaal voor zoiets als platforms, die meestal zijn opgebouwd uit kleine, vierkante afbeeldingen (ook bekend als *tiles*). - -Om een object te maken voor een platform: - -1. In het **Objects** paneel, klik op **Add a new object**. -2. Selecteer **Tiled Sprite**. -3. In het **Object name** veld, typ "GrassPlatform". -4. Klik op **Select an image**. -5. Klik op **Choose a file**. -6. Selecteer het bestand "grassHalfMid" en het venster dat opent. -7. Klik op **Apply**. - -Sleep vervolgens enkele instanties van het object naar de scène en varieer de breedte van deze instanties om platforms van verschillende lengtes te creëren. - -![](/gdevelop5/tutorials/platformer/grass-platform-resize.gif) - -## Stap 2: Voeg een behavior toe aan het object - -Alleen het toevoegen van een platform aan de scène is niet genoeg. Je moet ook een behavior aan het object toevoegen om ervoor te zorgen dat het speelbare personage er op kan lopen. Handig is dat GDevelop een behavior met de naam **Platform**-behavior heeft dat hier voor zorgt. - -![](/gdevelop5/tutorials/platformer/platform-behavior.jpg) - -Om het **Platform** behavior toe te voegen aan het object: - -1. Open de **Behaviors** tab voor het "GrassPlatform" object. -2. Selecteer **Platform behavior**. -3. Klik op **Apply**. - -![](/gdevelop5/tutorials/platformer/grass-platform-add-behavior.jpg) - -Als je een voorbeeld van het spel bekijkt, kan de speler over het het platform lopen. - -![](/gdevelop5/tutorials/platformer/grass-platform-behavior.gif) - -## Stap 3: Een ander type platform maken - -GDevelop biedt ook het **Jumpthru-platform** behavior. Dit behavior creëert een platform waarop de speler van onderaf kan springen. Dit zorgt voor meer variatie in het level. - - -Om een platform het het **Jumpthru platform** behavior te maken: - -1. Maak een **Tiled sprite** object met de naam "SmallBridge". -2. Gebruik de asset "bridgeLogs.png" als de afbeelding van het object. -3. Open de **Behaviors** tab. -4. Selecteer **Platform behavior**. -6.In het **Type** menu, selecteer **Jumpthru platform**. -7. Klik op **Apply**. - -Sleep vervolgens enkele exemplaren van het object naar de scène. - -![](/gdevelop5/tutorials/platformer/jump-thru-platform-preview.gif) - -## De volgende stap - -Read [Platformer Tutorial, Part 4](/gdevelop5/tutorials/platformer/part-4). \ No newline at end of file diff --git a/docs/nl/gdevelop5/tutorials/platformer/part-4.md b/docs/nl/gdevelop5/tutorials/platformer/part-4.md deleted file mode 100644 index 3c22c43ad2..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/part-4.md +++ /dev/null @@ -1,139 +0,0 @@ ---- -title: Platformer Tutorial, Deel 4 - Animeer het speelbare personage ---- -# Platformer Tutorial, Deel 4: Animeer het speelbare personage - -In dit deel van de tutorial wordt uitgelegd hoe je het speelbare personage kunt animeren. - -Je leert het volgende: - -- Een animatie toevoegen aan een object. -- Events gebruiken om animaties te activeren - - -## Reeks - -Je leest **Deel 4** van de [Platformer Tutorial](/nl/gdevelop5/tutorials/platformer). - -1. [Platformer Tutorial, Deel 1](/nl/gdevelop5/tutorials/platformer) -2. [Platformer Tutorial, Deel 2](/nl/gdevelop5/tutorials/platformer/part-2) -3. [Platformer Tutorial, Deel 3](/nl/gdevelop5/tutorials/platformer/part-3) -4. Platformer Tutorial, Deel 4 -5. [Platformer Tutorial, Deel 5](/gdevelop5/tutorials/platformer/part-5) -6. [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6) -7. [Platformer Tutorial, Deel 7](/gdevelop5/tutorials/platformer/part-7) -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - - -## Stap 1: Voeg een spring animatie toe aan de speler - -In GDevelop kun je animaties aan een object toevoegen en die animaties activeren wanneer er iets gebeurt (zoals wanneer een speler springt). - -### Voeg de "Jumping" animatie toe aan het "Player" object - -Om een jumping animatie toe te voegen aan het "Player" object: - -1. In het **Objects** paneel, klik met de rechter muisknop op het "Player" object. -2. Selecteer **Edit object**. -3. Klik op **Add an animation**. -4. Geef de animatie de naam "Jumping". -5. Klik op **Add**. -6. Selecteer het bestand "p1_jump.png" in het venster dat opent. - -![](/gdevelop5/tutorials/platformer/part-4-01.jpg) - -De animatie is nu wel toegevoegd aan het object, maar deze wordt pas afgespeeld als iets de animatie activeert. - -### Activeer de "Jumping" animatie - -Om de "Jumping" animatie te activeren: - -1. Ga naar de Events editor. -2. Maak een nieuw event. -3. Voeg de **Is jumping** conditie toe aan het "Player" object. -4. Voeg de **Change the animation (by name)** actie toe aan het event. -5. Voer in het veld **Animation name** de naam "Jumping" in. Je moet deze naam tussen dubbele aanhalingstekens plaatsen (bijv. "Jumping"). -6. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/part-4-02.jpg) - -Deze aanpassing zorgt ervoor de de animatie wordt geactiveerd wanneer je springt. - -![](/gdevelop5/tutorials/platformer/part-4-03.gif) - -## Stap 2: Een idle animatie toevoegen aan de speler - -Er is een probleem met de jumping animatie: deze wordt niet gereset wanneer de speler klaar is met springen. Om dit op te lossen geen we de animatie "Idle" activeren wanneer de speler weer op het platform staat. - -### Detecteren wanneer de speler op de vloer staat - -GDevelop verwijst naar het oppervlak van een platform als de _vloer_. - -Om te detecteren wanneer een object op vloer staat: - -1. Voeg een nieuw event toe. -2. Voeg de **Is on floor** conditie toe aan het "Player" object. - -![](/gdevelop5/tutorials/platformer/part-4-04.jpg) - -### Detecteren wanneer de speler niet beweegt - -Het heeft alleen zin om de animatie "Idle" te activeren wanneer de speler stil staat. Wanneer de spelen beweegt willen we namelijk de animatie "Running" activeren (Dit wordt uitgelegd in de volgende stap. - -Om te detecteren wanneer de speler niet beweegt: - -1. Voeg de **Is moving** conditie toe aan het "Player" object. -2. Zet de optie **Invert condition** in de _on_ positie. - -De optie **Invert condition** keert de manier waarop een conditie werkt om. Dit betekent dat de conditie **Is moving** de conditie **Is not moving** wordt. - -![](/gdevelop5/tutorials/platformer/part-4-05.jpg) - -### Activeer de "Idle" animatie - -Wanneer aan beide condities is voldaan activeert dan de "Idle" -animatie van het object: - -1. Voeg de **Change the animation (by name)** actie toe. -2. Voer in het veld **Animation name** de naam van de "Idle"-animatie in. Je moet deze naam tussen dubbele aanhalingstekens plaatsen (bijv. `"Idle"`). - -![](/gdevelop5/tutorials/platformer/part-4-06.jpg) - -Als je een voorbeeld van het spel bekijkt, wordt het object "Player" na het springen teruggezet naar de animatie "Idle". - -![](/gdevelop5/tutorials/platformer/part-4-jumping-with-idle-animation.gif) - -## Stap 3: Voeg de animatie running toe aan de speler - -### Voeg de "Running" animatie toe aan het "Player" object - -1. Voeg een animatie toe met de naam "Running" aan het "Player" object. -2. Kies de volgende bestanden In het venster om bestanden te selecteren: - - - p1_walk03.png - - p1_walk04.png - - p1_walk05.png - - p1_walk06.png - - p1_walk07.png -3. Vink de **Loop** optie aan.Wanneer de optie wordt aangezet wordt de animatie continu afgespeeld zolang deze actief is (in plaats van één keer te spelen en te stoppen). -4. Klik op **Apply**. - -![](/gdevelop5/tutorials/platformer/part-4-07.jpg) - -### Activeer de "Running" animatie - -1. Maak een nieuw event. -2. Voeg de **Is on floor** conditie toe aan het "Player" object. -3. Voeg de **Is moving** conditie toe aan het "Player" object. -4. Voeg de **Change the animation (by name)** actie toe aan het event. -5. Voer in het veld **Animation name** de naam van de "Running"-animatie in. Je moet deze naam tussen dubbele aanhalingstekens plaatsen (bijv. `"Running"`). -6. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/part-4-08.jpg) - -Als je een voorbeeld van het spel bekijkt, wordt de animatie "Running" afgespeeld terwijl de speler beweegt. - -![](/gdevelop5/tutorials/platformer/part-4-running-animation.gif) - -## De volgende stap - -Read [Platformer Tutorial, Part 5](/gdevelop5/tutorials/platformer/part-5). \ No newline at end of file diff --git a/docs/nl/gdevelop5/tutorials/platformer/part-5.md b/docs/nl/gdevelop5/tutorials/platformer/part-5.md deleted file mode 100644 index 3d5312c4be..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/part-5.md +++ /dev/null @@ -1,161 +0,0 @@ ---- -title: Platformer Tutorial, Deel 5 - Verzamelbare munten aan de game toevoegen ---- -# Platformer Tutorial, Deel 5: Verzamelbare munten aan de game toevoegen - -In dit deel van de tutorial wordt uitgelegd hoe je munten aan de game kunt toevoegen. - -Je leert het volgende: - -- Verwijder een object(en speel een geluid af) wanneer de speler er tegen botst -- Hou data bij met variabelen -- Voeg tekst toe aan de scène. - -## Reeks - -Je leest **Deel 5** van de [Platformer Tutorial](/gdevelop5/tutorials/platformer). - -1. [Platformer Tutorial, Deel 1](/nl/gdevelop5/tutorials/platformer) -2. [Platformer Tutorial, Deel 2](/nl/gdevelop5/tutorials/platformer/part-2) -3. [Platformer Tutorial, Deel 3](/nl/gdevelop5/tutorials/platformer/part-3) -4. [Platformer Tutorial, Deel 4](/nl/gdevelop5/tutorials/platformer/part-4) -5. Platformer Tutorial, Deel 5 -6. [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6) -7. [Platformer Tutorial, Deel 7](/gdevelop5/tutorials/platformer/part-7) -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - - -## Stap 1: Voeg een munten toe die je kan verzamelen - -De eerste stap is om een munt te maken die de speler kan verzamelen. Je kunt deze stap in twee delen splitsen: een object voor de munt maken en de munt vervolgens verzamelbaar maken door een event te gebruiken om te kijken wanneer de speler ermee in botst. - -### Maak een object voor de munt - -1. Maak een object met de naam "Coin". -2. Gebruik het bestand "coin.png". -3. Sleep een of meer instanties van het object in de scène. - -![](/gdevelop5/tutorials/platformer/05-01-coin-object.jpg) - -!!! note - - Om een kopie te maken van een munt die al in de scène staat kun je de 'CTR' toets(of `CMD` op macOS) indrukken. Klik daarna op de munt en sleep de kopie in de scène. - -### Maak de munt verzamelbaar - -1. Maak een nieuw event. -2. Voeg een **Collision** conditie toe aan het event die kijkt of het "Player" object botst met het "Coin" object. -3. Voeg een **Delete an object** actie toe aan het event en stel de actie in zodat het "Coin" object verwijderd wordt. -4. Voeg een **Play a sound** actie toe aan het event zodat een geluid wordt afgespeeld wanneer de speler een munt verzameld. (Je kan het bestand "coin.wav" gebruiken voor het geluid.) - -![](/gdevelop5/tutorials/platformer/05-02-coin-collectible.jpg) - -Als je een voorbeeld van de game bekijkt en je raakt een munt wordt deze nu verwijderd en wordt het geluid afgespeeld. - -![](/gdevelop5/tutorials/platformer/05-02-collect-coin-preview.gif) - -## Stap 2: Hou het aantal verzamelde munten bij - -Elke keer dat de speler een munt verzamelt, moet het spel bijhouden hoeveel munten de speler heeft verzameld. Om dit te doen, heeft het spel een [variable](/gdevelop5/all-features/variables) nodig. - -Een variabele is een plek waarin data kan worden bewaard. Als je ooit algebra hebt gedaan, dan ben je bekend met variabelen, omdat letters als "x" en "y" vaak als variabelen worden gebruikt. - -In GDevelop zijn er drie sooren variabelen: - -* Object variabelen -* Scène variabelen -* Globale variabelen - -Een uitleg van elk type variabele slaan we voor nu even over, maar meer uitleg kun je vinden in [Scope of variables](http://wiki.compilgames.net/doku.php/gdevelop5/all-features/variables#scope_of_variables). In dit geval zijn scène variabelen het meest handig. Dit zijn variabelen die bestaan binnen een scène. - -Om een scène variabele toe te voegen om het aantal verzamelde munten bij te houden: - -1. Voeg een **Value of a scene variable** actie toe aan het eerder toegevoegde event. -2. In het **Variable** veld, typ "Score". Dit is de naam van de variabele. -3. In het **Modification's sign** menu selecteer **+ (add)**. -4. In het **Value** veld, type "1" (zonder de dubbele quotes). -5. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/05-03-scene-variable.jpg) - -Dit houdt het aantal munten bij dat de speler heeft verzameld maar dit kun je nu nog niet op het scherm zien. - -## Stap 3: Laat het aantal verzamelde munten op het scherm zien - -Om het aantal verzamelde munten te laten zien heeft de game een object nodig dat de tekst laat zien en een event dat de waarde van deze tekst bijwerkt. - -### Maak een object dat de tekst toont op het scherm - -1. Maak een **Text** object met de naam "Score". -2. In het **Initial text to display** veld, type "Score: 0". Dit is de standaard waarde die de tekst heeft. -3. Klik op **Apply**. -4. Sleep een instantie van het object in de scène. - -![](/gdevelop5/tutorials/platformer/05-04-text-object.jpg) - -### Het "Score" object bijwerken met het aantal verzamelde munten - -Voordat je de weergegeven tekst kunt bijwerken met het aantal verzamelde munten, is het belangrijk om te snappen hoe [expressions](/gdevelop5/expressions) werken. - -In GDevelop lijken expressions op spreadsheetformules of functies in een programmeertaal. Je kunt een waarde doorgeven aan een expression en een waarde ontvangen. - -De expression `Variable` kan bijvoorbeeld de waarde van de "Score" variabele ophalen: - -``` -Variable(Score) -``` - -Omdat de variabele "Score" een getal bevat, geeft deze expression een getal terug. Je kan dat getal omzetten in een string met de uitdrukking `ToString`: - -``` -ToString(Variable(Score)) -``` - -Expressions zijn een van de meest geavanceerde -- en een van de krachtigste -- concepten in GDevelop, dus maak je geen zorgen als het even duurt om te begrijpen hoe dit werkt. De truc is om de tutorials te volgen en ze te gebruiken in je games zodat je er meer ervaring mee krijgt. - -Om het "Score" object bij te werken met het aantal verzamelde munten: - -1. Maak een nieuw event. -2. Voeg de **Modify the text** actie toe aan het "Score" object zonder een conditie aan toe te voegen. Wanneer je geen conditie opgeeft wordt de actie elk frame uitgevoerd. Hiermee zorg je ervoor dat altijd de juiste score op het scherm staat. -3. In het **Modification's sign** menu selecteer **= (set)**. -4. In het **Value** veld, typ `"Score: " + ToString(Variable(Score))`. Deze waarde gebruikt de `ToString` en `Variable` expressions om het aantal verzamelde munten in een string te veranderen. Het gebruikt ook de `+` operator om twee strings in een enkele string te veranderen. -5. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/05-05-modify-text-object.jpg) - -Wanneer je een voorbeeld van de game bekijkt wordt nu het aantal verzamelde munten op het scherm getoond. - -![](/gdevelop5/tutorials/platformer/05-06-score-preview.gif) - -!!! tip - - Je vind meer _expressions_ in de _expression editor_ door op het blauwe icoon naast het value veld te klikken: - - ![](/gdevelop5/tutorials/platform-game/expression-icon.png) - - Wanneer je op het blauwe icoon klikt kun je zoeken op de beschikbare expressions gesorteerd op categorie. - - ![](/gdevelop5/tutorials/platform-game/expression-editor.png) - - -### Verplaats de tekst naar een andere layer - -Er is een probleem met het "Score" object: het aantal verzamelde munten is alleen zichtbaar als de speler op de juiste plek staat. - -Om dit op te lossen gaan we het "Score" object verplaatsen naar een andere layer: - -1. Klik op het **Open the layers editor** icoon. -2. Klik op **Add a layer**. -3. Geef de layer de naam "UI". -4. Selecteer het "Score" object. -5. In het **Layer** meu selecteer "UI". - -![](/gdevelop5/tutorials/platformer/05-07-change-layer.gif) - -Als je een voorbeeld van de game bekijkt blijft de score nu op een vast plek staan. - -![](/gdevelop5/tutorials/platformer/05-08-score-ui-layer-preview.gif) - -## De volgende stap - -Lees [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6). \ No newline at end of file diff --git a/docs/nl/gdevelop5/tutorials/platformer/part-6.md b/docs/nl/gdevelop5/tutorials/platformer/part-6.md deleted file mode 100644 index 4f80ba8172..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/part-6.md +++ /dev/null @@ -1,172 +0,0 @@ ---- -title: Platformer Tutorial, Deel 6 - Vijanden toevoegen aan de game ---- -# Platformer Tutorial, Deel 6: Vijanden toevoegen aan de game - -In dit deel van de tutorial wordt uitgelegd hoe je vijanden aan het spel kunt toevoegen die langs een vaste route heen en weer bewegen. In het volgende deel van de tutorial wordt uitgelegd hoe de speler deze vijanden kan doden en er door gedood kan worden. - -## Reeks - -Je leest **Deel 6** van de [Platformer Tutorial](/gdevelop5/tutorials/platformer). - -1. [Platformer Tutorial, Deel 1](/nl/gdevelop5/tutorials/platformer) -2. [Platformer Tutorial, Deel 2](/nl/gdevelop5/tutorials/platformer/part-2) -3. [nl:[gdevelop5:tutorials:platformer:part-3|Platformer Tutorial, Deel 3]] -4. [Platformer Tutorial, Deel 4](/nl/gdevelop5/tutorials/platformer/part-4) -5. [Platformer Tutorial, Deel 5](/nl/gdevelop5/tutorials/platformer/part-5) -6. Platformer Tutorial, Deel 6 -7. [Platformer Tutorial, Deel 7](/gdevelop5/tutorials/platformer/part-7) -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - - -## Stap 1: Maak een object voor de vijand - -1. Maak een sprite object met de naam "Slime". -2. Voeg een animatie toe aan het object. Gebruik hiervoor de volgende bestanden: - - - slimeWalk1.png - - slimeWalk2.png -3. Vink de **Loop** optie aan. -4. Sleep een instantie van het object toe aan de scène. - -![](/gdevelop5/tutorials/platformer/06-01.jpg) - -Als je een voorbeeld van de game bekijkt zie je een geanimeerde vijand op het scherm. - -![](/gdevelop5/tutorials/platformer/06-02.gif) - -## Stap 2: Laat de vijand naar rechts bewegen - -In het vorige deel van de tutorial werd uitgelegd dat er drie type variabelen zijn: - -- Object -- Scene -- Global - -Een _object_ variabele is gekoppeld aan een specifiek object. Dit betekend dat de variabele een waarde bevat die alleen beschikbaar is voor het object waar die aan gekoppeld is. - -Om een variabele aan een object toe te voegen: - -1. Klik met de rechter muisknop op het "Slime" object. -2. Selecteer **Edit object variables**. -3. Voer een variabele toe met de naam "direction" en de waarde "right". Dit is de standaard waarde van de variabele. -4. Klik op **Apply**. - -Deze variabele "direction" houdt de huidige richting van de vijand bij. In een latere stap kunt je de richting van de vijand wijzigen door de waarde van de variabele te wijzigen. - -![](/gdevelop5/tutorials/platformer/06-03.jpg) - -Voeg een event toe om de vijand naar rechts te laten bewegen: - -1. Open de Events editor. -2. Maak een nieuw event. -3. Voeg de **Text of an object's variable** conditie toe aan het "Slime" object. -4. In het **Variable** veld, typ "direction". -5. In het **Sign of the test** veld, selecteer **= (equal to)**. -6. In het **Value to compare** veld, typ "right" (inclusief de dubbele quotes). -7. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/06-04.jpg) - -Voeg vervolgens een actie toe aan het event: - -1. Voeg de **Add a force (angle)** actie toe aan het event. -2. In het **Object** veld, selecteer "Slime". -3. In het **Angle** veld, typ "0". -4. In het **Speed** veld, typ "100". -5. Vink de optie **Instant** aan. -6. Klik op **OK**. - -![](/gdevelop5/tutorials/platformer/06-05.jpg) - -Dit is hoe het event eruit ziet: - -![](/gdevelop5/tutorials/platformer/06-06.jpg) - -Dit event zorgt er nu voor dat zolang de waarde van de "direction" variabele "right" is het "Slime" object naar rechts beweegt. Omdat het object nu nog niet van richting veranderd valt het uiteindelijk van het platform af. - -![](/gdevelop5/tutorials/platformer/06-07.gif) - -## Stap 3: Verander de richting van de vijand - -To make the enemy change direction, add two invisible objects to the scene -- one called "Left" and one called "Right" -- and place them on other side of the enemy. - -Then, when the enemy collides with one of the objects, you can flip them around and move them in the other direction. This creates the illusion of the enemy following a set route. - -This step focuses on creating the "Left" object. When the enemy collides with this object, they'll change direction from left to right. (The step that follows focuses on the "Right" object.) - -### Create the "Right" object - -1. Create a Sprite object named "Left". -2. As the default sprite, use the "left.png" asset. -3. Drag an instance of object into the scene (to the right of the enemy). - -![](/gdevelop5/tutorials/platformer/06-08.jpg) - -### Detect when the enemy collides with the "Left" object - -1. Create a new event. -2. Add a **Collision** condition that checks if the "Slime" object is colliding with the "Left" object. - -![](/gdevelop5/tutorials/platformer/06-09.jpg) - -### Change the value of the "direction" variable - -1. Add the **Modify the text of a variable of an object** action to the event. -2. In the **Variable** field, type "direction". -3. From the **Modification's sign** dropdown, select **= (set to)**. -4. In the **Value** field, type "left" (with quotation marks). - -![](/gdevelop5/tutorials/platformer/06-10.jpg) - -### Flip the "Slime" object - -1. Add the **Flip the object horizontally** action to the event. -2. Set the **Activate flipping** option as **Yes**. - -This ensures that the "Slime" object changes *and* faces a different direction, rather than just changing directions. - -### Change the enemy's direction - -1. Add the **Add a force (angle)** action to the event. -2. In the **Object** field, select "Slime". -3. In the **Angle** field, type "180". -4. In the **Speed** field, type "100". -5. Enable the **Instant** option. -6. Click **OK**. - -If you preview the game, the enemy changes direction when they collide with the "Left" object. - -![](/gdevelop5/tutorials/platformer/06-12.gif) - -### Hide the "Left" object - -1. Create a new event. -2. Add the **At the beginning of the scene** condition to the event. -3. Add the **Hide** action to the "Left" object. - -![](/gdevelop5/tutorials/platformer/06-11.jpg) - -If you preview the game, the enemy appears to change direction by their own "choice". - -![](/gdevelop5/tutorials/platformer/06-13.gif) - -## Step 4: Change the enemy's direction (again) - -After the enemy collides with the "Left" object, they start moving right and never stop moving right. To ensure they change direction again, create an object named "RIght". This object should be the same as the "Left" object, except for the following details: - -- Use the "right.png" asset. -- When the "Player" object collides with the "Slime" object, set the "direction" variable to "right". -- For the **Flip the object horizontally** action, set **Activate flipping** to **No**. - -Then drag an instance of the "Right" object into the scene, to the left of the enemy. - -![](/gdevelop5/tutorials/platformer/06-14.jpg) - -If you preview the game, the enemy moves back and forth between the invisible markers. - -![](/gdevelop5/tutorials/platformer/06-15.gif) - -## Next step - -Read [Platformer Tutorial, Part 7](/gdevelop5/tutorials/platformer/part-7). \ No newline at end of file diff --git a/docs/nl/gdevelop5/tutorials/platformer/part-7.md b/docs/nl/gdevelop5/tutorials/platformer/part-7.md deleted file mode 100644 index 04ce2819b2..0000000000 --- a/docs/nl/gdevelop5/tutorials/platformer/part-7.md +++ /dev/null @@ -1,74 +0,0 @@ ---- -title: Platformer Tutorial, Deel 7 - Laat vijanden de speler doden (en de speler de vijanden doden) ---- -# Platformer Tutorial, Deel 7: Laat vijanden de speler doden (en de speler de vijanden doden) - -In dit deel van de tutorial wordt uitgelegd hoe de speler de vijanden van het spel kan doden, en kan worden gedood door de vijanden. - -## Reeks - -Je leest **Deel 7** van de [Platformer Tutorial](/gdevelop5/tutorials/platformer). - -1. [Platformer Tutorial, Deel 1](/gdevelop5/tutorials/platformer) -2. [Platformer Tutorial, Deel 2](/gdevelop5/tutorials/platformer/part-2) -3. [Platformer Tutorial, Deel 3](/gdevelop5/tutorials/platformer/part-3) -4. [Platformer Tutorial, Deel 4](/gdevelop5/tutorials/platformer/part-4) -5. [Platformer Tutorial, Deel 5](/gdevelop5/tutorials/platformer/part-5) -6. [Platformer Tutorial, Deel 6](/gdevelop5/tutorials/platformer/part-6) -7. Platformer Tutorial, Deel 7 -8. [Platformer Tutorial, Deel 8](/gdevelop5/tutorials/platformer/part-8) - - -## Stap 1: Dood de speler - - -Wanneer de speler in botsing komt met een vijand, moet de speler dood gaan. Een gemakkelijke manier om de speler te "doden" is door het "Player"-object te verwijderen als het in botsing komt met een vijand. - -Om het "Player" object te verwijderen als het botst met een vijand: - -1. Maak een nieuw event. -2. Voeg een **Collision** conditie toe die kijkt of het "Player" object botst met het "Slime" object. -3. Voeg de **Is on floor** conditie toe aan het "Player" object. Dit zorgt ervoor dat de speler alleen dood gaat wanneer die op een platform staat (bijv. niet aan het springen is) -4. Voeg de **Delete an object** actie toe aan het event dat het"Player" object verwijderd. - -![](/gdevelop5/tutorials/platformer/07-01-kill-player.jpg) - -If you preview the game, running into the enemy will kill you. - -![](/gdevelop5/tutorials/platformer/07-02-killing-player-preview.gif) - -## Step 2: Kill the enemy - -If a player jumps on an enemy, the enemy should die. Similar to the previous step, "death" in this case means deleting the "Slime" object. - -To delete the "Slime" object when a player jumps on it: - -1. Create a new event. -2. Add a **Collision** condition that checks if the "Player" object is colliding with the "Slime" object. -3. Add the **Is falling** condition to the "Player" object. This ensures that the enemy only dies if the player is jumping (i.e. not on the platform). -4. Add the **Delete an object** action to the event that deletes the "Slime" object. - -![](/gdevelop5/tutorials/platformer/07-03-kill-enemy.jpg) - -If you preview the game, you can jump on the enemy to kill them. - -![](/gdevelop5/tutorials/platformer/07-04-killing-enemy-preview.gif) - -## (Optional) Step 3: Bounce on the enemy's head - -In a lot of platforming games, when the player jumps on an enemy, the player bounces on the enemy's head. This is makes killing an enemy feel more fluid. - -To make the player bounce on the enemy's head: - -1. Add the **Allow again jumping** action to the "Player" object. -2. Add the **Simulate jump key press** action to the "Player" object. - -![](/gdevelop5/tutorials/platformer/07-05-bounce-kill.jpg) - -If you preview the game, you'll bounce on the enemy's head when killing them. - -![](/gdevelop5/tutorials/platformer/07-06-killing-enemy-bounce-preview.gif) - -## Next step - -Read [Platformer Tutorial, Part 8](/gdevelop5/tutorials/platformer/part-8). \ No newline at end of file diff --git a/docs/pl.png b/docs/pl.png deleted file mode 100644 index d413d010b5..0000000000 Binary files a/docs/pl.png and /dev/null differ diff --git a/docs/pl/gdevelop5/index.md b/docs/pl/gdevelop5/index.md deleted file mode 100644 index 4606d9f19f..0000000000 --- a/docs/pl/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 - -GDevelop jest wieloplatformowym o otwartym kodzie źródłowym kreatorem gier, zaprojektowany do użytkou przez wszystkich - do korzystania z oprogramowania nie są wymagane umiejętności programistyczne. Jeśli nie masz GDevelop, [wypróbuj online](https://4ian.github.io/GD) lub [pobierz wersję desktop](http://compilgames.net)! - -Ta Wiki jest tutaj, aby uczyć Cię o programie i zaopatrywać w samouczki, jak z niego korzystać: zapraszam do udziału! - -# Getting Started - -Na początek GDevelop 5, przeczytaj [Getting Started page](/gdevelop5/getting_started). diff --git a/docs/pl/index.md b/docs/pl/index.md deleted file mode 100644 index 4c40c38dab..0000000000 --- a/docs/pl/index.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop Wiki - -GDevelop jest wieloplatformowym o otwartym kodzie źródłowym kreatorem gier, zaprojektowany do użytkou przez wszystkich - do korzystania z oprogramowania nie są wymagane umiejętności programistyczne. Jeśli nie masz GDevelop, [pobierz teraz](https://gdevelop.io/download)! - -Ta Wiki jest tutaj, aby uczyć Cię o programie i zaopatrywać w samouczki, jak z niego korzystać: zapraszam do udziału! - -## Tutoriale i Wideo - -Naucz się używać GDevelop z **[tutoriali](/gdevelop/tutorials)**. - -## Pełna Dokumentacja - -Przeczytaj **[GDevelop 4 documentation](/gdevelop/documentation)** dla pełnego odniesienia. -!!! note - - Jesli używasz **GDevelop 5**, nowa dokumentacja jest pisana tu: [GDevelop 5 Wiki](/gdevelop5/start) - -## Wiki w innych językach - -Kliknij flagę u góry dowolnej strony, aby przełączać się między językami. -Twoja pomoc jest mile widziana przy tworzeniu wiki dla tych języków: - -- ![](/pl.png)[⇒ Polska Wiki](/pl/start) -- ![](/gb.png)[⇒ Angielska Wiki](/start) -- ![](/fr.png)[⇒ Francuska Wiki](/fr/start) -- ![](/ru.png)[⇒ Rosyjska Wiki](/ru/start) -- ![](/de.png)[⇒ Niemiecka Wiki](/de/start) -- ![](/pt.png)[⇒ Portugalska Wiki](/pt/start) -- ![](/es.png)[⇒ Hiszpańska Wiki](/es/start) -- ![](/zh.gif)[⇒ Chińska Wiki](/zh/start) - Po prostu utwórz konto na wiki i użyj górnego menu do stworzenia lub edycji strony. Możesz również [pomóc w tłumaczeniu GDevelop i stronę internetową](http://crowdin.com/project/gdevelop). diff --git a/docs/pt.png b/docs/pt.png deleted file mode 100644 index ece7980150..0000000000 Binary files a/docs/pt.png and /dev/null differ diff --git a/docs/pt/gdevelop5/all-features/storage.md b/docs/pt/gdevelop5/all-features/storage.md deleted file mode 100644 index e5837f23a7..0000000000 --- a/docs/pt/gdevelop5/all-features/storage.md +++ /dev/null @@ -1,25 +0,0 @@ ---- -title: ---- -##Armazenamento - -Jogos podem guardar informações, como o progresso do jogador. Veja [este guia](/gdevelop5/tutorials/storage-action-explained) para explicações mais detalhadas e exemplos. - -!!! note - - A ação de Armazenamento irá armazenar todos os dados dentro do **internal storage (Armazenamento Interno)** (gravado após o jogo ser fechado). Se você quiser escrever ou ler a partir de arquivos, leia [a pagina sobre Sistema de Arquivos](/gdevelop5/all-features/filesystem) (somente para Windows, macOS, Linux). - -## Limpe o armazenamento durante o preview - -A informação e armazenada permanentemente no armazenamento interno da janela de preview, que é persistido entre os previwes e mesmo depois do GDevelop ser fechado(com em um jogo exportado). - -Quando fazemos o preview do nosso jogo pode ser algo útil conseguir fazer o reset dos dados, como se fosse a primeira vez que o jogo é rodado. Para fazer isso, você pode limpar o Armazenamento: - - - Na barra superior da janela de preview selecione **Visualizar** -> **Exibir ferramentas de desenvolvedor**. - - As ferramentos de desenvolvedor geralmente abrem a aba 'Console' selecionada mostrando algumas mensagens. - - Clique na aba '**Aplicação**'. Esta pode não estar visível dependendo do tamanho da sua janela de preview. Você pode redimensionar a janela de preview até que consiga ver a aba 'Aplicação' no topo. - - Após você ter selecionado a aba 'Aplicação', você pode achar os dados armazenados do lado esquerdo em **Storage** -> **Local Storage** -> **file:** - - Se você clicar no 'file:' com o botão esquerdo do mouse, você pode ver mais detalhes sobre os dados armazenados. - - Para limpar os dados, clique em 'file:' com o botão direito do mouse e escolha '**Clear**' - -Você pode agora fechar a janela de preview. Quando rodar o preview novamente, os dados armazenados terão sido eliminados. diff --git a/docs/pt/gdevelop5/behaviors/events-based-behaviors.md b/docs/pt/gdevelop5/behaviors/events-based-behaviors.md deleted file mode 100644 index d9c75199ea..0000000000 --- a/docs/pt/gdevelop5/behaviors/events-based-behaviors.md +++ /dev/null @@ -1,156 +0,0 @@ ---- -title: events-based-behaviors ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Comportamentos personalizados: crie seus próprios comportamentos com eventos. - -Os comportamentos são muito úteis para adicionar rapidamente alguns recursos pré-determinados aos objetos. Eles são fáceis de usar e permitem adicionar recursos complexos aos seus objetos sem ter que recriar tudo com eventos, o que pode ser complicado e tornaria a planilha de eventos desordenada (mesmo que [groups](/gdevelop5/events/group), [functions](/gdevelop5/events/functions) e [external events](/gdevelop5/interface/project-manager) possam ajudar). - -Agora no GDevelop você pode criar seus próprios **comportamentos personalizados**. Como os habituais comportamentos internos, eles podem ser anexados a objetos. Eles irão então * interagir com o objeto automaticamente *. Eles podem **mover o objeto**, alterar suas **variáveis**, alterar as animações (para objetos Sprite), alterar o texto (para objetos de texto) e mais geralmente, fazer qualquer coisa que você normalmente pode fazer com eventos. - -!!! note - - Se você quiser ver um exemplo de como os comportamentos podem ser usados em seu jogo, leia [How to make a behavior for an object](/gdevelop5/tutorials/how-to-make-behavior). É uma explicação passo a passo e um bom guia sobre como arquitetar seu jogo com comportamentos. - -## Crie um novo comportamento - -Os comportamentos são agrupados em "extensões". Eles funcionam de forma semelhante a [extensions que você pode escrever](/gdevelop5/extending-gdevelop) para o GDevelop, exceto que eles são inteiramente compostos de funções ou comportamentos impulsionados por eventos. Você pode ver a lista de todas as extensões que o jogo tem no [Project Manager](/gdevelop5/interface/project-manager), bem como adicionar uma nova extensão: - -![](/gdevelop5/events/project-manager-functions-extensions.png) - -Clique no botão **+ **na parte inferior para criar uma nova extensão. Você pode clicar com o botão direito do mouse para renomeá-la. É uma boa ideia ter funções e comportamentos relacionados à mesma coisa em uma única extensão. - -Clique na extensão da lista para abrir seu editor. Por padrão, não há funções nas extensões. Adicione uma clicando em **Add a new behavior**, no lado esquerdo: - -![](/gdevelop5/behaviors/add-events-based-behavior.png) - -O novo comportamento é adicionado. Você deve renomeá-lo para dar um nome de acordo com o que você quer fazer. Por exemplo, se seu comportamento será usado para fazer um inimigo se mover para a esquerda e para a direita em uma plataforma, você pode chamá-lo de `HorizontalMovement` (apenas caracteres alfanuméricos e sublinhados são permitidos nos nomes). Se o seu comportamento está rastreando automaticamente os danos e excluindo objetos que estão muito danificados, você pode chamá-lo de `Destructible`. - -Você também deve editar a configuração do comportamento clicando com o botão direito sobre ele e escolhendo "Propriedades". Você pode inserir a descrição, o nome exibido no editor e especificar se deve ser restrito a algum tipo de objeto: - -![](/gdevelop5/behaviors/setup-destructible-behavior.png) - -Os comportamentos também podem incorporar propriedades, que são números, strings ou booleanos que são armazenados dentro do comportamento. Confira a seção abaixo sobre como adicionar e usar propriedades. - -### Add functions to your behavior - -Click on the behavior in the list to see the list of functions composing the behavior. It will appear on the right side panel. - -![](/gdevelop5/behaviors/empty-behavior-functions-list.png) - -By default, a behavior is empty and **does nothing**. To add interactivity, you can add a new function (also called "method"). You'll be given the choice between some predefined functions, called lifecycle methods, or a custom function. Lifecycle methods will be called by the game engine automatically at some key moment during the game. Custom functions will be available as conditions or actions (like [usual functions](/gdevelop5/events/functions)). - -![](/gdevelop5/behaviors/behavior-choose-method.png) - -### Lifecycle methods - -Predefined lifecycle methods are as such: - -* **onCreated**: events inside the function will be run when **a new instance of an object** with the behavior is created. * **onStepPreEvents**: will be run every time a frame is rendering on the screen **before the "traditional" events** of the scene. Typically in most games, this is done 60 times per second. This is called for **every single object** having the behavior if the behavior is not deactivated. * **onDestroy**: events that will be run when an instance of the object having the behavior is **deleted** (if multiple objects are removed at the same time, events will be run for each object). This is done even if the behavior is deactivated. * **onDeActivate**: events that will be run once, after the behavior is deactivated on an object. * **onActivate**: events that will be run once, after the behavior is activated again on an object. * **onStepPostEvents**: events that will be run for every single object having the behavior, **after** the "traditional" events of the scene, if the behavior is not deactivated. Typically in most games, this is done 60 times per second. As possible, we recommend to prefer onStepPreEvents, to run your logic before events and give the events in the scene a chance to react to changes that happen on the objects. - -This is an example of some events inside onStepPreEvents in the case of behavior that automatically deletes objects that are too damaged: - -![](/gdevelop5/behaviors/behavior-lifecycle-method-example.png) - -### Custom action, condition or expression - -If you choose to create a custom function for your behavior, you can then configure your function like a traditional function, by choosing if it's an action, condition or expression, entering a name, description and a sentence to be displayed in the events sheet. - -For example, this creates a new action that can be used to add damage to the object: - -![](/gdevelop5/behaviors/behavior-custom-function-example.png) - -## Use the behavior on an object - -### 1) Add the behavior to an object - -Once your behavior is created, you can start attaching it to objects. The best part about this is that your event based behavior will be listed like any other "[built-in behavior](/gdevelop5/behaviors)" that is bundled with GDevelop. - -Here, you can see the "Destructible Object" behavior for example (that was created in the previous screenshots): - -![](/gdevelop5/behaviors/choose-custom-behavior-in-list.png) - -The custom behavior that you created is then displayed in the list of the behaviors attached to the object: - -![](/gdevelop5/behaviors/screenshot_2019-05-07_23.48.04.png) - -You can run the game and see that the events in "doStepPreEvents" function (or "doStepPostEvents") will be executed. In the example of the Destructible behavior that was created, if the "Damage" variable is set to a number greater or equal to 100, the object will be destroyed automatically. - -To test this, we've added the "Destructible" behavior to object "Platform". Then, when using the debugger, we can inspect "Platform" instances and see that they have a "Damage" variable (set to 0). If we use the debugger (or an event) to set it to 100, the object is removed from the scene: - -![](/gdevelop5/behaviors/example-test-destructible-behavior-debugger.png) - -### 2) Use actions/conditions/expressions - -Like any other "built-in behavior", you can also use actions/conditions (or expressions) if you have declared functions as such in the behavior. For example, in the "Destructible" behavior, we created an action to cause some damage to the object. We can find it and use it in the events sheet: - -![](/gdevelop5/behaviors/custom-behavior-action.png) - -It is displayed in the events sheet: ![](/gdevelop5/behaviors/custom-behavior-action-events-sheet.png) - -As you can see, this allows creating very expressive and easy-to-read events. You can then make the behavior more complex or reuse it on other objects. - -## Add and use properties in a behavior - -What is interesting with behaviors is that they can hold information inside of them, much like variables of an object. These information are called properties. They can be a number, a string (text) or a boolean (which is like a virtual checkbox, either checked or unchecked). - -You can use these properties to make your behavior customizable (for example, you can have the speed, an amount of damage, the life points, the power points, the mana, etc... as properties of your behavior - depending on what your behavior is doing). - -To show and add properties to your behavior, edit it and click on the "Properties" tab. In this example, you can see a behavior called "Health", that has properties to store the health of the object and the minimum time between two hits on the object: - -![](/gdevelop5/behaviors/health-behavior-properties.png) - -Properties can be: - -* Number, string or booleans (will be displayed as a checkbox) -* They have a default value, that will be used if the value is not changed when adding the behavior to an object. -* They can be visible in the editor, when added to an object, or invisible. -* Finally, they have a label that will be displayed in the editor. - -### Use actions and conditions to manipulate the properties - -Once you have created some properties on your behavior, conditions and actions will be automatically added in the events sheet. For each property, there will be a condition to compare its value, and an action for changing it. Strings and numbers will also have an expression to get their values. - -!!! note - - If you rename your properties, the actions/conditions/expressions will be updated automatically. - -!!! note - - These actions/conditions/expressions won't be usable from outside of the behavior. Properties are said to be "private", they can only be manipulated by the behavior. If you want to have them modified by the scene events, create new actions/conditions for this in your behavior. - -## A word about the advantages of behaviors - -Creating your own behaviors has multiple advantages: - -* *Encapsulation*: by adding logic inside a custom behavior, you can keep a clear events sheet, with fewer events so it's easier to read and maintain. Behaviors can have actions/conditions and expressions that run logic, so you don't have to repeat long instructions in the events sheet. You can just use the action/condition the behavior providing as you would normally do with any other behavior. * *Reusability*: let's say that you created a behavior to have an enemy move and lose a life if hit by the player. If you want to create a slightly different enemy, but based on the same principles, you can create a new object, then add the same behavior with different properties. In a few clicks, you can have a new enemy in your game. * *Collaboration*: let's say you are working in a team or would like to make your project open-source and invite people to contribute with new features and gameplay. Custom behavior makes it possible for anyone to design and create self-contained features and game logic that we can easily import into a project and used by anyone without prior knowledge required including level and game designers who don't normally work on game logic or at least prefer not to. - -!!! note - - Encapsulation and reusability are core concepts in programming. In other game engines, like Unity, objects and behaviors might be named entities and components. - -In the future, updates will also ease the *composability* of behaviors. - -## Examples/ideas for custom behaviors - -You can imagine tons of different behaviors. Here are a few examples: - -* A behavior to **manage the health of an enemy or a boss**. - -- There can be an action "Hit the object", a condition "Is the object dead?". The behavior will take care of updating the object variables to track the life of the enemy (for example, when the enemy is hit, you remove some life. -- Then, life is regenerated progressively at each frame of the game) and the condition "Is the object dead?" will be able to check if the life reached 0 or not. - -* Another idea can be to put the events to make **an enemy move following a complex pattern** on the screen inside a behavior. - -- You can add actions/conditions to change the movement, change the speed, etc... All of this will be in a behavior that can be added to any other object in a few clicks. - -* A behavior can **automatically update the Score** in your game when enemies are destroyed, or items collected. - -- You can create a behavior that increases the "Score" variable when the object is destroyed. You can then create items, collectibles or enemies that have this behavior, and when they are collected or killed, the score will automatically increase. - -!!! note - - New extensions are being created by the community all the time! If you are interested in helping with this, start by looking at the [GDevelop Extension Team](https://trello.com/b/AftjL2v1/gdevelop-extensions) (on Trello). You can also start discussing your ideas for extensions on the [GDevelop Discord](https://discordapp.com/invite/JWcfHEB) channel named \#extension. diff --git a/docs/pt/gdevelop5/behaviors/index.md b/docs/pt/gdevelop5/behaviors/index.md deleted file mode 100644 index dcce7a8340..0000000000 --- a/docs/pt/gdevelop5/behaviors/index.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Comportamentos (behaviors) ---- -# Comportamentos (behaviors) - -No GDevelop, _comportamentos_ adicionam funcionalidades a [objetos](/pt/gdevelop5/objects) em poucos cliques. - -Por exemplo, comportamentos podem: - -* Remover objetos de uma cena automaticamente quando eles sairem das bordas da tela. -* Fazer objetos se moverem de forma realista seguindo as leis da física. -* Permite jogadores moverem objetos com as teclas de setas. - -Você também pode customizar comportamentos para fazer a sensação de jogabilidade ser única e usar [eventos](/gdevelop5/events) para manipular comportamentos. - -
- -
- -## Lista de comportamentos - -Esta seção lista os diferentes tipos de comportamentos, onde cada um é útil para adicionar diferentes tipos de funcionalidades a objetos. - -- [Anchor](/gdevelop5/behaviors/anchor) -- [Bounce](/gdevelop5/behaviors/bounce) -- [Destroy outside screen](/gdevelop5/behaviors/destroyoutside) -- [Draggable](/gdevelop5/behaviors/draggable) -- [Pathfinding](/gdevelop5/behaviors/pathfinding) -- [Physics 2](/gdevelop5/behaviors/physics2) -- [Platformer objects and platforms](/gdevelop5/behaviors/platformer) -- [Top-down movement](/gdevelop5/behaviors/topdown) -- [Tween](/gdevelop5/behaviors/tween) - -Siga as páginas vinculadas para aprender mais sobre cada tipo de comportamento. - -### Comportamentos descontinuados - -- [Old Physics](/gdevelop5/behaviors/physics) - -## Adicionando comportamentos a um objeto - -1. Clique com o botão direito em um objeto no painel **Objects**. -2. Selecione **Edit behaviors**.. -3. Clique no botão **Add a behavior to the object**. -4. Selecione o comportamento da lista. -5. Personalize o comportamento. As configurações disponíveis dependem do comportamento. -6. Clique em **Apply**. - -![](/gdevelop5/behaviors-demo-create.gif) - -## Instalando novos comportamentos - -Qualquer pessoa pode [criar comportamentos personalizados](/gdevelop5/behaviors/events-based-behaviors) e compartilhá-los com a comunidade GDevelop. - -![](/gdevelop5/search-new-behavior.png) - -Para buscar e instalar comportamentos criados pela comunidade: - -1. Clique direito em um objeto no painel **Objects**. -2. Selecione **Edit behaviors**. -4. Clique o ícone **Add a behavior to the object**. -5. Acesse a aba **Search new behaviors**. -6. Procure pelo comportamento -7. Selecione o comportamento -8. Clique em **Install in project**. - -Comportamentos instalados irão aparecer na aba **Installed behaviors**. - -![](/gdevelop5/behaviors-demo-find-new.gif) \ No newline at end of file diff --git a/docs/pt/gdevelop5/documentation.md b/docs/pt/gdevelop5/documentation.md deleted file mode 100644 index 18c4eee66f..0000000000 --- a/docs/pt/gdevelop5/documentation.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: documentation ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 - -O GDevelop é um criador de jogos de código aberto e multiplataforma, projetado para ser usado por todos - não são necessárias habilidades de programação para usar o programa Se você nunca usou o GDevelop, [experimente online](https://editor.gdevelop.io) ou [baixar a versão desktop](http://gdevelop-app.com/baixar)! - -Este **Wiki **está aqui para lhe ensinar sobre o software e fornecer tutoriais sobre como usá-lo: você pode contribuir! - -# Começando - -➡️Para começar com o GDevelop 5, leia a**[Página de introdução](/gdevelop5/getting_started), os **[conceitos básicos de criação de jogos](/gdevelop5/tutorials/basic-game-making-concepts)** e navegue nos [tutoriais](/gdevelop5/tutorials). diff --git a/docs/pt/gdevelop5/getting_started.md b/docs/pt/gdevelop5/getting_started.md deleted file mode 100644 index f65fce5af6..0000000000 --- a/docs/pt/gdevelop5/getting_started.md +++ /dev/null @@ -1,70 +0,0 @@ ---- -title: Começando ---- -# Começando - -## Experimente o GDevelop online ou faça o download da versão desktop - -* Para começar, você pode [experimentar o GDevelop online](https://editor.gdevelop.io). -* Para criar seu próprio jogo, salvar e publicar [faça o download da versão para desktop no site do GDevelop](https://gdevelop.io). - -Após você baixar o GDevelop, abra o instalador e instale o software: - -* Nas máquinas com Windows, após *iniciar o instalador*, clique no *ícone do GDevelop* na área de trabalho para iniciá-lo. Você também pode *descompactar* o arquivo do instalador (como um arquivo .zip) e colocar o software em qualquer pasta. -* No MacOS, inicie o arquivo *DMG*, arraste o GDevelop para a pasta *Aplicativo* e abra o GDevelop na pasta Aplicativos. -* No Linux, *descompacte* o arquivo e inicie o executável. - -Depois que o aplicativo for iniciado, você será apresentado à página inicial. A página inicial permite abrir um projeto existente ou criar um novo projeto. - -![](/gdevelop5/start_page.png) - -## Criando um novo projeto - -Para criar um novo projeto, selecione "Criar um novo projeto" na página inicial. - -Uma nova janela se abrirá. Apresentará-se uma lista de opções, permitindo escolher modelos/exemplos ou criar um projeto em branco. Os exemplos estão mostrando como usar um recurso específico, enquanto os iniciantes são jogos mais avançados que você pode tentar, estudar e modificar. - -A seleção do projeto em branco não inclui ativos, eventos ou cenas - é um jogo totalmente vazio. - -![](/gdevelop5/create-new-project-window.png) - -Na parte inferior da janela, você pode selecionar o local onde gostaria de armazenar seu novo projeto. -![](/gdevelop5/project-default-location.png) - -Depois de selecionar o local padrão para o seu projeto, clique no nome de um modelo inicial ou em um exemplo para abrir o jogo. - -!!! note - - Por padrão, os novos jogos que você cria são salvos em uma pasta chamada "GDevelop Projects", localizada na pasta "Documentos". - -## Abrir um projeto existente - -Para reabrir um projeto existente, selecione "Abrir um projeto" na página inicial. - -Em seguida, procure seu sistema de arquivos local para selecionar o arquivo do projeto. Os arquivos de projeto do GDevelop 5 são salvos por padrão como arquivos ".json". - -![](/gdevelop5/project-file.png) - -O ícone desse arquivo depende se você possui ou não um aplicativo padrão instalado no seu computador para editar arquivos ".json". - - -*Nota:* Usuários do GDevelop 4, você pode [aprender aqui como salvar seu projeto para abri-lo com o GDevelop 5.](/gdevelop5/getting_started/open-gdevelop-4-project). - -## Próxima etapa: comece com os tutoriais - -Continue lendo **[os conceitos básicos para saber como usar o Gdevelop](/pt/gdevelop5/tutorials/basic-game-making-concepts)**. - -Os tutoriais, juntamente com a documentação, são as melhores maneiras de aprender. É altamente recomendável que você leia e siga o [tutorial](/gdevelop5/tutorials)! - -## Saiba mais sobre o GDevelop - -Para mais informações sobre como usar o GDevelop, visite as seguintes páginas, onde tudo é explicado em mais detalhes: - - * [interface](/gdevelop5/interface) - * [objects](/gdevelop5/objects) - * [behaviors](/gdevelop5/behaviors) - * [events](/gdevelop5/events) - * [all features](/gdevelop5/all-features) - * [publishing](/gdevelop5/publishing) - -Certifique-se de verificar também **os exemplos** incluídos no GDevelop! Eles são uma boa maneira de aprender sobre os diferentes recursos do software. \ No newline at end of file diff --git a/docs/pt/gdevelop5/index.md b/docs/pt/gdevelop5/index.md deleted file mode 100644 index d53c14d805..0000000000 --- a/docs/pt/gdevelop5/index.md +++ /dev/null @@ -1,15 +0,0 @@ ---- -title: GDevelop 5 ---- -# GDevelop 5 - -GDevelop é uma ferramenta de criação de jogos multi-plataforma gratuita e de código aberto que qualquer pessoa pode usar _sem_ conhecimentos de programação. Esta wiki contêm tudo que você precisa saber para criar jogos com GDevelop — mesmo se você nunca criou um jogo antes. - -![](https://wiki.gdevelop.io/_media/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - - -# Próximos passos - - * [Baixe GDevelop](https://gdevelop.io/) e leia o guia [Começando](/pt/gdevelop5/getting_started) - * Se você nunca fez um jogo antes, leia o guia [Conceitos básicos de criação de jogos](/pt/gdevelop5/tutorials/basic-game-making-concepts) - * Se você está pronte para fazer um jogo, [navegue pelos tutoriais](/pt/gdevelop5/tutorials) \ No newline at end of file diff --git a/docs/pt/gdevelop5/publishing/publishing-to-itch-io.md b/docs/pt/gdevelop5/publishing/publishing-to-itch-io.md deleted file mode 100644 index 062a63c395..0000000000 --- a/docs/pt/gdevelop5/publishing/publishing-to-itch-io.md +++ /dev/null @@ -1,59 +0,0 @@ ---- -title: publishing-to-itch-io ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -##Publish your game to itch.io - -Before we start, I would like to take the time to explain the reason why I recommend [Itch.io](https://itch.io) - -Itch.io is the most "hobbyist friendly" among all online stores in all possible ways: - -- it is completely free -- easy to prepare the content for upload and to be published on itch.io -- easy to update the uploaded files -- you can share a dev vlog -- you can set up a community forum or allow comments only or none -- no quality requirements, anything can be shared -- SEO friendly, anything you upload can be easily found on Google within days. -- you can share downloadable games for Windows, Linux, Mac, Android and also HTML5 games played in the browser -- you can make money without starting your own business and pay taxes, itch.io can collect the money, deal with refund requests and pay the required taxes on your behalf and you can request a payout any time. -- in case you do want to start your own business, itch.io can take care of the transaction for you and transfer each purchase directly to you, but then you need to take care of refunds and taxes -- you can set a fixed price for your content or share it freely and accept donation only or the most unique one, you can set only that you require payment but you can let the people decide how much they want to pay. -- revenue share is also flexible which makes itch.io the most unique, you can decide how much revenue share you want to pay to itch.io and yes you can set this value to 0 if you want and pay nothing yet itch.io still happy to host your content for free and hope if you are successful you are going to consider to pay something to them. -- no annoying ads on browser games - -First let prepare our game for upload, in case of itch.io it is really simple, the only thing you need to do is get the folder containing your game and archive it into a ZIP file. Make sure the index.html file is in the root folder and not in a sub-folder inside. The folder we used to export our game into from GDevelop should be fine. - -To archive your game folder, you are going to need an archiving tool. The one I'm using is called [7-Zip](http://www.7-zip.org) I have been using 7-Zip for ages, to be honest I can't even remember using anything else so this is what I recommend. After downloading and installing it, just right click on the folder containing your game and we should have 7-Zip in your list with the option to add to the archive. ![](/gdevelop5/7zip-add-to-archive.png) - -After selecting the add to archive option, there are many different options we can tweak, but the only one we are interested in right now is the OK button on the bottom. This will create our ZIP archive, ready to upload to itch.io - -If you don't have the quick option in your list, you can launch 7-Zip manually, browse the folder you want to archive, select it and then click the Add button on the top ![](/gdevelop5/7zip-add-button.png) It will bring up the same window as the quick option where you need to press OK. - -Next, you need to create an account at itch.io that I won't explain in detail as the steps should be no different from other places you have registered before. Once you have an itch.io account, you want to login and you want to go to your Dashboard. Here you should find a Create new project button ![](/gdevelop5/itchio-create-new-project-button.png) - -After clicking the button, you can setup your project, I go through only the most important options required to share your game. - -- **Title:** this is the title of your game -- **Project URL:** this is the URL where your game can be found at itch.io, it normally takes the form of yourname.itch.io/your-game-title. The game title in the URL can be anything, it is up to you what you going to choose but it must be unique, can not be the same as other game titles in your library. -- **Classification:** here you can choose what kind of content you want to upload, a game or a book maybe. we obviously want to select game here -- **Kind of project:** here you can select what kind of project you want to upload, is it downloadable or a HTML or Flash game, in this case we want to choose the HTML. Later you can add downloadable files that can be purchased or downloaded for free -- **Pricing**: this is where you can set if your game needs to be purchased or you accept a donation or you don't want any payment. If you do want payment, you can set how much your game cost or how much donation you recommend -- **Uploads:** this is the section where you can actually upload your project and you want to click on the Upload files button - -![](/gdevelop5/itchio-upload-files-button.png) Once you clicked the button, you want to browse and select the ZIP file we have created earlier and it is going to be uploaded to itch.io. Once the upload is done, you can choose from several options ![](/gdevelop5/ithio-upload-file-options.png) - -You can choose if the file you have just uploaded is an executable, a book, source code or a mod. You can also set a platform, the price for each file you upload if you want, but the most important option for us "This file will be played in the browser". ![](/gdevelop5/itchio-play-in-browser-option.png) By ticking the box we mark our file to be played in the browser. - -Finally, you want to click on the save and view page button ![](/gdevelop5/itchio-save-view-page-button.png) - -After it should load a preview of the page of our game and if we did it right, our browser game should start playing. Now the only thing left to do, we need to set our project to be public so anyone can play it. In order to do that, click on the Edit game button on the top or go back to the Dashboard where our game should be listed now and click Edit in the list. - -It will take us back to the project creation page with the option available on the bottom to set our project to be public ![](/gdevelop5/itchio-set-public.png) - -Select the public option and click the Save button. - -Now anyone should be able to find and play your browser game on itch.io. We can also share a link to the game and even embed the game in to your website if you have one. diff --git a/docs/pt/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/pt/gdevelop5/tutorials/basic-game-making-concepts.md deleted file mode 100644 index e6e1d66059..0000000000 --- a/docs/pt/gdevelop5/tutorials/basic-game-making-concepts.md +++ /dev/null @@ -1,151 +0,0 @@ ---- -title: Conceitos básicos de criação de jogos - O que você precisa saber para começar com o GDevelop ---- -# Conceitos básicos de criação de jogos: O que você precisa saber para começar com o GDevelop - -Os conceitos básicos do GDevelop são simples. Leia as seguintes informações para começar a usar o software. Se você não possui o GDevelop, [baixe a última versão aqui](https://gdevelop.io/download)! - -## Mostrando coisas na tela: os objetos - -Tudo o que é *exibido na tela* é chamado de **"Objeto"**. Diferentes tipos de objetos podem ser usados para exibir diferentes elementos do jogo na tela. Por exemplo, a maioria dos gráficos do jogo são objetos "Sprite", os textos podem ser exibidos com objetos "Texto" e efeitos especiais, como fogo ou faíscas, podem ser criados com "Particle Emitters" (_Emissores de Partículas_). - -## Posicionando objetos no mundo: coordenadas - -Objetos na tela/cena do GDevelop têm coordenadas X e Y. Essas coordenadas correspondem à posição horizontal (eixo X) e à posição vertical (eixo Y) no _plano cartesiano_. - -A coordenada X _diminui_ à medida que você vai para a esquerda e _aumenta_ à medida que você vai para a direita. A coordenada Y _aumenta_ à medida que você desce e _diminui_ à medida que você sobe. - -![](/wiki/pres_coord1.png) - -Para mover ou girar objetos, você precisará especificar o ângulo desejado em graus. A ilustração abaixo demonstra como o GDevelop entende o ângulo de rotação: - -![](/wiki/pres_coord2.png) - -Se você usar funções trigonométricas como **seno** ou **cosseno**, precisará expressar os ângulos em **radianos**. (1 radiano = 180/PI graus e 1 grau = PI/180 radianos. PI é o número aproximadamente igual a 3,14159). - -## Eventos e como os objetos são selecionados para estes Eventos - -Os eventos que você usa para criar as regras do seu jogo são compostos de condições e ações. A maioria das condições e ações se refere a objetos: - -* As condições executam um **teste** nos objetos. -* Ações **manipulam** o objeto. Eles podem mudar a posição do objeto, aparência, etc ... - -Uma ação, sem uma condição, refere-se a todos os objetos. Se você usar um objeto pela primeira vez em um evento, o GDevelop testará ou modificará **todos os objetos** com esse nome na cena. - -Se você usar o objeto no mesmo evento novamente, o GDevelop testará ou modificará apenas os objetos que foram escolhidos pelas condições anteriores. - -Por exemplo, este evento não tem condição. Ele excluirá todos os objetos chamados "Square": - -![](/gdevelop5/tutorials/delete-square.png) - -O evento abaixo tem uma condição. Ele excluirá apenas os objetos "Square" com uma posição X menor que 100 pixels: - -![](/gdevelop5/tutorials/delete-square-condition.png) - -!!! tip - - **Veja em ação!** 🎮 Abra este exemplo online: https://editor.gdevelop.io/?project=example://object-selection - -[![](/gdevelop5/tutorials/objectselection-pickobject.png)](https://editor.gdevelop.io/?project=example://object-selection) - -## Eventos: a ordem é importante - -A ordem dos eventos **importa**! - -Eventos no topo são executados primeiro. Os eventos são executados toda vez que seu jogo é exibido. Essa tela é chamada de quadro. Ele executa cerca de 60 vezes por segundo. Os exemplos a seguir **não** são equivalentes: - -![](/gdevelop5/tutorials/create-then-delete-square.png) - -![](/gdevelop5/tutorials/delete-then-create-square.png) - -* As ações do primeiro par de eventos criam um objeto "Square" nas coordenadas X: 100. Y: 200 (100; 200). Em seguida, o evento exclui o square criado imediatamente. "**No** Square" é exibido na tela. É excluído logo após ser criado. -* O segundo par de ações de eventos exclui todos os objetos "Square" da cena/tela. Em seguida, cria um "Square" nas coordenadas da cena / tela X: 100, Y: 200 (100; 200). Este evento mostra que um quadrado é **visível** na cena (antes de ser excluído no próximo quadro. Ele será recriado imediatamente). - -##Comportamentos: regras predefinidas e lógica para objetos - -**Comportamentos** permitem aprimorar um objeto com alguma *lógica predefinida*. Os comportamentos podem ser bastante simples, automatizando tarefas simples ou muito mais avançadas. Por exemplo: - -* Um comportamento pode ser usado para remover automaticamente um objeto do jogo quando ele sai da tela (limitando o uso de memória do jogo). - -* O comportamento da física é um exemplo de comportamento avançado que faz com que seus objetos se movam de maneira realista, seguindo as leis da física. - -Objetos e comportamentos podem ser manipulados usando eventos. Você pode ler as páginas sobre [Objetos](/pt/gdevelop5/objects) e [Comportamentos](/pt/gdevelop5/behaviors) para saber mais sobre eles. - -## Movendo objetos: usando as forças internas - -Objetos em movimento podem ser alcançados com ** forças**. Forças são usadas para "empurrar" objetos. - -Você pode especificar: - - * as coordenadas de uma força no eixo X e Y, em pixels, - * ou suas coordenadas polares (o ângulo da força, em graus e comprimento, em pixels), - * se a força for instantânea (apenas empurrará "um pouco" o objeto) ou contínua (continuará empurrando o objeto até que seja removido). - -### Exemplo - -Digamos que você queira mover um objeto para baixo: - -![](/wiki/pres_vector.png) - -Você pode adicionar uma força usando as coordenadas X / Y especificando 0 para a coordenada X e, digamos, 150 pixels para a coordenada Y. Você também pode usar coordenadas polares e adicionar uma força com um ângulo de 90° e um comprimento de 150 pixels. - -### Outras maneiras de mover objetos - -Alguns "comportamentos", como o mecanismo de física ou o _Pathfinding_ (Pesquisa de rota), podem mover os objetos sozinhos. Nesse caso, é melhor não usar o sistema de forças internas e, em vez disso, confiar apenas nas ações fornecidas por esses comportamentos. - -!!! tip - - **Veja em ação!** 🎮Abra o exemplo online: https://editor.gdevelop.io/?project=example://move-object-with-physics - -[![](/gdevelop5/tutorials/moveobjectwithphysics.png)](https://editor.gdevelop.io/?project=example://move-object-with-physics) - -## Armazenando qualquer informação na memória: Variáveis - -Uma variável permite armazenar **dados**. Por exemplo, uma variável pode armazenar um número ou um texto. Podemos compará-los com gavetas ou caixas onde podemos registrar notas. Qualquer dado pode ser armazenado em uma variável, desde que esteja no formato _text_ ou _number_. Coisas como o número de vidas restantes de um jogador, a pontuação mais alta de um jogador, o número de balas restantes e/ou o número de inimigos mortos são exemplos do que pode ser armazenado em uma variável. Você provavelmente irá armazenar números em variáveis como uma prática comum. - -![](/wiki/pres_variable.png) - -Ações e condições testam ou alteram uma variável de _valor_. - -### Onde as variáveis são armazenadas? (variável "escopo") - -O _escopo_ de uma variável determina o local em que uma variável pode ser acessada. No GDevelop, existem três variáveis escopos disponíveis: - -* As variáveis **Globais** são acessíveis em todas as cenas do jogo. Por exemplo, eles podem ser usados para armazenar a pontuação do jogador em diferentes níveis / cenas. -* As variáveis de **Cena** são acessíveis apenas a partir da cena em que foram criadas. Elas podem ser usadas para dados que dizem respeito apenas a uma cena. Uma variável de cena poderia acessar o tempo restante para concluir o nível / cena. -* As variáveis **Objeto** dizem respeito apenas a um objeto. Por exemplo, um herói pode ter uma variável "Saúde" ou "Munição". - -!!! note - - Leia mais sobre variáveis na página [Variáveis](/pt/gdevelop5/all-features/variables) . As variáveis são muito usadas em jogos: a maioria dos exemplos as utiliza e os tutoriais também as utilizam. - -!!! tip - - Deseja ver como as variáveis são usadas em um tutorial em vídeo? Verifique este tutorial: [Variáveis explicadas para não programadores (em inglês)](https://www.youtube.com/watch?v=SRfpBTgx-PY). - -## Uma noção avançada: o "tempo decorrido" desde o último quadro (TimeDelta) - -O jogo avalia eventos e redesenha a tela várias vezes por segundo: dizemos que o jogo é _atualizado_, _atualizada_ durante um "tick". A frequência com que isso acontece depende dos recursos do computador: um computador lento pode render 25 quadros por segundo, um rápido 60. O GDevelop geralmente pode garantir que esse valor seja o mesmo em todos os computadores. No entanto, a velocidade de algumas operações pode mudar de computador para computador, por exemplo, operações matemáticas e a renderização de movimentos. - -Para tornar a velocidade das alterações constante, use a expressão _TimeDelta ()_, que retorna o tempo em segundos desde o último quadro. -Por exemplo, não faça isso: - -![](/gdevelop5/tutorials/update-life-no-timedelta.png) - -Mas faça isso: - -![](/gdevelop5/tutorials/update-life-timedelta.png) - -* O primeiro evento adiciona 20 à variável toda vez que o jogo é atualizado (ou seja, o máximo possível, até 60 vezes por segundo). **Não é correto** usar esse evento, pois a velocidade de aumento da variável não será a mesma de computador para computador: não podemos prever o valor da variável após 10 segundos, por exemplo - pois depende do número de quadros do jogo pintado. - -* O segundo evento é **correto e confiável**: o número 300 é multiplicado por TimeDelta (). Assim, a variável será aumentada ao mesmo tempo em todos os computadores. Como TimeDelta () retorna um tempo em segundo, permite quantificar exatamente a quantidade: No nosso caso, a variável aumentará em 300 unidades / segundo. Assim, podemos predizer que a vida aumentará em 3000 unidades em 10 segundos - qualquer que seja o número de quadros pintados durante esse período. - -** Regra geral: ** Use _TimeDelta ()_ quando desejar adicionar continuamente alguma quantia a um valor. Se a sua ação for lançada apenas uma vez (por exemplo, durante uma colisão em que você exclui o objeto), não há problema em usar um valor discreto sem o TimeDelta - pois isso não depende da velocidade do jogo. - -!!! danger - - Quando você está movendo um objeto usando forças, não há necessidade de usar TimeDelta (), pois o GDevelop o usa automaticamente. - -## E ... isso é quase tudo que você precisa saber - -➡️ Você pode continuar lendo **[os tutoriais](/pt/gdevelop5/ tutorials)** para saber mais sobre a criação de jogos reais com o GDevelop! \ No newline at end of file diff --git a/docs/pt/gdevelop5/tutorials/index.md b/docs/pt/gdevelop5/tutorials/index.md deleted file mode 100644 index 4b9cb59a76..0000000000 --- a/docs/pt/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Tutoriais do GDevelop 5 ---- -# Tutoriais do GDevelop 5 - -Estes tutoriais são guias passo a passo que explicam como criar um jogo a partir do zero: - -!!! note - - Se você estiver usando o GDevelop pela primeira vez, é recomendável começar com estes tutoriais - -- **[Conceitos básicos de criação de jogos: O que você precisa saber para começar com o GDevelop](/pt/gdevelop5/tutorials/basic-game-making-concepts)** -- **[Crie um jogo de plataforma](/pt/gdevelop5/tutorials/platform-game/start)** -- **[Monstro da geometria: um jogo móvel completo e simples](/pt/gdevelop5/tutorials/geometry-monster)** - -Tutoriais da comunidade: - -- [Crie um jogo simples de atirador de tanques](/pt/gdevelop5/tutorials/tank-shooter) -- [Crie um jogo simples do Endless Runner](/pt/gdevelop5/tutorials/endless-runner) (corrida infinita) -- [Crie um jogo de carros sem fim](/pt/gdevelop5/tutorials/roadrider) - ------------------------------------------------------------------------- - -# GDevelop guias curtos ("como") Os seguintes guias fornecem explicações para certas partes do GDevelop. Eles também mostram algumas mecânicas avançadas para projetar seus jogos: - -- [Como lidar com lógica complexa - A máquina de estados finitos (FSM)](/gdevelop5/tutorials/finite_state_machine) -- [Como animar o salto e a queda de um personagem em um jogo de plataformas](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) -- [Como exibir um grande plano de fundo no seu jogo](/gdevelop5/tutorials/how-to-display-big-background) -- [Como depurar um desempenho ruim do jogo](/gdevelop5/tutorials/how-to-debug-poor-performance) -- [Ação de armazenamento explicada](/gdevelop5/tutorials/storage-action-explained) -- [Como reduzir o tamanho do seu jogo](/gdevelop5/tutorials/reduce-size-game) - ------------------------------------------------------------------------- - -# Outros guias Os guias abaixo fornecem explicações relacionadas ao desenvolvimento de jogos. Eles não são específicos para o GDevelop. - -* [Publicando seu jogo no itch.io](/gdevelop5/publishing/publishing-to-itch-io) -* [Publicando seu jogo na Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) -* [Publicando seu jogo no Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store) -* [Publicando seu jogo no Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) - ------------------------------------------------------------------------- - -# Tutoriais em vídeo do GDevelop - -- Veja a [lista de tutoriais em vídeo criados pela comunidade](/gdevelop5/tutorials/videos) - ------------------------------------------------------------------------- - -# Recursos Links para sites de terceiros, onde você pode encontrar sprites, músicas e efeitos sonoros para seus jogos, exemplos de modelos, modelos e software para ajudá-lo no desenvolvimento de jogos. - -- [Lista de recursos](/gdevelop5/tutorials/resources) diff --git a/docs/pt/gdevelop5/tutorials/platform-game/index.md b/docs/pt/gdevelop5/tutorials/platform-game/index.md deleted file mode 100644 index a8383dfc71..0000000000 --- a/docs/pt/gdevelop5/tutorials/platform-game/index.md +++ /dev/null @@ -1,176 +0,0 @@ ---- -title: start ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Como criar um jogo de plataforma - -Esse tutorial ajudará você a utilizar **GDevelop**: Você criará um jogo simples de plataforma onde o jogador poderá pular sobre plataformas e coletar moedas. - -Note que você poderá ler a página [Getting Started](/gdevelop5/getting_started) para obter uma visão geral do software: a explicação dos principais conceitos e interface do GDevelop. - -## Baixar GDevelop - -Se você não tiver o **GDevelop 5**, faça o download do \[website oficial\](). Está disponível para Windows, macOS e Linux. - -Sempre baixe o GDevelop desta página para ter certeza de ter a versão mais recente. Instale (ou extraia) o GDevelop e inicie-o. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_22.57.02.png) - -## Crie um novo jogo - -Clique em `Create a new project (Criar um novo projeto)` na página inicial. Na janela, escolha uma pasta para o seu projeto e selecione `Empty project (Projeto vazio)` para iniciar um novo jogo do zero. - -Para criar nosso jogo, precisamos ter os *assets* que possamos usar (o personagem do jogador, algumas plataformas, itens para coletar ...). Você pode baixar recursos aqui: . - -Depois de baixar esse arquivo, extraia seu conteúdo para dentro da pasta em que você criou o projeto. - -## Adicione uma cena - -Cenas são partes do seu jogo. Normalmente, cada tela diferente do seu jogo é uma cena: o menu principal, o menu de pausa e os níveis são cenas. - -Cenas contêm objetos, que são exibidos na tela. Esses objetos podem ser colocados em cena para criar os níveis (esses objetos são chamados de "instâncias"). As cenas também contêm os eventos que são executados para animar a cena. - -No gerenciador de projetos (que é aberto à esquerda), clique no botão `+` e em "*Scenes*": - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.26.09.png) - -Uma nova cena, chamada "Nova cena", é adicionada à lista. Clique nele para abri-lo. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.30.40.png) - -## Create the player object - -The player will be controlling a character that can jump and move on platforms. We're going to create this object. - -On the right, you can see a panel called "Objects". Click on the `+` button to add an object. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.32.40.png) - -A window will pop up displaying different types of objects you can choose from. - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -Different kinds of objects provide specific features. For most of our objects, we will use the Sprite objects, which are animated objects that can be used for a lot of elements (player, platforms, enemies, items...). - -Click on `Sprite` in the list. The new object is added to the scene and the object editor is opened: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.34.34.png) - -The object is empty for now. Sprite objects are composed of animations, and each animation can contain one or more images. Let's add an animation! Click on the `+` button. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.35.50.png) - -The animation is added but still empty with no images. To add an image, click on the `+` in the blank thumbnail. - -Choose the image called `p1_stand` in the project folder. The image is added to the object: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.44.56.png) - -You can now close the editor by clicking the "Apply" button in the bottom right corner. - -## Put the object on the scene - -To display the player in our level, we place it in the scene. Each object we add to the scene is called an "instance" of the object. - -Our player instance will be unique as we are going to have only one in our level, but other objects (like platforms, coins, enemies...) can have multiple instances living on the scene. - -To add the object, simply click on it in the list. It is then selected and displayed on a blue background: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.47.57.png) - -You can then click anywhere on the scene to add the instance of this object: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.48.05.png) - -## Give the object a proper name - -To make it easier to refer to our object, give it a name rather than using the default name. Right click on it (or click on the `⋯` icon) and choose rename. You can then type "Player" and click anywhere on the screen or press Enter to rename the object. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.53.10.png) - -## Add platforms - -The level is still empty for now without any platforms. Let's add some. - -Create a new object by clicking on the `+` button in the Objects list. This time, choose `Tiled Sprite` when asked for the type of object: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.54.52.png) - -The object editor is opened. It's a bit different compared to the editor of the Sprite object, as Tiled Sprite objects are not animated. Click on `Select an image` and then on `Choose a new image`. This time, choose the image called `grassHalfMid`. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.57.28.png) - -Close the editor by clicking on the "Apply" button in the bottom right corner. Click on the object in the list to select it, and click on the scene to place it in the level: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.59.05.png) - -The object is added to our scene but it is very tiny. Click on it and use the handles to resize so that it looks like a platform: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.00.01.png) - -Also, don't forget to rename the object to be called "GrassPlatform" instead of the default name. - -### Time to save! - -Let's not lose what we've done so far: in the application "File" menu, click on "Save" (or press Ctrl+S/Cmd+S) to save your changes. - -## Add behaviors to objects - -### The player - -The movement of the player could be created using the events of GDevelop, but it would be a quite long and difficult task to recreate a good platformer engine. Luckily, GDevelop already comes with a complete platformer engine built-in that we can use. For this, we need to use the "platformer behaviors", which allow us to access and use the built-in platformer engine. - -Open the "Player" object editor: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.02.34.png) - -Switch to the `Behaviors` tab and click on the `+` button to add a behavior to the object. Choose `Platformer character` in the list of available behaviors. You can then see the behavior in the editor, with a lot of parameters that you can tweak: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.04.41.png) - -You can change some properties like the jump speed. Set it for example to 800 so that the jump is more powerful. - -### Platforms - -We also need to set objects to be platforms. so the player can walk and jump on them. Otherwise, the player will fall through the object as we didn't tell to our character what to do when they land on it. By setting an object to be a platform, the platformer character will collide with it and be able to walk on it. - -To set the GrassPlatform object to be a platform, open the GrassPlatform object editor. Switch to the Behaviors tab, then add a behavior: this time, choose the `Platform` behavior. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.09.42.png) - -There are also a few options that you can change. For example, the option "Can grab platform ledges" is there to allow the platformer character to grab the edge of the platform. If we enable this option right now, the result will look strange though, as we don't have an animation to be displayed when the character grabs the edge. Let's keep this unchecked. - -## Start a preview - -At this point, you should be able to test your game by pressing the "Preview" button at the top of the screen in the toolbar. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.13.25.png) - -When you press the button, a preview is generated and just after, a new window is opened. - -You should be able to walk and jump around using the default keys: move the character with the arrows keys, and press `Shift` or `Space` to jump! Feel free to add a few other platforms to the scene as we did before. Make sure you added the behaviors to the platforms, to avoid the character falling through. - -For now, the object has no animations, we'll add some later. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.14.18.png) - -If the object is not moving, be sure that you've added the proper behaviors. - -## Change the background color - -The grey background is a bit boring. Later we can add an image, but for now, let's keep things simple. In the editor, right click on the grey background and choose "Scene properties": - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.16.03.png) - -In the new window that opened, click on `Scene background color` and select a nice color for the background: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.18.08.png) - -## Next step: animate the player - -Our game is very basic at the moment, the player is not animated when jumping or running. The next part of the tutorial will show how to add different animations and how to use events to change the animations when the state of the player is changing. - -➡️ Read **[the next part of the tutorial here](/gdevelop5/tutorials/platform-game/2-player-animations)**! diff --git a/docs/pt/index.md b/docs/pt/index.md deleted file mode 100644 index 2f507bdceb..0000000000 --- a/docs/pt/index.md +++ /dev/null @@ -1,30 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop Wiki - -GDevelop é um ambiente para jogos multiplataforma de código aberto que pode ser utilizado por qualquer um, mesmo que não tenha conhecimentos de programação, se você ainda não tem o GDevelop, [baixe-o](https://gdevelop.io/download)! - -Esta wiki foi criada para solucionar dúvidas e ajudar no uso do GDevelop: Sinta-se livre para contribuir! - -## Tutoriais e Vídeos - -Aprenda a utilizar o Game Develop com os **[tutoriais](/pt/gdevelop/tutorials)**. - -## Documentação Completa - -Leia a **[documentação do GDevelop](/pt/gdevelop/documentation)** para uma referência completa. - -===== Wiki em outros Idiomas ===== ![](/fr.png)[⇒ Wiki em Francês](/fr/start) - -Clique na bandeira ou no título de cada página para acessar a wiki em outras línguas. -Sua ajuda será muito bem vinda para traduzir esta wiki para outros idiomas: - -![](/zh.gif)[⇒ Wiki em Chinês](/zh/start) -![](/de.png)[⇒ Wiki em Alemão](/de/start) -![](/ru.png)[⇒ Wiki em Russo](/ru/start) -![](/es.png)[⇒ Wiki em Espanhol](/es/start) -Crie uma conta na wiki e use o menu no topo da página para poder criar ou editar uma página, veja: [ajude a traduzir o GDevelop e o seu website](http://crowdin.com/project/gdevelop). diff --git a/docs/ru.png b/docs/ru.png deleted file mode 100644 index 47da4214fd..0000000000 Binary files a/docs/ru.png and /dev/null differ diff --git a/docs/ru/gdevelop5/all-features/expressions.md b/docs/ru/gdevelop5/all-features/expressions.md deleted file mode 100644 index e42523d3db..0000000000 --- a/docs/ru/gdevelop5/all-features/expressions.md +++ /dev/null @@ -1,166 +0,0 @@ ---- -title: Выражения ---- -# Выражения - -При добавлении условия или действия в [событие](/gdevelop5/events), рядом с некоторыми полями есть следующие значки: - -![](/gdevelop5/all-features/number_expression.png) - -![](/gdevelop5/all-features/text_expression.png) - -Эти значки показывают, что поле принимает _выражение_. - -Есть несколько типов выражений: - -- [Числа](/gdevelop5/all-features/expressions#numbers) -- [Текст](/gdevelop5/all-features/expressions#text) -- [Функции](/gdevelop5/all-features/expressions#functions) - -!!! note - - Вы можете переключаться с чисел на текст или с текста на числа с функциями. - -!!! tip - - Полный список функциональных выражений, которые GDevelop предоставляет по умолчанию, см. в [expressions reference](/gdevelop5/all-features/expressions-reference). - -## Числа - -Когда рядом с полем появляется следующий значок, это поле принимает _числовое_ выражение: - -![](/gdevelop5/all-features/number_expression.png) - -Числовое выражение - это число. - -Следующие значения являются примерами числовых выражений: - -- `0` -- `-10` -- `25.5` - -Вы также можете использовать математические операторы для сложения, вычитания, умножения и деления чисел: - -- `2+2` -- `3-1` -- `10*10` -- `99/3` - -Это полный список операторов: - -- `+` (добавить) -- `-` (вычесть) -- `*` (умножить) -- `/` (подилить) - -!!! tip - - В одном выражении можно использовать несколько операторов. - -## Текст - -Когда рядом с полем появляется следующий значок, это поле принимает выражение _текста_: - -![](/gdevelop5/all-features/text_expression.png) - -Текстовое выражение - это строка текста. - -Следующие значения являются примерами текстовых выражений: - -- `"Привет мир!"` -- `"Это текстовое выражение"` -- `"GDevelop это круто!"` - -Все текстовые выражения должны быть заключены в двойные кавычки. Без двойных кавычек GDevelop предполагает, что значение является функцией, что, скорее всего, приведет к ошибке. - -Вы можете использовать оператор `+` для объединения двух или более строк текста. Например, «Привет» + «Мир» превращается в «ПриветМир». Остальные операторы недопустимы при работе с текстом. - -## Функции - -Часто необходимо вычислять сложные значения, с которыми математические операторы не могут справиться. Например, если событие влияет на положение игрока, игра должна динамически вычислять координаты X и Y игрока. - -Вот здесь и пригодятся _функции_. - -Вы можете использовать функции для динамического вычисления комплексных значений во время игры. Например, функции `X` и` Y` вычисляют координаты [объекта](/gdevelop5/objects): - -``` -ИмяОбъекта.X() -ИмяОбъекта.Y() -``` - -Использование функции часто называют *вызовом* функции. - -!!! tip - - Если вы знакомы с формулами в электронных таблицах, функциями в языках программирования или функциями в математике, знайте, что функции в GDevelop ведут себя аналогичным образом. - -### Синтаксис - -Есть три типа функций: - -- Функции без объектов -- Функции с объектами -- Функции с объектами и поведением - -Каждый тип функции немного отличается синтаксисом. - -#### Функции без объектов - -Некоторые функции существуют независимо от объектов и [поведений](/gdevelop5/behaviors). Для вызова этих функций ваша сцена не нуждается в каких-либо объектах или поведениях. - -Вот несколько примеров функций без объектов: - -- `CurrentSceneName()` - Получите название текущей сцены. -- `FileSystem::DesktopPath()` - Получите путь к каталогу «ПК». -- `ToNumber()` - Преобразуйте строку в число. - -!!! note - - GDevelop использует синтаксис `::` для функций, связанных с * пространством имен *. Например, все функции файловой системы имеют префикс FileSystem ::. Это помогает организовать связанные функции. Синтаксис `::` не влияет на поведение функции. - -#### Функции с объектами - -Некоторые функции вызываются для объектов. Это означает, что функция влияет на конкретный объект или извлекает данные о нем. - -Вот несколько примеров функций с объектами: - -- `.Angle()` - Получите угол объекта (в градусах). -- `.Layer()` - Получите имя слоя, на котором находится объект. -- `.ObjectName()` - Получите название объекта. - -####Функции с объектами и поведением - -Некоторые функции вызываются для поведения объекта. Это означает, что функция влияет или извлекает данные о конкретном поведении, связанном с объектом. - -Вот несколько примеров функций с объектами и поведениями: - -* `<объект>.Pathfinding::Speed()` -* `<объект>.Physics2::Friction()` -* `<объект>.PlatformerObject::Gravity()` - -### Arguments - -Некоторые функции принимают _аргументы_. аргумент - это значение, которое: - -- можно передать в функцию -- влияет на вывод функции - -Например, функция `ToString` преобразует число в строку, но ничего не может сделать, если вы не предоставите ей число. Это число - аргумент. В следующем примере аргументом является число 42: - -``` -ToNumber(42) -``` - -Некоторые функции, такие как функция MouseX, принимают несколько аргументов: - -``` -MouseX(слой, камера) -``` - -Если функция принимает несколько аргументов, каждый аргумент должен быть разделен запятыми и предоставлен в указанном порядке. - -### Возвращаемые значения - -Когда функция вычисляет значение, она возвращает это значение. Это значение является выходом функции. Например, если координата X объекта равна `42`, функция` ObjectName.X () `возвращает` 42`. - -Функции могут возвращать числа или строки. Тип значения, возвращаемого функцией, определяет, можно ли использовать функцию в поле. Например, функция ToString возвращает строку, поэтому ее нельзя использовать в поле, которое ожидает число, а функция ToNumber возвращает число, поэтому ее нельзя использовать в поле, которое ожидает текст. \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/analytics.md b/docs/ru/gdevelop5/all-features/firebase/analytics.md deleted file mode 100644 index b665f48830..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/analytics.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: Аналитика ---- -# Аналитика - -Firebase Analytics позволяет собирать и обрабатывать информацию о пользователях. Аналитика за день обычно занимает около 24 часов, чтобы отобразиться на панели управления. - -Чтобы начать работу с аналитикой Firebase, используйте действие **Активировать аналитику** в событии. - -## Учёт пользовательских событий - -Для отправки пользовательских данных, например, об игроке, который завершил уровень, можно использовать «событие журнала». Вот пример: - - - Когда игроки покидают уровень, перед переключением сцен: - - Создайте новое событие или обновите существующее событие с помощью ** действия журнала событий ** - - Убедитесь, что «level1_finished» указан как имя события. - - Пользователи, прошедшие уровень 1, теперь будут отображаться на панели инструментов. -Оценки также могут быть переданы путем отправки события, называемого «оценка», с дополнительными данными - значением переменной, содержащей оценку. - -## Использование свойств - -Свойства - это то, что полезно для различения групп игроков. Например, в начале игры игрок указывает свой любимый цвет, затем он задается как настраиваемое свойство и регистрируется как часть счета с помощью настраиваемых событий. После этого Firebase сможет отображать средний балл людей, которые выбрали синий как любимый цвет, и разницу со средним баллом людей, выбравших красный. - -Это может быть полезно для сбора данных о пользователях и использования с помощью [удаленной настройки](/ru/gdevelop5/all-features/firebase/rc) чтобы например масштабировать сложность (или другие параметры) в зависимости от свойств пользователя. - -## Как отлаживать / тестировать настраиваемые события и свойства - -Аналитика Firebase не отображается сразу на панели инструментов. Это может затруднить проверку работоспособности интеграции. Вы можете использовать расширение Google Chrome, чтобы убедиться, что данные отправляются правильно. - - - Установите [Расширение отладки Google Analytics для Chrome](https://chrome.google.com/webstore/detail/google-analytics-debugger/jnkmfdileelhofjcijamephohjechhna). - - Запустите функцию предварительного просмотра в сети или экспортируйте игру как игру HTML5 и разместите ее на любом веб-сервере (удаленном или локальном). - - Перейдите в консоль Firebase и откройте панель DebugView: ![](/gdevelop5/all-features/firebase/analytics1.png) - - Наконец, перейдите на страницу веб-сервера (или URL-адрес предварительного просмотра сети) и щелкните значок расширения, чтобы включить режим отладки. Игра должна перезагрузиться, и теперь каждый раз, когда что-то регистрируется или изменяется свойство пользователя, вы будете видеть это в DebugView с небольшой задержкой. diff --git a/docs/ru/gdevelop5/all-features/firebase/authentication.md b/docs/ru/gdevelop5/all-features/firebase/authentication.md deleted file mode 100644 index c268eae802..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/authentication.md +++ /dev/null @@ -1,52 +0,0 @@ ---- -title: Аутентификация ---- -# Аутентификация - -Аутентификация - это процесс проверки личности человека. Люди часто называют это «входом в учетную запись» или чем-то подобным. -Firebase предоставляет инструменты, которые помогут вам создавать учетные записи пользователей, аутентифицировать (входить) в учетную запись, используя популярные способы (пароль электронной почты, аутентификация Google, ссылка электронной почты и т. Д.), -и привязать эту учетную запись к данным с помощью Firestore. - -## Процесс аутентификации -Первое и самое важное - это процесс аутентификации. Это та часть, где пользователь доказывает, кто он есть. Обычно это делается через _экран входа в систему_. - -Firebase предоставляет несколько способов аутентификации: - -- **Анонимно**: вы можете использовать это, чтобы предоставить ограниченный доступ к предварительному просмотру служб, требующих аутентификации. Таким образом, вы также можете назначить данные этому временному профилю. Возможно, в будущем можно будет обновить анонимную учетную запись до постоянной, но GDevelop еще не поддерживает это. -- Через **электронную почту**: вы заставляете пользователя вводить адрес электронной почты и пароль, а обо всем остальном позаботится Firebase. -- Использование **внешние сервисы**: пользователь может идентифицировать себя через сторонний веб-сайт, используя, например, свои учетные записи *Facebook* или *Google*. - -!!! danger - - На момент написания внешние сервисы работают только в браузере, они не будут работать в экспорте или превью на ПК. - -## Идентификация пользователя -Как только вы уверены в личности пользователя, Firebase предоставляет вам удобный идентификатор пользователя, который связывает вашего пользователя с его данными. -Все, что связано с этим пользователем, должно храниться с этим идентификатором, чтобы иметь возможность отслеживать его право собственности на данные и предоставлять их им. -как только им это понадобится. - -Например, если вы составляете таблицу лидеров, постарайтесь сохранить не только счет и имя пользователя, но и его идентификатор пользователя. Туда, -люди могут проверить, действительно ли **этот человек** получил высокий балл, так как люди могут иметь такое же отображаемое имя, -или чтобы иметь возможность исключить пользователя из списков лидеров, если он оказался жульничеством. - -Этот идентификатор останется уникальным для каждого пользователя и никогда не изменится для пользователя. Вот почему это идеальный вариант для идентификации пользователя. - -!!! tip - - Помните: используйте **ID** для // **ID** подтверждения // пользователя! - -## Получение и установка основных пользовательских данных - -Вы можете установить основные пользовательские данные и получить их позже. Эти данные пользователя могут быть адресом электронной почты, паролем, номером телефона, отображаемым именем, URL-адресом фотографии и т. Д. -Это все, что вам нужно для базового профиля в большинстве случаев. -Чтобы хранить больше данных, вам нужно будет использовать что-то вроде [Firestore](/gdevelop5/all-features/firebase/firestore). -!!! tip - - Чтобы использовать URL-адрес фотографии, взгляните на пример [загрузки изображения из URL в спрайт](https://editor.gdevelop.io/?project=example://load-image-from-url). - -## Опасные действия - -Некоторые действия называются опасными: они могут сделать учетную запись недоступной для пользователя в случае неправильного использования. -Например, изменение адреса электронной почты или пароля учетной записи опасно, поскольку, если пользователь потеряет один из них, им будет сложно получить доступ к своей учетной записи. -Таким образом, эти действия потребуют повторной аутентификации, чтобы убедиться, что пользователь действительно запрашивает действие, а не какой-то одноранговый узел пытается захватить учетную запись. -Пожалуйста, сделайте вход пользователя еще раз и не сохраняйте его учетные данные в переменной для повторной аутентификации без их ведома, так как это может привести к захвату учетной записи. \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/firestore.md b/docs/ru/gdevelop5/all-features/firebase/firestore.md deleted file mode 100644 index 3da0ebb44a..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/firestore.md +++ /dev/null @@ -1,49 +0,0 @@ ---- -title: Firestore ---- -# Firestore - -Firestore - это база данных в реальном времени, она позволяет быстро и надежно хранить данные в Интернете, а также работает, если устройство отключено. - -!!! note - - Если вы не уверены что лучше использовать Firestore или Realtime Database, прочтите [официальное сравнение](https://firebase.google.com/docs/firestore/rtdb-vs-firestore). - -## Документы и коллекции - -База данных Firestore упорядочена по документам и коллекциям. Документ содержит данные, а коллекция содержит документы. -Документы также могут содержать коллекции, называемые вложенными коллекциями. - -Преимущество коллекций в том, что они не требуют, чтобы вы загружали их полностью при доступе к ним. -Например, если вы хотите сохранить для каждого пользователя структуру, содержащую его друзей, -вы можете либо структурировать базу данных, поместив ее в документ, либо превращая его в подколлекцию (где каждый дочерний элемент - это документ). -Если вы поместите его в документ, вы сделаете документ больше, и каждый раз, когда вы захотите взять какие-то данные -из документа вы снова загрузили все данные только для одного поля, и вы также увеличиваете его -чтобы получить другие данные из документа. Если вы поместите его как вспомогательную коллекцию, вы можете получить каждого друга -список друзей индивидуально, и вы можете получать данные игрока, не собирая всех друзей каждый раз, когда вы это делаете. - -!!! tip - - - Другое преимущество коллекций заключается в том, что они очень хорошо и быстро фильтруют / упорядочивают данные перед отправкой их игроку. - К сожалению, GDevelop еще не поддерживает отправку запросов к коллекциям. - - -Для получения дополнительной информации о модели данных Firestore прочтите -[руководство по модели данных](https://firebase.google.com/docs/firestore/data-model) и -[руководство по структурированию данных](https://firebase.google.com/docs/firestore/manage-data/structure-data). - -## Регулирование доступа - -Возможно, вы не захотите позволять всем писать все. -В противном случае каждый может изменять данные другого человека! Чтобы выбрать, кто и как может получать доступ, в Firebase есть система правил. -Он взаимодействует с [firebase аутентификацией](/ru/gdevelop5/ all-features/ firebase/ authentication), поэтому вы можете написать это правило, чтобы разрешить аутентифицированным игрокам получать доступ к базе данных: -![](/ gdevelop5/ all-features/ firebase/ firestore/ pasted/ 20201205-202545.png) - -У вас также может быть набор пользователей, и в каждом документе (названном в честь uid пользователя) есть их разрешения. -Здесь, например, вы можете разрешить каждому пользователю с подтвержденным разрешением получить доступ к собственному документу в коллекции userdata, и каждый администратор для доступа к документам в коллекции globaldata: -![](/ gdevelop5/ all-features/ firebase/ firestore/ pasted/ 20201205-203628.png) - -Чтобы узнать подробнее, как писать правила, прочтите -[руководство по синтаксису](https://firebase.google.com/docs/rules/rules-language) и -[руководство по интеграции аутентификации](https://firebase.google.com/docs/rules/rules-and-auth). \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/functions.md b/docs/ru/gdevelop5/all-features/firebase/functions.md deleted file mode 100644 index a032a86866..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/functions.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -title: Firebase Функции ---- -# Firebase Функции - -!!! danger - - - Эта функция предназначена для опытных разработчиков JavaScript. - - [Также обратите внимание, что для этой функции требуется план Blaze с 15 марта 2021 г.] (https://firebase.google.com/support/faq#expandable-13). - - -Firebase предназначена для самостоятельной замены всего внутреннего сервера. Однако иногда вам нужно самому написать логику сервера: вот тут-то и пригодятся функции firebase. - -Firebase позволяет кодировать логику на стороне сервера, которая запускается при определенных событиях. Чтобы увидеть всю документацию, перейдите на https://firebase.google.com/docs/functions/callable. - -Одно из таких событий - "вызовы https". Вы можете вызвать их с помощью действия GDevelop. Используйте действие функции триггера с вызываемым именем https. Вы можете передавать аргументы и позволять вызываемому https возвращать объект. \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/index.md b/docs/ru/gdevelop5/all-features/firebase/index.md deleted file mode 100644 index a2e1ed73f7..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/index.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: Firebase ---- -# Firebase - -Чтобы начать использовать Firebase, узнайте, как его настроить в [quickstart](/ru/gdevelop5/all-features/firebase/quickstart). - -!!! warning - - Вы должны быть знакомы с GDevelop [Переменные обратного вызова](/ru/gdevelop5/events/callback-variables) чтобы использовать это расширение, т.к. это будет часто использоваться - -Firebase - это набор бесплатных сервисов для разработчиков: аналитика, аутентификация пользователей, хранилище ... Большинство сервисов бесплатны, но для некоторых может потребоваться оплата подписки Firebase, если вы превышаете ограничения бесплатной подписки. - -В услуги входят: - - * [Аналитика](/ru/gdevelop5/all-features/firebase/analytics) - * [Удалённая настройка](/ru/gdevelop5/all-features/firebase/rc) - * [Аутентификация](/ru/gdevelop5/all-features/firebase/authentication) - * [Документоориентированная база данных (Firestore)](/ru/gdevelop5/all-features/firebase/firestore) - * [База данных, ориентированная на ключ-значение(Realtime Database)](/ru/gdevelop5/all-features/firebase/realtime_database) - * [Облачное хранилище(Firebase Storage)](/ru/gdevelop5/all-features/firebase/storage) - * [Firebase функции](/ru/gdevelop5/all-features/firebase/functions) (требуется знания JavaScript) - * [Удаленное измерение производительности](/ru/gdevelop5/all-features/firebase/perfomance) \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/perfomance.md b/docs/ru/gdevelop5/all-features/firebase/perfomance.md deleted file mode 100644 index 1001db1eac..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/perfomance.md +++ /dev/null @@ -1,17 +0,0 @@ ---- -title: Измерение производительности ---- -# Измерение производительности - -Firebase включает в себя инструмент, который автоматически измеряет производительность на устройствах игроков. -Таким образом, вы можете узнать, вызывает ли обновление задержки в кадрах, которые вы не заметили на своем устройстве. -Для начала добавьте в любом месте действие «Включить измерение производительности». - -## Пользовательские показатели - -Набор инструментов для измерения производительности также включает способ проверки производительности для определенной группы событий или в определенный период времени с помощью трассировщиков. -Все, что вам нужно сделать, это запустить трассировщик, когда вы хотите начать запись производительности, и остановить его, когда закончите. -Вы также можете записывать производительность в течение определенного количества миллисекунд. -!!! warning - - Результаты не отправляются на сервер, пока вы не остановите трассировщик, поэтому не забудьте остановить их после завершения записи. \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/quickstart.md b/docs/ru/gdevelop5/all-features/firebase/quickstart.md deleted file mode 100644 index f9720a2240..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/quickstart.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Настройка Firebase ---- -## Настройка Firebase - -Чтобы использовать Firebase, вам необходимо подключить GDevelop к учетной записи Firebase. На этой странице объясняется, как это сделать. - -!!! note - - В этом руководстве будут использоваться скриншоты на английском языке, если где-то запутались, поменяйте на время язык в Firebase. - -### Шаг 1. Создание проекта Firebase - -Сначала перейдите на . У вас должен быть список проектов. Создадим новый: ![](/gdevelop5/all-features/firebase/quickstart1.jpg) - -Введите название для вашего проекта. В этом руководстве мы назовём его"Tutorial-GDevelop". ![](/gdevelop5/all-features/firebase/quickstart2.jpg) - -Затем выберите, включать или отключать Google Analytics. В этом примере мы включим его, так как хотим продемонстрировать каждую функцию Firebase, но решать вам, будете вы это использовать или нет. Вы всегда сможете изменить это позже. - -![](/gdevelop5/all-features/firebase/bandicam_2020-05-07_17-25-40-916.jpg) - -![](/gdevelop5/all-features/firebase/bandicam_2020-05-07_17-25-55-986.jpg) - -Теперь у вас должна отобразиться панель управления Firebase. - -![](/gdevelop5/all-features/firebase/bandicam_2020-05-07_17-26-34-404.jpg) - -### Шаг 2. Зарегистрируйте приложение для своей игры GDevelop - -Чтобы зарегистрировать игру, создайте в Firebase новое «веб-приложение». Для этого нажмите третью кнопку, чтобы добавить «веб-приложение» (см. Следующий скриншот). - -![](/gdevelop5/all-features/firebase/bandicam_2020-05-07_17-27-51-338.jpg) - -Введите любое имя еще раз и снимите флажок «Настроить хостинг Firebase». - -!!! note - - На момент написания нет поддержки хостинга Firebase, но он может быть добавлен в GDevelop позже. - -Firebase теперь покажет вам код, который вы бы использовали, если бы создавали код для веб-приложения (нам понадобится только фрагмент). - -![](/gdevelop5/all-features/firebase/quickstart4.png) - -Вам понадобится только конфигурационная часть Firebase. Скопируйте и вставьте часть между {}, включая {}. Например, на этом снимке экрана нам нужно скопировать: ``` - - { - apiKey: "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA", - authDomain: "tutorial-gdevelop.firebaseapp.com", - databaseURL: "https://tutorial-gdevelop.firebaseio.com/", - projectId: "tutorial-gdevelop", - storageBucket: "tutorial-gdevelop.appspot.com", - messagingSenderId: "386980638073", - appId: "1:386980638073:web:b00afc0ecb3ed7ca4f53a8", - measurementId: "G-R0KBN0HPQ8" - } - -``` - -Теперь откройте проект GDevelop, в который вы хотите интегрировать Firebase, и перейдите в свойства проекта. В поле «Firebase Configuration» вставьте скопированную конфигурацию. Вы заметите, что появляется сообщение об ошибке, в котором говорится, что это недопустимый JSON: ![](/gdevelop5/all-features/firebase/quickstart5.png) Это нормально, потому что формат, используемый GDevelop, более строг, чем код, отображаемый Firebase. Вам нужно заключить все ключи в кавычки. Примером может стать: - -``` - - { - "apiKey": "AIzaSyCbFhG_bCyAvnxlmVSgIgn7Em0XOYE9YXA", - "authDomain": "tutorial-gdevelop.firebaseapp.com", - "databaseURL": "https://tutorial-gdevelop.firebaseio.com/", - "projectId": "tutorial-gdevelop", - "storageBucket": "tutorial-gdevelop.appspot.com", - "messagingSenderId": "386980638073", - "appId": "1:386980638073:web:b00afc0ecb3ed7ca4f53a8", - "measurementId": "G-R0KBN0HPQ8" - } - -``` Теперь ошибки быть не должно: - -![](/gdevelop5/all-features/firebase/quickstart6.png) - -Теперь вы можете начать использовать [Сервисы Firebase](/ru/gdevelop5/all-features/firebase). diff --git a/docs/ru/gdevelop5/all-features/firebase/rc.md b/docs/ru/gdevelop5/all-features/firebase/rc.md deleted file mode 100644 index a6e605d64c..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/rc.md +++ /dev/null @@ -1,95 +0,0 @@ ---- -title: настройка с помощью Firebase ---- -#Удаленная настройка с помощью Firebase - -!!! tip - - Перед использованием любой функции Firebase не забудьте [настроить его правильно с помощью краткого руководства](/ru/gdevelop5/all-features/firebase/quickstart). - -Firebase RC (сокращение от Remote Configuration) позволяет создавать [переменные](/gdevelop5/ all-features/ variables), которые можно изменять в панели управления Firebase без необходимости обновлять игру. -Вы также можете изменить их для определенной группы людей. -Например, вы можете изменить цену на что-то в магазине для активных пользователей удаленно во время проведения рекламной акции. -Вы также можете использовать это для удаленного включения и отключения экспериментальных функций, если они слишком нестабильны и их требуется отключить, -без необходимости публиковать обновление с исправленной настройкой. -!!! note - - Указание групп людей может потребовать аутентификацию и аналитику, чтобы Firebase могла различать группы игроков. - -## Подготовка - -В этой статье объясняется, как установить RC в проект и как это использовать. -Вот с чего мы начинаем: -![](/gdevelop5/all-features/firebase/rc1.png) -![](/gdevelop5/all-features/firebase/rc2.png) - -Это простой кликер где вы можете получать и тратить деньги. Теперь мы можем начать добавлять RC для динамической настройки. - -## Добавление значений по умолчанию - -Прежде всего, мы должны установить некоторые значения по умолчанию. -Эти значения по умолчанию должны содержать значение по умолчанию для каждой из настраиваемых переменных. -Они используются, когда нет сети для обновления значения переменных или когда они еще не завершили загрузку. - -!!! warning - - - Это не обязательный шаг, но всё же рекомендуется это сделать, чтобы избежать ошибки у игроков у которых конфигурация ещё не загрузилась или у игроков у которых нету доступа к интернету. - - -Мы можем сделать это, создав структуру, содержащую значения по умолчанию: -![](/gdevelop5/all-features/firebase/rc3.png) -А затем установив его по умолчанию: -![](/gdevelop5/all-features/firebase/rc4.png) -Как видите, в этом примере мы используем 2 переменные: одну, чтобы решить, сколько денег вы выиграете, а другую - сколько вы проиграете при нажатии кнопок. - -## Настройка Firebase - -Теперь нам нужно также настроить Firebase. Перейдите на панель инструментов приложений, а затем на удаленную настройку: -![](/gdevelop5/all-features/firebase/rc5.png) -Теперь вы можете установить некоторые переменные. Установите те, которые вы назначили по умолчанию: -![](/gdevelop5/all-features/firebase/rc6.png) -!!! danger - - - Не забудьте сохранить изменения! - ![](/gdevelop5/all-features/firebase/rc7.png) - - -## Добавление синхронизации - -Это расширение позволяет вам управлять синхронизацией удаленной конфигурации, как вы хотите. -Лучше всего использовать действие «принудительная синхронизация» для события, которое будет происходить регулярно. -Для этого вы можете использовать таймер или сделать это в начале сцены, на которую часто переключают. - -!!! danger - - - Хотя вы, вероятно, хотите часто синхронизировать конфигурацию, не синхронизируйте ее слишком часто! - В противном случае Firebase отключит вас по тайм-ауту, чтобы предотвратить DDoS-атаки по всем выполненным запросам. - - -!!! note - - - Вы также можете использовать действие «установить интервал автоматического обновления», но, согласно некоторым тестам, оно не очень надежно. - - -Мы можем, например, использовать здесь нажатия кнопок, поскольку они будут происходить часто, но не слишком часто: -![](/gdevelop5/all-features/firebase/rc8.png) - -## Замените статические значения конфигурацией - -Теперь нам просто нужно заменить ранее статические значения на значения из удаленной конфигурации: -![](/gdevelop5/all-features/firebase/rc9.png) - -### Адаптируйте остальную игру к модульности - -Не забывайте, что некоторые вещи, которые могли быть статичными, теперь являются динамическими, и для поддержки этой модульности необходимо добавить некоторые действия. -В нашем примере был статический текст, показывающий, сколько денег вы теряете, покупая «зелья». Теперь вы можете обновить этот текст, чтобы показать правильное значение: -![](/gdevelop5/all-features/firebase/rc10.png) - -## Используйте консоль Firebase, чтобы изменить значения - -Теперь вы должны закончить настройку. -Вам нужно только изменить значения в консоли Firebase, чтобы увидеть, как они обновляются в реальном времени (или, точнее, всякий раз, когда игра синхронизирует удаленную конфигурацию) в вашей игре. \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/realtime_database.md b/docs/ru/gdevelop5/all-features/firebase/realtime_database.md deleted file mode 100644 index 4b5c2f59c9..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/realtime_database.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: Realtime Database ---- -# Realtime Database - -Realtime Database позволяет хранить данные в виде большой сетевой структурной переменных. - -!!! note - - Если вы не уверены, что следует использовать: Firestore или Realtime Database, прочтите [официальное сравнение](https://firebase.google.com/docs/firestore/rtdb-vs-firestore). - - ## Сравнение со структурными переменными - - Все данные хранятся в дереве JSON, которое можно сравнить с [структурной переменной](/gdevelop5/ all-features/ variables # структура). - Однако есть несколько ключевых отличий: - - #### Доступ детей(child variable) - В отличие от переменных GDevelop, где вы получаете дочерний элемент через `. `, в базе данных Realtime вы получаете его через косую черту: - `<переменная структуры> / <имя переменной ребенка>`. Это означает, что для динамического доступа вы должны написать имя пути как - `" structure / "+ VariableString (dynamicVariableAccess) +" / specificProperty "`, в отличие от структур GDevelop, где вы пишете это так: - `Переменная (структура [VariableString (dynamicVariableAccess)]. SpecificProperty)` - - #### Глубина вложенности дочерних элементов - Хотя в GDevelop нет фиксированного ограничения на глубину вложенности дочерних элементов, Realtime Database не позволяет вам иметь глубина больше 32. - - ## Структурирование данных - - Вы должны структурировать данные таким образом, чтобы обеспечить наименьшую возможную вложенность, поскольку вложенность данных может вызвать проблемы в нескольких ситуациях: - - - Получение данных. Всякий раз, когда вы получаете данные с сервера, вы также загружаете все вложенные данные. Если много, это может занять время и вызвать отставание. - - Наследование разрешений. Если вы создадите правило безопасности, разрешающее доступ к полю, всем вложенным полям будет предоставлен один и тот же уровень доступа, и невозможно переопределить доступ для отдельных вложенных полей. - - Предел вложенности. Если вы слишком много вкладываете данные, вы можете застрять с ними, чтобы продолжать поддерживать более старые версии вашей игры, но при этом сохраните целостность структуры. Если вы достигли максимального уровня вложенности (32), вы не можете добавлять новые вложенные свойства и, следовательно, не можете поддерживать согласованную структуру без изменения структуры базы данных в менее вложенном виде, что означает потерю поддержки всех старых версий и тонны работай. - - Помимо попыток избежать вложенности, вы должны иметь возможность спроектировать структуру своей базы данных по своему усмотрению. - - Для получения дополнительной информации о моделировании данных в базе данных реального времени прочтите - [руководство по структурированию данных](https://firebase.google.com/docs/database/web/structure-data). - - ## Регулирование доступа - - Возможно, вы не захотите позволять всем писать все. - В противном случае каждый может изменять данные других людей! Чтобы выбрать, кто и как может получать доступ, в Firebase есть система правил. - Он взаимодействует с [Firebase аутентификацией](/ru/gdevelop5/ all-features/ firebase/ authentication), поэтому вы можете написать это правило, чтобы разрешить аутентифицированные пользователям записывать переменную authonly базы данных: - ```json - { - "rules": { - "users": { - "$uid": { - ".read": true, - ".write": "auth != null" - } - } - } - } - ``` - - Вы также можете иметь переменную со всеми пользователями и иметь для каждого дочернего элемента (названного в честь uid пользователя) свои разрешения в виде карты. - Здесь, например, вы можете разрешить каждому пользователю с подтвержденным разрешением получить доступ к собственному документу в переменной userdata, и каждый администратор для доступа к документам в коллекции globaldata: - ```json - { - "rules": { - "userdata": { - "$uid": { - ".read": true, - ".write": "auth != null && root.child('permissions').child(auth.uid).child("verified").val() == true" - } - }, - "globaldata": { - "$uid": { - ".read": true, - ".write": "auth != null && root.child('permissions').child(auth.uid).child("admin").val() == true" - } - } - } - } - ``` - - Чтобы узнать подробнее, как писать правила, прочтите - [руководство по синтаксису](https://firebase.google.com/docs/database/security/core-syntax), - [руководство по написанию условий](https://firebase.google.com/docs/database/security/rules-conditions) и - [справочный документ](https://firebase.google.com/docs/reference/security/database). \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/firebase/storage.md b/docs/ru/gdevelop5/all-features/firebase/storage.md deleted file mode 100644 index aa097b7378..0000000000 --- a/docs/ru/gdevelop5/all-features/firebase/storage.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: Firebase Хранилище ---- -# Firebase Хранилище -!!! note - - GDevelop не поддерживает двоичные данные (файлы) как тип переменной (пока?), поддержка этой функции очень слабая. - -В настоящее время мало что можно сделать с хранилищем. -Вы можете получить URL-адрес загрузки онлайн-файла и позволить пользователю загрузить его, что может быть полезно, например, для размещения и загрузки обновлений. -!!! tip - - Вы также можете комбинировать его с [the load image from url](https://editor.gdevelop.io/?project=example://load-image-from-url) примером. \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/network.md b/docs/ru/gdevelop5/all-features/network.md deleted file mode 100644 index 9c86bfc17d..0000000000 --- a/docs/ru/gdevelop5/all-features/network.md +++ /dev/null @@ -1,68 +0,0 @@ ---- -title: Сеть ---- -# Сеть - -GDevelop предоставляет сетевые функции, которые позволяют играм связываться с удаленными серверами, API или веб-сайтами, а так же взаимодействовать с JSON. - -# Отправить запрос на сервер / API / веб-страницу - -Все в Интернете использует HTTP-запросы. Когда вы посещаете веб-страницу, ваш браузер отправляет запрос на адрес веб-страницы, а сервер веб-сайта отправляет ответ с содержанием веб-страницы. - -Игры и приложения работают аналогично для отправки данных на сервер или их получения: - - * они отправляют запрос на определенный адрес (также называемый конечной точкой). При желании запрос может включать параметры. - * сервер отправляет ответ. Набор всех запросов, которые обрабатываются сервером, иногда называют API. - -В дополнение к адресу и параметрам, HTTP-запросы также могут иметь связанный "verb". Запросы на получение данных или веб-страницы обычно являются запросами "GET". Запросы на публикацию данных обычно являются запросами "POST". - -GDevelop предоставляет действие под названием «Отправить запрос на веб-страницу». Вы можете указать хост и путь к вызываемой API / веб-странице (например, если ваша «конечная точка» - `https: // mygame.com / api / store-score`, хост -` https: / / mygame.com`, а путь - `/ api / store-score` (не забудьте косую черту /)). Вы также можете указать содержание запроса (параметр, который будет получен сервером). - -Когда сервер отправляет ответ, он сохраняется в переменной, чтобы вы могли прочитать то, что было отправлено. - -## Как отформатировать контент - -* Для запросов GET параметры должны быть отправлены в содержимом в формате «строки запроса».: -`parameter1=value1¶meter2=value2¶meter3=value3`... - -Вы можете отправлять данные из переменной, например: -`"score=" + VariableString(Score) + "&playerName=" + VariableString(Name)` - -* Для запросов POST это зависит от того, что ожидает сервер, но в большинстве случаев сервер ожидает текст в формате JSON. - -Вы можете построить его самостоятельно: -`"{\"score\": " + VariableString(Score) + " }"` (обратите внимание на использование обратной косой черты перед кавычкой `\" `, чтобы цитата могла использоваться внутри текста) или используйте выражение для преобразования структуры переменной в JSON: `ToJSON(VariableWithData)` (подробнее об этом ниже). - -## Преобразование переменных в JSON и обратно в переменные - -### Переменная в JSON - -JSON - это текстовый формат, который можно использовать для описания структуры данных, содержащей числа, строки, объекты и массивы. -Например, JSON, содержащий счет и имя игрока, будет выглядеть: `{ "name": John, "score": 45 }`. - -Переменные в GDevelop могут содержать числа, строки или быть «структурой», содержащей дочерние элементы, которые также являются переменными, содержащими число, строки или дочерние элементы. - -> Дочерними элементами можно управлять, используя обычные действия, связанные с переменными, путем ввода их имени после точки после имени родительской переменной (например, если переменная, содержащая дочерние элементы, называется Progress: `Progress.Level`, `Progress.Score`...). - -!!! note - - Узнайте больше о структурах на странице о [переменных](/gdevelop5/all-features/variables). - -Структуры полезны, поскольку они могут хранить все данные о чем-либо, которые затем могут быть отправлены на сервер. Для этого вы можете преобразовать структурную переменную в JSON, используя выражение под названием `ToJSON`. Например: - -![](/ru/gdevelop5/all-features/network/pasted/20210818-123314.png) - -![](/ru/gdevelop5/all-features/network/pasted/20210818-123530.png) - -Если у переменной-структуры Progress есть дочерние элементы «Level» со значением 4 и «Score» со значением 1500, результирующий JSON будет выглядеть: `{"Level": 4, "Score": 1500}`. - -Вы можете использовать его как содержимое запроса, отправленного на сервер или при передаче данных P2P или даже для хранения данных в local storage, оптимизируя код и затраченное место. - -### JSON в переменную - -Вы так же можете преобразовать JSON обратно в переменную. Это полезно, если вы получили ответ от сервера, который также обычно имеет формат JSON. - -Используйте действие"**Преобразовать JSON в переменную**" (или «Преобразовать JSON в глобальную переменную», или «Преобразовать JSON в переменную объекта»). Укажите JSON для преобразования (который сам будет сохранен в переменной) и переменную, в которой вам нужно сохранить полученную структуру. -Например: - -![](/ru/gdevelop5/all-features/network/pasted/20210818-124132.png) \ No newline at end of file diff --git a/docs/ru/gdevelop5/all-features/network/pasted/20210818-123314.png b/docs/ru/gdevelop5/all-features/network/pasted/20210818-123314.png deleted file mode 100644 index 497005040e..0000000000 Binary files a/docs/ru/gdevelop5/all-features/network/pasted/20210818-123314.png and /dev/null differ diff --git a/docs/ru/gdevelop5/all-features/network/pasted/20210818-123530.png b/docs/ru/gdevelop5/all-features/network/pasted/20210818-123530.png deleted file mode 100644 index 64a4d2f907..0000000000 Binary files a/docs/ru/gdevelop5/all-features/network/pasted/20210818-123530.png and /dev/null differ diff --git a/docs/ru/gdevelop5/all-features/network/pasted/20210818-124132.png b/docs/ru/gdevelop5/all-features/network/pasted/20210818-124132.png deleted file mode 100644 index 4d57897182..0000000000 Binary files a/docs/ru/gdevelop5/all-features/network/pasted/20210818-124132.png and /dev/null differ diff --git a/docs/ru/gdevelop5/all-features/p2p.md b/docs/ru/gdevelop5/all-features/p2p.md deleted file mode 100644 index 178b2a120b..0000000000 --- a/docs/ru/gdevelop5/all-features/p2p.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Peer-to-peer ---- -# Peer-to-peer - -!!! warning - - Это экспериментальная функция, она может быть изменена и может содержать ошибки. Мы будем рады вашим отзывам об улучшении этой функции. - -GDevelop поддерживает одноранговые (P2P) соединения для обеспечения возможности создания основных многопользовательских игр. Это работает через концепцию *удаленных событий*. Подключите несколько экземпляров игры, используя их ** ID **, перед удаленным запуском событий на других экземплярах. - -!!! danger - - Это расширение подходит не для всех типов многопользовательских игр и потенциально небезопасно от читерства. Поскольку все экземпляры игры напрямую связаны друг с другом, нет машины, которая будет просчитывать действия игроков. - - Таким образом, сложно проверить, читерит ли кто-то (в отличие от выделенных серверов). P2P поддерживает до 250 одновременных подключений и поэтому также не подходит для крупных многопользовательских игр, таких как MMO. - -## Выбор брокерского сервера - -Работающая игра, называемая ** клиентом **, должна подключиться к другим клиентам, прежде чем сможет отправлять данные. Для этого ему нужен способ самоидентификации и поиска других клиентов. Для этого необходимо настроить ** сервер-брокер **. Это сервер с фиксированным хорошо известным адресом, который хранит все адреса подключенных клиентов и передает их каждому клиенту, чтобы они могли подключаться друг к другу. - -Есть два варианта настройки брокерского сервера: - - * Настройка собственного сервера (рекомендуется), который можно запустить на локальном компьютере в качестве теста. - * Использование общедоступного сервера по умолчанию. - -#### Настроить собственный (локальный) сервер - -Локальный сервер можно легко настроить.[Node.js] (https://nodejs.org/en/download/) для начала необходимо будет установить Node.js. Рекомендуется версия LTS. - -Откройте командную строку. Для этого в Windows: - - - Нажмите клавиши **Windows** и ** R **. Откроется окно ** Выполнить ** - - Введите **cmd** во всплывающем окне. - - Нажмите клавишу ** Enter **. - -После открытия командной строки выполните следующие действия: - - - Если эти шаги выполняются впервые, для установки сервера введите ** npm install peer -g ** - - После установки сервера и каждый раз (для запуска сервера) вводите ** peerjs -p <порт> ** - * Можно использовать любой порт, который еще не используется компьютером. -На сервер PeerJS можно передать и другие параметры, см. [Его веб-сайт] (https://github.com/peers/peerjs-server#config--cli-options) для получения дополнительной информации. -После выполнения вышеуказанного действия используется для подключения к серверу действие ** Использовать настраиваемый брокер сервер **. - - * **localhost** можно использовать в качестве адреса хоста для указания на локальный сервер. - -!!! tip - - Обратите внимание, что это локальный сервер, поэтому он будет работать только в пределах вашей локальной сети. При выпуске игры вам нужно будет развернуть ее на хостинге, совместимом с Node.js, например Heroku. - -#### Использовать сервер по умолчанию - -!!! warning - - Не рекомендуется использовать этот сервер, по возможности следует использовать собственный. Сервер по умолчанию не управляется GDevelop, и команда GDevelop не несет ответственности, если что-то пойдет не так с использованием этого сервера. - -Вы также можете использовать сервер по умолчанию, предоставленный PeerJS. -Чтобы использовать этот сервер, используйте действие «Использовать сервер по умолчанию». - -## Подключение - -Чтобы подключить экземпляры между собой, вам нужно ввести ID одного экземпляра в другом. Идентификатор можно найти с помощью выражения `P2P :: GetID ()`. Для подключения используйте действие «Подключиться к другому экземпляру» и передайте в качестве параметра идентификатор другого экземпляра. Оба экземпляра подключатся автоматически. Затем вы можете отправить событие из одного экземпляра в другой, чтобы убедиться, что соединение установлено. - -## Взаимодействие с подключенными играми - -После подключения вы можете запускать действия удаленно. Вы можете выбрать другой конкретный экземпляр игры (используя его идентификатор) или отправить событие всем подключенным экземплярам. - -### Выбор режима (с потерей данных и без) - -* В режиме *no dataloss* каждое удаленное событие ставится в очередь, и на каждом кадре, если оно есть в очереди, мы берем самое старое и обрабатываем его. ** Это гарантирует, что все данные будут обработаны / приняты во внимание. ** -* При активированном *режиме dataloss* данные не ставятся в очередь, а сохраняются только последние удаленные события. ** Это означает, что обрабатываются только самые свежие данные, а устаревшие данные удаляются. ** - - -Вот два примера: - -* если вы используете синхронизированный счетчик очков, вы не хотите терять какие-либо данные, так как отсутствие только одного значения счетчика приведет к *десинхронизации* счетчиков, поэтому режим потери данных будет деактивирован. -* Если вы хотите синхронизировать позиции, актуальна только последняя отправленная позиция, а не более старые позиции. В этом случае вы должны активировать режим потери данных , *чтобы предотвратить задержки / ошибки*. \ No newline at end of file diff --git a/docs/ru/gdevelop5/events/callback-variables.md b/docs/ru/gdevelop5/events/callback-variables.md deleted file mode 100644 index cfccac0175..0000000000 --- a/docs/ru/gdevelop5/events/callback-variables.md +++ /dev/null @@ -1,19 +0,0 @@ ---- -title: Переменные обратного вызова ---- -# Переменные обратного вызова - -## Что это такое? - -Переменные обратного вызова - это ** переменные **, переданные **действию** для передачи результата пользователю. - -## Зачем они нужны? - -Бытовой пример– когда отправляешь в письме на радиостанцию пустой конверт со своим же адресом и марками, чтобы в нём прислали ответ. Нужно время, чтобы, во-первых письмо дошло до радиостанции, во-вторых чтобы был прислан ответ. - -Обычно это нужно при **асинхронном** выполнении — когда строчки кода не последовательно выполняются одна за другой (60 раз в секунду), а запускается (и завершается) какая-то долгая задача и ещё неизвестно, когда она закончится. -Обычно вы должны использовать ** [выражения](/ru/gdevelop5/ all-features/ expressions) ** для получения значения, -но асинхронные действия **не могут** этого сделать, поскольку они **ничего не вернут для нескольких кадров** (время, необходимое для их выполнения). -Таким образом, они принимают в качестве аргумента переменную и **устанавливают ее значение** на возвращаемое значение ** после завершения **. -Обычно у вас есть две переменные обратного вызова: одна, чтобы сказать, успешно ли выполнено асинхронное действие, -и одна с фактическим возвращаемым значением действия. \ No newline at end of file diff --git a/docs/ru/gdevelop5/getting_started/index.md b/docs/ru/gdevelop5/getting_started/index.md deleted file mode 100644 index 77ecdf48bb..0000000000 --- a/docs/ru/gdevelop5/getting_started/index.md +++ /dev/null @@ -1,77 +0,0 @@ ---- -title: Начало работы с GDevelop ---- -# Начало работы с GDevelop - -GDevelop - бесплатный инструмент с открытым исходным кодом для создания кроссплатформенных игр, который может использоваться *без* навыков программирования. - -Это руководство объясняет, как начать работу с GDevelop. - -## Шаг 1: Установка GDevelop - -GDevelop доступен для всех основных операционных систем, включая последние версии Windows, macOS и Linux. Чтобы скачать GDevelop, посетите [gdevelop.io/download](https://gdevelop.io/download/). - -!!! note - - Если вы пользуетесь телефоном, планшетом или не можете установить GDevelop на свое устройство (Chromebooks), используйте онлайн версию GDevelop, доступную по адресу [editor.gdevelop.io](https://editor.gdevelop.io/). Хотя в ней нет сторонних редакторов, таких как Piskel, вы все равно сможете использовать ее для создания полноценных игр с сохранением своих проектов в облаке. - -Инструкции по установке зависят от операционной системы. - -**Windows**: - - - Двойной клик по файлу exe. - - Несколько раз нажмите на кнопку Next. Это установит GDevelop, запустит приложение и добавит значок на рабочий стол. - -**macOS**: - - - Откройте DMG файл. - - Перетащите "GDevelop.app" в каталог "~/Applications". - -**Linux (flatpak)**: - - - Откройте терминал. - - Следуйте инструкциям командной строки в нижней части страницы [GDevelop Flathub](https://flathub.org/apps/details/io.gdevelop.ide) - -**Linux (AppImage)**: - - - Откройте терминал. - - Сделайте файл AppImage исполняемым, набрав `chmod a+x GDevelop*.AppImage`. - - Запустите его: `./GDevelop*.AppImage` (или дважды щелкните по файлу). - -**Телефон, планшет или Chromebook**: - - - Откройте браузер и перейдите по ссылке [editor.gdevelop.io](https://editor.gdevelop.io). - - Если вы используете Android или Chromebook, выберите опцию "Добавить на домашний экран". - -!!! tip - - Вы администратор, пытающийся установить GDevelop на множество машин (например, для компании или университета)? Программа установки для Windows основана на *NSIS*, поэтому вы можете найти в интернете материалы, позволяющие использовать ее из скрипта. Прочитайте эту страницу, чтобы узнать о [установке GDevelop на несколько компьютеров в сети](/ru/gdevelop5/getting_started/batch-install-gdevelop-company-university). Вы также можете получить [портативную версию GDevelop, распаковав ее с помощью 7zip](/ru/gdevelop5/getting_started/windows-portable-version-gdevelop). - -## Шаг 2: Создайте новый проект - -1. Запустите GDevelop. -2. Выберите **Шаблон** в качестве отправной точки или нажмите **Создать пустой проект**, чтобы начать с нуля. -3. Выберите местоположение и название проекта. - -![](/gdevelop5/home-page-new.png) - -## Шаг 3: Предварительный просмотр игры - -Если в проекте есть хотя бы одна сцена (имеется во всех стартовых проектах), на панели инструментов доступна кнопка **Предпросмотр**. Эта кнопка запускает предварительный просмотр игры. - -![](/gdevelop5/preview-buttons.png) - -## Следующий шаг - -В зависимости от ваших предпочтений, перейдите по одной из двух приведенных ниже ссылок. - -### Читать -Начните с чтения страницы [Основные концепции создания игр](/ru/gdevelop5/tutorials/basic-game-making-concepts). - -Затем изучите [Пример игры "Астероиды"](/ru/gdevelop5/tutorials/asteroids). Вы узнаете, как с нуля создать игру "Астероиды", основанную на физических законах, и познакомитесь со многими фундаментальными понятиями GDevelop, такими как объекты, события и поведение. - -### Смотреть - -Начните с [Официальных вводных видеоуроков](https://www.youtube.com/watch?v=bR2BjT7JG0k&list=PL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8). - -Затем посмотрите [Пример игры "Астероиды"](https://www.youtube.com/watch?v=w1SCpQ-mRCk) и попробуйте создать свою собственную игру. \ No newline at end of file diff --git a/docs/ru/gdevelop5/getting_started/open-gdevelop-4-project.md b/docs/ru/gdevelop5/getting_started/open-gdevelop-4-project.md deleted file mode 100644 index 013dc4ada8..0000000000 --- a/docs/ru/gdevelop5/getting_started/open-gdevelop-4-project.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Открытие игры созданной в GDevelop 4 ---- -# Открытие игры созданной в GDevelop 4 - -GDevelop 5 основан на том же движке, что GDevelop 4 и их игры совместимы. Но вы все равно должны убедится, что: - - * Ваша GDevelop 4 игра основана на **HTML5 платформе**. Нативные игры пока не поддерживаются в GDevelop 5. - * **Несколько расширений/функций** не поддерживаются в GDevelop 5. - -Чтобы открыть игру в GDevelop 5, откройте ее в GDevelop 4 и сохраните как json файл: - - * В меню выберите **File > Save as...**. - * Выберите папку и введите имя файла, которое заканчивается **.json**. Например: - -![](/gdevelop5/getting_started/screenshot_2017-12-25_23.14.09.png) - -Нажмите сохранить. Теперь вы можете открыть этот файл в GDevelop 5. - -Убедитесь, **что все работает** прежде чем продолжить создавать вашу игру в GDevelop 5. \ No newline at end of file diff --git a/docs/ru/gdevelop5/index.md b/docs/ru/gdevelop5/index.md deleted file mode 100644 index 9c1257f9ee..0000000000 --- a/docs/ru/gdevelop5/index.md +++ /dev/null @@ -1,22 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) ![learn_create_play-book.png)](/htmlmetatags>metatag-robots=() -metatag-title=(Документация GDevelop) -metatag-keywords=(GDevelop, game, making, app, nocode, open source, создание игр, простой игровой движок) -metatag-description=(Редактор с открытым исходным кодом для создания игр.) -metatag-og/title=(Документация GDevelop) -metatag-og/description=(Редактор с открытым исходным кодом для создания игр.) -metatag-media-og/image=(/gdevelop5/learn_create_play-book.png)) - -# GDevelop 5 - -GDevelop - бесплатный инструмент с открытым исходным кодом для создания кроссплатформенных игр, который может использоваться *без* навыков программирования. Эта вики содержит все, что вам нужно знать о GDevelop - создавайте игры даже если вы никогда раньше не делали этого. - -![](/gdevelop5/interface/scene-editor/pasted/20200628-132624.png) - -## Следующие шаги - -* [Скачайте GDevelop](https://gdevelop.io) и прочитайте [Руководство для начала работы](/ru/gdevelop5/getting_started). -* Если вы никогда раньше не создавали игры прочитайте [Основные концепции создания игр](/ru/gdevelop5/tutorials/basic-game-making-concepts). -* Если вы готовы приступить к созданию игры, посмотрите [Официальные вводные видеоуроки](https://www.youtube.com/watch?v=bR2BjT7JG0k&list=PL3YlZTdKiS89Kj7IQVPoNElJCWrjZaCC8) или [посмотрите учебные материалы](/ru/gdevelop5/tutorials). diff --git a/docs/ru/gdevelop5/interface/index.md b/docs/ru/gdevelop5/interface/index.md deleted file mode 100644 index ab9ac0ab50..0000000000 --- a/docs/ru/gdevelop5/interface/index.md +++ /dev/null @@ -1,45 +0,0 @@ ---- -title: Интерфейс GDevelop ---- -# Интерфейс GDevelop - -![](/gdevelop5/screen_shot_2017-09-18_at_01.30.20.png) - -Интерфейс GDevelop основан на различных редакторах, отображаемых во вкладках, которые позволяют редактировать части вашей игры. - -## Стартовая страница - -Стартовая страница появляется при запуске GDevelop. В ней вы можете создать новый проект или открыть существующий. - -При старте, GDevelop проверяет есть ли новые обновления и автоматически загружает их. [Вы можете следить за процессом нажав на About GDevelop](/ru/gdevelop5/interface/updates). - -## Менеджер проекта - -Когда открыт проект, вы можете нажать на верхнюю-левую кнопку, чтобы получить доступ к менеджеру проекта. - -![](/gdevelop5/project-manager-button.png) - -Менеджер проекта отображает структуру вашей игры: - -![](/gdevelop5/project-manager-tab.png) - -С помощью менеджера проекта, вы можете добавлять новые элементы в вашу игру и открывать редакторы. -Узнайте больше о [содержимом менеджера проектов](/ru/gdevelop5/interface/project-manager). - -## Редактор сцены - -При открытии сцены (или внешнего макета), запустится редактор сцены. В нем можно проектировать и изменять уровни и меню вашей игры, создавая и добавляя объекты на сцену. - -[Узнайте больше о том, как использовать редактор сцены](/ru/gdevelop5/interface/scene-editor). - -## Редактор событий - -При открытии сцены (или внешних событий) также открывается редактор событий. Здесь вы можете добавлять различные события, чтобы создать реальный игровой процесс, который позволит игрокам взаимодействовать с вашей игрой. Редактор событий - инструмент, который позволяет визуально запрограммировать игру без каких либо знаний о языках программирования или опыта в них. Так что любой человек может сделать игру в GDevelop. - -Узнать больше о [работе с ним можно на этой странице](/ru/gdevelop5/interface/events-editor) или посмотрите [статью о событиях](/ru/gdevelop5/events). - -## Верхнее меню - -Меню в верхней части экрана (только в декстопной версии) позволяет открыть, сохранить и [опубликовать игру](/ru/gdevelop5/publishing). - -Также вы можете открыть настройки GDevelop или посмотреть [профиль связанный с вашим аккаунтом GDevelop](/ru/gdevelop5/interface/profile). \ No newline at end of file diff --git a/docs/ru/gdevelop5/interface/project-manager.md b/docs/ru/gdevelop5/interface/project-manager.md deleted file mode 100644 index e45d021a19..0000000000 --- a/docs/ru/gdevelop5/interface/project-manager.md +++ /dev/null @@ -1,28 +0,0 @@ ---- -title: Менеджер Проекта ---- -# Менеджер Проекта - -Когда открыт проект, вы можете нажать на верхнюю-левую кнопку, чтобы получить доступ к менеджеру проекта. -![](/gdevelop5/project-manager-button.png) - -Менеджер проекта отображает структуру вашей игры. - -![](/gdevelop5/interface/projectmanager2.png) - -Вы можете разворачивать и сворачивать каждую категорию, нажимая маленькую стрелку. - - * **Game settings** _(Настройки игры)_: здесь вы можете настроить глобальные параметры вашей игры, такие как размер окна игры по умолчанию или имя пакета для Android и iOS. Так же вы можете [выбрать иконку для вашей игры](/ru/gdevelop5/interface/project-manager/icons). - - * **Scenes** _(Сцены)_: обычно, сцены это разные уровни вашей игры, но не только они. В GDevelop все является [сценами](/ru/gdevelop5/interface/scene-editor) - главное меню, заставка, экран кредитов, все это сцены. - - * **External events** _(Внешние события)_: чтобы сделать разработку игры более гибкой, можно использовать [внешние события](/ru/gdevelop5/interface/events-editor) и связываться с ними каждый раз, когда они будут нужны. Думайте о них, как о методах в программировании. Но если вам не знаком этот термин, просто помните: если часто в разных местах нужно использовать одинаковый набор событий, можно сделать их внешними и вызывать их, когда они будут нужны. - - * **External layouts** _(Внешние макеты)_: подобно событиям, вы можете создавать часто и многократно используемые внешние макеты для загрузки нескольких мест в вашей сцене. - -## Меню File -В **декстоп** версии, меню File позволяет сохранить игру, открыть другую или закрыть ее. Вы также можете [экспортировать вашу игру](/ru/gdevelop5/publishing). -![](/gdevelop5/file-menu.png) - -В **онлайн** версии, эти опции находятся в верху менеджера проекта. -![](/gdevelop5/web-project-manager-tab.png) \ No newline at end of file diff --git a/docs/ru/gdevelop5/interface/updates.md b/docs/ru/gdevelop5/interface/updates.md deleted file mode 100644 index a694e303d4..0000000000 --- a/docs/ru/gdevelop5/interface/updates.md +++ /dev/null @@ -1,24 +0,0 @@ ---- -title: Проверка обновлений ---- -# Проверка обновлений - -При запуске, GDevelop автоматически ищет новые обновления. Вы можете увидеть процесс нажав `About GDevelop` на [стартовой странице](/ru/gdevelop5/interface) или в меню. - -В окне About, вы увидите загружается ли обновление: - -![](/gdevelop5/interface/update-being-downloaded.png) - -Когда это будет сделано, GDevelop сообщит вам, что обновление готово: - -![](/gdevelop5/interface/update-downloaded.png) - -Также может появится уведомление: - -![](/gdevelop5/interface/update-notification-macos.png) - -Теперь можно закрыть GDevelop и открыть его снова: все обновления будут установлены. Снова проверьте окно About, вы увидите обновленный номер версии. - -## Появились проблемы? Снова скачайте GDevelop с сайта - -Если по какой-то причине не получилось обновится или GDevelop после обновления стал работать неправильно, просто [снова скачайте программу с сайта и установите](http://gdevelop-app.com). Ваши настройки не будут потеряны. diff --git a/docs/ru/gdevelop5/publishing.md b/docs/ru/gdevelop5/publishing.md deleted file mode 100644 index 64c65f3b54..0000000000 --- a/docs/ru/gdevelop5/publishing.md +++ /dev/null @@ -1,27 +0,0 @@ ---- -title: Публикация игр ---- -# Публикация игр - -GDevelop позволяет публиковать ваши игры на любой современной платформе! Однако сначала необходимо экспортировать игру. - -Чтобы экспортировать игру, нажмите «Файл» в строке меню над интерфейсом GDevelop. Выберите параметр «Экспорт» в появившемся всплывающем списке. -![](/gdevelop5/file-export-menu.png) - -Далее вам будет предложено несколько вариантов на выбор: -![](/gdevelop5/export-options.png) - - * **[Android (скоро появится iOS)](/gdevelop5/publishing/android_and_ios):** это подготовит вашу игру для Android (скоро появится поддержка iOS). Он строит его онлайн, используя онлайн-сервисы GDevelop. Затем отправляет вам ссылку, чтобы вы могли установить его на Android и [опубликовать в Play Store](/gdevelop5/publishing/android_and_ios/play-store) (или App Store позже для iOS) или в [Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store). - * **[Facebook Instant Games (Messenger)](/gdevelop5/publishing/publishing-to-facebook-instant-games):** подготовьте свою игру, чтобы ее можно было загрузить в Мгновенные игры Facebook и играть в Messenger, поделиться с друзьями и затем опубликовать во всем мире. - * **[Web (загрузка онлайн)](/gdevelop5/publishing/web)**: этот вариант позволяет загрузить вашу игру на хостинг GDevelop бесплатно. Затем вы можете поделиться им с кем угодно одним нажатием кнопки. - * **[Windows, macOS & Linux](/gdevelop5/publishing/windows-macos-linux)**: этот вариант объединяет вашу игру в виде приложения для Windows, macOS или Linux, создает ее онлайн с помощью онлайн-сервисов GDevelop, а затем отправляет вам ссылку, чтобы вы могли распространять игру. - -Также есть экспорт для продвинутых пользователей: - - * **[Экспорт в локальную папку](/gdevelop5/publishing/html5_game_in_a_local_folder):** эта опция позволяет вам экспортировать игру в папку и загружать ее вручную на любой хост, который вы хотите, или перенести игру на настольное или мобильное приложение вручную, используя любой инструмент, который вы предпочитаете, например, Electron. Это идеальное решение для публикации вашей игры на [Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store), [Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) или [Itch.io](/gdevelop5/publishing/publishing-to-itch-io). - * **[iOS & android (вручную)](/gdevelop5/publishing/android_and_ios_with_cordova):** эта опция экспортирует вашу игру, готовую для использования в качестве проекта Cordova. Затем вы можете использовать инструменты командной строки Cordova для создания своей игры для Android и iOS. - * **[Windows, macOS and Linux (вручную)](/gdevelop5/publishing/windows-macos-linux-with-electron):** эта опция экспортирует вашу игру, готовую для использования в качестве проекта Electron. Затем вы можете использовать инструменты командной строки для создания игры для Windows, macOS или Linux. - -Другие варианты выпуска: - - * **[Ubuntu Touch (мобильная версия)](/gdevelop5/publishing/ubuntu-touch-packaging):** это руководство проведет вас через процесс упаковки вашей игры в виде пакета Click для Ubuntu Touch. \ No newline at end of file diff --git a/docs/ru/gdevelop5/tutorials/basic-game-making-concepts.md b/docs/ru/gdevelop5/tutorials/basic-game-making-concepts.md deleted file mode 100644 index 03bfd197ab..0000000000 --- a/docs/ru/gdevelop5/tutorials/basic-game-making-concepts.md +++ /dev/null @@ -1,160 +0,0 @@ ---- -title: basic-game-making-concepts ---- -FIXME **This page is not fully translated, yet. Please help completing the translation.** - -*(remove this paragraph once the translation is finished)* - -# Основные концепции создания игр: что нужно знать, чтобы начать с GDevelop - -Основные концепции создания игр в GDevelop просты. Для начала прочитайте ниже следующую информацию. Если у вас нет GDevelop, [скачайте последнюю версию здесь](https://gdevelop.io/download). - -## Отображение вещей на экране: Объекты - -Всё, что *отображается на экране* называется **"Объект"**. Для отображения игровых элементов на экране могут использоваться разные типы объектов. Например, большинство игровой графики являются объектами "Спрайт", тексты могут отображаться с помощью объектов "Текст" , а специальные эффекты, такие как огонь или искры, могут создаваться с помощью "Излучателей частиц". - -## Позиционирование объектов: Координаты - -Объекты экрана/сцены GDevelop имеют **координаты X и Y**. Эти координаты соответствуют горизонтальной позиции (Ось X) and the vertical position (Ось Y) на *Декартовой плоскости*. - -Координата X *уменьшается* при движении влево и *увеличивается* при движении вправо. Координата Y *увеличивается* при движении вниз и *уменьшается* при движении вверх. - -![pres_coord1.png](/wiki/pres_coord1.png) - -In order to move or rotate objects, you will need to specify the desired angle in degrees. The illustration below demonstrates how GDevelop understands the angle of rotation: - -![pres_coord2.png](/wiki/pres_coord2.png) - -If you use trigonometric functions like the **sine** or the **cosine**, you will need to express the angles in **radians**. (1 radian = 180/PI degrees and 1 degree = PI/180 radians. PI is the number which is approximately equal to 3.14159). - -## Events and how objects are selected by these Events - -Events, that you use to create the rules of your game, are composed of conditions and actions. Most conditions and actions refer to objects: - -* Conditions run a **test** on the objects. * Actions **manipulate** the object. They can change the object position, appearance, etc... - -An action, without a condition, refers to all objects. If you use an object for the first time in an event, GDevelop will test or modify **all objects** with this name in the scene. If you use the object in the same event again, GDevelop will test or modify only the objects which have been picked by the previous conditions. - -For example, this event has no condition. It will delete **all** objects called "Square": - -![](/gdevelop5/tutorials/delete-square.png) - -The event below has a condition. It will delete **only** the "Square" objects with an X position that is less than 100 pixels: - -![](/gdevelop5/tutorials/delete-square-condition.png) - -!!! note - - **See it in action!** 🎮Open this example online: - -[![](/gdevelop5/tutorials/objectselection-pickobject.png)](https://editor.gdevelop.io/?project=example://object-selection) - -## Events: the order is important - -The order of events **does matter**! - -Events at the top are executed first. Events are executed every time your game is displayed. This display is called a frame. It executes about 60 times per second. The following examples are **not** equivalent: - -![](/gdevelop5/tutorials/create-then-delete-square.png) - -![](/gdevelop5/tutorials/delete-then-create-square.png) - -* The first pair of events actions create a "Square" object at coordinates X: 100. Y: 200 (100;200). Then the event deletes the created square immediately. **No** "Square" is displayed on the screen. It's deleted just after being created. * The second pair of events actions deletes all the "Square" objects from the scene/screen. It then creates one "Square" at the scene/screen coordinates X: 100, Y: 200 (100;200). This event shows a square is **visible** on the scene (before being deleted at the next frame. It will, then, be recreated immediately. - -## Behaviors: pre-defined rules and logic for objects - -**Behaviors** allow to enhance an object with some *pre-defined logic*. Behaviors can be fairly simple, automating simple tasks or much more advanced. For example: - -* A behavior can be used to *automatically* remove an object from the game when it *goes out of the screen* (limiting the game memory usage). * Another behavior can be used to *move objects on the screen with the keyboard arrows*. * Yet another behavior can be used to allow the object to be *dragged on screen* with the mouse or by touching the object. * The *Physics* behavior is an example of an advanced behavior which make your objects move in a realistic way, following the laws of physics. - -**Objects** and **Behaviors** can be manipulated using events. You can read the pages about [Objects](/gdevelop5/objects) and [Behaviors](/gdevelop5/behaviors) to know more about them. - -!!! note - - You can create *custom behaviors* for your objects. It's even recommended when your game grows. This allow you to put logic about what your objects are doing in the custom behaviors, rather than bloating the events sheet of the scene. You can [read more in this article](/gdevelop5/tutorials/how-to-make-behavior). - -## Moving objects: using the built-in forces - -Moving objects can be achieved with **forces**. Forces are used to "push" objects. - -You can specify: - -- the coordinates of a force on the X and Y axis, in pixels, -- or its polar coordinates (the force angle, in degrees, and length, in pixels), -- if the force is instant (will only push "a bit" the object) or continuous (will keep pushing the object until it's removed). - -### Example - -Say you want to move an object towards the bottom: - -![pres_vector.png](/wiki/pres_vector.png) - -You can add a force using X/Y coordinates by specifying 0 for the X coordinate and, say, 150 pixels for the Y coordinate. You can also use polar coordinates and add a force with an angle of 90° and a length of 150 pixels. - -### Other ways of moving objects - -Some "behaviors", like the Physics engine or Pathfinding, may move the objects by themselves. In this case, it is better not to use the builtin forces system and instead rely only on actions provided by these behaviors. - -!!! note - - **See it in action!** 🎮Open this example online: - -[![](/gdevelop5/tutorials/moveobjectwithphysics.png)](https://editor.gdevelop.io/?project=example://move-object-with-physics) - -!!! note - - These other ways of moving objects are explained in [this how-to page](/gdevelop5/tutorials/how-to-move-objects). - -## Storing any information in memory: Variables - -A Variable allows you to store **data**. For example, a variable can store a number or a text. We might compare them to drawers or boxes where we can file notes. Any data can be stored in a variable, as long as it is in *text* or *number* format. Such things as the number of lives a player has remaining, a player's high score, the number of bullets left, and/or the number of enemies killed are all examples of what can be stored in a variable. You are probably going to store numbers in variables as a common practice. - -![pres_variable.png](/wiki/pres_variable.png) - -Actions and conditions test or change a variable *value*. - -#### Where are variables stored? (variable "scope") - -The *scope* of a variable determines the place a variable can be accessed. In GDevelop, there are three variable scopes are available: - -* **Global** variables are accessible from all the game scenes. For instance, they can be used to store the player's score across different levels/scenes. * **Scene** variables are only accessible from the scene they are created in. They can be used for data that only concerns one scene. A Scene variable would be able to access the time remaining to complete the level/scene. - -* **Object** variables only concern one object. For example, a hero can have a "Health" or "Ammo" variable. - -!!! note - - Read more about variables on the [Variables](/gdevelop5/all-features/variables) page. Variables are used a lot in games: most examples use them and tutorials will make use of them too. - -!!! note - - Want to see how variables are used in a video tutorial? Check this tutorial: [Variables explained for Non-programmers](https://www.youtube.com/watch?v=SRfpBTgx-PY). - -## An advanced notion: the "time elapsed" since last frame (TimeDelta) - -The game evaluates events and repaints the screen several times per second: we say that the game is *refreshed*, *updated* during a "tick". How often this happens depends on your computer resources: a slow computer can render 25 frames per second, a fast one 60. GDevelop can usually make sure that this value is the same on all computers. However, the speed of some operations can change from computer to computer, for example, mathematical operations and the rendering of movements. - -To make the speed of changes constant, use the *`TimeDelta()` expression*, which returns the time in seconds since the last frame. For example, don't do this: - -![](/gdevelop5/tutorials/update-life-no-timedelta.png) - -But do this instead: - -![](/gdevelop5/tutorials/update-life-timedelta.png) - -* The first event is adding 20 to the variable every time the game is refreshed (i.e. as much as possible, up to 60 times per second). It's **not correct** to use such event as the speed of the increase of the variable will not be the same from computer to computer: we cannot predict the value of the variable after 10 seconds for example - as it depends on the number of frames of the game painted. - -* The second event is **correct and reliable** : The number 300 is multiplied by TimeDelta(). Thus, the variable will be increased at the same time on all computers. As TimeDelta() returns a time in second, it allows you to quantify exactly the amount: In our case, the variable will grow at 300 units/second. Thus, we can predicate that life will increase by 3000 units in 10 seconds - whatever the number of frames painted during this time. - -!!! note - - As GDevelop will run your game at a maximum of 60 images per second, you usually won't notice an issue if you're using the first event. It's still a good idea to keep an eye on this and use the version with `TimeDelta()` instead. - -**Rule of Thumb:** Use _TimeDelta()_ when you want to continually add some amount to a value. If your action is meant to be launched only once (for example, during a collision where you then delete the object), it's ok to use a discrete value without TimeDelta - as it does not depend on the speed of the game. - -!!! note - - When you're moving an object using forces, there is no need to use TimeDelta() as GDevelop automatically uses it. - -## And... that's almost all you need to know - -➡️ You can continue to read **[the tutorials](/gdevelop5/tutorials)** to know more about creating real games with GDevelop! diff --git a/docs/ru/gdevelop5/tutorials/index.md b/docs/ru/gdevelop5/tutorials/index.md deleted file mode 100644 index c9f7e278f1..0000000000 --- a/docs/ru/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: GDevelop 5 учебных пособий ---- -# GDevelop 5 учебных пособий - -Эти учебные пособия представляют собой пошаговые руководства, объясняющие, как создать игру с нуля: - -!!! tip - - Если вы используете GDevelop в первый раз, рекомендуется начать с этих руководств - - * **[Основные концепции создания игр: что нужно знать, чтобы начать с GDevelop](/gdevelop5/tutorials/basic-game-making-concepts)** - * **[Создать платформенную игру](/gdevelop5/tutorials/platformer)** - * **[Геометрия Монстр: полная и простая мобильная игра](/gdevelop5/tutorials/geometry-monster)** - -Уроки сообщества: - - * [Создайте простую игру Tank Shooter](/gdevelop5/tutorials/tank-shooter) - * [Создайте простую игру Endless Runner](/gdevelop5/tutorials/endless-runner) - * [Создать простую игру Breakout](/gdevelop5/tutorials/roadrider) - ----- - -# GDevelop краткие руководства («как») -В следующих руководствах приведены пояснения для определенных частей GDevelop. Они также показывают вам некоторые продвинутые механизмы для разработки ваших игр: - - * [Как перемещать объекты в вашей игре (все разные решения)](/gdevelop5/tutorials/how-to-move-objects) - * [Как оживить прыжок и падение персонажа в платформерной игре](/gdevelop5/tutorials/how-to-animate-jump-fall-platformer) - * [Как отобразить большой фон в вашей игре](/gdevelop5/tutorials/how-to-display-big-background) - * [Как отладить низкую производительность игры](/gdevelop5/tutorials/how-to-debug-poor-performance) - * [Аукцион хранения объяснил](/gdevelop5/tutorials/storage-action-explained) - * [Как уменьшить размер вашей игры](/gdevelop5/tutorials/reduce-size-game) - * [Как обращаться со сложной логикой - конечный автомат (FSM)](/gdevelop5/tutorials/finite_state_machine) - * [Как использовать GDevelop в команде (несколько разработчиков и товарищей по команде)](/gdevelop5/tutorials/how-to-use-GDevelop-as-a-team) - ----- - -# Другие руководства -Приведенные ниже руководства содержат пояснения, связанные с разработкой игр. Они не являются специфичными для GDevelop. - - * [Опубликуйте свою игру на itch.io](/gdevelop5/publishing/publishing-to-itch-io) - * [Опубликуйте свою игру в Amazon App Store](/gdevelop5/publishing/publishing-to-amazon-app-store) - * [Публикация вашей игры в Game Jolt](/gdevelop5/publishing/publishing-to-gamejolt-store) - * [Публикация вашей игры в Kongregate](/gdevelop5/publishing/publishing-to-kongregate-store) - ----- - -# GDevelop видео-уроки - - * Смотри [список видео-уроков, созданных Сообществом](/gdevelop5/tutorials/videos) - - ----- - -# Ресурсы -Ссылки на сторонние веб-сайты, где вы можете найти спрайты, музыку и звуковые эффекты для ваших игр и примеры игр, шаблоны и программное обеспечение, которые помогут вам в разработке игр. - - * [Список ресурсов](/gdevelop5/tutorials/resources) \ No newline at end of file diff --git a/docs/ru/index.md b/docs/ru/index.md deleted file mode 100644 index 6e31bbddc6..0000000000 --- a/docs/ru/index.md +++ /dev/null @@ -1,33 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop Wiki - -GDevelop это доступный каждому кросс-платформенный инструмент с открытым исходным кодом для создания собственных игр - для этого вовсе не нужно иметь навыки программирования. Если у вас ещё нет GDevelop, [быстрее качайте](https://gdevelop.io/download)! - -Эта wiki поможет вам освоиться с программой, а так же предложит пару уроков по использованию: любые дополнения приветствуются! - -## Уроки и видео - -Изучите как использовать GDevelop при помощи **[уроков](/ru/gdevelop/tutorials)**. - -## Полная документация - -**[Документация GDevelop](/ru/gdevelop/documentation)** содержит полную информацию по всем аспектам. - -## Wiki на других языках - -![](/fr.png)[⇒ Wiki на французском](/fr/start) - -Кликните на флаг вверху любой страницы, чтобы переключить язык. -Вы можете помочь перевести wiki на один из этих языков: - -![](/zh.gif)[⇒ Китайская wiki](/zh/start) -![](/de.png)[⇒ Немецкая wiki](/de/start) -![](/pt.png)[⇒ Португальская wiki](/pt/start) -![](/ru.png)[⇒ Русская wiki](/ru/start) -![](/es.png)[⇒ Испанская wiki](/es/start) -Просто создайте аккаунт на wiki и используйте кнопку с гаечным ключом вверху, чтобы создавать или редактировать страницы. Вы так же можете [помочь с переводом GDevelop и его сайта](http://crowdin.com/project/gdevelop). diff --git a/docs/si.png b/docs/si.png deleted file mode 100644 index 28ab2a407f..0000000000 Binary files a/docs/si.png and /dev/null differ diff --git a/docs/sl/gdevelop5/create-new-project-window.png b/docs/sl/gdevelop5/create-new-project-window.png deleted file mode 100644 index b1e2a0cfb0..0000000000 Binary files a/docs/sl/gdevelop5/create-new-project-window.png and /dev/null differ diff --git a/docs/sl/gdevelop5/delovni_vmesnik2.png b/docs/sl/gdevelop5/delovni_vmesnik2.png deleted file mode 100644 index 5e75e56033..0000000000 Binary files a/docs/sl/gdevelop5/delovni_vmesnik2.png and /dev/null differ diff --git a/docs/sl/gdevelop5/getting_started.md b/docs/sl/gdevelop5/getting_started.md deleted file mode 100644 index aa0a870125..0000000000 --- a/docs/sl/gdevelop5/getting_started.md +++ /dev/null @@ -1,69 +0,0 @@ ---- -title: Za začetek ---- -# Za začetek -## Preizkusite GDevelop na spletu ali prenesite namizno različico - -* Za začetek lahko [preizkusite GDevelop na spletu](https://editor.gdevelop.io). -* Da bi ustvarili svojo igro, jo shranili in objavili, [prenesite namizno različico s spletne strani GDevelop](https://gdevelop.io/sl/). - -Ko ste GDevelop prenesli, odprite namestitveni program in namestite programsko opremo.: - -* V okolju Windows po zagonu namestitve uporabite *GDevelop ikono* na namizju, da ga zaženete. Lahko tudi *razširite* namestitveni program (denimo zip datoteko) in program prenesete v poljuben imenik. -* V MacOS okolju zaženite *DMG datoteko*, povlecite GDevelop v *Applications* in odprite GDevelop iz imenika Applications. -* V Linuxu *razširite* arhiv in zaženite izvršljivo datoteko. - -Ko je program zagnan, se boste znašli na začetni strani. Tu lahko izberete obstoječ projekt ali usvtarite novega. - -![](/sl/gdevelop5/start_page_sl.png) -} -## Ustvarjanje novega projekta - -Da bi ustvarili nov projekt, izberite "Ustvari nov projekt" na začetni strani. - -Odprlo se bo novo okno, ki ponuja seznam možnosti in vam omogoča izbiro predlog/primerov ali ustvarjanje praznega projekta. Primeri prikazujejo, kako uporabljati določene funkcije, medtem ko so začetni projekti bolj napredne igre, ki jih lahko preizkusite, se iz njih učite in jih spremenite. - -Prazen projekt ne vsebuje nobenih elementov, dogodkov ali scen - igra je povsem prazna. - -![](/sl/gdevelop5/create-new-project-window.png) - -Na dnu okna lahko izberete lokacijo, kamor boste shranili svoj nov projekt. -![](/gdevelop5/project-default-location.png) - -Ko ste izbrali privzeto lokacijo za svoj projekt, kliknite na ime začetne predloge ali primer, da odprete igro. - -!!! note - - Privzeto se nove igre shranjujejo v imenik, ki se imenuje "GDevelop Projects", ki se nahaja v vašem imeniku "Dokumenti". - - -## Odpiranje obstoječega projekta - -Za ponovno odpiranje obstoječega projekta na začetni strani izberite "Odpri projekt". - -Potem poiščite v svojem datotečnem sistemu datoteko projekta. GDevelop 5 projekti so privzeto shranjeni kot ".json" datoteke. - -![](/gdevelop5/project-file.png) - -Ikona te datoteke je odvisna od tega ali imate ali nimate na vašem računalniku nameščene privzete aplikacije za urejanje ".json" datotek. - -*Opomba:* Uporabniki GDevelop 4 lahko [tu izvedo kako shraniti svoj projekt in ga odpreti v GDevelop 5](/gdevelop5/getting_started/open-gdevelop-4-project). - -## Naslednji korak: začnite z vodniki - -Nadaljujte z branjem **[osnovnih koncetopv, da spoznate, kako uporabljati GDevelop](/gdevelop5/tutorials/basic-game-making-concepts)**. - -Vodniki so skupaj z dokumentacijo najboljši način za učenje. Priporočljivo je, da preberete in sledite [vodniku](/gdevelop5/tutorials)! - -## Izvedite več o GDevelop-u - -Za več informacij za uporabo GDevelop-a obiščite naslednje strani, kjer je vse bolj podrobno razloženo: - - * [interface](/sl/gdevelop5/interface) - * [objects](/sl/gdevelop5/objects) - * [behaviors](/gdevelop5/behaviors) - * [events](/gdevelop5/events) - * [all features](/gdevelop5/all-features) - * [publishing](/gdevelop5/publishing) - -Preverite tudi **primere**, ki so priloženi GDevelop-u. Predstavljajo dober način za učenje o različnih zmožnostih programa. \ No newline at end of file diff --git a/docs/sl/gdevelop5/index.md b/docs/sl/gdevelop5/index.md deleted file mode 100644 index 7182dcd9df..0000000000 --- a/docs/sl/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 - -Develop je odprtokodni, večplatformski igralni pogon, oblikovan za vsakogar - za uporabo ne zahteva znanja programiranja. Če ga še niste uporabljali [ga preizkusite na spletu](https://editor.gdevelop.io) ali [prenesite namizno različico](http://gdevelop.io/download)! - -Ta wiki je namenjen učenju o programski opremi in ponuja vodnike za njeno rabo: Vaši prispevki so dobrodošli! - -# Za začetek - -➡️Za začetek uporabe GDevelop 5, preberite [stran Za začetek](http://wiki.compilgames.net/doku.php/sl/gdevelop5/getting_started), **[osnovne koncepte za ustvarjanje iger](/gdevelop5/tutorials/basic-game-making-concepts)** in preglejte [vodnike](/gdevelop5/tutorials). diff --git a/docs/sl/gdevelop5/interface.md b/docs/sl/gdevelop5/interface.md deleted file mode 100644 index d48d16cfea..0000000000 --- a/docs/sl/gdevelop5/interface.md +++ /dev/null @@ -1,56 +0,0 @@ ---- -title: GDevelop vmesnik ---- -# GDevelop vmesnik - -GDevelop delovni vmesnik je zgrajen okoli urejevalnikov, ki so prikazani v zavihkih. Ti urejevalniki omogočajo spreminjanje delov vaše igre. - -![](/sl/gdevelop5/delovni_vmesnik2.png) - -## Začetna stran - -Začetna stran se prikaže, ko prvič zaženete GDevelop. Tukaj ustvarjate projekte, naložite obstoječe ali naložite vodnike. - -![](/sl/gdevelop5/start_page_sl.png) - -Ob zagonu bo GDevelop preveril ali obstajajo nove posodobitve. Če je kakšna na voljo, se bo posodobitev samodejno prenesla. - -Napredek lahko vidite [s klikom na O GDevelop](/gdevelop5/interface/updates). - -## Upravljanik projektov - -Ko je odprt projekt, lahko kliknete na zgornji levi gumb, da odprete upravljalnik projektov. - -![](/gdevelop5/project-manager-button.png) - -Upravljalnik projektov prikazuje strukturo vaše igre: - -![](/sl/gdevelop5/upravljalnik_projektov.png) - -Z upravljalnikom projektov lahko v svojo igro dodajate nove elemente in odpirate urejevalnike. -Izvedite več o [vsebini upravljalnika projektov](/gdevelop5/interface/project-manager). - -## Urejevalnik scen - -Ko odprete sceno (ali zunanjo postavitev), se odpre scenski urejevalnik. -Tukaj lahko oblikujete in gradite nivoje svoje igre in meniju z ustvarjanjem in dodajanjem objektov v sceno. - -[Naučite se več o uporabi urejavlnikov scene](/gdevelop5/interface/scene-editor). - -## Urejevalnik dogodkov - -Ko odprete sceno (ali zunanji dogodek), se pojavi urejevalnik dogodkov. Tukaj lahko uporabljate dogodke ali ustvarite dejansko izvedbo igre in omogočite igralcem interakcijo z vašo igro in njeno igranje. -Urejevalnik dogodokov je orodje, ki omogoča vizualno programiranje vaše igre, brez specifičnega poznavanja programskega jezika ali izkušenj. - -Izvedite več o [rabi urejevalnik dogodkov](/gdevelop5/interface/events-editor) ali preverite [pomoč za dogodke](/gdevelop5/events). - -## Zgornji meniji - -Meni na vrhu zaslona (le v namizni različici) omogoča odpiranje, shranjevanje in [gdevelop5:publishing|objavo igre]]. - -Lahko odprete tudi GDevelop lastnosti ali pogledate [profil svojega GDevelop računa](/gdevelop5/interface/profile). - -## Teme vmesnika - -Lhako izberete želeno temo. Privzeto ima GDevelop dve temi - belo ali **Default White Theme** in temno ali **Dark Theme**. Za zamenjavo na drugo temo pojdite na **Datoteka**->**Nastavitve**. -Lahko ustvarite tudi svoje teme in jih delite z drugimi. Izvedite več o ustvarjanju tem [tukaj](/gdevelop5/all-features/themes). \ No newline at end of file diff --git a/docs/sl/gdevelop5/objects.md b/docs/sl/gdevelop5/objects.md deleted file mode 100644 index 67e30f5271..0000000000 --- a/docs/sl/gdevelop5/objects.md +++ /dev/null @@ -1,20 +0,0 @@ ---- -title: Objekti ---- -# Objekti - -GDevelop igre temeljijo na objektih, ki so prikazani na sceni. Mogoče jih je animirati, premikati in spreminjati na različne načine. Na voljo so različne vrste objektov z različno funkcionalnostjo: - -* [Features for all objects](/gdevelop5/objects/base_object) -* [Sprite objects](/gdevelop5/objects/sprite) -* [Tiled Sprite objects](/gdevelop5/objects/tiled_sprite) -* [Particle emitters](/gdevelop5/objects/particles_emitter) -* [Text objects](/gdevelop5/objects/text) -* [Panel Sprite ("9 patch") objects](/gdevelop5/objects/panel_sprite) -* [Text entry objects](/gdevelop5/objects/text_entry) -* [Shape Painter objects](/gdevelop5/objects/shape_painter) -* [Video objects](/gdevelop5/objects/video) (experimental) - -Obstajajo tudi funkcionalnosti, ki delujejo brez objektov, kot npr. AdMob, ki omogoča prikazovanje oglasov na Android ali iOS napravi. Več o AdMob si lahko preberete [tukaj](/gdevelop5/all-features/admob). - -O ostalih funkcijah [si več preberite tukaj](/gdevelop5/all-features). \ No newline at end of file diff --git a/docs/sl/gdevelop5/start_page_sl.png b/docs/sl/gdevelop5/start_page_sl.png deleted file mode 100644 index 7d45dbd09f..0000000000 Binary files a/docs/sl/gdevelop5/start_page_sl.png and /dev/null differ diff --git a/docs/sl/gdevelop5/upravljalnik_projektov.png b/docs/sl/gdevelop5/upravljalnik_projektov.png deleted file mode 100644 index 230e51d00b..0000000000 Binary files a/docs/sl/gdevelop5/upravljalnik_projektov.png and /dev/null differ diff --git a/docs/sl/index.md b/docs/sl/index.md deleted file mode 100644 index 3018adfcf4..0000000000 --- a/docs/sl/index.md +++ /dev/null @@ -1,42 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -!!! note - - Verjetno iščete **GDevelop 5** dokumentacijo. [Kliknite sem, da odprete GDevelop 5 Wiki](/gdevelop5/start). - -# GDevelop 4 Wiki - -Develop je odprtokodni, večplatformski igralni pogon, oblikovan za vsakogar - za uporabo ne zahteva znanja programiranja. Če nimate Gdevelop-a, [ga prenesite sedaj](http://gdevelop-app.com/sl/). - -Ta Wiki je namenjen učenju programa in ponuja vodnike za uporabo: vaš prispevek je dobrodošel! - -## Vodniki in videi - -Naučite se uporabljati Gdevelop 4 s pomočjo **[vodnikov](/gdevelop/tutorials)**. - -## Celotna dokumentacija - -Preberite **[GDevelop 4 dokumentacijo](/gdevelop/documentation)** za celotno referenco. -!!! note - - Če uporabljate **GDevelop 5**, je na na voljo nova dokumentacija. [Kliknite tukaj za GDevelop 5 Wiki](/gdevelop5/start). - -## Wiki v drugih jezikih - -Kliknite na zastavo na vrhu katerekoli strani, da preklopite jezik. -Vaša pomoč za oblikovanje wikijev za te jezike je dobrodošla: - -- ![](/fr.png)[⇒ Wiki Français](/fr/start) -- ![](/zh.gif)[⇒ Chinese wiki](/zh/start) -- ![](/de.png)[⇒ German wiki](/de/start) -- ![](/pt.png)[⇒ Portuguese wiki](/pt/start) -- ![](/ru.png)[⇒ Russian wiki](/ru/start) -- ![](/es.png)[⇒ Spanish wiki](/es/start) -- ![](/pl.png)[⇒ Polish wiki](/pl/start) -- ![](/si.png)[⇒ Slovenski wiki](/sl/start) - -Ustvarite račun za wiki in uporabite zgornji meni za ustvarjanje ali urejanje strani. Lahko uporabite tudi [in pomagate prevesti GDevelop in njegovo spletno stran](http://crowdin.com/project/gdevelop). diff --git a/docs/stylesheets/extra.css b/docs/stylesheets/extra.css index f3cfa4932c..02a330775d 100644 --- a/docs/stylesheets/extra.css +++ b/docs/stylesheets/extra.css @@ -39,6 +39,12 @@ nav.md-tabs { padding: 4px; } +/** Change admonition (call-outs) tweaks */ +.md-typeset .admonition { + /* Default font size was too small. */ + font-size: 14px; +} + /** * Fix the performance of the sidebar menu on mobile/tablets: * Use `display: none` to ensure submenus are not rendered at all and so don't take @@ -137,4 +143,4 @@ article .video-container > video { article .video-container > video { width: 100% } -} \ No newline at end of file +} diff --git a/docs/zh.gif b/docs/zh.gif deleted file mode 100644 index b052530978..0000000000 Binary files a/docs/zh.gif and /dev/null differ diff --git a/docs/zh/gdevelop5/getting_started.md b/docs/zh/gdevelop5/getting_started.md deleted file mode 100644 index 641d40dffd..0000000000 --- a/docs/zh/gdevelop5/getting_started.md +++ /dev/null @@ -1,76 +0,0 @@ ---- -title: 入门 ---- -# 入门 - -## 在线试用GDevelop或者下载桌面版 - -* 如果您想尝鲜,请[在线试用GDevelop](https://4ian.github.io/GD)。 -* 如果您想创建、保存并发布游戏,请[在GDevelop网站下载桌面版](http://compilgames.net)。 - -当您下载完成之后,请进行安装,之后点击桌面上的GDevelop图标启动该应用程序。 -一旦应用程序加载完成后,您将首先看到启动页,这里您可以打开已有的工程或者创建新工程。 - -![](/gdevelop5/start_page.png) - -#### 打开已有工程 - -要打开已有工程,请在启动页选择对应选项。 - -接下来您需要浏览本地文件系统来打开一个工程。GDevelop 5工程通常保存为“game.json”文件。找到并选择该文件来打开整个工程。 -![](/gdevelop5/project-file.png) - -此文件的图标显示将取决于您是否在计算机上安装了应用程序来默认打开它。 - -!!! note - - game.json将默认保存在: - - * Windows: C:/Users/您的用户名/GDevelop Projects - * macOS and Linux: 您个人文件夹下的GDevelop Projects目录 - - -一旦您打开了工程,编辑器就将显示出来。不过我们会稍后讲解,接下来我们看看如何创建新工程。 - -**注意:** GDevelop 4用户,您可以[在这里学习如何保存工程并在GDevelop 5中打开](/gdevelop5/getting_started/open-gdevelop-4-project)。 - -#### 创建新工程 -要创建新工程,请在启动页选择对应选项。 - -在下一窗口中,您可以从模版选择或者创建空白工程。模版在启动时已经包含了一些物资以及事件,而空板工程则不包括任何内容,您需要从头开始。 -![](/gdevelop5/create-new-project-window.png) -由于本页的目的是教导您开始使用GDevelop,这里让我们来创建空白工程。 - -首先,请选择您将在何处保存新的工程。您可能已经注意到了,在创建工程页面的下方已经出现了默认路径。 -![](/gdevelop5/project-default-location.png) -如果您想要选择其他的路径,请点击路径框旁边的Choose Folder(选择目录)按钮: -![](/gdevelop5/choose-folder-button.png) -下一步,在您本地的文件系统中浏览并选择工程保存路径。 - -当您选择或者决定使用默认路径时,请直接点击Empty game(空白游戏)按钮来创建空白工程。 -![](/gdevelop5/empty-game-button.png) - -接下来无论您创建了空白工程,或者选择了模板,都将看到编辑器。 - -#### 更多 - -有关如何使用GDevelop的进一步信息,我建议您访问如下页面,其中更详细的解释了所有内容: - - * [GDevelop界面](/gdevelop5/interface) - * [GDevelop对象](/gdevelop5/objects) - * [GDevelop 行为](/gdevelop5/behaviors) - - -#### 教程 - -您也可以在本百科上找到教程: - - * [GDevelop 教程](/zh/gdevelop5/tutorials) - -#### 示例 - -您可以在这里找到各种例子和模板,让您从零开始制作自己的游戏: - - * [gametemplates.itch.io](https://gametemplates.itch.io/) - - diff --git a/docs/zh/gdevelop5/index.md b/docs/zh/gdevelop5/index.md deleted file mode 100644 index 22e52b7570..0000000000 --- a/docs/zh/gdevelop5/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: start ---- -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 5 - -GDevelop 是一个开源、跨平台的**游戏编写器**,其设计为为任何人可用 - 无需任何编程技巧。如您从未使用过GDevelop, [请在线试用](https://4ian.github.io/GD)或者[下载桌面版](http://gdevelop-app.com)! - -此**维基百科**旨在教导您如何使用本软件,并指导您入门。同样我们欢迎您对其作出贡献! - -# 入门 - -要开始学习GDevelop 5,请首先阅读[入门页](/zh/gdevelop5/getting_started)并浏览[教程](/zh/gdevelop5/tutorials). diff --git a/docs/zh/gdevelop5/tutorials/index.md b/docs/zh/gdevelop5/tutorials/index.md deleted file mode 100644 index 6943fd55ba..0000000000 --- a/docs/zh/gdevelop5/tutorials/index.md +++ /dev/null @@ -1,14 +0,0 @@ ---- -title: GDevelop 5教程 ---- -# GDevelop 5教程 - -本教程讲逐步指导您如何从头建立一个游戏: - - * [创建一个平台游戏](/gdevelop5/tutorials/platformer) - * [创建一个简单的坦克射击游戏](/gdevelop5/tutorials/tank-shooter) - - ----- - -本维基百科可以由任何人改进:别犹豫,现在就建立账户,并通过完善文档、修正错误以及编写新的教程来做出您的贡献! \ No newline at end of file diff --git a/docs/zh/gdevelop5/tutorials/platform-game/index.md b/docs/zh/gdevelop5/tutorials/platform-game/index.md deleted file mode 100644 index 4d6e77ebf8..0000000000 --- a/docs/zh/gdevelop5/tutorials/platform-game/index.md +++ /dev/null @@ -1,178 +0,0 @@ ---- -title: 如何制作一个平台游戏 ---- -# 如何制作一个平台游戏 - -这个教程将帮助您开始使用 **GDevelop**: -您将要创建一个非常简单的平台类型的游戏,玩家可以在平台上跳跃及收集钱币。 - -请注意,您可以阅读 [入门](/gdevelop5/getting_started) 页面以获得软件的概述:它解释了主要概念并描述了**GDevelop**的界面。 - -## 下载 GDevelop - -如果您还没有安装 **GDevelop 5**, 从以下网址下载 [official website](https://gdevelop.io). 它适用于Windows、macOS和Linux。 - -请始终从该页面下载GDevelop,以确保具有最新版本。安装(或提取)GDevelop并启动它。 - - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_22.57.02.png) - -## 创建一个新游戏 - -在开始页面点击 `Create a new project`. 在窗口中, 为你的项目选择一个文件夹并且选择`Empty project` 开始一个新的游戏。 - -![](/gdevelop5/tutorials/platform-game/screenshot_20190604200258.png) - -为了制作我们的游戏, 我们需要我们可以使用的资源 (玩家角色, 几个平台, 可以收集的物体...). 您可以从此处下载资源: http://www.compilgames.net/dl/PlatformerTutorialResources.zip. - -下载完这个文件之后,在您项目所在的文件夹解压出其中的内容. - -## 添加一个场景 - -场景是你游戏的部件之一. 通常情况下,你游戏中的每个不同的屏幕都是一个场景: 主菜单, 暂停菜单以及关卡都是场景. - -场景包含显示在屏幕上的对象. 这些对象可以被放置在场景中来创建关卡 (这些对象被叫做"实例"). 场景中也包含事件用于在场景中运行动画. - -在左侧已经打开的项目管理器中,在“场景(Scenes)”下点击 `+` 按钮: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.26.09.png) - -一个叫做 "New scene"的新场景被创建了, 并且添加到了列表中. 点击并打开它. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.30.40.png) - -## 创建一个玩家对象 - -玩家将会控制一个角色,它可以在平台上跳跃并移动. 我们将要创建这个对象. - -在右侧, 有一个叫做"对象"的面板. 点击 `+` 按钮创建一个对象. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.32.40.png) - -将弹出一个窗口,显示您可以从中选择的不同类型的对象。 - -![](/gdevelop5/tutorials/platform-game/gd5_object_types1.png) - -不同种类的对象提供特定的功能。对于大多数对象,我们将使用Sprite对象,这些对象是动画对象,可以用于许多元素(播放器、平台、敌人、项目…)。 - -在列表中点击 `Sprite`. 新对象将添加到场景中,并打开了对象编辑器: - -![](/gdevelop5/tutorials/platform-game/screenshot_20190604200645.png) - -对象暂时为空。精灵对象由动画组成,每个动画可以包含一个或多个图像。让我们添加一个动画!单击“+”按钮。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.35.50.png) - -动画已添加,但仍为空,没有图像。若要添加图像,请单击空白缩略图中的“+”。 - -在项目文件夹中选择名为“p1_stand”的图像。图像将添加到对象: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.44.56.png) - -现在可以通过单击右下角的“应用(Apply)”按钮关闭编辑器。 - -## 将对象放置在场景中 - -为了在关卡中显示玩家, 我们将其放置在场景中。我们添加到场景中的每个对象都被叫做对象的“实例”. - -我们的玩家实例是唯一的,因为我们在此关卡中只能有一个。但是其他对象(例如平台、钱币、敌人。。。) 可以在场景中有多个实例同时存活。 - -要添加对象到场景, 简单地从列表中拖拽对象到场景中即可. - -![](/gdevelop5/tutorials/platform-game/add-player.gif) - -## 给对象起一个合适的名字 - -为了非常容易地在游戏中引用对象, 给他起一个名字而不使用默认名字. 在其上鼠标右键(或者点击 `⋯` 图标) 选择“重命名”.然后你可以输入 "Player" 并在屏幕的任意位置点击一下或者按下回车键给这个对象改名. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.53.10.png) - -## 添加平台 - -当前关卡还没有任何平台,还是空的,我们添加一些。 - -在对象列表中点击`+` 按钮添加一个新对象。 此时当被询问对象类型, 选择`Tiled Sprite(瓦块精灵)` : - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.54.52.png) - -对象编辑器被打开了. 它与精灵对象编辑器稍有不同, 因为瓦块精灵是没有动画的. - -点击 `Select an image(选择一个图片)` 然后 `Choose a new image(选择一个新图片)`. 此时, 选择名字叫 `grassHalfMid`的图片. - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.57.28.png) - -点击右下角的"Apply(应用)" 按钮关闭编辑器. 在对象列表中选择刚才创建的对象,并将其拖拽到场景中: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-24_at_23.59.05.png) - -对象被加入到了场景之中,但是它非常小. 单击它并使用手柄调整大小,使其看起来像一个平台:: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.00.01.png) - -另外,不要忘记将对象重命名为“GrassPlatform”,而不是默认名称。 - -### 保存的时候到了 - -让我们不要丢去我们到目前为止所做的:在应用程序“文件”菜单中,单击“保存”(或按Ctrl+s/Cmd+s)保存您的更改。 - -## 向对象添加行为 - -### 玩家 - -玩家的移动可以通过GDevelop事件来创建,但是要重建一个好的platformer引擎将是一个相当长且困难的任务。幸运的是,GDevelop已经内置了一个完整的platformer引擎,我们可以使用它。为此,我们需要使用“platformer行为”,它允许我们访问和使用内置的platformer引擎。 - -打开“(Player)玩家”对象编辑器: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.02.34.png) - -切换到“行为”选项卡并单击“+”按钮向对象添加行为。在可用行为列表中选择“Platformer character”。 - -然后,您可以在编辑器中看到该行为,并使用许多可以调整的参数: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.04.41.png) - -你可以改变一些属性,比如跳跃速度。例如,将其设置为800,以便跳跃更有力。 - -### 平台 - -我们还需要将对象设置为平台,以便玩家可以在平台上行走和跳跃。否则,玩家会从物体上掉下来,因为我们没有告诉我们的角色当他们着陆时该怎么做。通过将对象设置为平台,platformer角色将与之碰撞并能够在其上行走。 - - - -要将GrassPlatform对象设置为平台,请打开GrassPlatform对象编辑器。切换到“行为”选项卡,然后添加行为:这次,选择“平台”行为。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.09.42.png) - -您还可以更改一些选项。例如,选项“Can grab platform ledges”允许platformer角色抓取平台的边缘。如果我们现在启用这个选项,结果看起来会很奇怪,因为当角色抓取边缘时,我们没有要显示的动画。让我们不受限制。 - -## 开始预览 - -此时,您应该可以通过按工具栏屏幕顶部的“预览”按钮来测试您的游戏。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.13.25.png) - -当您按下按钮时,将生成一个预览,然后,将打开一个新窗口。 - -您应该可以使用默认键来走动和跳跃:使用箭头键移动字符,然后按“Shift”或“Space”来跳跃!请随意添加一些其他平台到场景中,就像我们以前做的那样。确保将行为添加到平台中,以避免角色失败。 - -目前,该对象没有动画,我们稍后将添加一些动画。 - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.14.18.png) - -如果对象没有移动,请检查前面的步骤确保添加了正确的行为。 - -## 更改背景颜色 - -灰色的背景有点乏味。稍后我们可以添加一个图像,但现在,让我们保持简单。在编辑器中,右键单击灰色背景并选择“场景属性”: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.16.03.png) - -在打开的新窗口中,单击“Scene background color”,然后为背景选择一种漂亮的颜色: - -![](/gdevelop5/tutorials/platform-game/screen_shot_2017-09-25_at_00.18.08.png) - -## 下一步: 让玩家动起来 - -我们的游戏目前非常基础,玩家在跳跃或奔跑时没有动画。本教程的下一部分将介绍如何添加不同的动画,以及如何使用事件在玩家状态更改时更改动画。 - -➡️ 阅读 **[教程的下一部分在这里](/gdevelop5/tutorials/platform-game/2-player-animations)**! \ No newline at end of file diff --git a/docs/zh/index.md b/docs/zh/index.md deleted file mode 100644 index 5672371433..0000000000 --- a/docs/zh/index.md +++ /dev/null @@ -1,32 +0,0 @@ ---- -title: start ---- - -![](/logocompleteeffecttranparent400x100.png) - -# GDevelop 百科 - -GDevelop 是一个开源、跨平台的游戏制作器,专为所有人设计 — — 不需任何编程技能。如果你还没有安装 GDevelop,[现在下载](https://gdevelop.io/download)! - -在这篇 wiki 可以找到与 GDevelop 有关的帮助与教程,欢迎您的贡献! - -## 教程和视频 - -通过 **[教程](/gdevelop/tutorials)** 学习如何使用 GDevelop - -## 全部文档 - -阅读 **[GDevelop 完全参考手册](/gdevelop/documentation)** - -## 其他语言 - -![](/fr.png)[⇒ 法语 wiki](/fr/start) - -点击国旗切换 wiki 语言,欢迎您帮助完善下面语言的 wiki: - -![](/zh.gif)[⇒ 中文 wiki](/zh/start) -![](/de.png)[⇒ 德语 wiki](/de/start) -![](/pt.png)[⇒ 葡萄牙语 wiki](/pt/start) -![](/ru.png)[⇒ 俄语 wiki](/ru/start) -![](/es.png)[⇒ 西班牙语 wiki](/es/start) -Just create an account on the wiki and use the top menu to create or edit a page. You can also [help to translate GDevelop and its website](http://crowdin.com/project/gdevelop). diff --git a/mkdocs.yml b/mkdocs.yml index 42ecd827e3..ddd8191657 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -1,7 +1,10 @@ site_name: GDevelop documentation repo_url: https://github.com/GDevelopApp/GDevelop-documentation edit_uri: edit/main/docs/ -copyright: "GDevelop is a full-featured, no-code, open-source game engine. Except where otherwise noted, content on this documentation is licensed under the following license: CC Attribution-Share Alike 4.0 International" +copyright: "GDevelop is a full-featured, no-code and AI-powered, open-source game engine. Except where otherwise noted, content on this documentation is licensed under the following license: CC Attribution-Share Alike 4.0 International" +validation: + links: + absolute_links: ignore theme: logo: assets/logo.svg features: @@ -40,6 +43,15 @@ extra: analytics: provider: google property: G-X8HPPE6EPT + feedback: + title: Was this page helpful? + ratings: + - icon: material/thumb-up-outline + name: This page was helpful + data: 1 + - icon: material/thumb-down-outline + name: This page could be improved + data: 0 social: - icon: fontawesome/brands/github link: https://github.com/4ian/GDevelop @@ -66,6 +78,7 @@ extra_css: - stylesheets/extra.css extra_javascript: - javascript/autoScrollNavigation.js + - javascript/translate.js markdown_extensions: # For buttons: - attr_list @@ -78,211 +91,277 @@ markdown_extensions: # For lists not starting with a blank line: - sane_lists watch: -- 'overrides' + - "overrides" plugins: - - search - # Allow to customize navigation with `.pages` files: - - awesome-pages - # Redirect old pages: - - redirects: - redirect_maps: - 'gdevelop5/start.md': 'gdevelop5/index.md' - 'fr/gdevelop5/start.md': 'fr/gdevelop5/index.md' - 'es/gdevelop5/start.md': 'es/gdevelop5/index.md' - 'ru/gdevelop5/start.md': 'ru/gdevelop5/index.md' - 'pt/gdevelop5/start.md': 'pt/gdevelop5/index.md' - 'de/gdevelop5/start.md': 'de/gdevelop5/index.md' - 'zh/gdevelop5/start.md': 'zh/gdevelop5/index.md' - 'pl/gdevelop5/start.md': 'pl/gdevelop5/index.md' - 'sl/gdevelop5/start.md': 'sl/gdevelop5/index.md' - 'gdevelop5/extending-gdevelop.md': 'gdevelop5/community/contribute-to-gdevelop-code.md' - 'gdevelop5/extensions/extend-gdevelop.md': 'gdevelop5/community/contribute-to-gdevelop-code.md' - 'gdevelop5/all-features/functions.md': 'gdevelop5/all-features/expressions-reference.md' - 'gdevelop5/all-features/timers.md': 'gdevelop5/all-features/timers-and-time/index.md' - 'gdevelop5/objects/how-to-rotate-objects.md': 'gdevelop5/tutorials/how-to-rotate-objects.md' - 'gdevelop5/objects/admob.md': 'gdevelop5/all-features/admob/index.md' - 'gdevelop5/objects/base_object/events.md': 'gdevelop5/objects/index.md' - 'gdevelop5/objects/base_object/index.md': 'gdevelop5/objects/index.md' - 'gdevelop5/extensions/list.md': 'gdevelop5/extensions/index.md' - 'gdevelop5/publishing/android_and_ios/index.md': 'gdevelop5/publishing/android/index.md' - 'gdevelop5/publishing/android_and_ios/play-store/index.md': 'gdevelop5/publishing/android/play-store/index.md' - 'gdevelop5/publishing/android_and_ios/play-store/upgrading-from-apk-to-aab.md': 'gdevelop5/publishing/android/play-store/upgrading-from-apk-to-aab.md' - # Tutorials - 'gdevelop5/tutorials/platformer/start.md': 'gdevelop5/tutorials/platformer/index.md' - 'gdevelop5/tutorials/asteroids/start.md': 'gdevelop5/tutorials/asteroids/index.md' - 'gdevelop5/tutorials/platform-game/start.md': 'gdevelop5/tutorials/platform-game/index.md' - 'fr/gdevelop5/tutorials/platform-game/start.md': 'fr/gdevelop5/tutorials/platform-game/index.md' - 'pt/gdevelop5/tutorials/platform-game/start.md': 'pt/gdevelop5/tutorials/platform-game/index.md' - 'fr/gdevelop5/tutorials/isometric-rpg/start.md': 'fr/gdevelop5/tutorials/isometric-rpg/index.md' - 'es/gdevelop5/tutorials/platformer/start.md': 'es/gdevelop5/tutorials/platformer/index.md' - 'ja/gdevelop5/tutorials/platformer/start.md': 'ja/gdevelop5/tutorials/platformer/index.md' - # Extensions reference pages from old wiki were transferred to index pages - 'gdevelop5/extensions/advanced-jump/reference.md': 'gdevelop5/extensions/advanced-jump/index.md' - 'gdevelop5/extensions/advanced-p2pevent-handling/reference.md': 'gdevelop5/extensions/advanced-p2pevent-handling/index.md' - 'gdevelop5/extensions/align-object/reference.md': 'gdevelop5/extensions/align-object/index.md' - 'gdevelop5/extensions/animated-back-and-forth-movement/reference.md': 'gdevelop5/extensions/animated-back-and-forth-movement/index.md' - 'gdevelop5/extensions/animation-system/reference.md': 'gdevelop5/extensions/animation-system/index.md' - 'gdevelop5/extensions/array-tools/reference.md': 'gdevelop5/extensions/array-tools/index.md' - 'gdevelop5/extensions/authorized-platforms-validation/reference.md': 'gdevelop5/extensions/authorized-platforms-validation/index.md' - 'gdevelop5/extensions/auto-typing/reference.md': 'gdevelop5/extensions/auto-typing/index.md' - 'gdevelop5/extensions/back-button/reference.md': 'gdevelop5/extensions/back-button/index.md' - 'gdevelop5/extensions/base-conversion/reference.md': 'gdevelop5/extensions/base-conversion/index.md' - 'gdevelop5/extensions/behavior-remapper/reference.md': 'gdevelop5/extensions/behavior-remapper/index.md' - 'gdevelop5/extensions/boids-movement/reference.md': 'gdevelop5/extensions/boids-movement/index.md' - 'gdevelop5/extensions/boomerang/reference.md': 'gdevelop5/extensions/boomerang/index.md' - 'gdevelop5/extensions/bounce/reference.md': 'gdevelop5/extensions/bounce/index.md' - 'gdevelop5/extensions/camera-impulse/reference.md': 'gdevelop5/extensions/camera-impulse/index.md' - 'gdevelop5/extensions/camera-shake/reference.md': 'gdevelop5/extensions/camera-shake/index.md' - 'gdevelop5/extensions/camera-zoom/reference.md': 'gdevelop5/extensions/camera-zoom/index.md' - 'gdevelop5/extensions/cancellable-draggable/reference.md': 'gdevelop5/extensions/cancellable-draggable/index.md' - 'gdevelop5/extensions/chat-bubble/reference.md': 'gdevelop5/extensions/chat-bubble/index.md' - 'gdevelop5/extensions/checkbox/reference.md': 'gdevelop5/extensions/checkbox/index.md' - 'gdevelop5/extensions/checkpoints/reference.md': 'gdevelop5/extensions/checkpoints/index.md' - 'gdevelop5/extensions/choose/reference.md': 'gdevelop5/extensions/choose/index.md' - 'gdevelop5/extensions/clipboard/reference.md': 'gdevelop5/extensions/clipboard/index.md' - 'gdevelop5/extensions/clock/reference.md': 'gdevelop5/extensions/clock/index.md' - 'gdevelop5/extensions/color-conversion/reference.md': 'gdevelop5/extensions/color-conversion/index.md' - 'gdevelop5/extensions/compressor/reference.md': 'gdevelop5/extensions/compressor/index.md' - 'gdevelop5/extensions/copy-camera-settings/reference.md': 'gdevelop5/extensions/copy-camera-settings/index.md' - 'gdevelop5/extensions/crazy-games-ad-api/reference.md': 'gdevelop5/extensions/crazy-games-ad-api/index.md' - 'gdevelop5/extensions/create-multiple-copies-of-object/reference.md': 'gdevelop5/extensions/create-multiple-copies-of-object/index.md' - 'gdevelop5/extensions/crypto-api/reference.md': 'gdevelop5/extensions/crypto-api/index.md' - 'gdevelop5/extensions/current-game-version/reference.md': 'gdevelop5/extensions/current-game-version/index.md' - 'gdevelop5/extensions/cursor-movement/reference.md': 'gdevelop5/extensions/cursor-movement/index.md' - 'gdevelop5/extensions/cursor-type/reference.md': 'gdevelop5/extensions/cursor-type/index.md' - 'gdevelop5/extensions/curved-movement/reference.md': 'gdevelop5/extensions/curved-movement/index.md' - 'gdevelop5/extensions/depth-effect/reference.md': 'gdevelop5/extensions/depth-effect/index.md' - 'gdevelop5/extensions/dialog-box/reference.md': 'gdevelop5/extensions/dialog-box/index.md' - 'gdevelop5/extensions/discord-rich-presence/reference.md': 'gdevelop5/extensions/discord-rich-presence/index.md' - 'gdevelop5/extensions/double-click/reference.md': 'gdevelop5/extensions/double-click/index.md' - 'gdevelop5/extensions/drag-camera-with-pointer/reference.md': 'gdevelop5/extensions/drag-camera-with-pointer/index.md' - 'gdevelop5/extensions/draggable-physics/reference.md': 'gdevelop5/extensions/draggable-physics/index.md' - 'gdevelop5/extensions/draggable-slider-control/reference.md': 'gdevelop5/extensions/draggable-slider-control/index.md' - 'gdevelop5/extensions/draw-pathfinding/reference.md': 'gdevelop5/extensions/draw-pathfinding/index.md' - 'gdevelop5/extensions/draw-shock-wave-effect/reference.md': 'gdevelop5/extensions/draw-shock-wave-effect/index.md' - 'gdevelop5/extensions/dungeon-generator/reference.md': 'gdevelop5/extensions/dungeon-generator/index.md' - 'gdevelop5/extensions/dynamic-water/reference.md': 'gdevelop5/extensions/dynamic-water/index.md' - 'gdevelop5/extensions/edge-scroll-camera/reference.md': 'gdevelop5/extensions/edge-scroll-camera/index.md' - 'gdevelop5/extensions/ellipse-movement/reference.md': 'gdevelop5/extensions/ellipse-movement/index.md' - 'gdevelop5/extensions/emojis/reference.md': 'gdevelop5/extensions/emojis/index.md' - 'gdevelop5/extensions/explosion-force/reference.md': 'gdevelop5/extensions/explosion-force/index.md' - 'gdevelop5/extensions/extended-math/reference.md': 'gdevelop5/extensions/extended-math/index.md' - 'gdevelop5/extensions/extended-variables/reference.md': 'gdevelop5/extensions/extended-variables/index.md' - 'gdevelop5/extensions/extra-inventory/reference.md': 'gdevelop5/extensions/extra-inventory/index.md' - 'gdevelop5/extensions/face-forward/reference.md': 'gdevelop5/extensions/face-forward/index.md' - 'gdevelop5/extensions/fire-bullet/reference.md': 'gdevelop5/extensions/fire-bullet/index.md' - 'gdevelop5/extensions/flash/reference.md': 'gdevelop5/extensions/flash/index.md' - 'gdevelop5/extensions/flash-layer/reference.md': 'gdevelop5/extensions/flash-layer/index.md' - 'gdevelop5/extensions/flash-transition-painter/reference.md': 'gdevelop5/extensions/flash-transition-painter/index.md' - 'gdevelop5/extensions/flex-box/reference.md': 'gdevelop5/extensions/flex-box/index.md' - 'gdevelop5/extensions/flip-gravity/reference.md': 'gdevelop5/extensions/flip-gravity/index.md' - 'gdevelop5/extensions/follow-objects-with-camera/reference.md': 'gdevelop5/extensions/follow-objects-with-camera/index.md' - 'gdevelop5/extensions/fps/reference.md': 'gdevelop5/extensions/fps/index.md' - 'gdevelop5/extensions/gamepads/reference.md': 'gdevelop5/extensions/gamepads/index.md' - 'gdevelop5/extensions/geolocation/reference.md': 'gdevelop5/extensions/geolocation/index.md' - 'gdevelop5/extensions/get-properties-data/reference.md': 'gdevelop5/extensions/get-properties-data/index.md' - 'gdevelop5/extensions/has-landed/reference.md': 'gdevelop5/extensions/has-landed/index.md' - 'gdevelop5/extensions/hash/reference.md': 'gdevelop5/extensions/hash/index.md' - 'gdevelop5/extensions/health/reference.md': 'gdevelop5/extensions/health/index.md' - 'gdevelop5/extensions/hexagonal-grid/reference.md': 'gdevelop5/extensions/hexagonal-grid/index.md' - 'gdevelop5/extensions/homing-projectile/reference.md': 'gdevelop5/extensions/homing-projectile/index.md' - 'gdevelop5/extensions/idle-tracker/reference.md': 'gdevelop5/extensions/idle-tracker/index.md' - 'gdevelop5/extensions/iframe/reference.md': 'gdevelop5/extensions/iframe/index.md' - 'gdevelop5/extensions/in-app-purchase/reference.md': 'gdevelop5/extensions/in-app-purchase/index.md' - 'gdevelop5/extensions/input-validation/reference.md': 'gdevelop5/extensions/input-validation/index.md' - 'gdevelop5/extensions/internet-connectivity/reference.md': 'gdevelop5/extensions/internet-connectivity/index.md' - 'gdevelop5/extensions/is-on-screen/reference.md': 'gdevelop5/extensions/is-on-screen/index.md' - 'gdevelop5/extensions/jsonresource-loader/reference.md': 'gdevelop5/extensions/jsonresource-loader/index.md' - 'gdevelop5/extensions/konami-code/reference.md': 'gdevelop5/extensions/konami-code/index.md' - 'gdevelop5/extensions/language/reference.md': 'gdevelop5/extensions/language/index.md' - 'gdevelop5/extensions/linear-movement/reference.md': 'gdevelop5/extensions/linear-movement/index.md' - 'gdevelop5/extensions/link-tools/reference.md': 'gdevelop5/extensions/link-tools/index.md' - 'gdevelop5/extensions/load-image-from-url/reference.md': 'gdevelop5/extensions/load-image-from-url/index.md' - 'gdevelop5/extensions/magnetic-effect/reference.md': 'gdevelop5/extensions/magnetic-effect/index.md' - 'gdevelop5/extensions/make-it-rain/reference.md': 'gdevelop5/extensions/make-it-rain/index.md' - 'gdevelop5/extensions/marching-squares/reference.md': 'gdevelop5/extensions/marching-squares/index.md' - 'gdevelop5/extensions/mouse-helper/reference.md': 'gdevelop5/extensions/mouse-helper/index.md' - 'gdevelop5/extensions/mouse-pointer-lock/reference.md': 'gdevelop5/extensions/mouse-pointer-lock/index.md' - 'gdevelop5/extensions/mqtt/reference.md': 'gdevelop5/extensions/mqtt/index.md' - 'gdevelop5/extensions/multitouch-joystick/reference.md': 'gdevelop5/extensions/multitouch-joystick/index.md' - 'gdevelop5/extensions/nav-mesh-pathfinding/reference.md': 'gdevelop5/extensions/nav-mesh-pathfinding/index.md' - 'gdevelop5/extensions/newgrounds-api/reference.md': 'gdevelop5/extensions/newgrounds-api/index.md' - 'gdevelop5/extensions/noise/reference.md': 'gdevelop5/extensions/noise/index.md' - 'gdevelop5/extensions/object-picking-tools/reference.md': 'gdevelop5/extensions/object-picking-tools/index.md' - 'gdevelop5/extensions/object-slicer/reference.md': 'gdevelop5/extensions/object-slicer/index.md' - 'gdevelop5/extensions/object-spawner/reference.md': 'gdevelop5/extensions/object-spawner/index.md' - 'gdevelop5/extensions/object-stack/reference.md': 'gdevelop5/extensions/object-stack/index.md' - 'gdevelop5/extensions/orbiting-objects/reference.md': 'gdevelop5/extensions/orbiting-objects/index.md' - 'gdevelop5/extensions/panel-sprite-button/reference.md': 'gdevelop5/extensions/panel-sprite-button/index.md' - 'gdevelop5/extensions/panel-sprite-continuous-bar/reference.md': 'gdevelop5/extensions/panel-sprite-continuous-bar/index.md' - 'gdevelop5/extensions/panel-sprite-slider/reference.md': 'gdevelop5/extensions/panel-sprite-slider/index.md' - 'gdevelop5/extensions/parallax/reference.md': 'gdevelop5/extensions/parallax/index.md' - 'gdevelop5/extensions/pause-focus-lost/reference.md': 'gdevelop5/extensions/pause-focus-lost/index.md' - 'gdevelop5/extensions/pinch-gesture/reference.md': 'gdevelop5/extensions/pinch-gesture/index.md' - 'gdevelop5/extensions/pixel-perfect-movement/reference.md': 'gdevelop5/extensions/pixel-perfect-movement/index.md' - 'gdevelop5/extensions/platform-ledge-grabber/reference.md': 'gdevelop5/extensions/platform-ledge-grabber/index.md' - 'gdevelop5/extensions/platformer-character-animator/reference.md': 'gdevelop5/extensions/platformer-character-animator/index.md' - 'gdevelop5/extensions/platformer-trajectory/reference.md': 'gdevelop5/extensions/platformer-trajectory/index.md' - 'gdevelop5/extensions/point-and-orbit/reference.md': 'gdevelop5/extensions/point-and-orbit/index.md' - 'gdevelop5/extensions/pop-up/reference.md': 'gdevelop5/extensions/pop-up/index.md' - 'gdevelop5/extensions/pushable-and-pullable-box/reference.md': 'gdevelop5/extensions/pushable-and-pullable-box/index.md' - 'gdevelop5/extensions/pushable-box/reference.md': 'gdevelop5/extensions/pushable-box/index.md' - 'gdevelop5/extensions/random-color/reference.md': 'gdevelop5/extensions/random-color/index.md' - 'gdevelop5/extensions/read-pixels/reference.md': 'gdevelop5/extensions/read-pixels/index.md' - 'gdevelop5/extensions/recolorizer/reference.md': 'gdevelop5/extensions/recolorizer/index.md' - 'gdevelop5/extensions/record/reference.md': 'gdevelop5/extensions/record/index.md' - 'gdevelop5/extensions/record-movements/reference.md': 'gdevelop5/extensions/record-movements/index.md' - 'gdevelop5/extensions/rectangle-movement/reference.md': 'gdevelop5/extensions/rectangle-movement/index.md' - 'gdevelop5/extensions/rectangular-flood-fill/reference.md': 'gdevelop5/extensions/rectangular-flood-fill/index.md' - 'gdevelop5/extensions/rectangular-movement/reference.md': 'gdevelop5/extensions/rectangular-movement/index.md' - 'gdevelop5/extensions/references/reference.md': 'gdevelop5/extensions/references/index.md' - 'gdevelop5/extensions/reflection/reference.md': 'gdevelop5/extensions/reflection/index.md' - 'gdevelop5/extensions/reg-ex/reference.md': 'gdevelop5/extensions/reg-ex/index.md' - 'gdevelop5/extensions/render-to-sprite/reference.md': 'gdevelop5/extensions/render-to-sprite/index.md' - 'gdevelop5/extensions/repeat-every-xseconds/reference.md': 'gdevelop5/extensions/repeat-every-xseconds/index.md' - 'gdevelop5/extensions/room-based-camera-movement/reference.md': 'gdevelop5/extensions/room-based-camera-movement/index.md' - 'gdevelop5/extensions/rotate13/reference.md': 'gdevelop5/extensions/rotate13/index.md' - 'gdevelop5/extensions/rtsunit-selection/reference.md': 'gdevelop5/extensions/rtsunit-selection/index.md' - 'gdevelop5/extensions/screen-wrap/reference.md': 'gdevelop5/extensions/screen-wrap/index.md' - 'gdevelop5/extensions/shadow-clones/reference.md': 'gdevelop5/extensions/shadow-clones/index.md' - 'gdevelop5/extensions/shake-object/reference.md': 'gdevelop5/extensions/shake-object/index.md' - 'gdevelop5/extensions/sine-movement/reference.md': 'gdevelop5/extensions/sine-movement/index.md' - 'gdevelop5/extensions/smooth-camera/reference.md': 'gdevelop5/extensions/smooth-camera/index.md' - 'gdevelop5/extensions/snap-to-grid/reference.md': 'gdevelop5/extensions/snap-to-grid/index.md' - 'gdevelop5/extensions/sound-volume-based-on-distance/reference.md': 'gdevelop5/extensions/sound-volume-based-on-distance/index.md' - 'gdevelop5/extensions/speed-restrictions/reference.md': 'gdevelop5/extensions/speed-restrictions/index.md' - 'gdevelop5/extensions/sprite-based-lighting/reference.md': 'gdevelop5/extensions/sprite-based-lighting/index.md' - 'gdevelop5/extensions/sprite-masking/reference.md': 'gdevelop5/extensions/sprite-masking/index.md' - 'gdevelop5/extensions/sprite-multitouch-joystick/reference.md': 'gdevelop5/extensions/sprite-multitouch-joystick/index.md' - 'gdevelop5/extensions/sprite-sheet/reference.md': 'gdevelop5/extensions/sprite-sheet/index.md' - 'gdevelop5/extensions/sprite-toggle-switch/reference.md': 'gdevelop5/extensions/sprite-toggle-switch/index.md' - 'gdevelop5/extensions/star-rating/reference.md': 'gdevelop5/extensions/star-rating/index.md' - 'gdevelop5/extensions/stay-on-screen/reference.md': 'gdevelop5/extensions/stay-on-screen/index.md' - 'gdevelop5/extensions/sticker/reference.md': 'gdevelop5/extensions/sticker/index.md' - 'gdevelop5/extensions/sway/reference.md': 'gdevelop5/extensions/sway/index.md' - 'gdevelop5/extensions/swipe-gesture/reference.md': 'gdevelop5/extensions/swipe-gesture/index.md' - 'gdevelop5/extensions/text-entry-console/reference.md': 'gdevelop5/extensions/text-entry-console/index.md' - 'gdevelop5/extensions/text-entry-virtual-keyboard/reference.md': 'gdevelop5/extensions/text-entry-virtual-keyboard/index.md' - 'gdevelop5/extensions/text-to-speech/reference.md': 'gdevelop5/extensions/text-to-speech/index.md' - 'gdevelop5/extensions/three-dflip/reference.md': 'gdevelop5/extensions/three-dflip/index.md' - 'gdevelop5/extensions/tiled-units-bar/reference.md': 'gdevelop5/extensions/tiled-units-bar/index.md' - 'gdevelop5/extensions/time-detector/reference.md': 'gdevelop5/extensions/time-detector/index.md' - 'gdevelop5/extensions/time-formatter/reference.md': 'gdevelop5/extensions/time-formatter/index.md' - 'gdevelop5/extensions/timed-back-and-forth-movement/reference.md': 'gdevelop5/extensions/timed-back-and-forth-movement/index.md' - 'gdevelop5/extensions/toggle-switch/reference.md': 'gdevelop5/extensions/toggle-switch/index.md' - 'gdevelop5/extensions/top-down-corner-sliding/reference.md': 'gdevelop5/extensions/top-down-corner-sliding/index.md' - 'gdevelop5/extensions/trampoline-platform/reference.md': 'gdevelop5/extensions/trampoline-platform/index.md' - 'gdevelop5/extensions/travel-to-random-positions/reference.md': 'gdevelop5/extensions/travel-to-random-positions/index.md' - 'gdevelop5/extensions/turret/reference.md': 'gdevelop5/extensions/turret/index.md' - 'gdevelop5/extensions/tween-zorder/reference.md': 'gdevelop5/extensions/tween-zorder/index.md' - 'gdevelop5/extensions/unicode-conversion/reference.md': 'gdevelop5/extensions/unicode-conversion/index.md' - 'gdevelop5/extensions/update-checker/reference.md': 'gdevelop5/extensions/update-checker/index.md' - 'gdevelop5/extensions/upload-download-text-file/reference.md': 'gdevelop5/extensions/upload-download-text-file/index.md' - 'gdevelop5/extensions/urltools/reference.md': 'gdevelop5/extensions/urltools/index.md' - 'gdevelop5/extensions/uuid/reference.md': 'gdevelop5/extensions/uuid/index.md' - 'gdevelop5/extensions/values-of-multiple-objects/reference.md': 'gdevelop5/extensions/values-of-multiple-objects/index.md' - 'gdevelop5/extensions/voice-recognition/reference.md': 'gdevelop5/extensions/voice-recognition/index.md' - 'gdevelop5/extensions/web-socket-client/reference.md': 'gdevelop5/extensions/web-socket-client/index.md' - 'gdevelop5/extensions/ygame-sdk/reference.md': 'gdevelop5/extensions/ygame-sdk/index.md' - 'gdevelop5/extensions/ysort/reference.md': 'gdevelop5/extensions/ysort/index.md' - 'gdevelop5/tutorials/storage-action-explained.md': 'gdevelop5/all-features/storage/index.md' + - search + # Allow to customize navigation with `.pages` files: + - awesome-pages + # Redirect old pages: + - redirects: + redirect_maps: + "gdevelop5/start.md": "gdevelop5/index.md" + "fr/gdevelop5/start.md": "gdevelop5/index.md" + "es/gdevelop5/start.md": "gdevelop5/index.md" + "ru/gdevelop5/start.md": "gdevelop5/index.md" + "pt/gdevelop5/start.md": "gdevelop5/index.md" + "de/gdevelop5/start.md": "gdevelop5/index.md" + "zh/gdevelop5/start.md": "gdevelop5/index.md" + "pl/gdevelop5/start.md": "gdevelop5/index.md" + "sl/gdevelop5/start.md": "gdevelop5/index.md" + "gdevelop5/extending-gdevelop.md": "gdevelop5/community/contribute-to-gdevelop-code.md" + "gdevelop5/extensions/extend-gdevelop.md": "gdevelop5/community/contribute-to-gdevelop-code.md" + "gdevelop5/all-features/functions.md": "gdevelop5/all-features/expressions-reference.md" + "gdevelop5/all-features/timers.md": "gdevelop5/all-features/timers-and-time/index.md" + "gdevelop5/all-features/expressions.md": "gdevelop5/events/expressions/index.md" + "gdevelop5/all-features/extensions/marching-squares.md": "gdevelop5/extensions/marching-squares/index.md" + "gdevelop5/all-features/extensions/linked-objects-tools.md": "gdevelop5/extensions/link-tools/details.md" + "gdevelop5/objects/how-to-rotate-objects.md": "gdevelop5/tutorials/how-to-rotate-objects/index.md" + "gdevelop5/objects/admob.md": "gdevelop5/all-features/admob/index.md" + "gdevelop5/objects/base_object/events.md": "gdevelop5/objects/index.md" + "gdevelop5/objects/base_object/index.md": "gdevelop5/objects/index.md" + "gdevelop5/extensions/list.md": "gdevelop5/extensions/index.md" + "gdevelop5/publishing/android_and_ios/index.md": "gdevelop5/publishing/android/index.md" + "gdevelop5/publishing/android_and_ios/play-store/index.md": "gdevelop5/publishing/android/play-store/index.md" + "gdevelop5/publishing/android_and_ios/play-store/upgrading-from-apk-to-aab.md": "gdevelop5/publishing/android/play-store/upgrading-from-apk-to-aab.md" + "gdevelop5/interface/ask-ai.md": "gdevelop5/interface/ai/index.md" + # Tutorials + "gdevelop5/tutorials/platformer/start.md": "gdevelop5/tutorials/platformer/index.md" + "gdevelop5/tutorials/asteroids/start.md": "gdevelop5/tutorials/asteroids/index.md" + "gdevelop5/tutorials/platform-game/start.md": "gdevelop5/tutorials/platform-game/index.md" + "fr/gdevelop5/tutorials/platform-game/start.md": "gdevelop5/tutorials/platform-game/index.md" + "pt/gdevelop5/tutorials/platform-game/start.md": "gdevelop5/tutorials/platform-game/index.md" + "fr/gdevelop5/tutorials/isometric-rpg/start.md": "gdevelop5/tutorials/index.md" + "es/gdevelop5/tutorials/platformer/start.md": "gdevelop5/tutorials/platformer/index.md" + "ja/gdevelop5/tutorials/platformer/start.md": "gdevelop5/tutorials/platformer/index.md" + # Extensions reference pages from old wiki were transferred to index pages + "gdevelop5/extensions/advanced-jump/reference.md": "gdevelop5/extensions/advanced-jump/index.md" + "gdevelop5/extensions/advanced-p2pevent-handling/reference.md": "gdevelop5/extensions/advanced-p2pevent-handling/index.md" + "gdevelop5/extensions/align-object/reference.md": "gdevelop5/extensions/align-object/index.md" + "gdevelop5/extensions/animated-back-and-forth-movement/reference.md": "gdevelop5/extensions/animated-back-and-forth-movement/index.md" + "gdevelop5/extensions/animation-system/reference.md": "gdevelop5/extensions/animation-system/index.md" + "gdevelop5/extensions/array-tools/reference.md": "gdevelop5/extensions/array-tools/index.md" + "gdevelop5/extensions/authorized-platforms-validation/reference.md": "gdevelop5/extensions/authorized-platforms-validation/index.md" + "gdevelop5/extensions/auto-typing/reference.md": "gdevelop5/extensions/auto-typing/index.md" + "gdevelop5/extensions/back-button/reference.md": "gdevelop5/extensions/back-button/index.md" + "gdevelop5/extensions/base-conversion/reference.md": "gdevelop5/extensions/base-conversion/index.md" + "gdevelop5/extensions/behavior-remapper/reference.md": "gdevelop5/extensions/behavior-remapper/index.md" + "gdevelop5/extensions/boids-movement/reference.md": "gdevelop5/extensions/boids-movement/index.md" + "gdevelop5/extensions/boomerang/reference.md": "gdevelop5/extensions/boomerang/index.md" + "gdevelop5/extensions/bounce/reference.md": "gdevelop5/extensions/bounce/index.md" + "gdevelop5/extensions/camera-impulse/reference.md": "gdevelop5/extensions/camera-impulse/index.md" + "gdevelop5/extensions/camera-shake/reference.md": "gdevelop5/extensions/camera-shake/index.md" + "gdevelop5/extensions/camera-zoom/reference.md": "gdevelop5/extensions/camera-zoom/index.md" + "gdevelop5/extensions/cancellable-draggable/reference.md": "gdevelop5/extensions/cancellable-draggable/index.md" + "gdevelop5/extensions/chat-bubble/reference.md": "gdevelop5/extensions/chat-bubble/index.md" + "gdevelop5/extensions/checkbox/reference.md": "gdevelop5/extensions/checkbox/index.md" + "gdevelop5/extensions/checkpoints/reference.md": "gdevelop5/extensions/checkpoints/index.md" + "gdevelop5/extensions/choose/reference.md": "gdevelop5/extensions/choose/index.md" + "gdevelop5/extensions/clipboard/reference.md": "gdevelop5/extensions/clipboard/index.md" + "gdevelop5/extensions/clock/reference.md": "gdevelop5/extensions/clock/index.md" + "gdevelop5/extensions/color-conversion/reference.md": "gdevelop5/extensions/color-conversion/index.md" + "gdevelop5/extensions/compressor/reference.md": "gdevelop5/extensions/compressor/index.md" + "gdevelop5/extensions/copy-camera-settings/reference.md": "gdevelop5/extensions/copy-camera-settings/index.md" + "gdevelop5/extensions/crazy-games-ad-api/reference.md": "gdevelop5/extensions/crazy-games-ad-api/index.md" + "gdevelop5/extensions/create-multiple-copies-of-object/reference.md": "gdevelop5/extensions/create-multiple-copies-of-object/index.md" + "gdevelop5/extensions/crypto-api/reference.md": "gdevelop5/extensions/crypto-api/index.md" + "gdevelop5/extensions/current-game-version/reference.md": "gdevelop5/extensions/current-game-version/index.md" + "gdevelop5/extensions/cursor-movement/reference.md": "gdevelop5/extensions/cursor-movement/index.md" + "gdevelop5/extensions/cursor-type/reference.md": "gdevelop5/extensions/cursor-type/index.md" + "gdevelop5/extensions/curved-movement/reference.md": "gdevelop5/extensions/curved-movement/index.md" + "gdevelop5/extensions/depth-effect/reference.md": "gdevelop5/extensions/depth-effect/index.md" + "gdevelop5/extensions/dialog-box/reference.md": "gdevelop5/extensions/dialog-box/index.md" + "gdevelop5/extensions/discord-rich-presence/reference.md": "gdevelop5/extensions/discord-rich-presence/index.md" + "gdevelop5/extensions/double-click/reference.md": "gdevelop5/extensions/double-click/index.md" + "gdevelop5/extensions/drag-camera-with-pointer/reference.md": "gdevelop5/extensions/drag-camera-with-pointer/index.md" + "gdevelop5/extensions/draggable-physics/reference.md": "gdevelop5/extensions/draggable-physics/index.md" + "gdevelop5/extensions/draggable-slider-control/reference.md": "gdevelop5/extensions/draggable-slider-control/index.md" + "gdevelop5/extensions/draw-pathfinding/reference.md": "gdevelop5/extensions/draw-pathfinding/index.md" + "gdevelop5/extensions/draw-shock-wave-effect/reference.md": "gdevelop5/extensions/draw-shock-wave-effect/index.md" + "gdevelop5/extensions/dungeon-generator/reference.md": "gdevelop5/extensions/dungeon-generator/index.md" + "gdevelop5/extensions/dynamic-water/reference.md": "gdevelop5/extensions/dynamic-water/index.md" + "gdevelop5/extensions/edge-scroll-camera/reference.md": "gdevelop5/extensions/edge-scroll-camera/index.md" + "gdevelop5/extensions/ellipse-movement/reference.md": "gdevelop5/extensions/ellipse-movement/index.md" + "gdevelop5/extensions/emojis/reference.md": "gdevelop5/extensions/emojis/index.md" + "gdevelop5/extensions/explosion-force/reference.md": "gdevelop5/extensions/explosion-force/index.md" + "gdevelop5/extensions/extended-math/reference.md": "gdevelop5/extensions/extended-math/index.md" + "gdevelop5/extensions/extended-variables/reference.md": "gdevelop5/extensions/extended-variables/index.md" + "gdevelop5/extensions/extra-inventory/reference.md": "gdevelop5/extensions/extra-inventory/index.md" + "gdevelop5/extensions/face-forward/reference.md": "gdevelop5/extensions/face-forward/index.md" + "gdevelop5/extensions/fire-bullet/reference.md": "gdevelop5/extensions/fire-bullet/index.md" + "gdevelop5/extensions/flash/reference.md": "gdevelop5/extensions/flash/index.md" + "gdevelop5/extensions/flash-layer/reference.md": "gdevelop5/extensions/flash-layer/index.md" + "gdevelop5/extensions/flash-transition-painter/reference.md": "gdevelop5/extensions/flash-transition-painter/index.md" + "gdevelop5/extensions/flex-box/reference.md": "gdevelop5/extensions/flex-box/index.md" + "gdevelop5/extensions/flip-gravity/reference.md": "gdevelop5/extensions/flip-gravity/index.md" + "gdevelop5/extensions/follow-objects-with-camera/reference.md": "gdevelop5/extensions/follow-objects-with-camera/index.md" + "gdevelop5/extensions/fps/reference.md": "gdevelop5/extensions/fps/index.md" + "gdevelop5/extensions/gamepads/reference.md": "gdevelop5/extensions/gamepads/index.md" + "gdevelop5/extensions/geolocation/reference.md": "gdevelop5/extensions/geolocation/index.md" + "gdevelop5/extensions/get-properties-data/reference.md": "gdevelop5/extensions/get-properties-data/index.md" + "gdevelop5/extensions/has-landed/reference.md": "gdevelop5/extensions/has-landed/index.md" + "gdevelop5/extensions/hash/reference.md": "gdevelop5/extensions/hash/index.md" + "gdevelop5/extensions/health/reference.md": "gdevelop5/extensions/health/index.md" + "gdevelop5/extensions/hexagonal-grid/reference.md": "gdevelop5/extensions/hexagonal-grid/index.md" + "gdevelop5/extensions/homing-projectile/reference.md": "gdevelop5/extensions/homing-projectile/index.md" + "gdevelop5/extensions/idle-tracker/reference.md": "gdevelop5/extensions/idle-tracker/index.md" + "gdevelop5/extensions/iframe/reference.md": "gdevelop5/extensions/iframe/index.md" + "gdevelop5/extensions/in-app-purchase/reference.md": "gdevelop5/extensions/in-app-purchase/index.md" + "gdevelop5/extensions/input-validation/reference.md": "gdevelop5/extensions/input-validation/index.md" + "gdevelop5/extensions/internet-connectivity/reference.md": "gdevelop5/extensions/internet-connectivity/index.md" + "gdevelop5/extensions/is-on-screen/reference.md": "gdevelop5/extensions/is-on-screen/index.md" + "gdevelop5/extensions/jsonresource-loader/reference.md": "gdevelop5/extensions/jsonresource-loader/index.md" + "gdevelop5/extensions/konami-code/reference.md": "gdevelop5/extensions/konami-code/index.md" + "gdevelop5/extensions/language/reference.md": "gdevelop5/extensions/language/index.md" + "gdevelop5/extensions/linear-movement/reference.md": "gdevelop5/extensions/linear-movement/index.md" + "gdevelop5/extensions/link-tools/reference.md": "gdevelop5/extensions/link-tools/index.md" + "gdevelop5/extensions/load-image-from-url/reference.md": "gdevelop5/extensions/load-image-from-url/index.md" + "gdevelop5/extensions/magnetic-effect/reference.md": "gdevelop5/extensions/magnetic-effect/index.md" + "gdevelop5/extensions/make-it-rain/reference.md": "gdevelop5/extensions/make-it-rain/index.md" + "gdevelop5/extensions/marching-squares/reference.md": "gdevelop5/extensions/marching-squares/index.md" + "gdevelop5/extensions/mouse-helper/reference.md": "gdevelop5/extensions/mouse-helper/index.md" + "gdevelop5/extensions/mouse-pointer-lock/reference.md": "gdevelop5/extensions/mouse-pointer-lock/index.md" + "gdevelop5/extensions/mqtt/reference.md": "gdevelop5/extensions/mqtt/index.md" + "gdevelop5/extensions/multitouch-joystick/reference.md": "gdevelop5/extensions/multitouch-joystick/index.md" + "gdevelop5/extensions/nav-mesh-pathfinding/reference.md": "gdevelop5/extensions/nav-mesh-pathfinding/index.md" + "gdevelop5/extensions/newgrounds-api/reference.md": "gdevelop5/extensions/newgrounds-api/index.md" + "gdevelop5/extensions/noise/reference.md": "gdevelop5/extensions/noise/index.md" + "gdevelop5/extensions/object-picking-tools/reference.md": "gdevelop5/extensions/object-picking-tools/index.md" + "gdevelop5/extensions/object-slicer/reference.md": "gdevelop5/extensions/object-slicer/index.md" + "gdevelop5/extensions/object-spawner/reference.md": "gdevelop5/extensions/object-spawner/index.md" + "gdevelop5/extensions/object-stack/reference.md": "gdevelop5/extensions/object-stack/index.md" + "gdevelop5/extensions/orbiting-objects/reference.md": "gdevelop5/extensions/orbiting-objects/index.md" + "gdevelop5/extensions/panel-sprite-button/reference.md": "gdevelop5/extensions/panel-sprite-button/index.md" + "gdevelop5/extensions/panel-sprite-continuous-bar/reference.md": "gdevelop5/extensions/panel-sprite-continuous-bar/index.md" + "gdevelop5/extensions/panel-sprite-slider/reference.md": "gdevelop5/extensions/panel-sprite-slider/index.md" + "gdevelop5/extensions/parallax/reference.md": "gdevelop5/extensions/parallax/index.md" + "gdevelop5/extensions/pause-focus-lost/reference.md": "gdevelop5/extensions/pause-focus-lost/index.md" + "gdevelop5/extensions/pinch-gesture/reference.md": "gdevelop5/extensions/pinch-gesture/index.md" + "gdevelop5/extensions/pixel-perfect-movement/reference.md": "gdevelop5/extensions/pixel-perfect-movement/index.md" + "gdevelop5/extensions/platform-ledge-grabber/reference.md": "gdevelop5/extensions/platform-ledge-grabber/index.md" + "gdevelop5/extensions/platformer-character-animator/reference.md": "gdevelop5/extensions/platformer-character-animator/index.md" + "gdevelop5/extensions/platformer-trajectory/reference.md": "gdevelop5/extensions/platformer-trajectory/index.md" + "gdevelop5/extensions/point-and-orbit/reference.md": "gdevelop5/extensions/point-and-orbit/index.md" + "gdevelop5/extensions/pop-up/reference.md": "gdevelop5/extensions/pop-up/index.md" + "gdevelop5/extensions/pushable-and-pullable-box/reference.md": "gdevelop5/extensions/pushable-and-pullable-box/index.md" + "gdevelop5/extensions/pushable-box/reference.md": "gdevelop5/extensions/pushable-box/index.md" + "gdevelop5/extensions/random-color/reference.md": "gdevelop5/extensions/random-color/index.md" + "gdevelop5/extensions/read-pixels/reference.md": "gdevelop5/extensions/read-pixels/index.md" + "gdevelop5/extensions/recolorizer/reference.md": "gdevelop5/extensions/recolorizer/index.md" + "gdevelop5/extensions/record/reference.md": "gdevelop5/extensions/record/index.md" + "gdevelop5/extensions/record-movements/reference.md": "gdevelop5/extensions/record-movements/index.md" + "gdevelop5/extensions/rectangle-movement/reference.md": "gdevelop5/extensions/rectangle-movement/index.md" + "gdevelop5/extensions/rectangular-flood-fill/reference.md": "gdevelop5/extensions/rectangular-flood-fill/index.md" + "gdevelop5/extensions/rectangular-movement/reference.md": "gdevelop5/extensions/rectangular-movement/index.md" + "gdevelop5/extensions/references/reference.md": "gdevelop5/extensions/references/index.md" + "gdevelop5/extensions/reflection/reference.md": "gdevelop5/extensions/reflection/index.md" + "gdevelop5/extensions/reg-ex/reference.md": "gdevelop5/extensions/reg-ex/index.md" + "gdevelop5/extensions/render-to-sprite/reference.md": "gdevelop5/extensions/render-to-sprite/index.md" + "gdevelop5/extensions/repeat-every-xseconds/reference.md": "gdevelop5/extensions/repeat-every-xseconds/index.md" + "gdevelop5/extensions/room-based-camera-movement/reference.md": "gdevelop5/extensions/room-based-camera-movement/index.md" + "gdevelop5/extensions/rotate13/reference.md": "gdevelop5/extensions/rotate13/index.md" + "gdevelop5/extensions/rtsunit-selection/reference.md": "gdevelop5/extensions/rtsunit-selection/index.md" + "gdevelop5/extensions/screen-wrap/reference.md": "gdevelop5/extensions/screen-wrap/index.md" + "gdevelop5/extensions/shadow-clones/reference.md": "gdevelop5/extensions/shadow-clones/index.md" + "gdevelop5/extensions/shake-object/reference.md": "gdevelop5/extensions/shake-object/index.md" + "gdevelop5/extensions/sine-movement/reference.md": "gdevelop5/extensions/sine-movement/index.md" + "gdevelop5/extensions/smooth-camera/reference.md": "gdevelop5/extensions/smooth-camera/index.md" + "gdevelop5/extensions/snap-to-grid/reference.md": "gdevelop5/extensions/snap-to-grid/index.md" + "gdevelop5/extensions/sound-volume-based-on-distance/reference.md": "gdevelop5/extensions/sound-volume-based-on-distance/index.md" + "gdevelop5/extensions/speed-restrictions/reference.md": "gdevelop5/extensions/speed-restrictions/index.md" + "gdevelop5/extensions/sprite-based-lighting/reference.md": "gdevelop5/extensions/sprite-based-lighting/index.md" + "gdevelop5/extensions/sprite-masking/reference.md": "gdevelop5/extensions/sprite-masking/index.md" + "gdevelop5/extensions/sprite-multitouch-joystick/reference.md": "gdevelop5/extensions/sprite-multitouch-joystick/index.md" + "gdevelop5/extensions/sprite-sheet/reference.md": "gdevelop5/extensions/sprite-sheet/index.md" + "gdevelop5/extensions/sprite-toggle-switch/reference.md": "gdevelop5/extensions/sprite-toggle-switch/index.md" + "gdevelop5/extensions/star-rating/reference.md": "gdevelop5/extensions/star-rating/index.md" + "gdevelop5/extensions/stay-on-screen/reference.md": "gdevelop5/extensions/stay-on-screen/index.md" + "gdevelop5/extensions/sticker/reference.md": "gdevelop5/extensions/sticker/index.md" + "gdevelop5/extensions/sway/reference.md": "gdevelop5/extensions/sway/index.md" + "gdevelop5/extensions/swipe-gesture/reference.md": "gdevelop5/extensions/swipe-gesture/index.md" + "gdevelop5/extensions/text-entry-console/reference.md": "gdevelop5/extensions/text-entry-console/index.md" + "gdevelop5/extensions/text-entry-virtual-keyboard/reference.md": "gdevelop5/extensions/text-entry-virtual-keyboard/index.md" + "gdevelop5/extensions/text-to-speech/reference.md": "gdevelop5/extensions/text-to-speech/index.md" + "gdevelop5/extensions/three-dflip/reference.md": "gdevelop5/extensions/three-dflip/index.md" + "gdevelop5/extensions/tiled-units-bar/reference.md": "gdevelop5/extensions/tiled-units-bar/index.md" + "gdevelop5/extensions/time-detector/reference.md": "gdevelop5/extensions/time-detector/index.md" + "gdevelop5/extensions/time-formatter/reference.md": "gdevelop5/extensions/time-formatter/index.md" + "gdevelop5/extensions/timed-back-and-forth-movement/reference.md": "gdevelop5/extensions/timed-back-and-forth-movement/index.md" + "gdevelop5/extensions/toggle-switch/reference.md": "gdevelop5/extensions/toggle-switch/index.md" + "gdevelop5/extensions/top-down-corner-sliding/reference.md": "gdevelop5/extensions/top-down-corner-sliding/index.md" + "gdevelop5/extensions/trampoline-platform/reference.md": "gdevelop5/extensions/trampoline-platform/index.md" + "gdevelop5/extensions/travel-to-random-positions/reference.md": "gdevelop5/extensions/travel-to-random-positions/index.md" + "gdevelop5/extensions/turret/reference.md": "gdevelop5/extensions/turret/index.md" + "gdevelop5/extensions/tween-zorder/reference.md": "gdevelop5/extensions/tween-zorder/index.md" + "gdevelop5/extensions/unicode-conversion/reference.md": "gdevelop5/extensions/unicode-conversion/index.md" + "gdevelop5/extensions/update-checker/reference.md": "gdevelop5/extensions/update-checker/index.md" + "gdevelop5/extensions/upload-download-text-file/reference.md": "gdevelop5/extensions/upload-download-text-file/index.md" + "gdevelop5/extensions/urltools/reference.md": "gdevelop5/extensions/urltools/index.md" + "gdevelop5/extensions/uuid/reference.md": "gdevelop5/extensions/uuid/index.md" + "gdevelop5/extensions/values-of-multiple-objects/reference.md": "gdevelop5/extensions/values-of-multiple-objects/index.md" + "gdevelop5/extensions/voice-recognition/reference.md": "gdevelop5/extensions/voice-recognition/index.md" + "gdevelop5/extensions/web-socket-client/reference.md": "gdevelop5/extensions/web-socket-client/index.md" + "gdevelop5/extensions/ygame-sdk/reference.md": "gdevelop5/extensions/ygame-sdk/index.md" + "gdevelop5/extensions/ysort/reference.md": "gdevelop5/extensions/ysort/index.md" + "gdevelop5/tutorials/storage-action-explained.md": "gdevelop5/all-features/storage/index.md" + "gdevelop5/draft/schools.md": "gdevelop5/getting_started/batch-install-gdevelop-company-university/index.md" + # Redirection from translated pages to English pages, after introducing the translate button + "de/index.md": "index.md" + "es/index.md": "index.md" + "fr/index.md": "index.md" + "hi/index.md": "index.md" + "ja/index.md": "index.md" + "ko/index.md": "index.md" + "nl/index.md": "index.md" + "pl/index.md": "index.md" + "pt/index.md": "index.md" + "ru/index.md": "index.md" + "sl/index.md": "index.md" + "zh/index.md": "index.md" + "de/gdevelop5/index.md": "gdevelop5/index.md" + "es/gdevelop5/index.md": "gdevelop5/index.md" + "fr/gdevelop5/index.md": "gdevelop5/index.md" + "hi/gdevelop5/index.md": "gdevelop5/index.md" + "ja/gdevelop5/index.md": "gdevelop5/index.md" + "ko/gdevelop5/index.md": "gdevelop5/index.md" + "nl/gdevelop5/index.md": "gdevelop5/index.md" + "pl/gdevelop5/index.md": "gdevelop5/index.md" + "pt/gdevelop5/index.md": "gdevelop5/index.md" + "ru/gdevelop5/index.md": "gdevelop5/index.md" + "sl/gdevelop5/index.md": "gdevelop5/index.md" + "zh/gdevelop5/index.md": "gdevelop5/index.md" + "de/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "es/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "fr/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "hi/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "ja/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "ko/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "nl/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "pl/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "pt/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "ru/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "sl/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "zh/gdevelop5/tutorials/index.md": "gdevelop5/tutorials/index.md" + "de/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "es/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "fr/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "hi/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "ja/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "ko/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "nl/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "pl/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "pt/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "ru/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "sl/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "zh/gdevelop5/getting_started/index.md": "gdevelop5/getting_started/index.md" + "es/gdevelop5/tutorials/platformer/index.md": "gdevelop5/tutorials/platformer/index.md" + "es/gdevelop5/publishing/web.md": "gdevelop5/publishing/web.md" + "es/gdevelop5/tutorials/platform-game/7-checkpoints.md": "gdevelop5/tutorials/platform-game/7-checkpoints.md" + "fr/gdevelop5/tutorials/basic-game-making-concepts/index.md": "gdevelop5/tutorials/basic-game-making-concepts/index.md" + "ja/gdevelop5/behaviors/physics2/index.md": "gdevelop5/behaviors/physics2/index.md" + "es/gdevelop5/behaviors/topdown/index.md": "gdevelop5/behaviors/topdown/index.md" + "es/gdevelop5/all-features/collisions/index.md": "gdevelop5/all-features/collisions/index.md" + "ja/gdevelop5/tutorials/endless-runner/index.md": "gdevelop5/tutorials/endless-runner/index.md" + "ja/gdevelop5/tutorials/basic-game-making-concepts/index.md": "gdevelop5/tutorials/basic-game-making-concepts/index.md" + "fr/gdevelop5/publishing/publishing-to-itch-io.md": "gdevelop5/publishing/publishing-to-itch-io.md" + "es/gdevelop5/behaviors/platformer/index.md": "gdevelop5/behaviors/platformer/index.md" + "ja/gdevelop5/publishing/android_and_ios.md": "gdevelop5/publishing/android_and_ios_with_cordova.md" diff --git a/overrides/404.html b/overrides/404.html index cd19dc41ef..05aad28e16 100644 --- a/overrides/404.html +++ b/overrides/404.html @@ -1,10 +1,16 @@ - {% extends "main.html" %} {% block content %} -

This page was not found (404)

-

The link you followed seems broken or the page does not exist.

+

This page was not found (404)

+

This page does not exist or has been moved!

+

+ If you're trying to find a translated page, go back to the homepage and use + the Translate button at the top before navigating to your page again! +

-

If you want to create a new page at this address, click here. -{% endblock %} +

+ + Go back to the homepage. {% endblock %} +

diff --git a/overrides/main.html b/overrides/main.html index efb2c5faaa..55c58dac62 100644 --- a/overrides/main.html +++ b/overrides/main.html @@ -1,17 +1,24 @@ -{% extends "base.html" %} {% block extrahead %} +{% extends "base.html" %} +{% block extrahead %} -{% endblock %} {% block scripts %} +{% endblock %} + +{% block scripts %} {{ super() }} - + {% endblock %} diff --git a/overrides/partials/search.html b/overrides/partials/search.html index 06f867b982..c96b8f26c1 100644 --- a/overrides/partials/search.html +++ b/overrides/partials/search.html @@ -1 +1 @@ -
\ No newline at end of file +
diff --git a/poetry.lock b/poetry.lock deleted file mode 100644 index 5063c61569..0000000000 --- a/poetry.lock +++ /dev/null @@ -1,857 +0,0 @@ -# This file is automatically @generated by Poetry 1.8.3 and should not be changed by hand. - -[[package]] -name = "babel" -version = "2.14.0" -description = "Internationalization utilities" -optional = false -python-versions = ">=3.7" -files = [ - {file = "Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287"}, - {file = "Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363"}, -] - -[package.dependencies] -pytz = {version = ">=2015.7", markers = "python_version < \"3.9\""} - -[package.extras] -dev = ["freezegun (>=1.0,<2.0)", "pytest (>=6.0)", "pytest-cov"] - -[[package]] -name = "bracex" -version = "2.3.post1" -description = "Bash style brace expander." -optional = false -python-versions = ">=3.7" -files = [ - {file = "bracex-2.3.post1-py3-none-any.whl", hash = "sha256:351b7f20d56fb9ea91f9b9e9e7664db466eb234188c175fd943f8f755c807e73"}, - {file = "bracex-2.3.post1.tar.gz", hash = "sha256:e7b23fc8b2cd06d3dec0692baabecb249dda94e06a617901ff03a6c56fd71693"}, -] - -[[package]] -name = "certifi" -version = "2024.6.2" -description = "Python package for providing Mozilla's CA Bundle." -optional = false -python-versions = ">=3.6" -files = [ - {file = "certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56"}, - {file = "certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516"}, -] - -[[package]] -name = "charset-normalizer" -version = "3.3.2" -description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." -optional = false -python-versions = ">=3.7.0" -files = [ - {file = "charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73"}, - {file = "charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab"}, - {file = "charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7"}, - {file = "charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:95f2a5796329323b8f0512e09dbb7a1860c46a39da62ecb2324f116fa8fdc85c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c002b4ffc0be611f0d9da932eb0f704fe2602a9a949d1f738e4c34c75b0863d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a981a536974bbc7a512cf44ed14938cf01030a99e9b3a06dd59578882f06f985"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3287761bc4ee9e33561a7e058c72ac0938c4f57fe49a09eae428fd88aafe7bb6"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:42cb296636fcc8b0644486d15c12376cb9fa75443e00fb25de0b8602e64c1714"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:0a55554a2fa0d408816b3b5cedf0045f4b8e1a6065aec45849de2d6f3f8e9786"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:c083af607d2515612056a31f0a8d9e0fcb5876b7bfc0abad3ecd275bc4ebc2d5"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:87d1351268731db79e0f8e745d92493ee2841c974128ef629dc518b937d9194c"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:bd8f7df7d12c2db9fab40bdd87a7c09b1530128315d047a086fa3ae3435cb3a8"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:c180f51afb394e165eafe4ac2936a14bee3eb10debc9d9e4db8958fe36afe711"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:8c622a5fe39a48f78944a87d4fb8a53ee07344641b0562c540d840748571b811"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win32.whl", hash = "sha256:db364eca23f876da6f9e16c9da0df51aa4f104a972735574842618b8c6d999d4"}, - {file = "charset_normalizer-3.3.2-cp37-cp37m-win_amd64.whl", hash = "sha256:86216b5cee4b06df986d214f664305142d9c76df9b6512be2738aa72a2048f99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25"}, - {file = "charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f"}, - {file = "charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d"}, - {file = "charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc"}, -] - -[[package]] -name = "click" -version = "8.1.7" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -files = [ - {file = "click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28"}, - {file = "click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} -importlib-metadata = {version = "*", markers = "python_version < \"3.8\""} - -[[package]] -name = "colorama" -version = "0.4.6" -description = "Cross-platform colored terminal text." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -files = [ - {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, - {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, -] - -[[package]] -name = "ghp-import" -version = "2.1.0" -description = "Copy your docs directly to the gh-pages branch." -optional = false -python-versions = "*" -files = [ - {file = "ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343"}, - {file = "ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619"}, -] - -[package.dependencies] -python-dateutil = ">=2.8.1" - -[package.extras] -dev = ["flake8", "markdown", "twine", "wheel"] - -[[package]] -name = "idna" -version = "3.7" -description = "Internationalized Domain Names in Applications (IDNA)" -optional = false -python-versions = ">=3.5" -files = [ - {file = "idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0"}, - {file = "idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc"}, -] - -[[package]] -name = "importlib-metadata" -version = "6.7.0" -description = "Read metadata from Python packages" -optional = false -python-versions = ">=3.7" -files = [ - {file = "importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5"}, - {file = "importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4"}, -] - -[package.dependencies] -typing-extensions = {version = ">=3.6.4", markers = "python_version < \"3.8\""} -zipp = ">=0.5" - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -perf = ["ipython"] -testing = ["flufl.flake8", "importlib-resources (>=1.3)", "packaging", "pyfakefs", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-mypy (>=0.9.1)", "pytest-perf (>=0.9.2)", "pytest-ruff"] - -[[package]] -name = "jinja2" -version = "3.1.4" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -files = [ - {file = "jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d"}, - {file = "jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "markdown" -version = "3.4.4" -description = "Python implementation of John Gruber's Markdown." -optional = false -python-versions = ">=3.7" -files = [ - {file = "Markdown-3.4.4-py3-none-any.whl", hash = "sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941"}, - {file = "Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6"}, -] - -[package.dependencies] -importlib-metadata = {version = ">=4.4", markers = "python_version < \"3.10\""} - -[package.extras] -docs = ["mdx-gh-links (>=0.2)", "mkdocs (>=1.0)", "mkdocs-nature (>=0.4)"] -testing = ["coverage", "pyyaml"] - -[[package]] -name = "markupsafe" -version = "2.1.5" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.7" -files = [ - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4"}, - {file = "MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906"}, - {file = "MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad"}, - {file = "MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:c8b29db45f8fe46ad280a7294f5c3ec36dbac9491f2d1c17345be8e69cc5928f"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ec6a563cff360b50eed26f13adc43e61bc0c04d94b8be985e6fb24b81f6dcfdf"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:a549b9c31bec33820e885335b451286e2969a2d9e24879f83fe904a5ce59d70a"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4f11aa001c540f62c6166c7726f71f7573b52c68c31f014c25cc7901deea0b52"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:7b2e5a267c855eea6b4283940daa6e88a285f5f2a67f2220203786dfa59b37e9"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2d2d793e36e230fd32babe143b04cec8a8b3eb8a3122d2aceb4a371e6b09b8df"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ce409136744f6521e39fd8e2a24c53fa18ad67aa5bc7c2cf83645cce5b5c4e50"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win32.whl", hash = "sha256:4096e9de5c6fdf43fb4f04c26fb114f61ef0bf2e5604b6ee3019d51b69e8c371"}, - {file = "MarkupSafe-2.1.5-cp37-cp37m-win_amd64.whl", hash = "sha256:4275d846e41ecefa46e2015117a9f491e57a71ddd59bbead77e904dc02b1bed2"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff"}, - {file = "MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf"}, - {file = "MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5"}, - {file = "MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b"}, -] - -[[package]] -name = "mergedeep" -version = "1.3.4" -description = "A deep merge function for 🐍." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307"}, - {file = "mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8"}, -] - -[[package]] -name = "mkdocs" -version = "1.5.3" -description = "Project documentation with Markdown." -optional = false -python-versions = ">=3.7" -files = [ - {file = "mkdocs-1.5.3-py3-none-any.whl", hash = "sha256:3b3a78e736b31158d64dbb2f8ba29bd46a379d0c6e324c2246c3bc3d2189cfc1"}, - {file = "mkdocs-1.5.3.tar.gz", hash = "sha256:eb7c99214dcb945313ba30426c2451b735992c73c2e10838f76d09e39ff4d0e2"}, -] - -[package.dependencies] -click = ">=7.0" -colorama = {version = ">=0.4", markers = "platform_system == \"Windows\""} -ghp-import = ">=1.0" -importlib-metadata = {version = ">=4.3", markers = "python_version < \"3.10\""} -jinja2 = ">=2.11.1" -markdown = ">=3.2.1" -markupsafe = ">=2.0.1" -mergedeep = ">=1.3.4" -packaging = ">=20.5" -pathspec = ">=0.11.1" -platformdirs = ">=2.2.0" -pyyaml = ">=5.1" -pyyaml-env-tag = ">=0.1" -typing-extensions = {version = ">=3.10", markers = "python_version < \"3.8\""} -watchdog = ">=2.0" - -[package.extras] -i18n = ["babel (>=2.9.0)"] -min-versions = ["babel (==2.9.0)", "click (==7.0)", "colorama (==0.4)", "ghp-import (==1.0)", "importlib-metadata (==4.3)", "jinja2 (==2.11.1)", "markdown (==3.2.1)", "markupsafe (==2.0.1)", "mergedeep (==1.3.4)", "packaging (==20.5)", "pathspec (==0.11.1)", "platformdirs (==2.2.0)", "pyyaml (==5.1)", "pyyaml-env-tag (==0.1)", "typing-extensions (==3.10)", "watchdog (==2.0)"] - -[[package]] -name = "mkdocs-awesome-pages-plugin" -version = "2.9.2" -description = "An MkDocs plugin that simplifies configuring page titles and their order" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mkdocs_awesome_pages_plugin-2.9.2-py3-none-any.whl", hash = "sha256:9c795587695bd1ee85a8b7e43293005418df5a8b9ef296a3e628be427b693b4d"}, - {file = "mkdocs_awesome_pages_plugin-2.9.2.tar.gz", hash = "sha256:c3f7d366ecfe99b64524c49a84d8e13c576c19a918ea2e6f59bb486a259313af"}, -] - -[package.dependencies] -mkdocs = ">=1" -natsort = ">=8.1.0" -wcmatch = ">=7" - -[[package]] -name = "mkdocs-material" -version = "9.2.7" -description = "Documentation that simply works" -optional = false -python-versions = ">=3.7" -files = [ - {file = "mkdocs_material-9.2.7-py3-none-any.whl", hash = "sha256:92e4160d191cc76121fed14ab9f14638e43a6da0f2e9d7a9194d377f0a4e7f18"}, - {file = "mkdocs_material-9.2.7.tar.gz", hash = "sha256:b44da35b0d98cd762d09ef74f1ddce5b6d6e35c13f13beb0c9d82a629e5f229e"}, -] - -[package.dependencies] -babel = ">=2.10,<3.0" -colorama = ">=0.4,<1.0" -jinja2 = ">=3.0,<4.0" -markdown = ">=3.2,<4.0" -mkdocs = ">=1.5,<2.0" -mkdocs-material-extensions = ">=1.1,<2.0" -paginate = ">=0.5,<1.0" -pygments = ">=2.16,<3.0" -pymdown-extensions = ">=10.2,<11.0" -regex = ">=2022.4,<2023.0" -requests = ">=2.26,<3.0" - -[[package]] -name = "mkdocs-material-extensions" -version = "1.2" -description = "Extension pack for Python Markdown and MkDocs Material." -optional = false -python-versions = ">=3.7" -files = [ - {file = "mkdocs_material_extensions-1.2-py3-none-any.whl", hash = "sha256:c767bd6d6305f6420a50f0b541b0c9966d52068839af97029be14443849fb8a1"}, - {file = "mkdocs_material_extensions-1.2.tar.gz", hash = "sha256:27e2d1ed2d031426a6e10d5ea06989d67e90bb02acd588bc5673106b5ee5eedf"}, -] - -[[package]] -name = "mkdocs-redirects" -version = "1.2.1" -description = "A MkDocs plugin for dynamic page redirects to prevent broken links." -optional = false -python-versions = ">=3.6" -files = [ - {file = "mkdocs-redirects-1.2.1.tar.gz", hash = "sha256:9420066d70e2a6bb357adf86e67023dcdca1857f97f07c7fe450f8f1fb42f861"}, - {file = "mkdocs_redirects-1.2.1-py3-none-any.whl", hash = "sha256:497089f9e0219e7389304cffefccdfa1cac5ff9509f2cb706f4c9b221726dffb"}, -] - -[package.dependencies] -mkdocs = ">=1.1.1" - -[package.extras] -dev = ["autoflake", "black", "isort", "pytest", "twine (>=1.13.0)"] -release = ["twine (>=1.13.0)"] -test = ["autoflake", "black", "isort", "pytest"] - -[[package]] -name = "natsort" -version = "8.4.0" -description = "Simple yet flexible natural sorting in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c"}, - {file = "natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581"}, -] - -[package.extras] -fast = ["fastnumbers (>=2.0.0)"] -icu = ["PyICU (>=1.0.0)"] - -[[package]] -name = "packaging" -version = "24.0" -description = "Core utilities for Python packages" -optional = false -python-versions = ">=3.7" -files = [ - {file = "packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5"}, - {file = "packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9"}, -] - -[[package]] -name = "paginate" -version = "0.5.6" -description = "Divides large result sets into pages for easier browsing" -optional = false -python-versions = "*" -files = [ - {file = "paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d"}, -] - -[[package]] -name = "pathspec" -version = "0.11.2" -description = "Utility library for gitignore style pattern matching of file paths." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20"}, - {file = "pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3"}, -] - -[[package]] -name = "platformdirs" -version = "4.0.0" -description = "A small Python package for determining appropriate platform-specific dirs, e.g. a \"user data dir\"." -optional = false -python-versions = ">=3.7" -files = [ - {file = "platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b"}, - {file = "platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731"}, -] - -[package.dependencies] -typing-extensions = {version = ">=4.7.1", markers = "python_version < \"3.8\""} - -[package.extras] -docs = ["furo (>=2023.7.26)", "proselint (>=0.13)", "sphinx (>=7.1.1)", "sphinx-autodoc-typehints (>=1.24)"] -test = ["appdirs (==1.4.4)", "covdefaults (>=2.3)", "pytest (>=7.4)", "pytest-cov (>=4.1)", "pytest-mock (>=3.11.1)"] - -[[package]] -name = "pygments" -version = "2.17.2" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, - {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, -] - -[package.extras] -plugins = ["importlib-metadata"] -windows-terminal = ["colorama (>=0.4.6)"] - -[[package]] -name = "pymdown-extensions" -version = "10.2.1" -description = "Extension pack for Python Markdown." -optional = false -python-versions = ">=3.7" -files = [ - {file = "pymdown_extensions-10.2.1-py3-none-any.whl", hash = "sha256:bded105eb8d93f88f2f821f00108cb70cef1269db6a40128c09c5f48bfc60ea4"}, - {file = "pymdown_extensions-10.2.1.tar.gz", hash = "sha256:d0c534b4a5725a4be7ccef25d65a4c97dba58b54ad7c813babf0eb5ba9c81591"}, -] - -[package.dependencies] -markdown = ">=3.2" -pyyaml = "*" - -[package.extras] -extra = ["pygments (>=2.12)"] - -[[package]] -name = "python-dateutil" -version = "2.9.0.post0" -description = "Extensions to the standard Python datetime module" -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" -files = [ - {file = "python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3"}, - {file = "python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427"}, -] - -[package.dependencies] -six = ">=1.5" - -[[package]] -name = "pytz" -version = "2024.1" -description = "World timezone definitions, modern and historical" -optional = false -python-versions = "*" -files = [ - {file = "pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319"}, - {file = "pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812"}, -] - -[[package]] -name = "pyyaml" -version = "6.0.1" -description = "YAML parser and emitter for Python" -optional = false -python-versions = ">=3.6" -files = [ - {file = "PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a"}, - {file = "PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d"}, - {file = "PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515"}, - {file = "PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290"}, - {file = "PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924"}, - {file = "PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007"}, - {file = "PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc"}, - {file = "PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673"}, - {file = "PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b"}, - {file = "PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741"}, - {file = "PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28"}, - {file = "PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef"}, - {file = "PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0"}, - {file = "PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4"}, - {file = "PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54"}, - {file = "PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df"}, - {file = "PyYAML-6.0.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:50550eb667afee136e9a77d6dc71ae76a44df8b3e51e41b77f6de2932bfe0f47"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1fe35611261b29bd1de0070f0b2f47cb6ff71fa6595c077e42bd0c419fa27b98"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:704219a11b772aea0d8ecd7058d0082713c3562b4e271b849ad7dc4a5c90c13c"}, - {file = "PyYAML-6.0.1-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:afd7e57eddb1a54f0f1a974bc4391af8bcce0b444685d936840f125cf046d5bd"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win32.whl", hash = "sha256:fca0e3a251908a499833aa292323f32437106001d436eca0e6e7833256674585"}, - {file = "PyYAML-6.0.1-cp36-cp36m-win_amd64.whl", hash = "sha256:f22ac1c3cac4dbc50079e965eba2c1058622631e526bd9afd45fedd49ba781fa"}, - {file = "PyYAML-6.0.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:b1275ad35a5d18c62a7220633c913e1b42d44b46ee12554e5fd39c70a243d6a3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:18aeb1bf9a78867dc38b259769503436b7c72f7a1f1f4c93ff9a17de54319b27"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:596106435fa6ad000c2991a98fa58eeb8656ef2325d7e158344fb33864ed87e3"}, - {file = "PyYAML-6.0.1-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:baa90d3f661d43131ca170712d903e6295d1f7a0f595074f151c0aed377c9b9c"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win32.whl", hash = "sha256:9046c58c4395dff28dd494285c82ba00b546adfc7ef001486fbf0324bc174fba"}, - {file = "PyYAML-6.0.1-cp37-cp37m-win_amd64.whl", hash = "sha256:4fb147e7a67ef577a588a0e2c17b6db51dda102c71de36f8549b6816a96e1867"}, - {file = "PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696"}, - {file = "PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735"}, - {file = "PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6"}, - {file = "PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206"}, - {file = "PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8"}, - {file = "PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0"}, - {file = "PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c"}, - {file = "PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5"}, - {file = "PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c"}, - {file = "PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486"}, - {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, -] - -[[package]] -name = "pyyaml-env-tag" -version = "0.1" -description = "A custom YAML tag for referencing environment variables in YAML files. " -optional = false -python-versions = ">=3.6" -files = [ - {file = "pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069"}, - {file = "pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb"}, -] - -[package.dependencies] -pyyaml = "*" - -[[package]] -name = "regex" -version = "2022.10.31" -description = "Alternative regular expression module, to replace re." -optional = false -python-versions = ">=3.6" -files = [ - {file = "regex-2022.10.31-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a8ff454ef0bb061e37df03557afda9d785c905dab15584860f982e88be73015f"}, - {file = "regex-2022.10.31-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:1eba476b1b242620c266edf6325b443a2e22b633217a9835a52d8da2b5c051f9"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d0e5af9a9effb88535a472e19169e09ce750c3d442fb222254a276d77808620b"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d03fe67b2325cb3f09be029fd5da8df9e6974f0cde2c2ac6a79d2634e791dd57"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a9d0b68ac1743964755ae2d89772c7e6fb0118acd4d0b7464eaf3921c6b49dd4"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8a45b6514861916c429e6059a55cf7db74670eaed2052a648e3e4d04f070e001"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:8b0886885f7323beea6f552c28bff62cbe0983b9fbb94126531693ea6c5ebb90"}, - {file = "regex-2022.10.31-cp310-cp310-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:5aefb84a301327ad115e9d346c8e2760009131d9d4b4c6b213648d02e2abe144"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:702d8fc6f25bbf412ee706bd73019da5e44a8400861dfff7ff31eb5b4a1276dc"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:a3c1ebd4ed8e76e886507c9eddb1a891673686c813adf889b864a17fafcf6d66"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:50921c140561d3db2ab9f5b11c5184846cde686bb5a9dc64cae442926e86f3af"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:7db345956ecce0c99b97b042b4ca7326feeec6b75facd8390af73b18e2650ffc"}, - {file = "regex-2022.10.31-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:763b64853b0a8f4f9cfb41a76a4a85a9bcda7fdda5cb057016e7706fde928e66"}, - {file = "regex-2022.10.31-cp310-cp310-win32.whl", hash = "sha256:44136355e2f5e06bf6b23d337a75386371ba742ffa771440b85bed367c1318d1"}, - {file = "regex-2022.10.31-cp310-cp310-win_amd64.whl", hash = "sha256:bfff48c7bd23c6e2aec6454aaf6edc44444b229e94743b34bdcdda2e35126cf5"}, - {file = "regex-2022.10.31-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:4b4b1fe58cd102d75ef0552cf17242705ce0759f9695334a56644ad2d83903fe"}, - {file = "regex-2022.10.31-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:542e3e306d1669b25936b64917285cdffcd4f5c6f0247636fec037187bd93542"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c27cc1e4b197092e50ddbf0118c788d9977f3f8f35bfbbd3e76c1846a3443df7"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:b8e38472739028e5f2c3a4aded0ab7eadc447f0d84f310c7a8bb697ec417229e"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:76c598ca73ec73a2f568e2a72ba46c3b6c8690ad9a07092b18e48ceb936e9f0c"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:c28d3309ebd6d6b2cf82969b5179bed5fefe6142c70f354ece94324fa11bf6a1"}, - {file = "regex-2022.10.31-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:9af69f6746120998cd9c355e9c3c6aec7dff70d47247188feb4f829502be8ab4"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:a5f9505efd574d1e5b4a76ac9dd92a12acb2b309551e9aa874c13c11caefbe4f"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:5ff525698de226c0ca743bfa71fc6b378cda2ddcf0d22d7c37b1cc925c9650a5"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:4fe7fda2fe7c8890d454f2cbc91d6c01baf206fbc96d89a80241a02985118c0c"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:2cdc55ca07b4e70dda898d2ab7150ecf17c990076d3acd7a5f3b25cb23a69f1c"}, - {file = "regex-2022.10.31-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:44a6c2f6374e0033873e9ed577a54a3602b4f609867794c1a3ebba65e4c93ee7"}, - {file = "regex-2022.10.31-cp311-cp311-win32.whl", hash = "sha256:d8716f82502997b3d0895d1c64c3b834181b1eaca28f3f6336a71777e437c2af"}, - {file = "regex-2022.10.31-cp311-cp311-win_amd64.whl", hash = "sha256:61edbca89aa3f5ef7ecac8c23d975fe7261c12665f1d90a6b1af527bba86ce61"}, - {file = "regex-2022.10.31-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:0a069c8483466806ab94ea9068c34b200b8bfc66b6762f45a831c4baaa9e8cdd"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:d26166acf62f731f50bdd885b04b38828436d74e8e362bfcb8df221d868b5d9b"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ac741bf78b9bb432e2d314439275235f41656e189856b11fb4e774d9f7246d81"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:75f591b2055523fc02a4bbe598aa867df9e953255f0b7f7715d2a36a9c30065c"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6b30bddd61d2a3261f025ad0f9ee2586988c6a00c780a2fb0a92cea2aa702c54"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ef4163770525257876f10e8ece1cf25b71468316f61451ded1a6f44273eedeb5"}, - {file = "regex-2022.10.31-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:7b280948d00bd3973c1998f92e22aa3ecb76682e3a4255f33e1020bd32adf443"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_aarch64.whl", hash = "sha256:d0213671691e341f6849bf33cd9fad21f7b1cb88b89e024f33370733fec58742"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_i686.whl", hash = "sha256:22e7ebc231d28393dfdc19b185d97e14a0f178bedd78e85aad660e93b646604e"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_ppc64le.whl", hash = "sha256:8ad241da7fac963d7573cc67a064c57c58766b62a9a20c452ca1f21050868dfa"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_s390x.whl", hash = "sha256:586b36ebda81e6c1a9c5a5d0bfdc236399ba6595e1397842fd4a45648c30f35e"}, - {file = "regex-2022.10.31-cp36-cp36m-musllinux_1_1_x86_64.whl", hash = "sha256:0653d012b3bf45f194e5e6a41df9258811ac8fc395579fa82958a8b76286bea4"}, - {file = "regex-2022.10.31-cp36-cp36m-win32.whl", hash = "sha256:144486e029793a733e43b2e37df16a16df4ceb62102636ff3db6033994711066"}, - {file = "regex-2022.10.31-cp36-cp36m-win_amd64.whl", hash = "sha256:c14b63c9d7bab795d17392c7c1f9aaabbffd4cf4387725a0ac69109fb3b550c6"}, - {file = "regex-2022.10.31-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:4cac3405d8dda8bc6ed499557625585544dd5cbf32072dcc72b5a176cb1271c8"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:23cbb932cc53a86ebde0fb72e7e645f9a5eec1a5af7aa9ce333e46286caef783"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:74bcab50a13960f2a610cdcd066e25f1fd59e23b69637c92ad470784a51b1347"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:78d680ef3e4d405f36f0d6d1ea54e740366f061645930072d39bca16a10d8c93"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ce6910b56b700bea7be82c54ddf2e0ed792a577dfaa4a76b9af07d550af435c6"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:659175b2144d199560d99a8d13b2228b85e6019b6e09e556209dfb8c37b78a11"}, - {file = "regex-2022.10.31-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:1ddf14031a3882f684b8642cb74eea3af93a2be68893901b2b387c5fd92a03ec"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_aarch64.whl", hash = "sha256:b683e5fd7f74fb66e89a1ed16076dbab3f8e9f34c18b1979ded614fe10cdc4d9"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_i686.whl", hash = "sha256:2bde29cc44fa81c0a0c8686992c3080b37c488df167a371500b2a43ce9f026d1"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_ppc64le.whl", hash = "sha256:4919899577ba37f505aaebdf6e7dc812d55e8f097331312db7f1aab18767cce8"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_s390x.whl", hash = "sha256:9c94f7cc91ab16b36ba5ce476f1904c91d6c92441f01cd61a8e2729442d6fcf5"}, - {file = "regex-2022.10.31-cp37-cp37m-musllinux_1_1_x86_64.whl", hash = "sha256:ae1e96785696b543394a4e3f15f3f225d44f3c55dafe3f206493031419fedf95"}, - {file = "regex-2022.10.31-cp37-cp37m-win32.whl", hash = "sha256:c670f4773f2f6f1957ff8a3962c7dd12e4be54d05839b216cb7fd70b5a1df394"}, - {file = "regex-2022.10.31-cp37-cp37m-win_amd64.whl", hash = "sha256:8e0caeff18b96ea90fc0eb6e3bdb2b10ab5b01a95128dfeccb64a7238decf5f0"}, - {file = "regex-2022.10.31-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:131d4be09bea7ce2577f9623e415cab287a3c8e0624f778c1d955ec7c281bd4d"}, - {file = "regex-2022.10.31-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:e613a98ead2005c4ce037c7b061f2409a1a4e45099edb0ef3200ee26ed2a69a8"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:052b670fafbe30966bbe5d025e90b2a491f85dfe5b2583a163b5e60a85a321ad"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:aa62a07ac93b7cb6b7d0389d8ef57ffc321d78f60c037b19dfa78d6b17c928ee"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:5352bea8a8f84b89d45ccc503f390a6be77917932b1c98c4cdc3565137acc714"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:20f61c9944f0be2dc2b75689ba409938c14876c19d02f7585af4460b6a21403e"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:29c04741b9ae13d1e94cf93fca257730b97ce6ea64cfe1eba11cf9ac4e85afb6"}, - {file = "regex-2022.10.31-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:543883e3496c8b6d58bd036c99486c3c8387c2fc01f7a342b760c1ea3158a318"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:b7a8b43ee64ca8f4befa2bea4083f7c52c92864d8518244bfa6e88c751fa8fff"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:6a9a19bea8495bb419dc5d38c4519567781cd8d571c72efc6aa959473d10221a"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:6ffd55b5aedc6f25fd8d9f905c9376ca44fcf768673ffb9d160dd6f409bfda73"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:4bdd56ee719a8f751cf5a593476a441c4e56c9b64dc1f0f30902858c4ef8771d"}, - {file = "regex-2022.10.31-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8ca88da1bd78990b536c4a7765f719803eb4f8f9971cc22d6ca965c10a7f2c4c"}, - {file = "regex-2022.10.31-cp38-cp38-win32.whl", hash = "sha256:5a260758454580f11dd8743fa98319bb046037dfab4f7828008909d0aa5292bc"}, - {file = "regex-2022.10.31-cp38-cp38-win_amd64.whl", hash = "sha256:5e6a5567078b3eaed93558842346c9d678e116ab0135e22eb72db8325e90b453"}, - {file = "regex-2022.10.31-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5217c25229b6a85049416a5c1e6451e9060a1edcf988641e309dbe3ab26d3e49"}, - {file = "regex-2022.10.31-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:4bf41b8b0a80708f7e0384519795e80dcb44d7199a35d52c15cc674d10b3081b"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0cf0da36a212978be2c2e2e2d04bdff46f850108fccc1851332bcae51c8907cc"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d403d781b0e06d2922435ce3b8d2376579f0c217ae491e273bab8d092727d244"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:a37d51fa9a00d265cf73f3de3930fa9c41548177ba4f0faf76e61d512c774690"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e4f781ffedd17b0b834c8731b75cce2639d5a8afe961c1e58ee7f1f20b3af185"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:d243b36fbf3d73c25e48014961e83c19c9cc92530516ce3c43050ea6276a2ab7"}, - {file = "regex-2022.10.31-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:370f6e97d02bf2dd20d7468ce4f38e173a124e769762d00beadec3bc2f4b3bc4"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:597f899f4ed42a38df7b0e46714880fb4e19a25c2f66e5c908805466721760f5"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:7dbdce0c534bbf52274b94768b3498abdf675a691fec5f751b6057b3030f34c1"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:22960019a842777a9fa5134c2364efaed5fbf9610ddc5c904bd3a400973b0eb8"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:7f5a3ffc731494f1a57bd91c47dc483a1e10048131ffb52d901bfe2beb6102e8"}, - {file = "regex-2022.10.31-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:7ef6b5942e6bfc5706301a18a62300c60db9af7f6368042227ccb7eeb22d0892"}, - {file = "regex-2022.10.31-cp39-cp39-win32.whl", hash = "sha256:395161bbdbd04a8333b9ff9763a05e9ceb4fe210e3c7690f5e68cedd3d65d8e1"}, - {file = "regex-2022.10.31-cp39-cp39-win_amd64.whl", hash = "sha256:957403a978e10fb3ca42572a23e6f7badff39aa1ce2f4ade68ee452dc6807692"}, - {file = "regex-2022.10.31.tar.gz", hash = "sha256:a3a98921da9a1bf8457aeee6a551948a83601689e5ecdd736894ea9bbec77e83"}, -] - -[[package]] -name = "requests" -version = "2.31.0" -description = "Python HTTP for Humans." -optional = false -python-versions = ">=3.7" -files = [ - {file = "requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f"}, - {file = "requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1"}, -] - -[package.dependencies] -certifi = ">=2017.4.17" -charset-normalizer = ">=2,<4" -idna = ">=2.5,<4" -urllib3 = ">=1.21.1,<3" - -[package.extras] -socks = ["PySocks (>=1.5.6,!=1.5.7)"] -use-chardet-on-py3 = ["chardet (>=3.0.2,<6)"] - -[[package]] -name = "six" -version = "1.16.0" -description = "Python 2 and 3 compatibility utilities" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" -files = [ - {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, - {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, -] - -[[package]] -name = "typing-extensions" -version = "4.7.1" -description = "Backported and Experimental Type Hints for Python 3.7+" -optional = false -python-versions = ">=3.7" -files = [ - {file = "typing_extensions-4.7.1-py3-none-any.whl", hash = "sha256:440d5dd3af93b060174bf433bccd69b0babc3b15b1a8dca43789fd7f61514b36"}, - {file = "typing_extensions-4.7.1.tar.gz", hash = "sha256:b75ddc264f0ba5615db7ba217daeb99701ad295353c45f9e95963337ceeeffb2"}, -] - -[[package]] -name = "urllib3" -version = "2.0.7" -description = "HTTP library with thread-safe connection pooling, file post, and more." -optional = false -python-versions = ">=3.7" -files = [ - {file = "urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e"}, - {file = "urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84"}, -] - -[package.extras] -brotli = ["brotli (>=1.0.9)", "brotlicffi (>=0.8.0)"] -secure = ["certifi", "cryptography (>=1.9)", "idna (>=2.0.0)", "pyopenssl (>=17.1.0)", "urllib3-secure-extra"] -socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] -zstd = ["zstandard (>=0.18.0)"] - -[[package]] -name = "watchdog" -version = "3.0.0" -description = "Filesystem events monitoring" -optional = false -python-versions = ">=3.7" -files = [ - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397"}, - {file = "watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9"}, - {file = "watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7"}, - {file = "watchdog-3.0.0-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:9fac43a7466eb73e64a9940ac9ed6369baa39b3bf221ae23493a9ec4d0022674"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc"}, - {file = "watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0"}, - {file = "watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8"}, - {file = "watchdog-3.0.0-pp37-pypy37_pp73-macosx_10_9_x86_64.whl", hash = "sha256:13bbbb462ee42ec3c5723e1205be8ced776f05b100e4737518c67c8325cf6100"}, - {file = "watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346"}, - {file = "watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d"}, - {file = "watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33"}, - {file = "watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f"}, - {file = "watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c"}, - {file = "watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759"}, - {file = "watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9"}, -] - -[package.extras] -watchmedo = ["PyYAML (>=3.10)"] - -[[package]] -name = "wcmatch" -version = "8.4.1" -description = "Wildcard/glob file name matcher." -optional = false -python-versions = ">=3.7" -files = [ - {file = "wcmatch-8.4.1-py3-none-any.whl", hash = "sha256:3476cd107aba7b25ba1d59406938a47dc7eec6cfd0ad09ff77193f21a964dee7"}, - {file = "wcmatch-8.4.1.tar.gz", hash = "sha256:b1f042a899ea4c458b7321da1b5e3331e3e0ec781583434de1301946ceadb943"}, -] - -[package.dependencies] -bracex = ">=2.1.1" - -[[package]] -name = "zipp" -version = "3.15.0" -description = "Backport of pathlib-compatible object wrapper for zip files" -optional = false -python-versions = ">=3.7" -files = [ - {file = "zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556"}, - {file = "zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b"}, -] - -[package.extras] -docs = ["furo", "jaraco.packaging (>=9)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -testing = ["big-O", "flake8 (<5)", "jaraco.functools", "jaraco.itertools", "more-itertools", "pytest (>=6)", "pytest-black (>=0.3.7)", "pytest-checkdocs (>=2.4)", "pytest-cov", "pytest-enabler (>=1.3)", "pytest-flake8", "pytest-mypy (>=0.9.1)"] - -[metadata] -lock-version = "2.0" -python-versions = "^3.7" -content-hash = "4c68a2a96902d7660ba35d7722d2e0c75f891db19f518b3dac78bd0b5186f511" diff --git a/pyproject.toml b/pyproject.toml index b523e13e29..f35afa4e0f 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,17 +1,28 @@ -[tool.poetry] +[project] name = "gdevelop-documentation" version = "0.1.0" description = "GDevelop wiki made with Wiki.js" -authors = ["Your Name "] +authors = [{ name = "Your Name", email = "you@example.com" }] +requires-python = ">=3.8,<4" +dependencies = [ + "mkdocs-material>=9.6.21,<10", + "mkdocs-redirects>=1.2.0,<2", + "mkdocs-awesome-pages-plugin>=2.8.0,<3", +] -[tool.poetry.dependencies] -python = "^3.7" -mkdocs-material = "^9.1.3" -mkdocs-redirects = "^1.2.0" -mkdocs-awesome-pages-plugin = "^2.8.0" - -[tool.poetry.dev-dependencies] +[dependency-groups] +dev = [] [build-system] -requires = ["poetry-core>=1.0.0"] -build-backend = "poetry.core.masonry.api" +requires = ["hatchling>=1.21"] +build-backend = "hatchling.build" + +[tool.hatch.build.targets.wheel] +packages = ["src/gdevelop_documentation"] + +[tool.hatch.build.targets.sdist] +include = [ + "pyproject.toml", + "src/gdevelop_documentation/**", + "README*", +] \ No newline at end of file diff --git a/requirements.txt b/requirements.txt deleted file mode 100644 index 99ccdf3f38..0000000000 --- a/requirements.txt +++ /dev/null @@ -1,33 +0,0 @@ -bracex==2.3.post1; python_version >= "3.7" and python_full_version >= "3.6.2" -certifi==2022.12.7; python_version >= "3.7" and python_version < "4" -charset-normalizer==3.1.0; python_version >= "3.7" and python_version < "4" and python_full_version >= "3.7.0" -click==8.1.3; python_version >= "3.7" and python_full_version >= "3.6.2" -colorama==0.4.6; python_full_version >= "3.7.0" and python_version >= "3.7" and platform_system == "Windows" -ghp-import==2.1.0; python_version >= "3.7" and python_full_version >= "3.6.2" -idna==3.4; python_version >= "3.7" and python_version < "4" -importlib-metadata==6.0.0; python_version < "3.8" and python_version >= "3.7" and python_full_version >= "3.6.2" -jinja2==3.1.2; python_version >= "3.7" and python_full_version >= "3.6.2" -lxml==4.9.2; python_version >= "3.6" and python_full_version < "3.0.0" or python_full_version >= "3.5.0" and python_version >= "3.6" -markdown==3.3.7; python_version >= "3.7" and python_full_version >= "3.6.2" -markupsafe==2.1.2; python_version >= "3.7" -mergedeep==1.3.4; python_version >= "3.7" and python_full_version >= "3.6.2" -mkdocs-awesome-pages-plugin==2.8.0; python_full_version >= "3.6.2" -mkdocs-material-extensions==1.1.1; python_version >= "3.7" -mkdocs-material==9.1.3; python_version >= "3.7" -mkdocs-redirects==1.2.0; python_version >= "3.6" -mkdocs==1.4.2; python_version >= "3.7" and python_full_version >= "3.6.2" -natsort==8.3.1; python_version >= "3.7" and python_full_version >= "3.6.2" -packaging==23.0; python_version >= "3.7" and python_full_version >= "3.6.2" -pygments==2.14.0; python_version >= "3.7" -pymdown-extensions==9.10; python_version >= "3.7" -python-dateutil==2.8.2; python_version >= "3.7" and python_full_version >= "3.6.2" -pyyaml-env-tag==0.1; python_version >= "3.7" and python_full_version >= "3.6.2" -pyyaml==6.0.1; python_version >= "3.7" and python_full_version >= "3.6.2" -regex==2022.10.31; python_version >= "3.7" -requests==2.28.2; python_version >= "3.7" and python_version < "4" -six==1.16.0; python_version >= "3.7" and python_full_version >= "3.6.2" -typing-extensions==4.5.0; python_version < "3.8" and python_version >= "3.7" and python_full_version >= "3.6.2" -urllib3==1.26.15; python_version >= "3.7" and python_full_version < "3.0.0" and python_version < "4" or python_version >= "3.7" and python_version < "4" and python_full_version >= "3.6.0" -watchdog==2.3.1; python_version >= "3.7" and python_full_version >= "3.6.2" -wcmatch==8.4.1; python_version >= "3.7" and python_full_version >= "3.6.2" -zipp==3.15.0; python_version < "3.10" and python_version >= "3.7" and python_full_version >= "3.6.2" diff --git a/uv.lock b/uv.lock new file mode 100644 index 0000000000..f9d011870b --- /dev/null +++ b/uv.lock @@ -0,0 +1,621 @@ +version = 1 +revision = 3 +requires-python = ">=3.8, <4" + +[[package]] +name = "babel" +version = "2.14.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pytz", marker = "python_full_version < '3.9'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/e2/80/cfbe44a9085d112e983282ee7ca4c00429bc4d1ce86ee5f4e60259ddff7f/Babel-2.14.0.tar.gz", hash = "sha256:6919867db036398ba21eb5c7a0f6b28ab8cbc3ae7a73a44ebe34ae74a4e7d363", size = 10795622, upload-time = "2023-12-12T13:33:16.473Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/0d/35/4196b21041e29a42dc4f05866d0c94fa26c9da88ce12c38c2265e42c82fb/Babel-2.14.0-py3-none-any.whl", hash = "sha256:efb1a25b7118e67ce3a259bed20545c29cb68be8ad2c784c83689981b7a57287", size = 11034798, upload-time = "2023-12-12T13:33:13.288Z" }, +] + +[[package]] +name = "backrefs" +version = "5.7.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/df/30/903f35159c87ff1d92aa3fcf8cb52de97632a21e0ae43ed940f5d033e01a/backrefs-5.7.post1.tar.gz", hash = "sha256:8b0f83b770332ee2f1c8244f4e03c77d127a0fa529328e6a0e77fa25bee99678", size = 6582270, upload-time = "2024-06-16T18:38:20.166Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/24/bb/47fc255d1060dcfd55b460236380edd8ebfc5b2a42a0799ca90c9fc983e3/backrefs-5.7.post1-py310-none-any.whl", hash = "sha256:c5e3fd8fd185607a7cb1fefe878cfb09c34c0be3c18328f12c574245f1c0287e", size = 380429, upload-time = "2024-06-16T18:38:10.131Z" }, + { url = "https://files.pythonhosted.org/packages/89/72/39ef491caef3abae945f5a5fd72830d3b596bfac0630508629283585e213/backrefs-5.7.post1-py311-none-any.whl", hash = "sha256:712ea7e494c5bf3291156e28954dd96d04dc44681d0e5c030adf2623d5606d51", size = 392234, upload-time = "2024-06-16T18:38:12.283Z" }, + { url = "https://files.pythonhosted.org/packages/6a/00/33403f581b732ca70fdebab558e8bbb426a29c34e0c3ed674a479b74beea/backrefs-5.7.post1-py312-none-any.whl", hash = "sha256:a6142201c8293e75bce7577ac29e1a9438c12e730d73a59efdd1b75528d1a6c5", size = 398110, upload-time = "2024-06-16T18:38:14.257Z" }, + { url = "https://files.pythonhosted.org/packages/5d/ea/df0ac74a26838f6588aa012d5d801831448b87d0a7d0aefbbfabbe894870/backrefs-5.7.post1-py38-none-any.whl", hash = "sha256:ec61b1ee0a4bfa24267f6b67d0f8c5ffdc8e0d7dc2f18a2685fd1d8d9187054a", size = 369477, upload-time = "2024-06-16T18:38:16.196Z" }, + { url = "https://files.pythonhosted.org/packages/6f/e8/e43f535c0a17a695e5768670fc855a0e5d52dc0d4135b3915bfa355f65ac/backrefs-5.7.post1-py39-none-any.whl", hash = "sha256:05c04af2bf752bb9a6c9dcebb2aff2fab372d3d9d311f2a138540e307756bd3a", size = 380429, upload-time = "2024-06-16T18:38:18.079Z" }, +] + +[[package]] +name = "bracex" +version = "2.3.post1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/b3/96/d53e290ddf6215cfb24f93449a1835eff566f79a1f332cf046a978df0c9e/bracex-2.3.post1.tar.gz", hash = "sha256:e7b23fc8b2cd06d3dec0692baabecb249dda94e06a617901ff03a6c56fd71693", size = 27578, upload-time = "2022-05-30T14:58:02.796Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/26/f5/7c60fb31c9aea37b3424e4206f9f6ed23c1ee0a717fa31749d10665a4eef/bracex-2.3.post1-py3-none-any.whl", hash = "sha256:351b7f20d56fb9ea91f9b9e9e7664db466eb234188c175fd943f8f755c807e73", size = 12414, upload-time = "2022-05-30T14:58:01.709Z" }, +] + +[[package]] +name = "certifi" +version = "2024.6.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/07/b3/e02f4f397c81077ffc52a538e0aec464016f1860c472ed33bd2a1d220cc5/certifi-2024.6.2.tar.gz", hash = "sha256:3cd43f1c6fa7dedc5899d69d3ad0398fd018ad1a17fba83ddaf78aa46c747516", size = 165550, upload-time = "2024-06-02T01:45:25.48Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/11/1e78951465b4a225519b8c3ad29769c49e0d8d157a070f681d5b6d64737f/certifi-2024.6.2-py3-none-any.whl", hash = "sha256:ddc6c8ce995e6987e7faf5e3f1b02b302836a0e5d98ece18392cb1a36c72ad56", size = 164433, upload-time = "2024-06-02T01:45:23.134Z" }, +] + +[[package]] +name = "charset-normalizer" +version = "3.3.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/63/09/c1bc53dab74b1816a00d8d030de5bf98f724c52c1635e07681d312f20be8/charset-normalizer-3.3.2.tar.gz", hash = "sha256:f30c3cb33b24454a82faecaf01b19c18562b1e89558fb6c56de4d9118a032fd5", size = 104809, upload-time = "2023-11-01T04:04:59.997Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2b/61/095a0aa1a84d1481998b534177c8566fdc50bb1233ea9a0478cd3cc075bd/charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:25baf083bf6f6b341f4121c2f3c548875ee6f5339300e08be3f2b2ba1721cdd3", size = 194219, upload-time = "2023-11-01T04:02:29.048Z" }, + { url = "https://files.pythonhosted.org/packages/cc/94/f7cf5e5134175de79ad2059edf2adce18e0685ebdb9227ff0139975d0e93/charset_normalizer-3.3.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:06435b539f889b1f6f4ac1758871aae42dc3a8c0e24ac9e60c2384973ad73027", size = 122521, upload-time = "2023-11-01T04:02:32.452Z" }, + { url = "https://files.pythonhosted.org/packages/46/6a/d5c26c41c49b546860cc1acabdddf48b0b3fb2685f4f5617ac59261b44ae/charset_normalizer-3.3.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:9063e24fdb1e498ab71cb7419e24622516c4a04476b17a2dab57e8baa30d6e03", size = 120383, upload-time = "2023-11-01T04:02:34.11Z" }, + { url = "https://files.pythonhosted.org/packages/b8/60/e2f67915a51be59d4539ed189eb0a2b0d292bf79270410746becb32bc2c3/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6897af51655e3691ff853668779c7bad41579facacf5fd7253b0133308cf000d", size = 138223, upload-time = "2023-11-01T04:02:36.213Z" }, + { url = "https://files.pythonhosted.org/packages/05/8c/eb854996d5fef5e4f33ad56927ad053d04dc820e4a3d39023f35cad72617/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1d3193f4a680c64b4b6a9115943538edb896edc190f0b222e73761716519268e", size = 148101, upload-time = "2023-11-01T04:02:38.067Z" }, + { url = "https://files.pythonhosted.org/packages/f6/93/bb6cbeec3bf9da9b2eba458c15966658d1daa8b982c642f81c93ad9b40e1/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd70574b12bb8a4d2aaa0094515df2463cb429d8536cfb6c7ce983246983e5a6", size = 140699, upload-time = "2023-11-01T04:02:39.436Z" }, + { url = "https://files.pythonhosted.org/packages/da/f1/3702ba2a7470666a62fd81c58a4c40be00670e5006a67f4d626e57f013ae/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:8465322196c8b4d7ab6d1e049e4c5cb460d0394da4a27d23cc242fbf0034b6b5", size = 142065, upload-time = "2023-11-01T04:02:41.357Z" }, + { url = "https://files.pythonhosted.org/packages/3f/ba/3f5e7be00b215fa10e13d64b1f6237eb6ebea66676a41b2bcdd09fe74323/charset_normalizer-3.3.2-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:a9a8e9031d613fd2009c182b69c7b2c1ef8239a0efb1df3f7c8da66d5dd3d537", size = 144505, upload-time = "2023-11-01T04:02:43.108Z" }, + { url = "https://files.pythonhosted.org/packages/33/c3/3b96a435c5109dd5b6adc8a59ba1d678b302a97938f032e3770cc84cd354/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:beb58fe5cdb101e3a055192ac291b7a21e3b7ef4f67fa1d74e331a7f2124341c", size = 139425, upload-time = "2023-11-01T04:02:45.427Z" }, + { url = "https://files.pythonhosted.org/packages/43/05/3bf613e719efe68fb3a77f9c536a389f35b95d75424b96b426a47a45ef1d/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:e06ed3eb3218bc64786f7db41917d4e686cc4856944f53d5bdf83a6884432e12", size = 145287, upload-time = "2023-11-01T04:02:46.705Z" }, + { url = "https://files.pythonhosted.org/packages/58/78/a0bc646900994df12e07b4ae5c713f2b3e5998f58b9d3720cce2aa45652f/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_ppc64le.whl", hash = "sha256:2e81c7b9c8979ce92ed306c249d46894776a909505d8f5a4ba55b14206e3222f", size = 149929, upload-time = "2023-11-01T04:02:48.098Z" }, + { url = "https://files.pythonhosted.org/packages/eb/5c/97d97248af4920bc68687d9c3b3c0f47c910e21a8ff80af4565a576bd2f0/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_s390x.whl", hash = "sha256:572c3763a264ba47b3cf708a44ce965d98555f618ca42c926a9c1616d8f34269", size = 141605, upload-time = "2023-11-01T04:02:49.605Z" }, + { url = "https://files.pythonhosted.org/packages/a8/31/47d018ef89f95b8aded95c589a77c072c55e94b50a41aa99c0a2008a45a4/charset_normalizer-3.3.2-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fd1abc0d89e30cc4e02e4064dc67fcc51bd941eb395c502aac3ec19fab46b519", size = 142646, upload-time = "2023-11-01T04:02:51.35Z" }, + { url = "https://files.pythonhosted.org/packages/ae/d5/4fecf1d58bedb1340a50f165ba1c7ddc0400252d6832ff619c4568b36cc0/charset_normalizer-3.3.2-cp310-cp310-win32.whl", hash = "sha256:3d47fa203a7bd9c5b6cee4736ee84ca03b8ef23193c0d1ca99b5089f72645c73", size = 92846, upload-time = "2023-11-01T04:02:52.679Z" }, + { url = "https://files.pythonhosted.org/packages/a2/a0/4af29e22cb5942488cf45630cbdd7cefd908768e69bdd90280842e4e8529/charset_normalizer-3.3.2-cp310-cp310-win_amd64.whl", hash = "sha256:10955842570876604d404661fbccbc9c7e684caf432c09c715ec38fbae45ae09", size = 100343, upload-time = "2023-11-01T04:02:53.915Z" }, + { url = "https://files.pythonhosted.org/packages/68/77/02839016f6fbbf808e8b38601df6e0e66c17bbab76dff4613f7511413597/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:802fe99cca7457642125a8a88a084cef28ff0cf9407060f7b93dca5aa25480db", size = 191647, upload-time = "2023-11-01T04:02:55.329Z" }, + { url = "https://files.pythonhosted.org/packages/3e/33/21a875a61057165e92227466e54ee076b73af1e21fe1b31f1e292251aa1e/charset_normalizer-3.3.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:573f6eac48f4769d667c4442081b1794f52919e7edada77495aaed9236d13a96", size = 121434, upload-time = "2023-11-01T04:02:57.173Z" }, + { url = "https://files.pythonhosted.org/packages/dd/51/68b61b90b24ca35495956b718f35a9756ef7d3dd4b3c1508056fa98d1a1b/charset_normalizer-3.3.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:549a3a73da901d5bc3ce8d24e0600d1fa85524c10287f6004fbab87672bf3e1e", size = 118979, upload-time = "2023-11-01T04:02:58.442Z" }, + { url = "https://files.pythonhosted.org/packages/e4/a6/7ee57823d46331ddc37dd00749c95b0edec2c79b15fc0d6e6efb532e89ac/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f27273b60488abe721a075bcca6d7f3964f9f6f067c8c4c605743023d7d3944f", size = 136582, upload-time = "2023-11-01T04:02:59.776Z" }, + { url = "https://files.pythonhosted.org/packages/74/f1/0d9fe69ac441467b737ba7f48c68241487df2f4522dd7246d9426e7c690e/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:1ceae2f17a9c33cb48e3263960dc5fc8005351ee19db217e9b1bb15d28c02574", size = 146645, upload-time = "2023-11-01T04:03:02.186Z" }, + { url = "https://files.pythonhosted.org/packages/05/31/e1f51c76db7be1d4aef220d29fbfa5dbb4a99165d9833dcbf166753b6dc0/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:65f6f63034100ead094b8744b3b97965785388f308a64cf8d7c34f2f2e5be0c4", size = 139398, upload-time = "2023-11-01T04:03:04.255Z" }, + { url = "https://files.pythonhosted.org/packages/40/26/f35951c45070edc957ba40a5b1db3cf60a9dbb1b350c2d5bef03e01e61de/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:753f10e867343b4511128c6ed8c82f7bec3bd026875576dfd88483c5c73b2fd8", size = 140273, upload-time = "2023-11-01T04:03:05.983Z" }, + { url = "https://files.pythonhosted.org/packages/07/07/7e554f2bbce3295e191f7e653ff15d55309a9ca40d0362fcdab36f01063c/charset_normalizer-3.3.2-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4a78b2b446bd7c934f5dcedc588903fb2f5eec172f3d29e52a9096a43722adfc", size = 142577, upload-time = "2023-11-01T04:03:07.567Z" }, + { url = "https://files.pythonhosted.org/packages/d8/b5/eb705c313100defa57da79277d9207dc8d8e45931035862fa64b625bfead/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:e537484df0d8f426ce2afb2d0f8e1c3d0b114b83f8850e5f2fbea0e797bd82ae", size = 137747, upload-time = "2023-11-01T04:03:08.886Z" }, + { url = "https://files.pythonhosted.org/packages/19/28/573147271fd041d351b438a5665be8223f1dd92f273713cb882ddafe214c/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:eb6904c354526e758fda7167b33005998fb68c46fbc10e013ca97f21ca5c8887", size = 143375, upload-time = "2023-11-01T04:03:10.613Z" }, + { url = "https://files.pythonhosted.org/packages/cf/7c/f3b682fa053cc21373c9a839e6beba7705857075686a05c72e0f8c4980ca/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_ppc64le.whl", hash = "sha256:deb6be0ac38ece9ba87dea880e438f25ca3eddfac8b002a2ec3d9183a454e8ae", size = 148474, upload-time = "2023-11-01T04:03:11.973Z" }, + { url = "https://files.pythonhosted.org/packages/1e/49/7ab74d4ac537ece3bc3334ee08645e231f39f7d6df6347b29a74b0537103/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_s390x.whl", hash = "sha256:4ab2fe47fae9e0f9dee8c04187ce5d09f48eabe611be8259444906793ab7cbce", size = 140232, upload-time = "2023-11-01T04:03:13.505Z" }, + { url = "https://files.pythonhosted.org/packages/2d/dc/9dacba68c9ac0ae781d40e1a0c0058e26302ea0660e574ddf6797a0347f7/charset_normalizer-3.3.2-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:80402cd6ee291dcb72644d6eac93785fe2c8b9cb30893c1af5b8fdd753b9d40f", size = 140859, upload-time = "2023-11-01T04:03:17.362Z" }, + { url = "https://files.pythonhosted.org/packages/6c/c2/4a583f800c0708dd22096298e49f887b49d9746d0e78bfc1d7e29816614c/charset_normalizer-3.3.2-cp311-cp311-win32.whl", hash = "sha256:7cd13a2e3ddeed6913a65e66e94b51d80a041145a026c27e6bb76c31a853c6ab", size = 92509, upload-time = "2023-11-01T04:03:21.453Z" }, + { url = "https://files.pythonhosted.org/packages/57/ec/80c8d48ac8b1741d5b963797b7c0c869335619e13d4744ca2f67fc11c6fc/charset_normalizer-3.3.2-cp311-cp311-win_amd64.whl", hash = "sha256:663946639d296df6a2bb2aa51b60a2454ca1cb29835324c640dafb5ff2131a77", size = 99870, upload-time = "2023-11-01T04:03:22.723Z" }, + { url = "https://files.pythonhosted.org/packages/d1/b2/fcedc8255ec42afee97f9e6f0145c734bbe104aac28300214593eb326f1d/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:0b2b64d2bb6d3fb9112bafa732def486049e63de9618b5843bcdd081d8144cd8", size = 192892, upload-time = "2023-11-01T04:03:24.135Z" }, + { url = "https://files.pythonhosted.org/packages/2e/7d/2259318c202f3d17f3fe6438149b3b9e706d1070fe3fcbb28049730bb25c/charset_normalizer-3.3.2-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:ddbb2551d7e0102e7252db79ba445cdab71b26640817ab1e3e3648dad515003b", size = 122213, upload-time = "2023-11-01T04:03:25.66Z" }, + { url = "https://files.pythonhosted.org/packages/3a/52/9f9d17c3b54dc238de384c4cb5a2ef0e27985b42a0e5cc8e8a31d918d48d/charset_normalizer-3.3.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:55086ee1064215781fff39a1af09518bc9255b50d6333f2e4c74ca09fac6a8f6", size = 119404, upload-time = "2023-11-01T04:03:27.04Z" }, + { url = "https://files.pythonhosted.org/packages/99/b0/9c365f6d79a9f0f3c379ddb40a256a67aa69c59609608fe7feb6235896e1/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8f4a014bc36d3c57402e2977dada34f9c12300af536839dc38c0beab8878f38a", size = 137275, upload-time = "2023-11-01T04:03:28.466Z" }, + { url = "https://files.pythonhosted.org/packages/91/33/749df346e93d7a30cdcb90cbfdd41a06026317bfbfb62cd68307c1a3c543/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:a10af20b82360ab00827f916a6058451b723b4e65030c5a18577c8b2de5b3389", size = 147518, upload-time = "2023-11-01T04:03:29.82Z" }, + { url = "https://files.pythonhosted.org/packages/72/1a/641d5c9f59e6af4c7b53da463d07600a695b9824e20849cb6eea8a627761/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8d756e44e94489e49571086ef83b2bb8ce311e730092d2c34ca8f7d925cb20aa", size = 140182, upload-time = "2023-11-01T04:03:31.511Z" }, + { url = "https://files.pythonhosted.org/packages/ee/fb/14d30eb4956408ee3ae09ad34299131fb383c47df355ddb428a7331cfa1e/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:90d558489962fd4918143277a773316e56c72da56ec7aa3dc3dbbe20fdfed15b", size = 141869, upload-time = "2023-11-01T04:03:32.887Z" }, + { url = "https://files.pythonhosted.org/packages/df/3e/a06b18788ca2eb6695c9b22325b6fde7dde0f1d1838b1792a0076f58fe9d/charset_normalizer-3.3.2-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:6ac7ffc7ad6d040517be39eb591cac5ff87416c2537df6ba3cba3bae290c0fed", size = 144042, upload-time = "2023-11-01T04:03:34.412Z" }, + { url = "https://files.pythonhosted.org/packages/45/59/3d27019d3b447a88fe7e7d004a1e04be220227760264cc41b405e863891b/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:7ed9e526742851e8d5cc9e6cf41427dfc6068d4f5a3bb03659444b4cabf6bc26", size = 138275, upload-time = "2023-11-01T04:03:35.759Z" }, + { url = "https://files.pythonhosted.org/packages/7b/ef/5eb105530b4da8ae37d506ccfa25057961b7b63d581def6f99165ea89c7e/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:8bdb58ff7ba23002a4c5808d608e4e6c687175724f54a5dade5fa8c67b604e4d", size = 144819, upload-time = "2023-11-01T04:03:37.216Z" }, + { url = "https://files.pythonhosted.org/packages/a2/51/e5023f937d7f307c948ed3e5c29c4b7a3e42ed2ee0b8cdf8f3a706089bf0/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_ppc64le.whl", hash = "sha256:6b3251890fff30ee142c44144871185dbe13b11bab478a88887a639655be1068", size = 149415, upload-time = "2023-11-01T04:03:38.694Z" }, + { url = "https://files.pythonhosted.org/packages/24/9d/2e3ef673dfd5be0154b20363c5cdcc5606f35666544381bee15af3778239/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_s390x.whl", hash = "sha256:b4a23f61ce87adf89be746c8a8974fe1c823c891d8f86eb218bb957c924bb143", size = 141212, upload-time = "2023-11-01T04:03:40.07Z" }, + { url = "https://files.pythonhosted.org/packages/5b/ae/ce2c12fcac59cb3860b2e2d76dc405253a4475436b1861d95fe75bdea520/charset_normalizer-3.3.2-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:efcb3f6676480691518c177e3b465bcddf57cea040302f9f4e6e191af91174d4", size = 142167, upload-time = "2023-11-01T04:03:41.491Z" }, + { url = "https://files.pythonhosted.org/packages/ed/3a/a448bf035dce5da359daf9ae8a16b8a39623cc395a2ffb1620aa1bce62b0/charset_normalizer-3.3.2-cp312-cp312-win32.whl", hash = "sha256:d965bba47ddeec8cd560687584e88cf699fd28f192ceb452d1d7ee807c5597b7", size = 93041, upload-time = "2023-11-01T04:03:42.836Z" }, + { url = "https://files.pythonhosted.org/packages/b6/7c/8debebb4f90174074b827c63242c23851bdf00a532489fba57fef3416e40/charset_normalizer-3.3.2-cp312-cp312-win_amd64.whl", hash = "sha256:96b02a3dc4381e5494fad39be677abcb5e6634bf7b4fa83a6dd3112607547001", size = 100397, upload-time = "2023-11-01T04:03:44.467Z" }, + { url = "https://files.pythonhosted.org/packages/ef/d4/a1d72a8f6aa754fdebe91b848912025d30ab7dced61e9ed8aabbf791ed65/charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:6463effa3186ea09411d50efc7d85360b38d5f09b870c48e4600f63af490e56a", size = 191415, upload-time = "2023-11-01T04:04:07.592Z" }, + { url = "https://files.pythonhosted.org/packages/13/82/83c188028b6f38d39538442dd127dc794c602ae6d45d66c469f4063a4c30/charset_normalizer-3.3.2-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:6c4caeef8fa63d06bd437cd4bdcf3ffefe6738fb1b25951440d80dc7df8c03ac", size = 121051, upload-time = "2023-11-01T04:04:09.231Z" }, + { url = "https://files.pythonhosted.org/packages/16/ea/a9e284aa38cccea06b7056d4cbc7adf37670b1f8a668a312864abf1ff7c6/charset_normalizer-3.3.2-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:37e55c8e51c236f95b033f6fb391d7d7970ba5fe7ff453dad675e88cf303377a", size = 119143, upload-time = "2023-11-01T04:04:10.897Z" }, + { url = "https://files.pythonhosted.org/packages/34/2a/f392457d45e24a0c9bfc012887ed4f3c54bf5d4d05a5deb970ffec4b7fc0/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:fb69256e180cb6c8a894fee62b3afebae785babc1ee98b81cdf68bbca1987f33", size = 137506, upload-time = "2023-11-01T04:04:12.612Z" }, + { url = "https://files.pythonhosted.org/packages/be/4d/9e370f8281cec2fcc9452c4d1ac513324c32957c5f70c73dd2fa8442a21a/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:ae5f4161f18c61806f411a13b0310bea87f987c7d2ecdbdaad0e94eb2e404238", size = 147272, upload-time = "2023-11-01T04:04:13.978Z" }, + { url = "https://files.pythonhosted.org/packages/33/95/ef68482e4a6adf781fae8d183fb48d6f2be8facb414f49c90ba6a5149cd1/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b2b0a0c0517616b6869869f8c581d4eb2dd83a4d79e0ebcb7d373ef9956aeb0a", size = 139734, upload-time = "2023-11-01T04:04:15.626Z" }, + { url = "https://files.pythonhosted.org/packages/3d/09/d82fe4a34c5f0585f9ea1df090e2a71eb9bb1e469723053e1ee9f57c16f3/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:45485e01ff4d3630ec0d9617310448a8702f70e9c01906b0d0118bdf9d124cf2", size = 141094, upload-time = "2023-11-01T04:04:17.286Z" }, + { url = "https://files.pythonhosted.org/packages/81/b2/160893421adfa3c45554fb418e321ed342bb10c0a4549e855b2b2a3699cb/charset_normalizer-3.3.2-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:eb00ed941194665c332bf8e078baf037d6c35d7c4f3102ea2d4f16ca94a26dc8", size = 144113, upload-time = "2023-11-01T04:04:18.739Z" }, + { url = "https://files.pythonhosted.org/packages/9e/ef/cd47a63d3200b232792e361cd67530173a09eb011813478b1c0fb8aa7226/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:2127566c664442652f024c837091890cb1942c30937add288223dc895793f898", size = 138555, upload-time = "2023-11-01T04:04:20.482Z" }, + { url = "https://files.pythonhosted.org/packages/a8/6f/4ff299b97da2ed6358154b6eb3a2db67da2ae204e53d205aacb18a7e4f34/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:a50aebfa173e157099939b17f18600f72f84eed3049e743b68ad15bd69b6bf99", size = 144944, upload-time = "2023-11-01T04:04:21.973Z" }, + { url = "https://files.pythonhosted.org/packages/d1/2f/0d1efd07c74c52b6886c32a3b906fb8afd2fecf448650e73ecb90a5a27f1/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_ppc64le.whl", hash = "sha256:4d0d1650369165a14e14e1e47b372cfcb31d6ab44e6e33cb2d4e57265290044d", size = 148925, upload-time = "2023-11-01T04:04:23.472Z" }, + { url = "https://files.pythonhosted.org/packages/bd/28/7ea29e73eea52c7e15b4b9108d0743fc9e4cc2cdb00d275af1df3d46d360/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_s390x.whl", hash = "sha256:923c0c831b7cfcb071580d3f46c4baf50f174be571576556269530f4bbd79d04", size = 140732, upload-time = "2023-11-01T04:04:25.156Z" }, + { url = "https://files.pythonhosted.org/packages/b3/c1/ebca8e87c714a6a561cfee063f0655f742e54b8ae6e78151f60ba8708b3a/charset_normalizer-3.3.2-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:06a81e93cd441c56a9b65d8e1d043daeb97a3d0856d177d5c90ba85acb3db087", size = 141288, upload-time = "2023-11-01T04:04:26.567Z" }, + { url = "https://files.pythonhosted.org/packages/74/20/8923a06f15eb3d7f6a306729360bd58f9ead1dc39bc7ea8831f4b407e4ae/charset_normalizer-3.3.2-cp38-cp38-win32.whl", hash = "sha256:6ef1d82a3af9d3eecdba2321dc1b3c238245d890843e040e41e470ffa64c3e25", size = 92373, upload-time = "2023-11-01T04:04:29.116Z" }, + { url = "https://files.pythonhosted.org/packages/db/fb/d29e343e7c57bbf1231275939f6e75eb740cd47a9d7cb2c52ffeb62ef869/charset_normalizer-3.3.2-cp38-cp38-win_amd64.whl", hash = "sha256:eb8821e09e916165e160797a6c17edda0679379a4be5c716c260e836e122f54b", size = 99577, upload-time = "2023-11-01T04:04:30.833Z" }, + { url = "https://files.pythonhosted.org/packages/f7/9d/bcf4a449a438ed6f19790eee543a86a740c77508fbc5ddab210ab3ba3a9a/charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:c235ebd9baae02f1b77bcea61bce332cb4331dc3617d254df3323aa01ab47bd4", size = 194198, upload-time = "2023-11-01T04:04:32.328Z" }, + { url = "https://files.pythonhosted.org/packages/66/fe/c7d3da40a66a6bf2920cce0f436fa1f62ee28aaf92f412f0bf3b84c8ad6c/charset_normalizer-3.3.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5b4c145409bef602a690e7cfad0a15a55c13320ff7a3ad7ca59c13bb8ba4d45d", size = 122494, upload-time = "2023-11-01T04:04:33.993Z" }, + { url = "https://files.pythonhosted.org/packages/2a/9d/a6d15bd1e3e2914af5955c8eb15f4071997e7078419328fee93dfd497eb7/charset_normalizer-3.3.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:68d1f8a9e9e37c1223b656399be5d6b448dea850bed7d0f87a8311f1ff3dabb0", size = 120393, upload-time = "2023-11-01T04:04:35.533Z" }, + { url = "https://files.pythonhosted.org/packages/3d/85/5b7416b349609d20611a64718bed383b9251b5a601044550f0c8983b8900/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:22afcb9f253dac0696b5a4be4a1c0f8762f8239e21b99680099abd9b2b1b2269", size = 138331, upload-time = "2023-11-01T04:04:37.199Z" }, + { url = "https://files.pythonhosted.org/packages/79/66/8946baa705c588521afe10b2d7967300e49380ded089a62d38537264aece/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:e27ad930a842b4c5eb8ac0016b0a54f5aebbe679340c26101df33424142c143c", size = 148097, upload-time = "2023-11-01T04:04:39.217Z" }, + { url = "https://files.pythonhosted.org/packages/44/80/b339237b4ce635b4af1c73742459eee5f97201bd92b2371c53e11958392e/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:1f79682fbe303db92bc2b1136016a38a42e835d932bab5b3b1bfcfbf0640e519", size = 140711, upload-time = "2023-11-01T04:04:40.964Z" }, + { url = "https://files.pythonhosted.org/packages/98/69/5d8751b4b670d623aa7a47bef061d69c279e9f922f6705147983aa76c3ce/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b261ccdec7821281dade748d088bb6e9b69e6d15b30652b74cbbac25e280b796", size = 142251, upload-time = "2023-11-01T04:04:42.893Z" }, + { url = "https://files.pythonhosted.org/packages/1f/8d/33c860a7032da5b93382cbe2873261f81467e7b37f4ed91e25fed62fd49b/charset_normalizer-3.3.2-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:122c7fa62b130ed55f8f285bfd56d5f4b4a5b503609d181f9ad85e55c89f4185", size = 144636, upload-time = "2023-11-01T04:04:44.693Z" }, + { url = "https://files.pythonhosted.org/packages/c2/65/52aaf47b3dd616c11a19b1052ce7fa6321250a7a0b975f48d8c366733b9f/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:d0eccceffcb53201b5bfebb52600a5fb483a20b61da9dbc885f8b103cbe7598c", size = 139514, upload-time = "2023-11-01T04:04:46.388Z" }, + { url = "https://files.pythonhosted.org/packages/51/fd/0ee5b1c2860bb3c60236d05b6e4ac240cf702b67471138571dad91bcfed8/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:9f96df6923e21816da7e0ad3fd47dd8f94b2a5ce594e00677c0013018b813458", size = 145528, upload-time = "2023-11-01T04:04:47.893Z" }, + { url = "https://files.pythonhosted.org/packages/e1/9c/60729bf15dc82e3aaf5f71e81686e42e50715a1399770bcde1a9e43d09db/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_ppc64le.whl", hash = "sha256:7f04c839ed0b6b98b1a7501a002144b76c18fb1c1850c8b98d458ac269e26ed2", size = 149804, upload-time = "2023-11-01T04:04:49.979Z" }, + { url = "https://files.pythonhosted.org/packages/53/cd/aa4b8a4d82eeceb872f83237b2d27e43e637cac9ffaef19a1321c3bafb67/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_s390x.whl", hash = "sha256:34d1c8da1e78d2e001f363791c98a272bb734000fcef47a491c1e3b0505657a8", size = 141708, upload-time = "2023-11-01T04:04:51.846Z" }, + { url = "https://files.pythonhosted.org/packages/54/7f/cad0b328759630814fcf9d804bfabaf47776816ad4ef2e9938b7e1123d04/charset_normalizer-3.3.2-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:ff8fa367d09b717b2a17a052544193ad76cd49979c805768879cb63d9ca50561", size = 142708, upload-time = "2023-11-01T04:04:53.252Z" }, + { url = "https://files.pythonhosted.org/packages/c1/9d/254a2f1bcb0ce9acad838e94ed05ba71a7cb1e27affaa4d9e1ca3958cdb6/charset_normalizer-3.3.2-cp39-cp39-win32.whl", hash = "sha256:aed38f6e4fb3f5d6bf81bfa990a07806be9d83cf7bacef998ab1a9bd660a581f", size = 92830, upload-time = "2023-11-01T04:04:54.827Z" }, + { url = "https://files.pythonhosted.org/packages/2f/0e/d7303ccae9735ff8ff01e36705ad6233ad2002962e8668a970fc000c5e1b/charset_normalizer-3.3.2-cp39-cp39-win_amd64.whl", hash = "sha256:b01b88d45a6fcb69667cd6d2f7a9aeb4bf53760d7fc536bf679ec94fe9f3ff3d", size = 100376, upload-time = "2023-11-01T04:04:56.588Z" }, + { url = "https://files.pythonhosted.org/packages/28/76/e6222113b83e3622caa4bb41032d0b1bf785250607392e1b778aca0b8a7d/charset_normalizer-3.3.2-py3-none-any.whl", hash = "sha256:3e4d1f6587322d2788836a99c69062fbb091331ec940e02d12d179c1d53e25fc", size = 48543, upload-time = "2023-11-01T04:04:58.622Z" }, +] + +[[package]] +name = "click" +version = "8.1.7" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "colorama", marker = "sys_platform == 'win32'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/96/d3/f04c7bfcf5c1862a2a5b845c6b2b360488cf47af55dfa79c98f6a6bf98b5/click-8.1.7.tar.gz", hash = "sha256:ca9853ad459e787e2192211578cc907e7594e294c7ccc834310722b41b9ca6de", size = 336121, upload-time = "2023-08-17T17:29:11.868Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/00/2e/d53fa4befbf2cfa713304affc7ca780ce4fc1fd8710527771b58311a3229/click-8.1.7-py3-none-any.whl", hash = "sha256:ae74fb96c20a0277a1d615f1e4d73c8414f5a98db8b799a7931d1582f3390c28", size = 97941, upload-time = "2023-08-17T17:29:10.08Z" }, +] + +[[package]] +name = "colorama" +version = "0.4.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44", size = 27697, upload-time = "2022-10-25T02:36:22.414Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d1/d6/3965ed04c63042e047cb6a3e6ed1a63a35087b6a609aa3a15ed8ac56c221/colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6", size = 25335, upload-time = "2022-10-25T02:36:20.889Z" }, +] + +[[package]] +name = "gdevelop-documentation" +version = "0.1.0" +source = { editable = "." } +dependencies = [ + { name = "mkdocs-awesome-pages-plugin" }, + { name = "mkdocs-material" }, + { name = "mkdocs-redirects" }, +] + +[package.metadata] +requires-dist = [ + { name = "mkdocs-awesome-pages-plugin", specifier = ">=2.8.0,<3" }, + { name = "mkdocs-material", specifier = ">=9.6.21,<10" }, + { name = "mkdocs-redirects", specifier = ">=1.2.0,<2" }, +] + +[package.metadata.requires-dev] +dev = [] + +[[package]] +name = "ghp-import" +version = "2.1.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "python-dateutil" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/d9/29/d40217cbe2f6b1359e00c6c307bb3fc876ba74068cbab3dde77f03ca0dc4/ghp-import-2.1.0.tar.gz", hash = "sha256:9c535c4c61193c2df8871222567d7fd7e5014d835f97dc7b7439069e2413d343", size = 10943, upload-time = "2022-05-02T15:47:16.11Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/f7/ec/67fbef5d497f86283db54c22eec6f6140243aae73265799baaaa19cd17fb/ghp_import-2.1.0-py3-none-any.whl", hash = "sha256:8337dd7b50877f163d4c0289bc1f1c7f127550241988d568c1db512c4324a619", size = 11034, upload-time = "2022-05-02T15:47:14.552Z" }, +] + +[[package]] +name = "idna" +version = "3.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/21/ed/f86a79a07470cb07819390452f178b3bef1d375f2ec021ecfc709fc7cf07/idna-3.7.tar.gz", hash = "sha256:028ff3aadf0609c1fd278d8ea3089299412a7a8b9bd005dd08b9f8285bcb5cfc", size = 189575, upload-time = "2024-04-11T03:34:43.276Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e5/3e/741d8c82801c347547f8a2a06aa57dbb1992be9e948df2ea0eda2c8b79e8/idna-3.7-py3-none-any.whl", hash = "sha256:82fee1fc78add43492d3a1898bfa6d8a904cc97d8427f683ed8e798d07761aa0", size = 66836, upload-time = "2024-04-11T03:34:41.447Z" }, +] + +[[package]] +name = "importlib-metadata" +version = "6.7.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "zipp" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/a3/82/f6e29c8d5c098b6be61460371c2c5591f4a335923639edec43b3830650a4/importlib_metadata-6.7.0.tar.gz", hash = "sha256:1aaf550d4f73e5d6783e7acb77aec43d49da8017410afae93822cc9cca98c4d4", size = 53569, upload-time = "2023-06-18T21:44:35.024Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ff/94/64287b38c7de4c90683630338cf28f129decbba0a44f0c6db35a873c73c4/importlib_metadata-6.7.0-py3-none-any.whl", hash = "sha256:cb52082e659e97afc5dac71e79de97d8681de3aa07ff18578330904a9d18e5b5", size = 22934, upload-time = "2023-06-18T21:44:33.441Z" }, +] + +[[package]] +name = "jinja2" +version = "3.1.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markupsafe" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ed/55/39036716d19cab0747a5020fc7e907f362fbf48c984b14e62127f7e68e5d/jinja2-3.1.4.tar.gz", hash = "sha256:4a3aee7acbbe7303aede8e9648d13b8bf88a429282aa6122a993f0ac800cb369", size = 240245, upload-time = "2024-05-05T23:42:02.455Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/80/3a54838c3fb461f6fec263ebf3a3a41771bd05190238de3486aae8540c36/jinja2-3.1.4-py3-none-any.whl", hash = "sha256:bc5dd2abb727a5319567b7a813e6a2e7318c39f4f487cfe6c89c6f9c7d25197d", size = 133271, upload-time = "2024-05-05T23:41:59.928Z" }, +] + +[[package]] +name = "markdown" +version = "3.4.4" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/87/2a/62841f4fb1fef5fa015ded48d02401cd95643ca03b6760b29437b62a04a4/Markdown-3.4.4.tar.gz", hash = "sha256:225c6123522495d4119a90b3a3ba31a1e87a70369e03f14799ea9c0d7183a3d6", size = 324459, upload-time = "2023-07-25T15:13:45.311Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/1a/b5/228c1cdcfe138f1a8e01ab1b54284c8b83735476cb22b6ba251656ed13ad/Markdown-3.4.4-py3-none-any.whl", hash = "sha256:a4c1b65c0957b4bd9e7d86ddc7b3c9868fb9670660f6f99f6d1bca8954d5a941", size = 94174, upload-time = "2023-07-25T15:13:43.124Z" }, +] + +[[package]] +name = "markupsafe" +version = "2.1.5" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/87/5b/aae44c6655f3801e81aa3eef09dbbf012431987ba564d7231722f68df02d/MarkupSafe-2.1.5.tar.gz", hash = "sha256:d283d37a890ba4c1ae73ffadf8046435c76e7bc2247bbb63c00bd1a709c6544b", size = 19384, upload-time = "2024-02-02T16:31:22.863Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/e4/54/ad5eb37bf9d51800010a74e4665425831a9db4e7c4e0fde4352e391e808e/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:a17a92de5231666cfbe003f0e4b9b3a7ae3afb1ec2845aadc2bacc93ff85febc", size = 18206, upload-time = "2024-02-02T16:30:04.105Z" }, + { url = "https://files.pythonhosted.org/packages/6a/4a/a4d49415e600bacae038c67f9fecc1d5433b9d3c71a4de6f33537b89654c/MarkupSafe-2.1.5-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:72b6be590cc35924b02c78ef34b467da4ba07e4e0f0454a2c5907f473fc50ce5", size = 14079, upload-time = "2024-02-02T16:30:06.5Z" }, + { url = "https://files.pythonhosted.org/packages/0a/7b/85681ae3c33c385b10ac0f8dd025c30af83c78cec1c37a6aa3b55e67f5ec/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:e61659ba32cf2cf1481e575d0462554625196a1f2fc06a1c777d3f48e8865d46", size = 26620, upload-time = "2024-02-02T16:30:08.31Z" }, + { url = "https://files.pythonhosted.org/packages/7c/52/2b1b570f6b8b803cef5ac28fdf78c0da318916c7d2fe9402a84d591b394c/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:2174c595a0d73a3080ca3257b40096db99799265e1c27cc5a610743acd86d62f", size = 25818, upload-time = "2024-02-02T16:30:09.577Z" }, + { url = "https://files.pythonhosted.org/packages/29/fe/a36ba8c7ca55621620b2d7c585313efd10729e63ef81e4e61f52330da781/MarkupSafe-2.1.5-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ae2ad8ae6ebee9d2d94b17fb62763125f3f374c25618198f40cbb8b525411900", size = 25493, upload-time = "2024-02-02T16:30:11.488Z" }, + { url = "https://files.pythonhosted.org/packages/60/ae/9c60231cdfda003434e8bd27282b1f4e197ad5a710c14bee8bea8a9ca4f0/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:075202fa5b72c86ad32dc7d0b56024ebdbcf2048c0ba09f1cde31bfdd57bcfff", size = 30630, upload-time = "2024-02-02T16:30:13.144Z" }, + { url = "https://files.pythonhosted.org/packages/65/dc/1510be4d179869f5dafe071aecb3f1f41b45d37c02329dfba01ff59e5ac5/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_i686.whl", hash = "sha256:598e3276b64aff0e7b3451b72e94fa3c238d452e7ddcd893c3ab324717456bad", size = 29745, upload-time = "2024-02-02T16:30:14.222Z" }, + { url = "https://files.pythonhosted.org/packages/30/39/8d845dd7d0b0613d86e0ef89549bfb5f61ed781f59af45fc96496e897f3a/MarkupSafe-2.1.5-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:fce659a462a1be54d2ffcacea5e3ba2d74daa74f30f5f143fe0c58636e355fdd", size = 30021, upload-time = "2024-02-02T16:30:16.032Z" }, + { url = "https://files.pythonhosted.org/packages/c7/5c/356a6f62e4f3c5fbf2602b4771376af22a3b16efa74eb8716fb4e328e01e/MarkupSafe-2.1.5-cp310-cp310-win32.whl", hash = "sha256:d9fad5155d72433c921b782e58892377c44bd6252b5af2f67f16b194987338a4", size = 16659, upload-time = "2024-02-02T16:30:17.079Z" }, + { url = "https://files.pythonhosted.org/packages/69/48/acbf292615c65f0604a0c6fc402ce6d8c991276e16c80c46a8f758fbd30c/MarkupSafe-2.1.5-cp310-cp310-win_amd64.whl", hash = "sha256:bf50cd79a75d181c9181df03572cdce0fbb75cc353bc350712073108cba98de5", size = 17213, upload-time = "2024-02-02T16:30:18.251Z" }, + { url = "https://files.pythonhosted.org/packages/11/e7/291e55127bb2ae67c64d66cef01432b5933859dfb7d6949daa721b89d0b3/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:629ddd2ca402ae6dbedfceeba9c46d5f7b2a61d9749597d4307f943ef198fc1f", size = 18219, upload-time = "2024-02-02T16:30:19.988Z" }, + { url = "https://files.pythonhosted.org/packages/6b/cb/aed7a284c00dfa7c0682d14df85ad4955a350a21d2e3b06d8240497359bf/MarkupSafe-2.1.5-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:5b7b716f97b52c5a14bffdf688f971b2d5ef4029127f1ad7a513973cfd818df2", size = 14098, upload-time = "2024-02-02T16:30:21.063Z" }, + { url = "https://files.pythonhosted.org/packages/1c/cf/35fe557e53709e93feb65575c93927942087e9b97213eabc3fe9d5b25a55/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:6ec585f69cec0aa07d945b20805be741395e28ac1627333b1c5b0105962ffced", size = 29014, upload-time = "2024-02-02T16:30:22.926Z" }, + { url = "https://files.pythonhosted.org/packages/97/18/c30da5e7a0e7f4603abfc6780574131221d9148f323752c2755d48abad30/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:b91c037585eba9095565a3556f611e3cbfaa42ca1e865f7b8015fe5c7336d5a5", size = 28220, upload-time = "2024-02-02T16:30:24.76Z" }, + { url = "https://files.pythonhosted.org/packages/0c/40/2e73e7d532d030b1e41180807a80d564eda53babaf04d65e15c1cf897e40/MarkupSafe-2.1.5-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7502934a33b54030eaf1194c21c692a534196063db72176b0c4028e140f8f32c", size = 27756, upload-time = "2024-02-02T16:30:25.877Z" }, + { url = "https://files.pythonhosted.org/packages/18/46/5dca760547e8c59c5311b332f70605d24c99d1303dd9a6e1fc3ed0d73561/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:0e397ac966fdf721b2c528cf028494e86172b4feba51d65f81ffd65c63798f3f", size = 33988, upload-time = "2024-02-02T16:30:26.935Z" }, + { url = "https://files.pythonhosted.org/packages/6d/c5/27febe918ac36397919cd4a67d5579cbbfa8da027fa1238af6285bb368ea/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_i686.whl", hash = "sha256:c061bb86a71b42465156a3ee7bd58c8c2ceacdbeb95d05a99893e08b8467359a", size = 32718, upload-time = "2024-02-02T16:30:28.111Z" }, + { url = "https://files.pythonhosted.org/packages/f8/81/56e567126a2c2bc2684d6391332e357589a96a76cb9f8e5052d85cb0ead8/MarkupSafe-2.1.5-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:3a57fdd7ce31c7ff06cdfbf31dafa96cc533c21e443d57f5b1ecc6cdc668ec7f", size = 33317, upload-time = "2024-02-02T16:30:29.214Z" }, + { url = "https://files.pythonhosted.org/packages/00/0b/23f4b2470accb53285c613a3ab9ec19dc944eaf53592cb6d9e2af8aa24cc/MarkupSafe-2.1.5-cp311-cp311-win32.whl", hash = "sha256:397081c1a0bfb5124355710fe79478cdbeb39626492b15d399526ae53422b906", size = 16670, upload-time = "2024-02-02T16:30:30.915Z" }, + { url = "https://files.pythonhosted.org/packages/b7/a2/c78a06a9ec6d04b3445a949615c4c7ed86a0b2eb68e44e7541b9d57067cc/MarkupSafe-2.1.5-cp311-cp311-win_amd64.whl", hash = "sha256:2b7c57a4dfc4f16f7142221afe5ba4e093e09e728ca65c51f5620c9aaeb9a617", size = 17224, upload-time = "2024-02-02T16:30:32.09Z" }, + { url = "https://files.pythonhosted.org/packages/53/bd/583bf3e4c8d6a321938c13f49d44024dbe5ed63e0a7ba127e454a66da974/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_universal2.whl", hash = "sha256:8dec4936e9c3100156f8a2dc89c4b88d5c435175ff03413b443469c7c8c5f4d1", size = 18215, upload-time = "2024-02-02T16:30:33.081Z" }, + { url = "https://files.pythonhosted.org/packages/48/d6/e7cd795fc710292c3af3a06d80868ce4b02bfbbf370b7cee11d282815a2a/MarkupSafe-2.1.5-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:3c6b973f22eb18a789b1460b4b91bf04ae3f0c4234a0a6aa6b0a92f6f7b951d4", size = 14069, upload-time = "2024-02-02T16:30:34.148Z" }, + { url = "https://files.pythonhosted.org/packages/51/b5/5d8ec796e2a08fc814a2c7d2584b55f889a55cf17dd1a90f2beb70744e5c/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac07bad82163452a6884fe8fa0963fb98c2346ba78d779ec06bd7a6262132aee", size = 29452, upload-time = "2024-02-02T16:30:35.149Z" }, + { url = "https://files.pythonhosted.org/packages/0a/0d/2454f072fae3b5a137c119abf15465d1771319dfe9e4acbb31722a0fff91/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f5dfb42c4604dddc8e4305050aa6deb084540643ed5804d7455b5df8fe16f5e5", size = 28462, upload-time = "2024-02-02T16:30:36.166Z" }, + { url = "https://files.pythonhosted.org/packages/2d/75/fd6cb2e68780f72d47e6671840ca517bda5ef663d30ada7616b0462ad1e3/MarkupSafe-2.1.5-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ea3d8a3d18833cf4304cd2fc9cbb1efe188ca9b5efef2bdac7adc20594a0e46b", size = 27869, upload-time = "2024-02-02T16:30:37.834Z" }, + { url = "https://files.pythonhosted.org/packages/b0/81/147c477391c2750e8fc7705829f7351cf1cd3be64406edcf900dc633feb2/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:d050b3361367a06d752db6ead6e7edeb0009be66bc3bae0ee9d97fb326badc2a", size = 33906, upload-time = "2024-02-02T16:30:39.366Z" }, + { url = "https://files.pythonhosted.org/packages/8b/ff/9a52b71839d7a256b563e85d11050e307121000dcebc97df120176b3ad93/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_i686.whl", hash = "sha256:bec0a414d016ac1a18862a519e54b2fd0fc8bbfd6890376898a6c0891dd82e9f", size = 32296, upload-time = "2024-02-02T16:30:40.413Z" }, + { url = "https://files.pythonhosted.org/packages/88/07/2dc76aa51b481eb96a4c3198894f38b480490e834479611a4053fbf08623/MarkupSafe-2.1.5-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:58c98fee265677f63a4385256a6d7683ab1832f3ddd1e66fe948d5880c21a169", size = 33038, upload-time = "2024-02-02T16:30:42.243Z" }, + { url = "https://files.pythonhosted.org/packages/96/0c/620c1fb3661858c0e37eb3cbffd8c6f732a67cd97296f725789679801b31/MarkupSafe-2.1.5-cp312-cp312-win32.whl", hash = "sha256:8590b4ae07a35970728874632fed7bd57b26b0102df2d2b233b6d9d82f6c62ad", size = 16572, upload-time = "2024-02-02T16:30:43.326Z" }, + { url = "https://files.pythonhosted.org/packages/3f/14/c3554d512d5f9100a95e737502f4a2323a1959f6d0d01e0d0997b35f7b10/MarkupSafe-2.1.5-cp312-cp312-win_amd64.whl", hash = "sha256:823b65d8706e32ad2df51ed89496147a42a2a6e01c13cfb6ffb8b1e92bc910bb", size = 17127, upload-time = "2024-02-02T16:30:44.418Z" }, + { url = "https://files.pythonhosted.org/packages/f8/ff/2c942a82c35a49df5de3a630ce0a8456ac2969691b230e530ac12314364c/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:656f7526c69fac7f600bd1f400991cc282b417d17539a1b228617081106feb4a", size = 18192, upload-time = "2024-02-02T16:30:57.715Z" }, + { url = "https://files.pythonhosted.org/packages/4f/14/6f294b9c4f969d0c801a4615e221c1e084722ea6114ab2114189c5b8cbe0/MarkupSafe-2.1.5-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:97cafb1f3cbcd3fd2b6fbfb99ae11cdb14deea0736fc2b0952ee177f2b813a46", size = 14072, upload-time = "2024-02-02T16:30:58.844Z" }, + { url = "https://files.pythonhosted.org/packages/81/d4/fd74714ed30a1dedd0b82427c02fa4deec64f173831ec716da11c51a50aa/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1f3fbcb7ef1f16e48246f704ab79d79da8a46891e2da03f8783a5b6fa41a9532", size = 26928, upload-time = "2024-02-02T16:30:59.922Z" }, + { url = "https://files.pythonhosted.org/packages/c7/bd/50319665ce81bb10e90d1cf76f9e1aa269ea6f7fa30ab4521f14d122a3df/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:fa9db3f79de01457b03d4f01b34cf91bc0048eb2c3846ff26f66687c2f6d16ab", size = 26106, upload-time = "2024-02-02T16:31:01.582Z" }, + { url = "https://files.pythonhosted.org/packages/4c/6f/f2b0f675635b05f6afd5ea03c094557bdb8622fa8e673387444fe8d8e787/MarkupSafe-2.1.5-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ffee1f21e5ef0d712f9033568f8344d5da8cc2869dbd08d87c84656e6a2d2f68", size = 25781, upload-time = "2024-02-02T16:31:02.71Z" }, + { url = "https://files.pythonhosted.org/packages/51/e0/393467cf899b34a9d3678e78961c2c8cdf49fb902a959ba54ece01273fb1/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_aarch64.whl", hash = "sha256:5dedb4db619ba5a2787a94d877bc8ffc0566f92a01c0ef214865e54ecc9ee5e0", size = 30518, upload-time = "2024-02-02T16:31:04.392Z" }, + { url = "https://files.pythonhosted.org/packages/f6/02/5437e2ad33047290dafced9df741d9efc3e716b75583bbd73a9984f1b6f7/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_i686.whl", hash = "sha256:30b600cf0a7ac9234b2638fbc0fb6158ba5bdcdf46aeb631ead21248b9affbc4", size = 29669, upload-time = "2024-02-02T16:31:05.53Z" }, + { url = "https://files.pythonhosted.org/packages/0e/7d/968284145ffd9d726183ed6237c77938c021abacde4e073020f920e060b2/MarkupSafe-2.1.5-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:8dd717634f5a044f860435c1d8c16a270ddf0ef8588d4887037c5028b859b0c3", size = 29933, upload-time = "2024-02-02T16:31:06.636Z" }, + { url = "https://files.pythonhosted.org/packages/bf/f3/ecb00fc8ab02b7beae8699f34db9357ae49d9f21d4d3de6f305f34fa949e/MarkupSafe-2.1.5-cp38-cp38-win32.whl", hash = "sha256:daa4ee5a243f0f20d528d939d06670a298dd39b1ad5f8a72a4275124a7819eff", size = 16656, upload-time = "2024-02-02T16:31:07.767Z" }, + { url = "https://files.pythonhosted.org/packages/92/21/357205f03514a49b293e214ac39de01fadd0970a6e05e4bf1ddd0ffd0881/MarkupSafe-2.1.5-cp38-cp38-win_amd64.whl", hash = "sha256:619bc166c4f2de5caa5a633b8b7326fbe98e0ccbfacabd87268a2b15ff73a029", size = 17206, upload-time = "2024-02-02T16:31:08.843Z" }, + { url = "https://files.pythonhosted.org/packages/0f/31/780bb297db036ba7b7bbede5e1d7f1e14d704ad4beb3ce53fb495d22bc62/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7a68b554d356a91cce1236aa7682dc01df0edba8d043fd1ce607c49dd3c1edcf", size = 18193, upload-time = "2024-02-02T16:31:10.155Z" }, + { url = "https://files.pythonhosted.org/packages/6c/77/d77701bbef72892affe060cdacb7a2ed7fd68dae3b477a8642f15ad3b132/MarkupSafe-2.1.5-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:db0b55e0f3cc0be60c1f19efdde9a637c32740486004f20d1cff53c3c0ece4d2", size = 14073, upload-time = "2024-02-02T16:31:11.442Z" }, + { url = "https://files.pythonhosted.org/packages/d9/a7/1e558b4f78454c8a3a0199292d96159eb4d091f983bc35ef258314fe7269/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3e53af139f8579a6d5f7b76549125f0d94d7e630761a2111bc431fd820e163b8", size = 26486, upload-time = "2024-02-02T16:31:12.488Z" }, + { url = "https://files.pythonhosted.org/packages/5f/5a/360da85076688755ea0cceb92472923086993e86b5613bbae9fbc14136b0/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:17b950fccb810b3293638215058e432159d2b71005c74371d784862b7e4683f3", size = 25685, upload-time = "2024-02-02T16:31:13.726Z" }, + { url = "https://files.pythonhosted.org/packages/6a/18/ae5a258e3401f9b8312f92b028c54d7026a97ec3ab20bfaddbdfa7d8cce8/MarkupSafe-2.1.5-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4c31f53cdae6ecfa91a77820e8b151dba54ab528ba65dfd235c80b086d68a465", size = 25338, upload-time = "2024-02-02T16:31:14.812Z" }, + { url = "https://files.pythonhosted.org/packages/0b/cc/48206bd61c5b9d0129f4d75243b156929b04c94c09041321456fd06a876d/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:bff1b4290a66b490a2f4719358c0cdcd9bafb6b8f061e45c7a2460866bf50c2e", size = 30439, upload-time = "2024-02-02T16:31:15.946Z" }, + { url = "https://files.pythonhosted.org/packages/d1/06/a41c112ab9ffdeeb5f77bc3e331fdadf97fa65e52e44ba31880f4e7f983c/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_i686.whl", hash = "sha256:bc1667f8b83f48511b94671e0e441401371dfd0f0a795c7daa4a3cd1dde55bea", size = 29531, upload-time = "2024-02-02T16:31:17.13Z" }, + { url = "https://files.pythonhosted.org/packages/02/8c/ab9a463301a50dab04d5472e998acbd4080597abc048166ded5c7aa768c8/MarkupSafe-2.1.5-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:5049256f536511ee3f7e1b3f87d1d1209d327e818e6ae1365e8653d7e3abb6a6", size = 29823, upload-time = "2024-02-02T16:31:18.247Z" }, + { url = "https://files.pythonhosted.org/packages/bc/29/9bc18da763496b055d8e98ce476c8e718dcfd78157e17f555ce6dd7d0895/MarkupSafe-2.1.5-cp39-cp39-win32.whl", hash = "sha256:00e046b6dd71aa03a41079792f8473dc494d564611a8f89bbbd7cb93295ebdcf", size = 16658, upload-time = "2024-02-02T16:31:19.583Z" }, + { url = "https://files.pythonhosted.org/packages/f6/f8/4da07de16f10551ca1f640c92b5f316f9394088b183c6a57183df6de5ae4/MarkupSafe-2.1.5-cp39-cp39-win_amd64.whl", hash = "sha256:fa173ec60341d6bb97a89f5ea19c85c5643c1e7dedebc22f5181eb73573142c5", size = 17211, upload-time = "2024-02-02T16:31:20.96Z" }, +] + +[[package]] +name = "mergedeep" +version = "1.3.4" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/3a/41/580bb4006e3ed0361b8151a01d324fb03f420815446c7def45d02f74c270/mergedeep-1.3.4.tar.gz", hash = "sha256:0096d52e9dad9939c3d975a774666af186eda617e6ca84df4c94dec30004f2a8", size = 4661, upload-time = "2021-02-05T18:55:30.623Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2c/19/04f9b178c2d8a15b076c8b5140708fa6ffc5601fb6f1e975537072df5b2a/mergedeep-1.3.4-py3-none-any.whl", hash = "sha256:70775750742b25c0d8f36c55aed03d24c3384d17c951b3175d898bd778ef0307", size = 6354, upload-time = "2021-02-05T18:55:29.583Z" }, +] + +[[package]] +name = "mkdocs" +version = "1.6.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "click" }, + { name = "colorama", marker = "sys_platform == 'win32'" }, + { name = "ghp-import" }, + { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "markupsafe" }, + { name = "mergedeep" }, + { name = "mkdocs-get-deps" }, + { name = "packaging" }, + { name = "pathspec" }, + { name = "pyyaml" }, + { name = "pyyaml-env-tag" }, + { name = "watchdog" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/bc/c6/bbd4f061bd16b378247f12953ffcb04786a618ce5e904b8c5a01a0309061/mkdocs-1.6.1.tar.gz", hash = "sha256:7b432f01d928c084353ab39c57282f29f92136665bdd6abf7c1ec8d822ef86f2", size = 3889159, upload-time = "2024-08-30T12:24:06.899Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/22/5b/dbc6a8cddc9cfa9c4971d59fb12bb8d42e161b7e7f8cc89e49137c5b279c/mkdocs-1.6.1-py3-none-any.whl", hash = "sha256:db91759624d1647f3f34aa0c3f327dd2601beae39a366d6e064c03468d35c20e", size = 3864451, upload-time = "2024-08-30T12:24:05.054Z" }, +] + +[[package]] +name = "mkdocs-awesome-pages-plugin" +version = "2.9.2" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, + { name = "natsort" }, + { name = "wcmatch" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ac/7a/0a783218350dbf56182bfba23666159affb63072db3111f6d3a281798d5b/mkdocs_awesome_pages_plugin-2.9.2.tar.gz", hash = "sha256:c3f7d366ecfe99b64524c49a84d8e13c576c19a918ea2e6f59bb486a259313af", size = 15920, upload-time = "2023-08-19T21:30:33.029Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/61/9e/30bebb73903b7b9663aee4cf224138eea4fadbe396defd1c4a3ed7578e7b/mkdocs_awesome_pages_plugin-2.9.2-py3-none-any.whl", hash = "sha256:9c795587695bd1ee85a8b7e43293005418df5a8b9ef296a3e628be427b693b4d", size = 14784, upload-time = "2023-08-19T21:30:31.336Z" }, +] + +[[package]] +name = "mkdocs-get-deps" +version = "0.2.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "importlib-metadata", marker = "python_full_version < '3.10'" }, + { name = "mergedeep" }, + { name = "platformdirs" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/98/f5/ed29cd50067784976f25ed0ed6fcd3c2ce9eb90650aa3b2796ddf7b6870b/mkdocs_get_deps-0.2.0.tar.gz", hash = "sha256:162b3d129c7fad9b19abfdcb9c1458a651628e4b1dea628ac68790fb3061c60c", size = 10239, upload-time = "2023-11-20T17:51:09.981Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9f/d4/029f984e8d3f3b6b726bd33cafc473b75e9e44c0f7e80a5b29abc466bdea/mkdocs_get_deps-0.2.0-py3-none-any.whl", hash = "sha256:2bf11d0b133e77a0dd036abeeb06dec8775e46efa526dc70667d8863eefc6134", size = 9521, upload-time = "2023-11-20T17:51:08.587Z" }, +] + +[[package]] +name = "mkdocs-material" +version = "9.6.21" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "babel" }, + { name = "backrefs" }, + { name = "colorama" }, + { name = "jinja2" }, + { name = "markdown" }, + { name = "mkdocs" }, + { name = "mkdocs-material-extensions" }, + { name = "paginate" }, + { name = "pygments" }, + { name = "pymdown-extensions" }, + { name = "requests" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/ff/d5/ab83ca9aa314954b0a9e8849780bdd01866a3cfcb15ffb7e3a61ca06ff0b/mkdocs_material-9.6.21.tar.gz", hash = "sha256:b01aa6d2731322438056f360f0e623d3faae981f8f2d8c68b1b973f4f2657870", size = 4043097, upload-time = "2025-09-30T19:11:27.517Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/cf/4f/98681c2030375fe9b057dbfb9008b68f46c07dddf583f4df09bf8075e37f/mkdocs_material-9.6.21-py3-none-any.whl", hash = "sha256:aa6a5ab6fb4f6d381588ac51da8782a4d3757cb3d1b174f81a2ec126e1f22c92", size = 9203097, upload-time = "2025-09-30T19:11:24.063Z" }, +] + +[[package]] +name = "mkdocs-material-extensions" +version = "1.3.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/79/9b/9b4c96d6593b2a541e1cb8b34899a6d021d208bb357042823d4d2cabdbe7/mkdocs_material_extensions-1.3.1.tar.gz", hash = "sha256:10c9511cea88f568257f960358a467d12b970e1f7b2c0e5fb2bb48cab1928443", size = 11847, upload-time = "2023-11-22T19:09:45.208Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/54/662a4743aa81d9582ee9339d4ffa3c8fd40a4965e033d77b9da9774d3960/mkdocs_material_extensions-1.3.1-py3-none-any.whl", hash = "sha256:adff8b62700b25cb77b53358dad940f3ef973dd6db797907c49e3c2ef3ab4e31", size = 8728, upload-time = "2023-11-22T19:09:43.465Z" }, +] + +[[package]] +name = "mkdocs-redirects" +version = "1.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "mkdocs" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/04/6a/50edd7ad78042b25c379aac7e8fa9cc34c6f55e3d2c03eb28814a9446617/mkdocs-redirects-1.2.1.tar.gz", hash = "sha256:9420066d70e2a6bb357adf86e67023dcdca1857f97f07c7fe450f8f1fb42f861", size = 6653, upload-time = "2023-07-18T21:26:18.016Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d3/9d/93a881fc5a23c50a4dd4a41dfd3d2a8403aa1dac52370ef43b7b336577a0/mkdocs_redirects-1.2.1-py3-none-any.whl", hash = "sha256:497089f9e0219e7389304cffefccdfa1cac5ff9509f2cb706f4c9b221726dffb", size = 6024, upload-time = "2024-06-07T09:32:27.587Z" }, +] + +[[package]] +name = "natsort" +version = "8.4.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/e2/a9/a0c57aee75f77794adaf35322f8b6404cbd0f89ad45c87197a937764b7d0/natsort-8.4.0.tar.gz", hash = "sha256:45312c4a0e5507593da193dedd04abb1469253b601ecaf63445ad80f0a1ea581", size = 76575, upload-time = "2023-06-20T04:17:19.925Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ef/82/7a9d0550484a62c6da82858ee9419f3dd1ccc9aa1c26a1e43da3ecd20b0d/natsort-8.4.0-py3-none-any.whl", hash = "sha256:4732914fb471f56b5cce04d7bae6f164a592c7712e1c85f9ef585e197299521c", size = 38268, upload-time = "2023-06-20T04:17:17.522Z" }, +] + +[[package]] +name = "packaging" +version = "24.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/ee/b5/b43a27ac7472e1818c4bafd44430e69605baefe1f34440593e0332ec8b4d/packaging-24.0.tar.gz", hash = "sha256:eb82c5e3e56209074766e6885bb04b8c38a0c015d0a30036ebe7ece34c9989e9", size = 147882, upload-time = "2024-03-10T09:39:28.33Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/49/df/1fceb2f8900f8639e278b056416d49134fb8d84c5942ffaa01ad34782422/packaging-24.0-py3-none-any.whl", hash = "sha256:2ddfb553fdf02fb784c234c7ba6ccc288296ceabec964ad2eae3777778130bc5", size = 53488, upload-time = "2024-03-10T09:39:25.947Z" }, +] + +[[package]] +name = "paginate" +version = "0.5.6" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/68/58/e670a947136fdcece8ac5376b3df1369d29e4f6659b0c9b358605b115e9e/paginate-0.5.6.tar.gz", hash = "sha256:5e6007b6a9398177a7e1648d04fdd9f8c9766a1a945bceac82f1929e8c78af2d", size = 12840, upload-time = "2016-11-22T12:54:04.503Z" } + +[[package]] +name = "pathspec" +version = "0.11.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/a0/2a/bd167cdf116d4f3539caaa4c332752aac0b3a0cc0174cdb302ee68933e81/pathspec-0.11.2.tar.gz", hash = "sha256:e0d8d0ac2f12da61956eb2306b69f9469b42f4deb0f3cb6ed47b9cce9996ced3", size = 47032, upload-time = "2023-07-29T01:05:04.481Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/2a/9b1be29146139ef459188f5e420a66e835dda921208db600b7037093891f/pathspec-0.11.2-py3-none-any.whl", hash = "sha256:1d6ed233af05e679efb96b1851550ea95bbb64b7c490b0f5aa52996c11e92a20", size = 29603, upload-time = "2023-07-29T01:05:02.656Z" }, +] + +[[package]] +name = "platformdirs" +version = "4.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/31/28/e40d24d2e2eb23135f8533ad33d582359c7825623b1e022f9d460def7c05/platformdirs-4.0.0.tar.gz", hash = "sha256:cb633b2bcf10c51af60beb0ab06d2f1d69064b43abf4c185ca6b28865f3f9731", size = 19914, upload-time = "2023-11-10T16:43:08.316Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/31/16/70be3b725073035aa5fc3229321d06e22e73e3e09f6af78dcfdf16c7636c/platformdirs-4.0.0-py3-none-any.whl", hash = "sha256:118c954d7e949b35437270383a3f2531e99dd93cf7ce4dc8340d3356d30f173b", size = 17562, upload-time = "2023-11-10T16:43:06.949Z" }, +] + +[[package]] +name = "pygments" +version = "2.17.2" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/55/59/8bccf4157baf25e4aa5a0bb7fa3ba8600907de105ebc22b0c78cfbf6f565/pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367", size = 4827772, upload-time = "2023-11-21T20:43:53.875Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/97/9c/372fef8377a6e340b1704768d20daaded98bf13282b5327beb2e2fe2c7ef/pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c", size = 1179756, upload-time = "2023-11-21T20:43:49.423Z" }, +] + +[[package]] +name = "pymdown-extensions" +version = "10.2.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "markdown" }, + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/90/41/7d67a7b6974fe3ffa03c817c9772f593535a85a72f4ba80af47168615098/pymdown_extensions-10.2.1.tar.gz", hash = "sha256:d0c534b4a5725a4be7ccef25d65a4c97dba58b54ad7c813babf0eb5ba9c81591", size = 784912, upload-time = "2023-08-30T15:17:13.902Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/2f/5d/aaadfd7c9cc1a1a720c487fd28ecb18418728cd61dd3451e8a831e8030ea/pymdown_extensions-10.2.1-py3-none-any.whl", hash = "sha256:bded105eb8d93f88f2f821f00108cb70cef1269db6a40128c09c5f48bfc60ea4", size = 241051, upload-time = "2023-08-30T15:17:11.449Z" }, +] + +[[package]] +name = "python-dateutil" +version = "2.9.0.post0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "six" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/66/c0/0c8b6ad9f17a802ee498c46e004a0eb49bc148f2fd230864601a86dcf6db/python-dateutil-2.9.0.post0.tar.gz", hash = "sha256:37dd54208da7e1cd875388217d5e00ebd4179249f90fb72437e91a35459a0ad3", size = 342432, upload-time = "2024-03-01T18:36:20.211Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/ec/57/56b9bcc3c9c6a792fcbaf139543cee77261f3651ca9da0c93f5c1221264b/python_dateutil-2.9.0.post0-py2.py3-none-any.whl", hash = "sha256:a8b2bc7bffae282281c8140a97d3aa9c14da0b136dfe83f850eea9a5f7470427", size = 229892, upload-time = "2024-03-01T18:36:18.57Z" }, +] + +[[package]] +name = "pytz" +version = "2024.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/90/26/9f1f00a5d021fff16dee3de13d43e5e978f3d58928e129c3a62cf7eb9738/pytz-2024.1.tar.gz", hash = "sha256:2a29735ea9c18baf14b448846bde5a48030ed267578472d8955cd0e7443a9812", size = 316214, upload-time = "2024-02-02T01:18:41.693Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/9c/3d/a121f284241f08268b21359bd425f7d4825cffc5ac5cd0e1b3d82ffd2b10/pytz-2024.1-py2.py3-none-any.whl", hash = "sha256:328171f4e3623139da4983451950b28e95ac706e13f3f2630a879749e7a8b319", size = 505474, upload-time = "2024-02-02T01:18:37.283Z" }, +] + +[[package]] +name = "pyyaml" +version = "6.0.1" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/cd/e5/af35f7ea75cf72f2cd079c95ee16797de7cd71f29ea7c68ae5ce7be1eda0/PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43", size = 125201, upload-time = "2023-07-18T00:00:23.308Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/96/06/4beb652c0fe16834032e54f0956443d4cc797fe645527acee59e7deaa0a2/PyYAML-6.0.1-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:d858aa552c999bc8a8d57426ed01e40bef403cd8ccdd0fc5f6f04a00414cac2a", size = 189447, upload-time = "2023-07-17T23:57:04.325Z" }, + { url = "https://files.pythonhosted.org/packages/5b/07/10033a403b23405a8fc48975444463d3d10a5c2736b7eb2550b07b367429/PyYAML-6.0.1-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:fd66fc5d0da6d9815ba2cebeb4205f95818ff4b79c3ebe268e75d961704af52f", size = 169264, upload-time = "2023-07-17T23:57:07.787Z" }, + { url = "https://files.pythonhosted.org/packages/f1/26/55e4f21db1f72eaef092015d9017c11510e7e6301c62a6cfee91295d13c6/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:69b023b2b4daa7548bcfbd4aa3da05b3a74b772db9e23b982788168117739938", size = 677003, upload-time = "2023-07-17T23:57:13.144Z" }, + { url = "https://files.pythonhosted.org/packages/ba/91/090818dfa62e85181f3ae23dd1e8b7ea7f09684864a900cab72d29c57346/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:81e0b275a9ecc9c0c0c07b4b90ba548307583c125f54d5b6946cfee6360c733d", size = 699070, upload-time = "2023-07-17T23:57:19.402Z" }, + { url = "https://files.pythonhosted.org/packages/29/61/bf33c6c85c55bc45a29eee3195848ff2d518d84735eb0e2d8cb42e0d285e/PyYAML-6.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:ba336e390cd8e4d1739f42dfe9bb83a3cc2e80f567d8805e11b46f4a943f5515", size = 705525, upload-time = "2023-07-17T23:57:25.272Z" }, + { url = "https://files.pythonhosted.org/packages/07/91/45dfd0ef821a7f41d9d0136ea3608bb5b1653e42fd56a7970532cb5c003f/PyYAML-6.0.1-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:326c013efe8048858a6d312ddd31d56e468118ad4cdeda36c719bf5bb6192290", size = 707514, upload-time = "2023-08-28T18:43:20.945Z" }, + { url = "https://files.pythonhosted.org/packages/b6/a0/b6700da5d49e9fed49dc3243d3771b598dad07abb37cc32e524607f96adc/PyYAML-6.0.1-cp310-cp310-win32.whl", hash = "sha256:bd4af7373a854424dabd882decdc5579653d7868b8fb26dc7d0e99f823aa5924", size = 130488, upload-time = "2023-07-17T23:57:28.144Z" }, + { url = "https://files.pythonhosted.org/packages/24/97/9b59b43431f98d01806b288532da38099cc6f2fea0f3d712e21e269c0279/PyYAML-6.0.1-cp310-cp310-win_amd64.whl", hash = "sha256:fd1592b3fdf65fff2ad0004b5e363300ef59ced41c2e6b3a99d4089fa8c5435d", size = 145338, upload-time = "2023-07-17T23:57:31.118Z" }, + { url = "https://files.pythonhosted.org/packages/ec/0d/26fb23e8863e0aeaac0c64e03fd27367ad2ae3f3cccf3798ee98ce160368/PyYAML-6.0.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:6965a7bc3cf88e5a1c3bd2e0b5c22f8d677dc88a455344035f03399034eb3007", size = 187867, upload-time = "2023-07-17T23:57:34.35Z" }, + { url = "https://files.pythonhosted.org/packages/28/09/55f715ddbf95a054b764b547f617e22f1d5e45d83905660e9a088078fe67/PyYAML-6.0.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:f003ed9ad21d6a4713f0a9b5a7a0a79e08dd0f221aff4525a2be4c346ee60aab", size = 167530, upload-time = "2023-07-17T23:57:36.975Z" }, + { url = "https://files.pythonhosted.org/packages/5e/94/7d5ee059dfb92ca9e62f4057dcdec9ac08a9e42679644854dc01177f8145/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:42f8152b8dbc4fe7d96729ec2b99c7097d656dc1213a3229ca5383f973a5ed6d", size = 732244, upload-time = "2023-07-17T23:57:43.774Z" }, + { url = "https://files.pythonhosted.org/packages/06/92/e0224aa6ebf9dc54a06a4609da37da40bb08d126f5535d81bff6b417b2ae/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:062582fca9fabdd2c8b54a3ef1c978d786e0f6b3a1510e0ac93ef59e0ddae2bc", size = 752871, upload-time = "2023-07-17T23:57:51.921Z" }, + { url = "https://files.pythonhosted.org/packages/7b/5e/efd033ab7199a0b2044dab3b9f7a4f6670e6a52c089de572e928d2873b06/PyYAML-6.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:d2b04aac4d386b172d5b9692e2d2da8de7bfb6c387fa4f801fbf6fb2e6ba4673", size = 757729, upload-time = "2023-07-17T23:57:59.865Z" }, + { url = "https://files.pythonhosted.org/packages/03/5c/c4671451b2f1d76ebe352c0945d4cd13500adb5d05f5a51ee296d80152f7/PyYAML-6.0.1-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:e7d73685e87afe9f3b36c799222440d6cf362062f78be1013661b00c5c6f678b", size = 748528, upload-time = "2023-08-28T18:43:23.207Z" }, + { url = "https://files.pythonhosted.org/packages/73/9c/766e78d1efc0d1fca637a6b62cea1b4510a7fb93617eb805223294fef681/PyYAML-6.0.1-cp311-cp311-win32.whl", hash = "sha256:1635fd110e8d85d55237ab316b5b011de701ea0f29d07611174a1b42f1444741", size = 130286, upload-time = "2023-07-17T23:58:02.964Z" }, + { url = "https://files.pythonhosted.org/packages/b3/34/65bb4b2d7908044963ebf614fe0fdb080773fc7030d7e39c8d3eddcd4257/PyYAML-6.0.1-cp311-cp311-win_amd64.whl", hash = "sha256:bf07ee2fef7014951eeb99f56f39c9bb4af143d8aa3c21b1677805985307da34", size = 144699, upload-time = "2023-07-17T23:58:05.586Z" }, + { url = "https://files.pythonhosted.org/packages/bc/06/1b305bf6aa704343be85444c9d011f626c763abb40c0edc1cad13bfd7f86/PyYAML-6.0.1-cp312-cp312-macosx_10_9_x86_64.whl", hash = "sha256:855fb52b0dc35af121542a76b9a84f8d1cd886ea97c84703eaa6d88e37a2ad28", size = 178692, upload-time = "2023-08-28T18:43:24.924Z" }, + { url = "https://files.pythonhosted.org/packages/84/02/404de95ced348b73dd84f70e15a41843d817ff8c1744516bf78358f2ffd2/PyYAML-6.0.1-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:40df9b996c2b73138957fe23a16a4f0ba614f4c0efce1e9406a184b6d07fa3a9", size = 165622, upload-time = "2023-08-28T18:43:26.54Z" }, + { url = "https://files.pythonhosted.org/packages/c7/4c/4a2908632fc980da6d918b9de9c1d9d7d7e70b2672b1ad5166ed27841ef7/PyYAML-6.0.1-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a08c6f0fe150303c1c6b71ebcd7213c2858041a7e01975da3a99aed1e7a378ef", size = 696937, upload-time = "2024-01-18T20:40:22.92Z" }, + { url = "https://files.pythonhosted.org/packages/b4/33/720548182ffa8344418126017aa1d4ab4aeec9a2275f04ce3f3573d8ace8/PyYAML-6.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:6c22bec3fbe2524cde73d7ada88f6566758a8f7227bfbf93a408a9d86bcc12a0", size = 724969, upload-time = "2023-08-28T18:43:28.56Z" }, + { url = "https://files.pythonhosted.org/packages/4f/78/77b40157b6cb5f2d3d31a3d9b2efd1ba3505371f76730d267e8b32cf4b7f/PyYAML-6.0.1-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:8d4e9c88387b0f5c7d5f281e55304de64cf7f9c0021a3525bd3b1c542da3b0e4", size = 712604, upload-time = "2023-08-28T18:43:30.206Z" }, + { url = "https://files.pythonhosted.org/packages/2e/97/3e0e089ee85e840f4b15bfa00e4e63d84a3691ababbfea92d6f820ea6f21/PyYAML-6.0.1-cp312-cp312-win32.whl", hash = "sha256:d483d2cdf104e7c9fa60c544d92981f12ad66a457afae824d146093b8c294c54", size = 126098, upload-time = "2023-08-28T18:43:31.835Z" }, + { url = "https://files.pythonhosted.org/packages/2b/9f/fbade56564ad486809c27b322d0f7e6a89c01f6b4fe208402e90d4443a99/PyYAML-6.0.1-cp312-cp312-win_amd64.whl", hash = "sha256:0d3304d8c0adc42be59c5f8a4d9e3d7379e6955ad754aa9d6ab7a398b59dd1df", size = 138675, upload-time = "2023-08-28T18:43:33.613Z" }, + { url = "https://files.pythonhosted.org/packages/7f/5d/2779ea035ba1e533c32ed4a249b4e0448f583ba10830b21a3cddafe11a4e/PyYAML-6.0.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:1d4c7e777c441b20e32f52bd377e0c409713e8bb1386e1099c2415f26e479595", size = 191734, upload-time = "2023-07-17T23:59:13.869Z" }, + { url = "https://files.pythonhosted.org/packages/e1/a1/27bfac14b90adaaccf8c8289f441e9f76d94795ec1e7a8f134d9f2cb3d0b/PyYAML-6.0.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a0cd17c15d3bb3fa06978b4e8958dcdc6e0174ccea823003a106c7d4d7899ac5", size = 723767, upload-time = "2023-07-17T23:59:20.686Z" }, + { url = "https://files.pythonhosted.org/packages/c1/39/47ed4d65beec9ce07267b014be85ed9c204fa373515355d3efa62d19d892/PyYAML-6.0.1-cp38-cp38-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:28c119d996beec18c05208a8bd78cbe4007878c6dd15091efb73a30e90539696", size = 749067, upload-time = "2023-07-17T23:59:28.747Z" }, + { url = "https://files.pythonhosted.org/packages/c8/6b/6600ac24725c7388255b2f5add93f91e58a5d7efaf4af244fdbcc11a541b/PyYAML-6.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7e07cbde391ba96ab58e532ff4803f79c4129397514e1413a7dc761ccd755735", size = 736569, upload-time = "2023-07-17T23:59:37.216Z" }, + { url = "https://files.pythonhosted.org/packages/0d/46/62ae77677e532c0af6c81ddd6f3dbc16bdcc1208b077457354442d220bfb/PyYAML-6.0.1-cp38-cp38-musllinux_1_1_x86_64.whl", hash = "sha256:49a183be227561de579b4a36efbb21b3eab9651dd81b1858589f796549873dd6", size = 787738, upload-time = "2023-08-28T18:43:35.582Z" }, + { url = "https://files.pythonhosted.org/packages/d6/6a/439d1a6f834b9a9db16332ce16c4a96dd0e3970b65fe08cbecd1711eeb77/PyYAML-6.0.1-cp38-cp38-win32.whl", hash = "sha256:184c5108a2aca3c5b3d3bf9395d50893a7ab82a38004c8f61c258d4428e80206", size = 139797, upload-time = "2023-07-17T23:59:40.254Z" }, + { url = "https://files.pythonhosted.org/packages/29/0f/9782fa5b10152abf033aec56a601177ead85ee03b57781f2d9fced09eefc/PyYAML-6.0.1-cp38-cp38-win_amd64.whl", hash = "sha256:1e2722cc9fbb45d9b87631ac70924c11d3a401b2d7f410cc0e3bbf249f2dca62", size = 157350, upload-time = "2023-07-17T23:59:42.94Z" }, + { url = "https://files.pythonhosted.org/packages/57/c5/5d09b66b41d549914802f482a2118d925d876dc2a35b2d127694c1345c34/PyYAML-6.0.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:9eb6caa9a297fc2c2fb8862bc5370d0303ddba53ba97e71f08023b6cd73d16a8", size = 197846, upload-time = "2023-07-17T23:59:46.424Z" }, + { url = "https://files.pythonhosted.org/packages/0e/88/21b2f16cb2123c1e9375f2c93486e35fdc86e63f02e274f0e99c589ef153/PyYAML-6.0.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:c8098ddcc2a85b61647b2590f825f3db38891662cfc2fc776415143f599bb859", size = 174396, upload-time = "2023-07-17T23:59:49.538Z" }, + { url = "https://files.pythonhosted.org/packages/ac/6c/967d91a8edf98d2b2b01d149bd9e51b8f9fb527c98d80ebb60c6b21d60c4/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:5773183b6446b2c99bb77e77595dd486303b4faab2b086e7b17bc6bef28865f6", size = 731824, upload-time = "2023-07-17T23:59:58.111Z" }, + { url = "https://files.pythonhosted.org/packages/4a/4b/c71ef18ef83c82f99e6da8332910692af78ea32bd1d1d76c9787dfa36aea/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:b786eecbdf8499b9ca1d697215862083bd6d2a99965554781d0d8d1ad31e13a0", size = 754777, upload-time = "2023-07-18T00:00:06.716Z" }, + { url = "https://files.pythonhosted.org/packages/7d/39/472f2554a0f1e825bd7c5afc11c817cd7a2f3657460f7159f691fbb37c51/PyYAML-6.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:bc1bf2925a1ecd43da378f4db9e4f799775d6367bdb94671027b73b393a7c42c", size = 738883, upload-time = "2023-07-18T00:00:14.423Z" }, + { url = "https://files.pythonhosted.org/packages/40/da/a175a35cf5583580e90ac3e2a3dbca90e43011593ae62ce63f79d7b28d92/PyYAML-6.0.1-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:04ac92ad1925b2cff1db0cfebffb6ffc43457495c9b3c39d3fcae417d7125dc5", size = 750294, upload-time = "2023-08-28T18:43:37.153Z" }, + { url = "https://files.pythonhosted.org/packages/24/62/7fcc372442ec8ea331da18c24b13710e010c5073ab851ef36bf9dacb283f/PyYAML-6.0.1-cp39-cp39-win32.whl", hash = "sha256:faca3bdcf85b2fc05d06ff3fbc1f83e1391b3e724afa3feba7d13eeab355484c", size = 136936, upload-time = "2023-07-18T00:00:17.167Z" }, + { url = "https://files.pythonhosted.org/packages/84/4d/82704d1ab9290b03da94e6425f5e87396b999fd7eb8e08f3a92c158402bf/PyYAML-6.0.1-cp39-cp39-win_amd64.whl", hash = "sha256:510c9deebc5c0225e8c96813043e62b680ba2f9c50a08d3724c7f28a747d1486", size = 152751, upload-time = "2023-07-18T00:00:19.939Z" }, +] + +[[package]] +name = "pyyaml-env-tag" +version = "0.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "pyyaml" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/fb/8e/da1c6c58f751b70f8ceb1eb25bc25d524e8f14fe16edcce3f4e3ba08629c/pyyaml_env_tag-0.1.tar.gz", hash = "sha256:70092675bda14fdec33b31ba77e7543de9ddc88f2e5b99160396572d11525bdb", size = 5631, upload-time = "2020-11-12T02:38:26.239Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5a/66/bbb1dd374f5c870f59c5bb1db0e18cbe7fa739415a24cbd95b2d1f5ae0c4/pyyaml_env_tag-0.1-py3-none-any.whl", hash = "sha256:af31106dec8a4d68c60207c1886031cbf839b68aa7abccdb19868200532c2069", size = 3911, upload-time = "2020-11-12T02:38:24.638Z" }, +] + +[[package]] +name = "requests" +version = "2.31.0" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "certifi" }, + { name = "charset-normalizer" }, + { name = "idna" }, + { name = "urllib3" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/9d/be/10918a2eac4ae9f02f6cfe6414b7a155ccd8f7f9d4380d62fd5b955065c3/requests-2.31.0.tar.gz", hash = "sha256:942c5a758f98d790eaed1a29cb6eefc7ffb0d1cf7af05c3d2791656dbd6ad1e1", size = 110794, upload-time = "2023-05-22T15:12:44.175Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/70/8e/0e2d847013cb52cd35b38c009bb167a1a26b2ce6cd6965bf26b47bc0bf44/requests-2.31.0-py3-none-any.whl", hash = "sha256:58cd2187c01e70e6e26505bca751777aa9f2ee0b7f4300988b709f44e013003f", size = 62574, upload-time = "2023-05-22T15:12:42.313Z" }, +] + +[[package]] +name = "six" +version = "1.16.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/71/39/171f1c67cd00715f190ba0b100d606d440a28c93c7714febeca8b79af85e/six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926", size = 34041, upload-time = "2021-05-05T14:18:18.379Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d9/5a/e7c31adbe875f2abbb91bd84cf2dc52d792b5a01506781dbcf25c91daf11/six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254", size = 11053, upload-time = "2021-05-05T14:18:17.237Z" }, +] + +[[package]] +name = "urllib3" +version = "2.0.7" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/af/47/b215df9f71b4fdba1025fc05a77db2ad243fa0926755a52c5e71659f4e3c/urllib3-2.0.7.tar.gz", hash = "sha256:c97dfde1f7bd43a71c8d2a58e369e9b2bf692d1334ea9f9cae55add7d0dd0f84", size = 282546, upload-time = "2023-10-17T17:46:50.542Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/d2/b2/b157855192a68541a91ba7b2bbcb91f1b4faa51f8bae38d8005c034be524/urllib3-2.0.7-py3-none-any.whl", hash = "sha256:fdb6d215c776278489906c2f8916e6e7d4f5a9b602ccbcfdf7f016fc8da0596e", size = 124213, upload-time = "2023-10-17T17:46:48.538Z" }, +] + +[[package]] +name = "watchdog" +version = "3.0.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/95/a6/d6ef450393dac5734c63c40a131f66808d2e6f59f6165ab38c98fbe4e6ec/watchdog-3.0.0.tar.gz", hash = "sha256:4d98a320595da7a7c5a18fc48cb633c2e73cda78f93cac2ef42d42bf609a33f9", size = 124593, upload-time = "2023-03-20T09:21:11.367Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/06/fd/58b82550ebe4883bb2a5e1b6c14d8702b5ce0f36c58470bba51dc777df46/watchdog-3.0.0-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:336adfc6f5cc4e037d52db31194f7581ff744b67382eb6021c868322e32eef41", size = 100697, upload-time = "2023-03-20T09:20:25.047Z" }, + { url = "https://files.pythonhosted.org/packages/92/dd/42f47ffdfadff4c41b89c54163f323f875eb963bf90088e477c43b8f7b15/watchdog-3.0.0-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:a70a8dcde91be523c35b2bf96196edc5730edb347e374c7de7cd20c43ed95397", size = 91219, upload-time = "2023-03-20T09:20:26.864Z" }, + { url = "https://files.pythonhosted.org/packages/9b/39/30bb3c2e4f8e89b5c60e98589acf5c5a001cb0efde249aa05d748d1734a2/watchdog-3.0.0-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:adfdeab2da79ea2f76f87eb42a3ab1966a5313e5a69a0213a3cc06ef692b0e96", size = 91756, upload-time = "2023-03-20T09:20:28.309Z" }, + { url = "https://files.pythonhosted.org/packages/00/9e/a9711f35f1ad6571e92dc2e955e7de9dfac21a1b33e9cd212f066a60a387/watchdog-3.0.0-cp311-cp311-macosx_10_9_universal2.whl", hash = "sha256:2b57a1e730af3156d13b7fdddfc23dea6487fceca29fc75c5a868beed29177ae", size = 100700, upload-time = "2023-03-20T09:20:29.847Z" }, + { url = "https://files.pythonhosted.org/packages/84/ab/67001e62603bf2ea35ace40023f7c74f61e8b047160d6bb078373cec1a67/watchdog-3.0.0-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:7ade88d0d778b1b222adebcc0927428f883db07017618a5e684fd03b83342bd9", size = 91251, upload-time = "2023-03-20T09:20:31.892Z" }, + { url = "https://files.pythonhosted.org/packages/58/db/d419fdbd3051b42b0a8091ddf78f70540b6d9d277a84845f7c5955f9de92/watchdog-3.0.0-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:7e447d172af52ad204d19982739aa2346245cc5ba6f579d16dac4bfec226d2e7", size = 91753, upload-time = "2023-03-20T09:20:33.337Z" }, + { url = "https://files.pythonhosted.org/packages/7f/6e/7ca8ed16928d7b11da69372f55c64a09dce649d2b24b03f7063cd8683c4b/watchdog-3.0.0-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:8ae9cda41fa114e28faf86cb137d751a17ffd0316d1c34ccf2235e8a84365c7f", size = 100655, upload-time = "2023-03-20T09:20:37.473Z" }, + { url = "https://files.pythonhosted.org/packages/2e/54/48527f3aea4f7ed331072352fee034a7f3d6ec7a2ed873681738b2586498/watchdog-3.0.0-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:25f70b4aa53bd743729c7475d7ec41093a580528b100e9a8c5b5efe8899592fc", size = 91216, upload-time = "2023-03-20T09:20:39.793Z" }, + { url = "https://files.pythonhosted.org/packages/dc/89/3a3ce6dd01807ff918aec3bbcabc92ed1a7edc5bb2266c720bb39fec1bec/watchdog-3.0.0-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4f94069eb16657d2c6faada4624c39464f65c05606af50bb7902e036e3219be3", size = 91752, upload-time = "2023-03-20T09:20:41.395Z" }, + { url = "https://files.pythonhosted.org/packages/75/fe/d9a37d8df76878853f68dd665ec6d2c7a984645de460164cb880a93ffe6b/watchdog-3.0.0-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:7c5f84b5194c24dd573fa6472685b2a27cc5a17fe5f7b6fd40345378ca6812e3", size = 100653, upload-time = "2023-03-20T09:20:42.936Z" }, + { url = "https://files.pythonhosted.org/packages/94/ce/70c65a6c4b0330129c402624d42f67ce82d6a0ba2036de67628aeffda3c1/watchdog-3.0.0-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:3aa7f6a12e831ddfe78cdd4f8996af9cf334fd6346531b16cec61c3b3c0d8da0", size = 91247, upload-time = "2023-03-20T09:20:45.157Z" }, + { url = "https://files.pythonhosted.org/packages/51/b9/444a984b1667013bac41b31b45d9718e069cc7502a43a924896806605d83/watchdog-3.0.0-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:233b5817932685d39a7896b1090353fc8efc1ef99c9c054e46c8002561252fb8", size = 91753, upload-time = "2023-03-20T09:20:46.913Z" }, + { url = "https://files.pythonhosted.org/packages/ea/76/bef1c6f6ac18041234a9f3e8bc995d611e255c44f10433bfaf255968c269/watchdog-3.0.0-pp38-pypy38_pp73-macosx_10_9_x86_64.whl", hash = "sha256:8f3ceecd20d71067c7fd4c9e832d4e22584318983cabc013dbf3f70ea95de346", size = 90419, upload-time = "2023-03-20T09:20:50.715Z" }, + { url = "https://files.pythonhosted.org/packages/30/65/9e36a3c821d47a22e54a8fc73681586b2d26e82d24ea3af63acf2ef78f97/watchdog-3.0.0-pp39-pypy39_pp73-macosx_10_9_x86_64.whl", hash = "sha256:c9d8c8ec7efb887333cf71e328e39cffbf771d8f8f95d308ea4125bf5f90ba64", size = 90428, upload-time = "2023-03-20T09:20:52.216Z" }, + { url = "https://files.pythonhosted.org/packages/92/28/631872d7fbc45527037060db8c838b47a129a6c09d2297d6dddcfa283cf2/watchdog-3.0.0-py3-none-manylinux2014_aarch64.whl", hash = "sha256:0e06ab8858a76e1219e68c7573dfeba9dd1c0219476c5a44d5333b01d7e1743a", size = 82049, upload-time = "2023-03-20T09:20:53.951Z" }, + { url = "https://files.pythonhosted.org/packages/c0/a2/4e3230bdc1fb878b152a2c66aa941732776f4545bd68135d490591d66713/watchdog-3.0.0-py3-none-manylinux2014_armv7l.whl", hash = "sha256:d00e6be486affb5781468457b21a6cbe848c33ef43f9ea4a73b4882e5f188a44", size = 82049, upload-time = "2023-03-20T09:20:55.583Z" }, + { url = "https://files.pythonhosted.org/packages/21/72/46fd174352cd88b9157ade77e3b8835125d4b1e5186fc7f1e8c44664e029/watchdog-3.0.0-py3-none-manylinux2014_i686.whl", hash = "sha256:c07253088265c363d1ddf4b3cdb808d59a0468ecd017770ed716991620b8f77a", size = 82052, upload-time = "2023-03-20T09:20:57.124Z" }, + { url = "https://files.pythonhosted.org/packages/74/3c/e4b77f4f069aca2b6e35925db7a1aa6cb600dcb52fc3e962284640ca37f3/watchdog-3.0.0-py3-none-manylinux2014_ppc64.whl", hash = "sha256:5113334cf8cf0ac8cd45e1f8309a603291b614191c9add34d33075727a967709", size = 82050, upload-time = "2023-03-20T09:20:58.864Z" }, + { url = "https://files.pythonhosted.org/packages/71/3a/b12740f4f60861240d57b42a2ac6ac0a2821db506c4435f7872c1fad867d/watchdog-3.0.0-py3-none-manylinux2014_ppc64le.whl", hash = "sha256:51f90f73b4697bac9c9a78394c3acbbd331ccd3655c11be1a15ae6fe289a8c83", size = 82050, upload-time = "2023-03-20T09:21:00.452Z" }, + { url = "https://files.pythonhosted.org/packages/40/1b/4e6d3e0f587587931f590531b4ed08070d71a9efb35541d792a68d8ee593/watchdog-3.0.0-py3-none-manylinux2014_s390x.whl", hash = "sha256:ba07e92756c97e3aca0912b5cbc4e5ad802f4557212788e72a72a47ff376950d", size = 82049, upload-time = "2023-03-20T09:21:01.979Z" }, + { url = "https://files.pythonhosted.org/packages/2b/f0/456948b865ab259784f774154e7d65844fa9757522fdb11533fbf8ae7aca/watchdog-3.0.0-py3-none-manylinux2014_x86_64.whl", hash = "sha256:d429c2430c93b7903914e4db9a966c7f2b068dd2ebdd2fa9b9ce094c7d459f33", size = 82051, upload-time = "2023-03-20T09:21:03.67Z" }, + { url = "https://files.pythonhosted.org/packages/55/0d/bfc2a0d425b12444a2dc245a934c065bbb7bd9833fff071cba79c21bb76e/watchdog-3.0.0-py3-none-win32.whl", hash = "sha256:3ed7c71a9dccfe838c2f0b6314ed0d9b22e77d268c67e015450a29036a81f60f", size = 82038, upload-time = "2023-03-20T09:21:05.492Z" }, + { url = "https://files.pythonhosted.org/packages/9b/6e/ce8d124d03cd3f2941365d9c81d62e3afe43f2dc7e6e86274fa9c2ec2d5b/watchdog-3.0.0-py3-none-win_amd64.whl", hash = "sha256:4c9956d27be0bb08fc5f30d9d0179a855436e655f046d288e2bcc11adfae893c", size = 82040, upload-time = "2023-03-20T09:21:07.609Z" }, + { url = "https://files.pythonhosted.org/packages/ba/0c/cd0337069c468f22ef256e768ece74c78b511092f1004ab260268e1af4a9/watchdog-3.0.0-py3-none-win_ia64.whl", hash = "sha256:5d9f3a10e02d7371cd929b5d8f11e87d4bad890212ed3901f9b4d68767bee759", size = 82040, upload-time = "2023-03-20T09:21:09.178Z" }, +] + +[[package]] +name = "wcmatch" +version = "8.4.1" +source = { registry = "https://pypi.org/simple" } +dependencies = [ + { name = "bracex" }, +] +sdist = { url = "https://files.pythonhosted.org/packages/b7/94/5dd083fc972655f6689587c3af705aabc8b8e781bacdf22d6d2282fe6142/wcmatch-8.4.1.tar.gz", hash = "sha256:b1f042a899ea4c458b7321da1b5e3331e3e0ec781583434de1301946ceadb943", size = 114362, upload-time = "2022-09-19T23:14:56.641Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/b4/a7/1875f68c4e39f9c68f5ba3aaf80ed1853903e5119941d514789fbc51a80d/wcmatch-8.4.1-py3-none-any.whl", hash = "sha256:3476cd107aba7b25ba1d59406938a47dc7eec6cfd0ad09ff77193f21a964dee7", size = 39903, upload-time = "2022-09-19T23:14:55.46Z" }, +] + +[[package]] +name = "zipp" +version = "3.15.0" +source = { registry = "https://pypi.org/simple" } +sdist = { url = "https://files.pythonhosted.org/packages/00/27/f0ac6b846684cecce1ee93d32450c45ab607f65c2e0255f0092032d91f07/zipp-3.15.0.tar.gz", hash = "sha256:112929ad649da941c23de50f356a2b5570c954b65150642bccdd66bf194d224b", size = 18454, upload-time = "2023-02-25T02:17:22.503Z" } +wheels = [ + { url = "https://files.pythonhosted.org/packages/5b/fa/c9e82bbe1af6266adf08afb563905eb87cab83fde00a0a08963510621047/zipp-3.15.0-py3-none-any.whl", hash = "sha256:48904fc76a60e542af151aded95726c1a5c34ed43ab4134b597665c86d7ad556", size = 6758, upload-time = "2023-02-25T02:17:20.807Z" }, +]