{"id":3364,"date":"2025-10-06T16:11:06","date_gmt":"2025-10-06T14:11:06","guid":{"rendered":"https:\/\/tecnologia.euroinnova.com\/introduccion-a-godot-el-motor-de-videojuegos-gratuito-y-facil-de-usar\/"},"modified":"2026-08-05T11:07:29","modified_gmt":"2026-08-05T09:07:29","slug":"developpement-de-jeux-video-en-2d-avec-le-moteur-godot","status":"publish","type":"post","link":"https:\/\/tecnologia.euroinnova.com\/fr\/desarrollo-videojuegos-2d-godot-engine","title":{"rendered":"Introduction \u00e0 Godot : le moteur de jeu vid\u00e9o gratuit et facile \u00e0 utiliser"},"content":{"rendered":"<p><strong>Godot<\/strong> C'est un moteur de d\u00e9veloppement de jeux vid\u00e9o gratuit, open source, dot\u00e9 d'une communaut\u00e9 tr\u00e8s active qui favorise son \u00e9volution constante. Contrairement \u00e0 d'autres plateformes plus connues, telles que Unity ou Unreal Engine, Godot se distingue par sa l\u00e9g\u00e8ret\u00e9, sa facilit\u00e9 d'apprentissage et son approche modulaire bas\u00e9e sur des n\u0153uds. Cela en fait un excellent choix pour ceux qui souhaitent se lancer dans le d\u00e9veloppement de jeux vid\u00e9o sans complications inutiles.<\/p>\n<p>Outre son architecture accessible, Godot permet de travailler de mani\u00e8re enti\u00e8rement visuelle \u00e0 la cr\u00e9ation de sc\u00e8nes et d'animations, sans pour autant renoncer au contr\u00f4le du code gr\u00e2ce \u00e0 son langage <strong>GDScript<\/strong>, inspir\u00e9 de Python. Cela facilite l'exp\u00e9rimentation, l'apprentissage progressif et le d\u00e9veloppement de prototypes fonctionnels d\u00e8s le premier jour. Que vous veniez du monde du design, que vous appreniez \u00e0 programmer ou que vous souhaitiez simplement donner vie \u00e0 une id\u00e9e, Godot vous offre l'environnement id\u00e9al pour vous lancer.<\/p>\n<h2 id=\"paso-1-instalacion-y-configuracion-inicial-de-godot\"><strong>\u00c9tape 1 : Installation et configuration initiale de Godot<\/strong><\/h2>\n<p>Avant de commencer \u00e0 d\u00e9velopper votre jeu vid\u00e9o en 2D, il est essentiel d'installer correctement Godot et de pr\u00e9parer votre environnement de travail. Cette \u00e9tape vous garantit de disposer de tout le n\u00e9cessaire pour cr\u00e9er, ex\u00e9cuter et organiser vos projets sans difficult\u00e9.<\/p>\n<h3 id=\"descargar-godot-engine\"><strong>T\u00e9l\u00e9charger Godot Engine<\/strong><\/h3>\n<p>Godot ne n\u00e9cessite pas d'installation classique. Vous pouvez t\u00e9l\u00e9charger le fichier ex\u00e9cutable directement depuis son site officiel <a href=\"https:\/\/godotengine.org\/download\/windows\/\" target=\"_blank\" rel=\"noopener\">https:\/\/godotengine.org\/download<\/a> en fonction de votre syst\u00e8me d'exploitation (Windows, macOS ou Linux). Il suffit de d\u00e9compresser le fichier ZIP et d'ex\u00e9cuter le fichier correspondant. Pour faciliter l'acc\u00e8s, vous pouvez d\u00e9placer le fichier ex\u00e9cutable dans un dossier accessible ou l'\u00e9pingler \u00e0 votre barre des t\u00e2ches.<\/p>\n<h3 id=\"crear-un-nuevo-proyecto\"><strong>Cr\u00e9er un nouveau projet<\/strong><\/h3>\n<p>Lorsque vous lancerez Godot pour la premi\u00e8re fois, vous acc\u00e9derez \u00e0 la <strong>Chef de projet<\/strong>, d'o\u00f9 vous pourrez g\u00e9rer vos projets. Pour en cr\u00e9er un nouveau :<\/p>\n<ul>\n<li>Cliquez sur <strong>\u00ab Nouveau projet \u00bb<\/strong>.<\/li>\n<li>Donnez un nom \u00e0 votre jeu et choisissez le dossier dans lequel les fichiers seront enregistr\u00e9s.<\/li>\n<li>S\u00e9lectionner <strong>\u00ab Cr\u00e9er un dossier \u00bb<\/strong> puis cliquez sur <strong>\u00ab Cr\u00e9er et modifier \u00bb<\/strong>.<\/li>\n<\/ul>\n<p>L'\u00e9diteur principal de Godot s'ouvrira, et vous pourrez alors commencer \u00e0 travailler. L'interface est divis\u00e9e en plusieurs onglets (2D, 3D, Script, AssetLib\u2026) et panneaux qui organisent les hi\u00e9rarchies de n\u0153uds, les propri\u00e9t\u00e9s, les sc\u00e8nes et les fichiers. Ne t\u2019inqui\u00e8te pas si cela te semble un peu intimidant au d\u00e9but : au fur et \u00e0 mesure que tu avanceras, tu te familiariseras rapidement avec chaque section.<\/p>\n<h2 id=\"paso-2-estructura-basica-de-un-juego-en-godot\"><strong>\u00c9tape 2 : Structure de base d'un jeu dans Godot<\/strong><\/h2>\n<p>Il est essentiel de comprendre comment un projet est organis\u00e9 dans Godot pour d\u00e9velopper efficacement. Godot repose sur un syst\u00e8me de n\u0153uds et de sc\u00e8nes qui offre flexibilit\u00e9 et modularit\u00e9 lors de la cr\u00e9ation de jeux vid\u00e9o.<\/p>\n<h3 id=\"escenas-y-nodos-los-bloques-fundamentales\"><strong>Sc\u00e8nes et n\u0153uds : les \u00e9l\u00e9ments fondamentaux<\/strong><\/h3>\n<p>Dans Godot, tout est construit \u00e0 partir de <strong>n\u0153uds<\/strong>. Un n\u0153ud repr\u00e9sente un \u00e9l\u00e9ment fonctionnel : un sprite, un son, une animation, une cam\u00e9ra, etc. Ces n\u0153uds sont regroup\u00e9s dans <strong>sc\u00e8nes<\/strong>, qui font office d'unit\u00e9s de contenu r\u00e9utilisables (elles peuvent repr\u00e9senter des personnages, des menus, des niveaux ou le jeu dans son int\u00e9gralit\u00e9).<\/p>\n<p>Chaque sc\u00e8ne poss\u00e8de un n\u0153ud racine et peut contenir une hi\u00e9rarchie de n\u0153uds enfants. Vous pouvez enregistrer des sc\u00e8nes sous forme de mod\u00e8les et les combiner entre elles, ce qui permet d'obtenir une structure claire et \u00e9volutive pour les jeux complexes.<\/p>\n<h3 id=\"tipos-de-nodos-mas-comunes-en-juegos-2d\"><strong>Types de n\u0153uds les plus courants dans les jeux en 2D<\/strong><\/h3>\n<p>Pour les jeux en 2D, les n\u0153uds les plus couramment utilis\u00e9s sont g\u00e9n\u00e9ralement les suivants :<\/p>\n<ul>\n<li>Node2D : base pour les objets positionnables en 2D (tels que les sprites ou les \u00e9l\u00e9ments d'interface utilisateur).<\/li>\n<li>Sprite2D : affiche une image \u00e0 l'\u00e9cran.<\/li>\n<li>AnimatedSprite2D : permet d'utiliser des animations image par image.<\/li>\n<li>CollisionShape2D : d\u00e9finit des formes physiques permettant de d\u00e9tecter les collisions.<\/li>\n<li>Area2D : g\u00e8re les \u00e9v\u00e9nements tels que les collisions ou les actions du joueur.<\/li>\n<li>Camera2D : contr\u00f4le la vue du joueur dans des sc\u00e8nes plus grandes que l'\u00e9cran.<\/li>\n<\/ul>\n<p>Une utilisation correcte de cette hi\u00e9rarchie vous permettra d'organiser les m\u00e9canismes de mani\u00e8re modulaire et de garantir la clart\u00e9 et la lisibilit\u00e9 de votre projet.<\/p>\n<h2 id=\"paso-3-creacion-de-una-escena-principal\"><strong>\u00c9tape 3 : Cr\u00e9ation d'une sc\u00e8ne principale<\/strong><\/h2>\n<p>La premi\u00e8re \u00e9tape concr\u00e8te de votre projet consiste \u00e0 cr\u00e9er une sc\u00e8ne principale, qui servira de point de d\u00e9part au jeu. Dans Godot, cette sc\u00e8ne peut contenir l'environnement, les \u00e9l\u00e9ments d'interface et les n\u0153uds qui g\u00e8rent la logique g\u00e9n\u00e9rale.<\/p>\n<h3 id=\"crear-y-guardar-la-escena-principal\"><strong>Cr\u00e9er et enregistrer la sc\u00e8ne principale<\/strong><\/h3>\n<p>Commencez par cr\u00e9er une nouvelle sc\u00e8ne \u00e0 partir du menu sup\u00e9rieur (Scene &gt; New Scene). Ajoutez un n\u0153ud racine de type Node2D et nommez-le Main. Ce n\u0153ud servira de base sur laquelle seront plac\u00e9s les autres \u00e9l\u00e9ments.<\/p>\n<p>Enregistrez la sc\u00e8ne (Sc\u00e8ne &gt; Enregistrer la sc\u00e8ne sous\u2026) sous le nom Main.tscn, dans un dossier intitul\u00e9 \u00ab scenes \u00bb, afin de garder votre projet bien organis\u00e9.<\/p>\n<h3 id=\"establecer-la-escena-principal-por-defecto\"><strong>D\u00e9finir la sc\u00e8ne principale par d\u00e9faut<\/strong><\/h3>\n<p>Pour que Godot ex\u00e9cute cette sc\u00e8ne au d\u00e9marrage du jeu, acc\u00e9dez au menu Project &gt; Project Settings, puis, dans l'onglet Application, s\u00e9lectionnez la propri\u00e9t\u00e9 Main Scene. Cliquez sur l'ic\u00f4ne en forme de dossier et choisissez Main.tscn.<\/p>\n<p>Cela garantit que, lorsque vous cliquez sur le bouton \u00ab Play \u00bb, Godot charge votre sc\u00e8ne principale comme point d'entr\u00e9e du jeu.<\/p>\n<h2 id=\"paso-4-agregar-un-personaje-jugable\"><strong>\u00c9tape 4 : Ajouter un personnage jouable<\/strong><\/h2>\n<p>Le joueur a besoin d'un personnage qu'il puisse contr\u00f4ler \u00e0 l'\u00e9cran. Pour cela, vous allez cr\u00e9er une nouvelle sc\u00e8ne avec un sprite et un composant de collision, puis vous allez la transformer en un personnage fonctionnel \u00e0 l'aide de code.<\/p>\n<h3 id=\"crear-la-escena-del-personaje\"><strong>Cr\u00e9er la sc\u00e8ne du personnage<\/strong><\/h3>\n<p>Cr\u00e9ez une nouvelle sc\u00e8ne (Scene &gt; New Scene) et s\u00e9lectionnez CharacterBody2D comme n\u0153ud racine. Renommez-la \u00ab Player \u00bb.<\/p>\n<p>Dans Player, ajoutez les n\u0153uds enfants suivants :<\/p>\n<ul>\n<li>Sprite2D : pour afficher l'image du personnage.<\/li>\n<li>CollisionShape2D : pour d\u00e9finir la zone de collision (choisissez une forme appropri\u00e9e, telle que RectangleShape2D ou CapsuleShape2D).<\/li>\n<\/ul>\n<p>Attribuez une texture au Sprite2D en faisant glisser une image depuis le panneau FileSystem. Ajustez \u00e9galement la taille de la zone de collision pour qu'elle corresponde \u00e0 celle du sprite.<\/p>\n<p>Enregistrez la sc\u00e8ne sous le nom Player.tscn dans le dossier scenes.<\/p>\n<h3 id=\"instanciar-el-personaje-en-la-escena-principal\"><strong>Instancier le personnage dans la sc\u00e8ne principale<\/strong><\/h3>\n<p>Ouvrez la sc\u00e8ne Main.tscn. Dans le panneau FileSystem, faites glisser la sc\u00e8ne Player.tscn dans le n\u0153ud racine Main pour instancier le personnage.<\/p>\n<p>Placez le n\u0153ud \u00ab Player \u00bb \u00e0 l'emplacement de d\u00e9part souhait\u00e9 \u00e0 l'\u00e9cran. Ainsi, au d\u00e9marrage du jeu, le personnage sera d\u00e9j\u00e0 visible et pr\u00eat \u00e0 recevoir des instructions de d\u00e9placement.<\/p>\n<h2 id=\"paso-5-programar-el-movimiento-del-personaje\"><strong>\u00c9tape 5 : Programmer les mouvements du personnage<\/strong><\/h2>\n<p>Maintenant que le personnage est pr\u00e9sent sur la sc\u00e8ne, il est temps de lui donner du mouvement. Pour cela, on utilise un script qui d\u00e9tecte les actions du joueur et met \u00e0 jour sa position.<\/p>\n<h3 id=\"anadir-el-script-de-control\"><strong>Ajouter le script de contr\u00f4le<\/strong><\/h3>\n<p>S\u00e9lectionnez le n\u0153ud \u00ab Player \u00bb dans la sc\u00e8ne Player.tscn, cliquez sur l'ic\u00f4ne \u00ab Ajouter un script \u00bb (Attach Script) et enregistrez le fichier sous le nom Player.gd. Le script doit \u00eatre \u00e9crit en GDScript, le langage propre \u00e0 Godot.<\/p>\n<p>Dans cette premi\u00e8re approche, nous allons mettre en place un d\u00e9placement en 2D \u00e0 l'aide des touches fl\u00e9ch\u00e9es ou WASD, en contr\u00f4lant la vitesse \u00e0 l'aide d'un vecteur.<\/p>\n<p>Player.gd<\/p>\n<p>\u00e9tend CharacterBody2D<\/p>\n<p>@export var speed := 200<\/p>\n<p>func _physics_process(delta) :<\/p>\n<p>var direction := Vector2.ZERO<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_right \u00bb):<\/p>\n<p>direction.x += 1<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_left \u00bb):<\/p>\n<p>direction.x -= 1<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_down \u00bb):<\/p>\n<p>direction.y += 1<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_up \u00bb):<\/p>\n<p>direction.y -= 1<\/p>\n<p>self.velocity = direction.normalized() * speed<\/p>\n<p>move_and_slide()<\/p>\n<h3 id=\"ajustar-los-parametros-de-movimiento\"><strong>R\u00e9gler les param\u00e8tres de mouvement<\/strong><\/h3>\n<p>Vous pouvez personnaliser la vitesse du personnage en ajustant la variable correspondante. Ce mouvement sera fluide et adapt\u00e9 \u00e0 la fr\u00e9quence d'images, gr\u00e2ce \u00e0 la m\u00e9thode _physics_process.<\/p>\n<h2 id=\"paso-6-implementar-deteccion-de-colisiones\"><strong>\u00c9tape 6 : Mettre en place la d\u00e9tection des collisions<\/strong><\/h2>\n<p>Pour que les mouvements du personnage soient r\u00e9alistes et qu\u2019il ne traverse pas d\u2019autres \u00e9l\u00e9ments du d\u00e9cor, nous devons ajouter une d\u00e9tection des collisions. Godot permet de le faire \u00e0 l\u2019aide de n\u0153uds CollisionShape2D et de corps physiques tels que StaticBody2D ou TileMap.<\/p>\n<h3 id=\"anadir-colisiones-al-jugador\"><strong>Ajouter des collisions au personnage<\/strong><\/h3>\n<p>Dans la sc\u00e8ne du joueur (Player.tscn), assurez-vous qu'il existe un n\u0153ud enfant de type CollisionShape2D avec une forme (par exemple, un cercle ou un rectangle) qui corresponde \u00e0 la taille du personnage. Cela permettra au moteur de d\u00e9tecter les limites du personnage et d'agir en cons\u00e9quence en cas de collision.<\/p>\n<p>Exemple de structure dans la sc\u00e8ne du joueur<\/p>\n<p>Joueur (CharacterBody2D)<\/p>\n<p>\u251c\u2500\u2500 Sprite2D<\/p>\n<p>\u251c\u2500\u2500 CollisionShape2D (Shape : CapsuleShape2D ou RectangleShape2D)<\/p>\n<p>\u2514\u2500\u2500 Script : Player.gd<\/p>\n<h3 id=\"anadir-colisiones-al-entorno\"><strong>Ajouter des collisions \u00e0 l'environnement<\/strong><\/h3>\n<p>Les \u00e9l\u00e9ments du d\u00e9cor qui ne doivent pas \u00eatre travers\u00e9s (tels que les murs, les sols ou les obstacles) doivent \u00e9galement disposer de n\u0153uds CollisionShape2D. Si vous utilisez une TileMap, vous pouvez d\u00e9finir les collisions depuis l'\u00e9diteur de tilesets, en attribuant une forme \u00e0 chaque tuile qui le n\u00e9cessite.<\/p>\n<p>Une fois ces \u00e9tapes effectu\u00e9es, le personnage ne pourra plus traverser d'autres objets solides dans le jeu. La physique et le syst\u00e8me de collisions de Godot se chargeront d'emp\u00eacher tout chevauchement entre les corps.<\/p>\n<h2 id=\"paso-7-anadir-animaciones-al-personaje\"><strong>\u00c9tape 7 : Ajouter des animations au personnage<\/strong><\/h2>\n<p>Pour am\u00e9liorer l'exp\u00e9rience visuelle du jeu, il est essentiel de doter le personnage d'animations qui refl\u00e8tent ses actions (marcher, rester immobile, sauter, etc.). Godot facilite cette t\u00e2che gr\u00e2ce au n\u0153ud AnimatedSprite2D, qui permet de g\u00e9rer diff\u00e9rentes animations \u00e0 partir de feuilles de sprites.<\/p>\n<h3 id=\"crear-las-animaciones-en-el-editor\"><strong>Cr\u00e9er les animations dans l'\u00e9diteur<\/strong><\/h3>\n<p>Dans la sc\u00e8ne du joueur, remplacez le n\u0153ud Sprite2D par un AnimatedSprite2D. Chargez une feuille de sprites (spritesheet) contenant les diff\u00e9rentes positions du personnage et configurez les animations \u00e0 partir du panneau d'animations du n\u0153ud.<\/p>\n<p>Chaque animation doit porter un nom unique (par exemple, \u00ab idle \u00bb, \u00ab walk \u00bb, \u00ab jump \u00bb) et \u00eatre compos\u00e9e des images correspondant \u00e0 chaque phase du mouvement.<\/p>\n<p>Charger et configurer des animations dans l'\u00e9diteur (il ne s'agit pas de code ex\u00e9cutable)<\/p>\n<p>AnimatedSprite2D<\/p>\n<p>\u251c\u2500\u2500 Animation : \u00ab idle \u00bb \u2192 Images : sprite_0, sprite_1<\/p>\n<p>\u251c\u2500\u2500 Animation : \u00ab walk \u00bb \u2192 Images : sprite_2, sprite_3, sprite_4<\/p>\n<h3 id=\"cambiar-animaciones-desde-el-script\"><strong>Modifier les animations \u00e0 partir du script<\/strong><\/h3>\n<p>Pour que le personnage r\u00e9agisse aux actions du joueur et change d'animation de mani\u00e8re dynamique, modifiez le script du joueur afin de mettre \u00e0 jour l'animation en fonction de son \u00e9tat (en mouvement ou \u00e0 l'arr\u00eat, par exemple). Pour ce faire, utilisez la m\u00e9thode .play(\u00ab nom_animation \u00bb) de la classe AnimatedSprite2D.<\/p>\n<p>Player.gd (avec animation)<\/p>\n<p>\u00e9tend CharacterBody2D<\/p>\n<p>@export var speed := 200<\/p>\n<p>func _physics_process(delta) :<\/p>\n<p>var direction := Vector2.ZERO<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_right \u00bb):<\/p>\n<p>direction.x += 1<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_left \u00bb):<\/p>\n<p>direction.x -= 1<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_down \u00bb):<\/p>\n<p>direction.y += 1<\/p>\n<p>if Input.is_action_pressed(\u00ab ui_up \u00bb):<\/p>\n<p>direction.y -= 1<\/p>\n<p>self.velocity = direction.normalized() * speed<\/p>\n<p>move_and_slide()<\/p>\n<p>si direction != Vector2.ZERO :<\/p>\n<p>$AnimatedSprite2D.play(\u00ab walk \u00bb)<\/p>\n<p>d'autre part :<\/p>\n<p>$AnimatedSprite2D.play(\u00ab idle \u00bb)<\/p>\n<p>L'utilisation d'animations apporte non seulement du dynamisme au jeu, mais am\u00e9liore \u00e9galement la clart\u00e9 visuelle pour le joueur, en lui indiquant ce qui se passe \u00e0 chaque instant.<\/p>\n<h2 id=\"paso-8-anadir-obstaculos-y-limites-en-el-escenario\"><strong>\u00c9tape 8 : Ajouter des obstacles et des limites au d\u00e9cor<\/strong><\/h2>\n<p>Pour que le jeu commence \u00e0 pr\u00e9senter un certain d\u00e9fi et \u00e0 avoir une structure, il est important d'ajouter des \u00e9l\u00e9ments tels que des obstacles qui bloquent le passage du personnage et des limites qui d\u00e9limitent la zone de jeu. Dans Godot, cela se fait \u00e0 l'aide de n\u0153uds de collision et de sprites qui repr\u00e9sentent visuellement ces objets.<\/p>\n<h3 id=\"colocar-obstaculos-con-colision\"><strong>Placer des obstacles avec collision<\/strong><\/h3>\n<p>Vous pouvez ajouter des n\u0153uds StaticBody2D pour repr\u00e9senter des objets statiques que le joueur ne peut pas traverser (par exemple, des murs, des pierres, des plates-formes). \u00c0 chacun de ces n\u0153uds, il faut ajouter un CollisionShape2D et une forme g\u00e9om\u00e9trique correspondante (comme un rectangle ou un cercle).<\/p>\n<p>Vous pouvez \u00e9galement utiliser des n\u0153uds TileMap, qui permettent de dessiner des d\u00e9cors \u00e0 partir de tuiles. Les tuiles peuvent \u00eatre configur\u00e9es pour inclure automatiquement des collisions, ce qui facilite grandement la cr\u00e9ation de niveaux complets.<\/p>\n<p>var mur := StaticBody2D.new()<\/p>\n<p>var collision := CollisionShape2D.new()<\/p>\n<p>var forme := RectangleShape2D.new()<\/p>\n<p>forma.size = Vector2(64, 64)<\/p>\n<p>colision.shape = forme<\/p>\n<p>muro.add_child(colision)<\/p>\n<p>add_child(mur)<\/p>\n<h3 id=\"crear-limites-de-pantalla\"><strong>Cr\u00e9er des limites d'\u00e9cran<\/strong><\/h3>\n<p>Pour emp\u00eacher le joueur de sortir de la zone de jeu, vous pouvez placer des limites invisibles autour du d\u00e9cor. Il peut s'agir de StaticBody2D avec collision ou de param\u00e8tres d\u00e9finis au sein de la cam\u00e9ra (tels que les limites de d\u00e9placement de Camera2D).<\/p>\n<p>Il est \u00e9galement recommand\u00e9 de d\u00e9finir une zone de \u00ab mort \u00bb en dehors du niveau, de sorte que si le joueur tombe par erreur, le niveau red\u00e9marre ou qu\u2019il perde une vie.<\/p>\n<p>R\u00e9initialisation du niveau \u00e0 la sortie de la zone de jeu<\/p>\n<p>func _process(delta) :<\/p>\n<p>si global_position.y &gt; 1000 :<\/p>\n<p>get_tree().reload_current_scene()<\/p>\n<p>Gr\u00e2ce \u00e0 ces outils, vous pouvez structurer le sc\u00e9nario de mani\u00e8re \u00e0 guider le joueur, \u00e0 lui proposer des d\u00e9fis et \u00e0 rendre le jeu plus complet et plus fonctionnel.<\/p>\n<h2 id=\"paso-9-anadir-objetos-recolectables-o-puntos\"><strong>\u00c9tape 9 : Ajouter des objets \u00e0 collecter ou des points<\/strong><\/h2>\n<p>Dans de nombreux jeux vid\u00e9o en 2D, la possibilit\u00e9 de collecter des objets constitue un \u00e9l\u00e9ment cl\u00e9, que ce soit pour augmenter le score, d\u00e9bloquer des \u00e9l\u00e9ments ou passer au niveau suivant. Dans Godot, ces objets peuvent \u00eatre impl\u00e9ment\u00e9s sous forme de n\u0153uds individuels dot\u00e9s d'une collision et d'une logique de collecte.<\/p>\n<h3 id=\"crear-objetos-recolectables\"><strong>Cr\u00e9er des objets \u00e0 collectionner<\/strong><\/h3>\n<p>Les objets \u00e0 collecter peuvent \u00eatre repr\u00e9sent\u00e9s \u00e0 l'aide d'Area2D, qui d\u00e9tecte lorsque le joueur entre en contact avec eux. \u00c0 chaque Area2D, on peut associer un sprite visuel (Sprite2D) et une forme de collision (CollisionShape2D). Lorsqu'une collision est d\u00e9tect\u00e9e, vous pouvez ex\u00e9cuter une fonction pour supprimer l'objet et ajouter des points au score.<\/p>\n<p>ObjetRecollectable.gd<\/p>\n<p>\u00e9tend Area2D<\/p>\n<p>func _on_body_entered(body) :<\/p>\n<p>si body.name == \u00ab Player \u00bb :<\/p>\n<p>queue_free()<\/p>\n<p>get_tree().call_group(\u00ab HUD \u00bb, \u00ab additionner_les_points \u00bb, 10)<\/p>\n<h3 id=\"gestionar-el-sistema-de-puntuacion\"><strong>G\u00e9rer le syst\u00e8me de notation<\/strong><\/h3>\n<p>Pour compter les points, tu peux utiliser une variable globale ou un signal qui met \u00e0 jour une \u00e9tiquette (Label) \u00e0 l'\u00e9cran. Si tu utilises un syst\u00e8me \u00e0 sc\u00e8nes multiples, il peut \u00eatre utile de cr\u00e9er un n\u0153ud \u00ab autoload \u00bb (singleton) pour enregistrer le score d'un niveau \u00e0 l'autre.<\/p>\n<p>De plus, tu peux utiliser des signaux pour signaler l'\u00e9v\u00e9nement de collecte au HUD et mettre \u00e0 jour le score en temps r\u00e9el.<\/p>\n<p>Exemple de HUD affichant le score<\/p>\n<p>\u00e9tend CanvasLayer<\/p>\n<p>var points = 0<\/p>\n<p>func additionner_points(valeur) :<\/p>\n<p>points += valeur<\/p>\n<p>$Label.text = str(points)<\/p>\n<p>Ce syst\u00e8me de base de collectibles peut facilement \u00eatre \u00e9tendu pour inclure des objets sp\u00e9ciaux, des cl\u00e9s, des pi\u00e8ces de monnaie ou des objets dot\u00e9s de propri\u00e9t\u00e9s uniques, en fonction des m\u00e9canismes de votre jeu.<\/p>\n<h2 id=\"paso-10-efectos-visuales-y-sonoros-basicos\"><strong>\u00c9tape 10 : Effets visuels et sonores de base<\/strong><\/h2>\n<p>Les effets visuels et sonores am\u00e9liorent consid\u00e9rablement l'exp\u00e9rience du joueur et apportent de la clart\u00e9 aux actions qui se d\u00e9roulent \u00e0 l'\u00e9cran. Bien que Godot permette de cr\u00e9er des syst\u00e8mes avanc\u00e9s de particules et d'audio, pour une premi\u00e8re version fonctionnelle, vous pouvez int\u00e9grer des \u00e9l\u00e9ments simples mais efficaces.<\/p>\n<h3 id=\"anadir-efectos-visuales-simples\"><strong>Ajouter des effets visuels simples<\/strong><\/h3>\n<p>Vous pouvez utiliser des n\u0153uds tels que Particles2D ou AnimatedSprite2D pour repr\u00e9senter des explosions, des \u00e9clairs ou des impacts. Ceux-ci sont d\u00e9clench\u00e9s lors d'\u00e9v\u00e9nements importants (par exemple, lorsque vous ramassez un objet, que vous sautez ou que vous subissez des d\u00e9g\u00e2ts). Les effets peuvent \u00eatre reproduits \u00e0 un emplacement pr\u00e9cis, puis supprim\u00e9s automatiquement.<\/p>\n<p>Lire une animation d'effet visuel<\/p>\n<p>func afficher_effet(position) :<\/p>\n<p>var effet = preload(\u00abres:\/\/effets\/impact.tscn\u00bb).instantiate()<\/p>\n<p>effet.position = position<\/p>\n<p>get_parent().add_child(effet)<\/p>\n<h3 id=\"incorporar-sonidos-de-juego\"><strong>Int\u00e9grer des sons de jeu<\/strong><\/h3>\n<p>Godot permet de lire des sons \u00e0 l'aide du n\u0153ud AudioStreamPlayer. Vous pouvez avoir plusieurs n\u0153uds de ce type dans chaque sc\u00e8ne (par exemple, un pour les effets, un autre pour la musique). Associez des fichiers audio .wav ou .ogg \u00e0 chacun d'entre eux et lancez-les \u00e0 partir du script correspondant lorsqu'une action se produit.<\/p>\n<p>Lire un son de collecte<\/p>\n<p>func _on_recolectado() :<\/p>\n<p>$AudioStreamPlayer.play()  # Uniquement s'il s'agit d'un enfant direct<\/p>\n<p>ou bien, modifie l'itin\u00e9raire :<\/p>\n<p>get_node(\u00ab Chemin\/Vers\/AudioStreamPlayer \u00bb).play()<\/p>\n<p>Utiliser les effets sonores et visuels avec mod\u00e9ration et discernement permet d'am\u00e9liorer le retour d'information du jeu sans surcharger la sc\u00e8ne ni distraire le joueur.<\/p>\n<h2 id=\"paso-11-pantalla-de-inicio-y-reinicio-del-juego\"><strong>\u00c9tape 11 : \u00c9cran d'accueil et red\u00e9marrage du jeu<\/strong><\/h2>\n<p>La pr\u00e9sence d'un \u00e9cran d'accueil am\u00e9liore la pr\u00e9sentation du jeu et permet au joueur de commencer quand il le souhaite. De plus, une bonne gestion du red\u00e9marrage apr\u00e8s une d\u00e9faite ou la fin d'une partie est essentielle pour l'exp\u00e9rience utilisateur.<\/p>\n<h3 id=\"crear-una-pantalla-de-inicio-sencilla\"><strong>Cr\u00e9er un \u00e9cran d'accueil simple<\/strong><\/h3>\n<p>Tu peux cr\u00e9er une sc\u00e8ne ind\u00e9pendante comprenant un arri\u00e8re-plan, un titre et un bouton qui, lorsqu'on clique dessus, permet de revenir \u00e0 la sc\u00e8ne principale du jeu. Cet \u00e9cran peut servir de \u00ab main_scene \u00bb initiale au lancement du jeu.<\/p>\n<p>Changement de sc\u00e8ne depuis l'\u00e9cran d'accueil<\/p>\n<p>func _on_boton_jugar_pressed() :<\/p>\n<p>get_tree().change_scene_to_file(\u00abres:\/\/sc\u00e8nes\/niveau_1.tscn\u00bb)<\/p>\n<h3 id=\"reiniciar-el-juego-tras-perder\"><strong>Reprendre la partie apr\u00e8s avoir perdu<\/strong><\/h3>\n<p>Lorsque le joueur perd, vous pouvez afficher un \u00e9cran ou un message proposant de recommencer. Cela peut se faire \u00e0 l'aide d'un nouveau bouton ou en d\u00e9tectant une pression sur une touche, puis en rechargeant la sc\u00e8ne en cours.<\/p>\n<p>Red\u00e9marrer le jeu \u00e0 l'aide du bouton<\/p>\n<p>func red\u00e9marrer_jeu() :<\/p>\n<p>get_tree().reload_current_scene()<\/p>\n<p>Disposer d'un d\u00e9roulement de jeu bien d\u00e9fini (d\u00e9but \u2192 partie \u2192 fin \u2192 red\u00e9marrage) facilite la navigation et renforce chez le joueur le sentiment d'ach\u00e8vement ou d'envie de r\u00e9essayer.<\/p>\n<h2 id=\"paso-12-exportar-tu-juego-para-compartirlo\"><strong>\u00c9tape 12 : Exporter votre jeu pour le partager<\/strong><\/h2>\n<p>Une fois que votre jeu est termin\u00e9 et test\u00e9, il est temps de l'exporter pour que d'autres personnes puissent y jouer. Godot facilite ce processus en proposant de multiples options d'exportation pour diff\u00e9rentes plateformes.<\/p>\n<h3 id=\"configurar-la-plantilla-de-exportacion\"><strong>Configurer le mod\u00e8le d'exportation<\/strong><\/h3>\n<p>Avant d'exporter, assure-toi d'avoir install\u00e9 les <strong>mod\u00e8les d'exportation<\/strong> adapt\u00e9s \u00e0 votre version de Godot. Ces mod\u00e8les permettent de compiler le jeu pour des plateformes telles que Windows, Linux, macOS, HTML5 ou Android.<\/p>\n<p>Vous pouvez les t\u00e9l\u00e9charger depuis le menu principal :<\/p>\n<h3 id=\"editor-%e2%86%92-administrador-de-plantillas-de-exportacion-%e2%86%92-descargar-e-instalar\"><strong>\u00c9diteur \u2192 Gestionnaire de mod\u00e8les d'exportation \u2192 T\u00e9l\u00e9charger et installer<\/strong><\/h3>\n<p>Une fois les installations termin\u00e9es, vous pouvez acc\u00e9der au menu d'exportation.<\/p>\n<p>Chemin d'acc\u00e8s : \u00c9diteur \u2192 Projet \u2192 Exporter<\/p>\n<p>Ajouter une nouvelle configuration pour la plateforme souhait\u00e9e<\/p>\n<h3 id=\"generar-el-ejecutable-o-archivo-web\"><strong>G\u00e9n\u00e9rer le fichier ex\u00e9cutable ou le fichier web<\/strong><\/h3>\n<p>Dans le menu d'exportation, choisissez la plateforme souhait\u00e9e (par exemple, Windows Desktop ou HTML5) et d\u00e9finissez les options de base telles que le nom du fichier, l'ic\u00f4ne du jeu et le r\u00e9pertoire de sortie. Cliquez ensuite sur <strong>Exporter le projet<\/strong> et enregistrez le fichier final que vous pouvez partager.<\/p>\n<p>Pour HTML5, Godot g\u00e9n\u00e8re un dossier contenant des fichiers .html, .wasm et .pck, que vous pouvez facilement mettre en ligne sur des services tels que <a href=\"http:\/\/Itch.io\" target=\"_blank\" rel=\"noopener\">Itch.io<\/a>, Netlify ou GitHub Pages.<\/p>\n<p>Personnalisez les options d'exportation et enregistrez le fichier ex\u00e9cutable final<\/p>\n<p>Pour Windows : fichier .exe<\/p>\n<p>Pour le Web : dossier contenant index.html + .wasm + .pck<\/p>\n<p>Exporter correctement votre projet permet \u00e0 d'autres personnes d'en profiter sans avoir besoin d'installer Godot.<\/p>\n<h2 id=\"conclusiones\"><strong>Conclusions<\/strong><\/h2>\n<p>Cr\u00e9er des jeux vid\u00e9o en 2D avec Godot Engine est une exp\u00e9rience enrichissante tant pour ceux qui d\u00e9butent dans le d\u00e9veloppement que pour ceux qui souhaitent explorer une alternative puissante et gratuite. Ce guide a pr\u00e9sent\u00e9, \u00e9tape par \u00e9tape, les bases n\u00e9cessaires pour donner vie \u00e0 un projet \u00e0 partir de z\u00e9ro, en soulignant les avantages d\u2019un moteur open source qui privil\u00e9gie la cr\u00e9ativit\u00e9 plut\u00f4t que la complexit\u00e9 technique.<\/p>\n<p>La ma\u00eetrise des bases \u2014 telles que l'interface, les n\u0153uds, les sc\u00e8nes, les scripts et le syst\u00e8me de physique \u2014 permet de poser des fondations solides sur lesquelles construire des projets plus ambitieux. De plus, la flexibilit\u00e9 de Godot et sa communaut\u00e9 dynamique en font un outil tr\u00e8s prometteur pour l'avenir, id\u00e9al pour le prototypage, l'apprentissage ou la publication de jeux ind\u00e9pendants.<\/p>\n<p>La prochaine \u00e9tape est claire : s'entra\u00eener, exp\u00e9rimenter et continuer \u00e0 explorer les nombreuses possibilit\u00e9s offertes par le moteur. \u00c0 mesure que vous gagnerez en confiance, vous pourrez int\u00e9grer de nouveaux \u00e9l\u00e9ments tels que des animations complexes, du son, des niveaux multiples, des menus interactifs ou l'int\u00e9gration \u00e0 des services en ligne. La seule limite, c'est votre imagination.<\/p>\n<p>Avec de la pers\u00e9v\u00e9rance et de la curiosit\u00e9, cette premi\u00e8re approche peut constituer le point de d\u00e9part d'une carri\u00e8re cr\u00e9ative dans le monde du d\u00e9veloppement de jeux vid\u00e9o.<\/p>","protected":false},"excerpt":{"rendered":"<p>Godot es un motor de desarrollo de videojuegos gratuito, de c\u00f3digo abierto y con una comunidad muy activa que impulsa [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":1080,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-3364","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-sin-categorizar"],"acf":[],"_links":{"self":[{"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/posts\/3364","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/comments?post=3364"}],"version-history":[{"count":0,"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/posts\/3364\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/media\/1080"}],"wp:attachment":[{"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/media?parent=3364"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/categories?post=3364"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/tecnologia.euroinnova.com\/fr\/wp-json\/wp\/v2\/tags?post=3364"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}