<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Série: Création d'un jeu de Babyfoot 3D avec GDevelop 5 on Créer un jeu vidéo</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/</link><description>Recent content in Série: Création d'un jeu de Babyfoot 3D avec GDevelop 5 on Créer un jeu vidéo</description><generator>Hugo</generator><language>fr</language><lastBuildDate>Wed, 22 May 2024 00:00:00 +0000</lastBuildDate><atom:link href="https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/index.xml" rel="self" type="application/rss+xml"/><item><title>1. Créer un jeu de Babyfoot 3D avec GDevelop 5</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-jeu-babyfoot-3d-gdevelop-5/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-jeu-babyfoot-3d-gdevelop-5/</guid><description>&lt;p&gt;Bienvenue dans cette nouvelle série de tutoriels dédiée à la création d&amp;rsquo;un jeu de &lt;strong&gt;Babyfoot en 3D&lt;/strong&gt; avec GDevelop 5. Dans ce premier épisode, nous posons les fondations du projet en configurant la scène, les caméras et le système de contrôle des joueurs.&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/eQAwY2zmyEo" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/eQAwY2zmyEo?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/eQAwY2zmyEo/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="ce-que-vous-allez-apprendre-dans-cet-épisode-"&gt;Ce que vous allez apprendre dans cet épisode :&lt;a class="anchor" href="#ce-que-vous-allez-apprendre-dans-cet-%c3%a9pisode-"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Utilisation d&amp;rsquo;un Starter Pack :&lt;/strong&gt; Comment importer un projet pré-configuré avec des objets 3D (terrain, joueurs, balle, cages).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestion des caméras 3D :&lt;/strong&gt; Mise en place d&amp;rsquo;un système de caméra qui suit un objet cible (&amp;ldquo;Camera Center&amp;rdquo;) pour une meilleure gestion de la profondeur.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Architecture orientée multijoueur :&lt;/strong&gt; Structurer le code dès le début avec des variables d&amp;rsquo;instance pour faciliter une future transition vers le multijoueur en ligne.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contrôles tactiles/souris :&lt;/strong&gt; Création d&amp;rsquo;une zone de contrôle (&amp;ldquo;Player Controller&amp;rdquo;) pour déplacer les joueurs de manière fluide sans décrochage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contraintes physiques :&lt;/strong&gt; Utiliser l&amp;rsquo;action &amp;ldquo;Séparer deux objets&amp;rdquo; pour éviter que les joueurs ne traversent les bordures du terrain.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Bien que GDevelop évolue rapidement, les concepts abordés ici restent des piliers fondamentaux pour tout projet 3D :&lt;/p&gt;</description></item><item><title>2. Créer le coup d''envoi et le tir automatique dans GDevelop 5</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-coup-envoi-tir-automatique-gdevelop-5/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-coup-envoi-tir-automatique-gdevelop-5/</guid><description>&lt;p&gt;Dans ce deuxième épisode de notre série dédiée à la création d&amp;rsquo;un baby-foot 3D sous GDevelop 5, nous passons aux choses sérieuses : la mise en jeu et l&amp;rsquo;interaction entre les joueurs et la balle. Sans coup d&amp;rsquo;envoi, pas de match, et sans tir automatique, pas de plaisir !&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/1XYaTK3cvBw" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/1XYaTK3cvBw?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/1XYaTK3cvBw/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="au-programme-de-cet-épisode-"&gt;Au programme de cet épisode :&lt;a class="anchor" href="#au-programme-de-cet-%c3%a9pisode-"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Structuration du code :&lt;/strong&gt; Utilisation des groupes d&amp;rsquo;événements pour garder un projet propre et lisible.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le Kickoff (Engagement) :&lt;/strong&gt; Mise en place d&amp;rsquo;un chronomètre de scène pour déclencher le mouvement de la balle après un court délai.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestion des impulsions :&lt;/strong&gt; Utilisation de la force instantanée pour propulser le ballon au démarrage.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Tir automatique :&lt;/strong&gt; Création de groupes d&amp;rsquo;objets (Red/Blue) pour gérer les collisions et renvoyer la balle avec une trajectoire aléatoire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Game Feel :&lt;/strong&gt; Ajout d&amp;rsquo;une légère impulsion sur l&amp;rsquo;axe Z pour donner du relief aux tirs et éviter que la balle ne reste collée au sol.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Les groupes d&amp;rsquo;objets :&lt;/strong&gt; Cette fonctionnalité reste indispensable pour gérer des équipes entières sans dupliquer les lignes d&amp;rsquo;événements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La gestion des forces :&lt;/strong&gt; Comprendre la différence entre une &amp;ldquo;impulsion&amp;rdquo; (instantanée) et une &amp;ldquo;force&amp;rdquo; (continue) est toujours la base de la physique dans GDevelop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L&amp;rsquo;aléatoire (Random) :&lt;/strong&gt; L&amp;rsquo;utilisation de &lt;code&gt;RandomInRange&lt;/code&gt; est la méthode la plus simple et efficace pour rendre les comportements de l&amp;rsquo;IA ou des rebonds moins prévisibles et plus naturels.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le nettoyage :&lt;/strong&gt; Supprimer un chronomètre une fois son rôle rempli est une bonne pratique pour optimiser les performances de votre scène.&lt;/li&gt;
&lt;/ul&gt;


&lt;hr style="margin-top: 1.5rem; border: 0; border-top: 1px solid var(--INTERNAL-MENU-BORDER-color, #e5e5e5); opacity: 0.5;"&gt;

&lt;div class="custom-footer" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-top: 2rem; padding-bottom: 2rem; font-size: 0.9rem; color: var(--MAIN-TITLES-color);"&gt;
 
 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📺 Ma Chaîne YouTube&lt;/h4&gt;
 &lt;a href="https://www.youtube.com/@creerunjeuvideo" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 S'abonner à la chaîne
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📦 Ressources&lt;/h4&gt;
 &lt;a href="https://jeancharpentier.itch.io/ressources-tutoriels" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 Téléchargements
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;🌐 Communauté&lt;/h4&gt;
 &lt;ul style="list-style: none; padding: 0; margin: 0; line-height: 1.6;"&gt;
 &lt;li&gt;&lt;a href="https://github.com/JeanCharpentier/" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💻 GitHub&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://bsky.app/profile/ankhm.bsky.social" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;🦋 Bluesky&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://fr.linkedin.com/in/jeancharpentier" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💼 LinkedIn&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://www.twitch.tv/levieuxankh" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;👾 Chaîne Twitch&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/div&gt;

&lt;/div&gt;

&lt;div style="border-top: 1px dashed var(--INTERNAL-MENU-BORDER-color, #e5e5e5); padding-top: 1rem; margin-top: 1rem; font-size: 0.8rem; opacity: 0.7; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;"&gt;
 &lt;div&gt;
 &amp;copy; 2026 - Créé avec ❤️ sous Hugo.
 &lt;/div&gt;
 &lt;div&gt;
 &lt;a href="https://creerunjeuvideo.fr/mentions-legales/" style="color: inherit; margin-right: 1rem;"&gt;Mentions légales&lt;/a&gt;
 &lt;a href="https://creerunjeuvideo.fr/confidentialite/" style="color: inherit;"&gt;Confidentialité (RGPD)&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>3. Créer un système de score et des filets de but 3D</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-systeme-score-filets-but-3d-gdevelop/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-systeme-score-filets-but-3d-gdevelop/</guid><description>&lt;p&gt;Dans ce troisième épisode de notre série dédiée à la création d&amp;rsquo;un baby-foot mobile avec GDevelop 5, nous allons passer aux choses sérieuses : la gestion du score et l&amp;rsquo;intégration visuelle des filets de but.&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/5f5_dowmP30" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/5f5_dowmP30?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/5f5_dowmP30/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="au-programme-de-cet-épisode-"&gt;Au programme de cet épisode :&lt;a class="anchor" href="#au-programme-de-cet-%c3%a9pisode-"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Interface utilisateur (UI) :&lt;/strong&gt; Création d&amp;rsquo;un calque dédié pour afficher le score en temps réel.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Zones de détection :&lt;/strong&gt; Mise en place des &amp;ldquo;Scorebox&amp;rdquo; (objets 3D invisibles) derrière les buts pour détecter le passage de la balle.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logique de jeu :&lt;/strong&gt; Utilisation des variables d&amp;rsquo;instance pour inverser les scores selon le camp qui encaisse.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Réinitialisation :&lt;/strong&gt; Automatisation du &amp;ldquo;kickoff&amp;rdquo; (remise en jeu) après chaque but marqué.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Design 3D :&lt;/strong&gt; Création et application de textures de filets avec Piskel, en abordant les bonnes pratiques sur la transparence.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gestion des calques :&lt;/strong&gt; Séparer l&amp;rsquo;interface (UI) du monde 3D reste la méthode la plus propre pour maintenir une lisibilité optimale sur mobile.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Performance et Transparence :&lt;/strong&gt; Comme mentionné dans la vidéo, la transparence en 3D est coûteuse. Évitez de superposer trop d&amp;rsquo;objets transparents pour préserver le framerate sur les appareils mobiles.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le &amp;ldquo;Tuilage&amp;rdquo; (Tiling) :&lt;/strong&gt; L&amp;rsquo;utilisation du tuilage pour les textures répétitives (comme un filet) est une technique indispensable pour optimiser la mémoire tout en gardant un rendu visuel détaillé.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logique de collision :&lt;/strong&gt; N&amp;rsquo;oubliez jamais d&amp;rsquo;ajouter un comportement physique (même statique) aux objets 3D destinés à détecter des collisions, sans quoi GDevelop ne pourra pas déclencher vos événements.&lt;/li&gt;
&lt;/ul&gt;


&lt;hr style="margin-top: 1.5rem; border: 0; border-top: 1px solid var(--INTERNAL-MENU-BORDER-color, #e5e5e5); opacity: 0.5;"&gt;

&lt;div class="custom-footer" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-top: 2rem; padding-bottom: 2rem; font-size: 0.9rem; color: var(--MAIN-TITLES-color);"&gt;
 
 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📺 Ma Chaîne YouTube&lt;/h4&gt;
 &lt;a href="https://www.youtube.com/@creerunjeuvideo" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 S'abonner à la chaîne
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📦 Ressources&lt;/h4&gt;
 &lt;a href="https://jeancharpentier.itch.io/ressources-tutoriels" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 Téléchargements
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;🌐 Communauté&lt;/h4&gt;
 &lt;ul style="list-style: none; padding: 0; margin: 0; line-height: 1.6;"&gt;
 &lt;li&gt;&lt;a href="https://github.com/JeanCharpentier/" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💻 GitHub&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://bsky.app/profile/ankhm.bsky.social" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;🦋 Bluesky&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://fr.linkedin.com/in/jeancharpentier" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💼 LinkedIn&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://www.twitch.tv/levieuxankh" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;👾 Chaîne Twitch&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/div&gt;

&lt;/div&gt;

&lt;div style="border-top: 1px dashed var(--INTERNAL-MENU-BORDER-color, #e5e5e5); padding-top: 1rem; margin-top: 1rem; font-size: 0.8rem; opacity: 0.7; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;"&gt;
 &lt;div&gt;
 &amp;copy; 2026 - Créé avec ❤️ sous Hugo.
 &lt;/div&gt;
 &lt;div&gt;
 &lt;a href="https://creerunjeuvideo.fr/mentions-legales/" style="color: inherit; margin-right: 1rem;"&gt;Mentions légales&lt;/a&gt;
 &lt;a href="https://creerunjeuvideo.fr/confidentialite/" style="color: inherit;"&gt;Confidentialité (RGPD)&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>4. Créer le mouvement et l''IA des joueurs</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-mouvement-ia-joueurs-gdevelop-babyfoot/</link><pubDate>Wed, 22 May 2024 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/creer-mouvement-ia-joueurs-gdevelop-babyfoot/</guid><description>&lt;p&gt;Dans cet épisode de notre série &amp;ldquo;Babyfoot 2026&amp;rdquo;, nous allons donner vie à notre terrain. Un baby-foot statique, c&amp;rsquo;est bien, mais un baby-foot dynamique, c&amp;rsquo;est mieux ! Nous allons apprendre à automatiser le mouvement de nos joueurs (PNG) et à programmer une intelligence artificielle basique pour notre gardien afin qu&amp;rsquo;il puisse intercepter la balle.&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/QZrJDOstYNY" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/QZrJDOstYNY?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/QZrJDOstYNY/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="au-programme-de-cet-épisode-"&gt;Au programme de cet épisode :&lt;a class="anchor" href="#au-programme-de-cet-%c3%a9pisode-"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Organisation des objets :&lt;/strong&gt; Création d&amp;rsquo;un groupe &amp;ldquo;PNG&amp;rdquo; pour gérer nos joueurs automatiquement.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Positionnement initial :&lt;/strong&gt; Utilisation des variables &lt;code&gt;startX&lt;/code&gt; et &lt;code&gt;Line&lt;/code&gt; pour placer nos joueurs sur le terrain.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Mouvement sinusoïdal :&lt;/strong&gt; Utilisation de la fonction mathématique &lt;code&gt;sin()&lt;/code&gt; couplée à &lt;code&gt;TimeFromStart()&lt;/code&gt; pour créer un mouvement de va-et-vient fluide.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;IA du gardien :&lt;/strong&gt; Utilisation de l&amp;rsquo;interpolation linéaire (&lt;code&gt;lerp&lt;/code&gt;) pour permettre au gardien de suivre la position de la balle en temps réel.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La puissance des groupes :&lt;/strong&gt; Regrouper vos objets permet d&amp;rsquo;appliquer des actions à plusieurs entités simultanément, ce qui est indispensable pour optimiser vos événements.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Les fonctions mathématiques :&lt;/strong&gt; Le sinus reste l&amp;rsquo;outil le plus simple et le plus efficace pour créer des mouvements répétitifs sans avoir recours à des chemins complexes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L&amp;rsquo;interpolation (Lerp) :&lt;/strong&gt; C&amp;rsquo;est la technique standard pour obtenir des mouvements fluides et naturels. Que ce soit pour une caméra, un menu ou une IA, le &lt;code&gt;lerp&lt;/code&gt; est votre meilleur allié pour éviter les déplacements &amp;ldquo;robotiques&amp;rdquo;.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestion de la difficulté :&lt;/strong&gt; En jouant sur les paramètres de vitesse (le facteur dans le &lt;code&gt;lerp&lt;/code&gt; ou l&amp;rsquo;amplitude du sinus), vous pouvez facilement créer différents niveaux de difficulté pour vos joueurs.&lt;/li&gt;
&lt;/ul&gt;


&lt;hr style="margin-top: 1.5rem; border: 0; border-top: 1px solid var(--INTERNAL-MENU-BORDER-color, #e5e5e5); opacity: 0.5;"&gt;

&lt;div class="custom-footer" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-top: 2rem; padding-bottom: 2rem; font-size: 0.9rem; color: var(--MAIN-TITLES-color);"&gt;
 
 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📺 Ma Chaîne YouTube&lt;/h4&gt;
 &lt;a href="https://www.youtube.com/@creerunjeuvideo" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 S'abonner à la chaîne
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📦 Ressources&lt;/h4&gt;
 &lt;a href="https://jeancharpentier.itch.io/ressources-tutoriels" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 Téléchargements
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;🌐 Communauté&lt;/h4&gt;
 &lt;ul style="list-style: none; padding: 0; margin: 0; line-height: 1.6;"&gt;
 &lt;li&gt;&lt;a href="https://github.com/JeanCharpentier/" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💻 GitHub&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://bsky.app/profile/ankhm.bsky.social" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;🦋 Bluesky&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://fr.linkedin.com/in/jeancharpentier" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💼 LinkedIn&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://www.twitch.tv/levieuxankh" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;👾 Chaîne Twitch&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/div&gt;

&lt;/div&gt;

&lt;div style="border-top: 1px dashed var(--INTERNAL-MENU-BORDER-color, #e5e5e5); padding-top: 1rem; margin-top: 1rem; font-size: 0.8rem; opacity: 0.7; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;"&gt;
 &lt;div&gt;
 &amp;copy; 2026 - Créé avec ❤️ sous Hugo.
 &lt;/div&gt;
 &lt;div&gt;
 &lt;a href="https://creerunjeuvideo.fr/mentions-legales/" style="color: inherit; margin-right: 1rem;"&gt;Mentions légales&lt;/a&gt;
 &lt;a href="https://creerunjeuvideo.fr/confidentialite/" style="color: inherit;"&gt;Confidentialité (RGPD)&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>5. Gestion des rotations et collisions pour votre Baby-foot</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/gestion-rotations-collisions-babyfoot-gdevelop/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/gestion-rotations-collisions-babyfoot-gdevelop/</guid><description>&lt;p&gt;Dans cet épisode de notre série sur la création d&amp;rsquo;un baby-foot avec GDevelop 5, nous allons nous concentrer sur le &amp;ldquo;game feel&amp;rdquo;. Un bon jeu ne repose pas seulement sur des mécaniques fonctionnelles, mais sur des retours visuels gratifiants. Aujourd&amp;rsquo;hui, nous allons affiner les collisions et ajouter une animation de rotation dynamique à nos joueurs lorsqu&amp;rsquo;ils frappent la balle.&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/Iv1vdjxD42A" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/Iv1vdjxD42A?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/Iv1vdjxD42A/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="au-programme-de-cet-épisode-"&gt;Au programme de cet épisode :&lt;a class="anchor" href="#au-programme-de-cet-%c3%a9pisode-"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Optimisation des collisions :&lt;/strong&gt; Remplacement des formes de collision (boîtes) par des capsules pour un comportement plus fluide et moins anguleux.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestion de la restitution :&lt;/strong&gt; Réglage de la restitution à 0 pour reprendre le contrôle total des rebonds via le code plutôt que par le moteur physique.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Animation de rotation :&lt;/strong&gt; Création d&amp;rsquo;un système de rotation angulaire déclenché lors du contact avec la balle.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestion du timing :&lt;/strong&gt; Utilisation des chronomètres d&amp;rsquo;objets pour arrêter la rotation après une durée précise (0,2 seconde), assurant un effet visuel propre et répétable.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Différenciation des équipes :&lt;/strong&gt; Application de rotations opposées pour les joueurs rouges et bleus afin de dynamiser le terrain.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;p&gt;Même si GDevelop évolue, les principes abordés ici restent fondamentaux pour tout projet 3D :&lt;/p&gt;</description></item><item><title>6. Fin de match et gestion de l''interface de victoire</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/gdevelop-5-fin-match-interface-victoire/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/gdevelop-5-fin-match-interface-victoire/</guid><description>&lt;p&gt;Dans cet épisode, nous finalisons la boucle de gameplay de notre jeu de baby-foot. Après avoir géré les déplacements et les scores, il est temps de définir les conditions de victoire pour conclure la partie et permettre au joueur de retourner au menu principal.&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/b1HJihpcfcQ" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/b1HJihpcfcQ?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/b1HJihpcfcQ/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="résumé-des-étapes-clés"&gt;Résumé des étapes clés&lt;a class="anchor" href="#r%c3%a9sum%c3%a9-des-%c3%a9tapes-cl%c3%a9s"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Création de l&amp;rsquo;interface :&lt;/strong&gt; Ajout d&amp;rsquo;un objet texte pour afficher le résultat final et d&amp;rsquo;un bouton &amp;ldquo;Back&amp;rdquo; pour quitter la partie.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Gestion de l&amp;rsquo;affichage :&lt;/strong&gt; Utilisation des actions &amp;ldquo;Cacher&amp;rdquo; et &amp;ldquo;Désactiver les interactions&amp;rdquo; au démarrage de la scène pour que l&amp;rsquo;interface de fin ne soit visible qu&amp;rsquo;au moment opportun.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Logique de victoire :&lt;/strong&gt; Mise en place d&amp;rsquo;une condition vérifiant si le score d&amp;rsquo;un joueur atteint le score maximum (utilisation de &amp;ldquo;supérieur ou égal à&amp;rdquo; pour plus de sécurité).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Contrôle du temps :&lt;/strong&gt; Utilisation de l&amp;rsquo;échelle de temps globale mise à 0 pour figer le jeu lors de l&amp;rsquo;affichage de l&amp;rsquo;écran de victoire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimisation :&lt;/strong&gt; Regroupement des objets dans un groupe de scène pour simplifier le code et éviter la duplication d&amp;rsquo;actions lors de la vérification des scores.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;La gestion des interfaces :&lt;/strong&gt; La méthode consistant à cacher les objets UI et à désactiver leurs interactions est toujours la norme pour éviter les clics fantômes.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;L&amp;rsquo;échelle de temps :&lt;/strong&gt; Modifier l&amp;rsquo;échelle de temps globale (&lt;code&gt;TimeScale&lt;/code&gt;) reste la manière la plus propre de mettre un jeu en pause dans GDevelop sans arrêter le moteur de rendu.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La factorisation du code :&lt;/strong&gt; L&amp;rsquo;utilisation de groupes d&amp;rsquo;événements pour éviter de dupliquer la logique (comme le test de victoire pour le joueur 1 et 2) est une bonne pratique essentielle pour maintenir un projet propre et évolutif.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sécurité des conditions :&lt;/strong&gt; Privilégier les opérateurs &amp;ldquo;supérieur ou égal&amp;rdquo; plutôt que &amp;ldquo;égal&amp;rdquo; est un conseil d&amp;rsquo;expert qui évite bien des bugs si le score venait à être incrémenté deux fois par erreur lors d&amp;rsquo;une collision.&lt;/li&gt;
&lt;/ul&gt;


&lt;hr style="margin-top: 1.5rem; border: 0; border-top: 1px solid var(--INTERNAL-MENU-BORDER-color, #e5e5e5); opacity: 0.5;"&gt;

&lt;div class="custom-footer" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-top: 2rem; padding-bottom: 2rem; font-size: 0.9rem; color: var(--MAIN-TITLES-color);"&gt;
 
 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📺 Ma Chaîne YouTube&lt;/h4&gt;
 &lt;a href="https://www.youtube.com/@creerunjeuvideo" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 S'abonner à la chaîne
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📦 Ressources&lt;/h4&gt;
 &lt;a href="https://jeancharpentier.itch.io/ressources-tutoriels" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 Téléchargements
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;🌐 Communauté&lt;/h4&gt;
 &lt;ul style="list-style: none; padding: 0; margin: 0; line-height: 1.6;"&gt;
 &lt;li&gt;&lt;a href="https://github.com/JeanCharpentier/" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💻 GitHub&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://bsky.app/profile/ankhm.bsky.social" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;🦋 Bluesky&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://fr.linkedin.com/in/jeancharpentier" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💼 LinkedIn&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://www.twitch.tv/levieuxankh" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;👾 Chaîne Twitch&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/div&gt;

&lt;/div&gt;

&lt;div style="border-top: 1px dashed var(--INTERNAL-MENU-BORDER-color, #e5e5e5); padding-top: 1rem; margin-top: 1rem; font-size: 0.8rem; opacity: 0.7; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;"&gt;
 &lt;div&gt;
 &amp;copy; 2026 - Créé avec ❤️ sous Hugo.
 &lt;/div&gt;
 &lt;div&gt;
 &lt;a href="https://creerunjeuvideo.fr/mentions-legales/" style="color: inherit; margin-right: 1rem;"&gt;Mentions légales&lt;/a&gt;
 &lt;a href="https://creerunjeuvideo.fr/confidentialite/" style="color: inherit;"&gt;Confidentialité (RGPD)&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item><item><title>7. Finalisation et exportation Android de votre Babyfoot 3D</title><link>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/finalisation-export-android-babyfoot-3d-gdevelop/</link><pubDate>Fri, 27 Oct 2023 00:00:00 +0000</pubDate><guid>https://creerunjeuvideo.fr/gdevelop-5/babyfoot-3d-table-football/finalisation-export-android-babyfoot-3d-gdevelop/</guid><description>&lt;p&gt;Dans cet ultime épisode de notre série dédiée à la création d&amp;rsquo;un jeu de Babyfoot 3D, nous allons apporter les dernières touches de polish à notre gameplay et surtout, nous allons franchir l&amp;rsquo;étape cruciale : l&amp;rsquo;exportation de votre projet vers un format exécutable pour Android.&lt;/p&gt;

&lt;div class="youtube-privacy-wrapper" style="position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden; max-width: 100%; background: #000;"&gt;
 &lt;iframe 
 style="position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;"
 src="https://www.youtube-nocookie.com/embed/zEpoTBMHCcY" 
 title="YouTube video player" 
 loading="lazy"
 srcdoc="&lt;style&gt;*{padding:0;margin:0;overflow:hidden}html,body{height:100%}img,span{position:absolute;width:100%;top:0;bottom:0;margin:auto}span{height:1.5em;text-align:center;font:48px/1.5 sans-serif;color:white;text-shadow:0 0 0.5em black}&lt;/style&gt;&lt;a href=https://www.youtube-nocookie.com/embed/zEpoTBMHCcY?autoplay=1&gt;&lt;img src=https://img.youtube.com/vi/zEpoTBMHCcY/hqdefault.jpg alt='Vidéo YouTube'&gt;&lt;span&gt;▶&lt;/span&gt;&lt;/a&gt;"
 allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture" 
 allowfullscreen&gt;
 &lt;/iframe&gt;
&lt;/div&gt;

&lt;h3 id="résumé-des-étapes-clés"&gt;Résumé des étapes clés&lt;a class="anchor" href="#r%c3%a9sum%c3%a9-des-%c3%a9tapes-cl%c3%a9s"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Gestion dynamique de l&amp;rsquo;engagement :&lt;/strong&gt; Utilisation d&amp;rsquo;une variable de scène pour alterner la direction du tir (kickoff) en fonction du joueur ayant marqué le dernier but.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Système anti-stagnation :&lt;/strong&gt; Mise en place d&amp;rsquo;un mécanisme détectant si la balle est trop lente pour la relancer automatiquement via une impulsion aléatoire.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Optimisation mathématique :&lt;/strong&gt; Utilisation de la fonction &lt;code&gt;ABS&lt;/code&gt; (valeur absolue) pour calculer la vitesse globale de la balle, peu importe sa direction sur les axes X et Y.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Exportation APK :&lt;/strong&gt; Utilisation de l&amp;rsquo;outil de build intégré à GDevelop pour générer un fichier installable sur vos appareils Android.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Sécurité :&lt;/strong&gt; Rappel sur l&amp;rsquo;activation des &amp;ldquo;sources inconnues&amp;rdquo; sur Android pour tester vos propres fichiers APK en dehors du Google Play Store.&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id="ce-qui-reste-dactualité-aujourdhui"&gt;Ce qui reste d&amp;rsquo;actualité aujourd&amp;rsquo;hui&lt;a class="anchor" href="#ce-qui-reste-dactualit%c3%a9-aujourdhui"&gt;#&lt;/a&gt;&lt;/h3&gt;
&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Le moteur physique 3D :&lt;/strong&gt; Les principes de manipulation des vecteurs de vitesse et des forces restent identiques dans les versions actuelles de GDevelop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Le workflow d&amp;rsquo;exportation :&lt;/strong&gt; Le service de build cloud de GDevelop est toujours le moyen le plus simple pour les développeurs indépendants de tester leurs jeux sur mobile sans avoir à configurer des environnements de développement complexes (comme Android Studio).&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La logique de jeu :&lt;/strong&gt; L&amp;rsquo;utilisation de variables de scène pour gérer l&amp;rsquo;état du match (score, engagement, vitesse de la balle) est une bonne pratique qui reste au cœur du développement de jeux avec GDevelop.&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;La gestion des builds :&lt;/strong&gt; La limite quotidienne de builds gratuits reste un excellent moyen pour les débutants de prototyper et de tester leurs idées sur matériel réel.&lt;/li&gt;
&lt;/ul&gt;


&lt;hr style="margin-top: 1.5rem; border: 0; border-top: 1px solid var(--INTERNAL-MENU-BORDER-color, #e5e5e5); opacity: 0.5;"&gt;

&lt;div class="custom-footer" style="display: grid; grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); gap: 2rem; margin-top: 2rem; padding-bottom: 2rem; font-size: 0.9rem; color: var(--MAIN-TITLES-color);"&gt;
 
 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📺 Ma Chaîne YouTube&lt;/h4&gt;
 &lt;a href="https://www.youtube.com/@creerunjeuvideo" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 S'abonner à la chaîne
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;📦 Ressources&lt;/h4&gt;
 &lt;a href="https://jeancharpentier.itch.io/ressources-tutoriels" target="_blank" rel="noopener" style="display: inline-block; background: #4400ff; color: #fff; padding: 0.5rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;
 Téléchargements
 &lt;/a&gt;
 &lt;/div&gt;

 &lt;div class="footer-col"&gt;
 &lt;h4 style="margin-bottom: 0.8rem; color: var(--MAIN-TITLES-color);"&gt;🌐 Communauté&lt;/h4&gt;
 &lt;ul style="list-style: none; padding: 0; margin: 0; line-height: 1.6;"&gt;
 &lt;li&gt;&lt;a href="https://github.com/JeanCharpentier/" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💻 GitHub&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://bsky.app/profile/ankhm.bsky.social" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;🦋 Bluesky&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://fr.linkedin.com/in/jeancharpentier" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;💼 LinkedIn&lt;/a&gt;&lt;/li&gt;
 &lt;li&gt;&lt;a href="https://www.twitch.tv/levieuxankh" target="_blank" rel="noopener" style="color: var(--MENU-SECTIONS-LINK-color); padding: 1rem 1rem; border-radius: 4px; text-decoration: none; font-weight: bold; font-size: 0.85rem;"&gt;👾 Chaîne Twitch&lt;/a&gt;&lt;/li&gt;
 &lt;/ul&gt;
 &lt;/div&gt;

&lt;/div&gt;

&lt;div style="border-top: 1px dashed var(--INTERNAL-MENU-BORDER-color, #e5e5e5); padding-top: 1rem; margin-top: 1rem; font-size: 0.8rem; opacity: 0.7; display: flex; justify-content: space-between; flex-wrap: wrap; gap: 1rem;"&gt;
 &lt;div&gt;
 &amp;copy; 2026 - Créé avec ❤️ sous Hugo.
 &lt;/div&gt;
 &lt;div&gt;
 &lt;a href="https://creerunjeuvideo.fr/mentions-legales/" style="color: inherit; margin-right: 1rem;"&gt;Mentions légales&lt;/a&gt;
 &lt;a href="https://creerunjeuvideo.fr/confidentialite/" style="color: inherit;"&gt;Confidentialité (RGPD)&lt;/a&gt;
 &lt;/div&gt;
&lt;/div&gt;</description></item></channel></rss>