Chap 5 – Ajout de la Mécanique de Plateforme avec Odin & Raylib
Introduction
Dans cette cinquième partie de la série sur la création de jeux avec Odin et Raylib, l’accent est mis sur l’ajout de mécaniques de plateforme. Le développeur guide à travers plusieurs étapes pour introduire des plateformes sur lesquelles les joueurs peuvent sauter, ainsi que les ajustements nécessaires pour améliorer l’expérience de jeu. En particulier, il explique comment structurer le code, ajuster la caméra, ajouter des colliders pour la gestion des collisions et utiliser des outils de débogage pour valider les comportements du joueur.
Définir les Bases du Platforming
Ajout des Colliders et Gestion des Sauts
L’un des premiers aspects abordés dans cette vidéo est l’ajout de colliders, essentiels pour gérer la manière dont le personnage interagit avec les plateformes. Le joueur peut sauter entre plusieurs plateformes et la détection de collision permet de s’assurer que le joueur peut atterrir dessus et ne pas passer à travers. Une fois les colliders en place, un mécanisme simple est utilisé pour détecter quand le joueur atterrit sur une plateforme.
player_feet_collider : Rectangle
Caméra et Redimensionnement de Fenêtre
Le développeur met également en place un système de caméra pour améliorer la manière dont le joueur est centré à l’écran. Plutôt que d’ajuster manuellement la taille du personnage, un zoom dynamique est utilisé pour permettre à la caméra de suivre le joueur avec fluidité, en particulier lorsque la fenêtre du jeu est redimensionnée.
zoom := screen_height / pixel_window_height
Cette approche permet de garantir que le redimensionnement de la fenêtre n’affecte pas la manière dont les éléments de gameplay apparaissent, tout en maintenant l’échelle correcte des objets.
Ajout de Graphismes Personnalisés
Remplacement des Rectangles Simples par des Textures
Les plateformes sont initialement représentées sous forme de rectangles rouges, mais à la fin de la vidéo, des textures plus esthétiques sont introduites pour améliorer l’apparence visuelle du jeu. L’ajout de textures personnalisées rend les plateformes plus immersives et visuellement attrayantes.
platform_texture := load_texture("platform.png")
La texture est ensuite dessinée à la place des rectangles simples, ce qui donne aux plateformes un aspect plus professionnel.
Détection de Collision et Optimisation des Performances
Types de Collision
Le système de collision est conçu pour permettre au joueur de sauter à travers les plateformes par en dessous, mais de les utiliser comme surfaces solides en sautant dessus. Cette méthode est similaire à celle utilisée dans de nombreux jeux de plateforme.
if check_collision_recs(player_feet_collider, platform) {
// Gérer la collision
}
L’approche utilisée est basique mais efficace. Cependant, la vidéo explore des moyens d’implémenter des détections de collisions plus complexes, notamment avec des bibliothèques de physiques externes comme Box2D.
Limitation du Framerate
Pour garantir une jouabilité fluide et éviter des problèmes de performances, un limiteur de framerate est ajouté, assurant que le jeu ne dépasse pas une certaine limite de FPS. Cela empêche le GPU de surchauffer inutilement et améliore la gestion des ressources du jeu.
Cette pratique permet de maintenir un équilibre entre performance et qualité de jeu.
Améliorations Futures et Débogage
Visualisation de Débogage
L’utilisation d’outils de débogage pour afficher visuellement les colliders permet de s’assurer que les objets sont correctement positionnés et que les collisions sont correctement détectées. Cela aide à valider les hypothèses sur la manière dont les éléments du jeu interagissent.
Optimisation de la Gravité et des Vitesse de Mouvement
Après l’ajout des mécanismes de caméra et de plateforme, il devient nécessaire d’ajuster les paramètres de gravité et de vitesse du joueur pour éviter que le personnage ne bouge trop rapidement. Des ajustements sont effectués dans le code pour améliorer la sensation de jeu.
player_velocity.y := -300
En ajustant ces valeurs, le développeur affine les mouvements du joueur pour une jouabilité plus fluide.
Conclusion
Cette partie de la série de développement de jeux avec Odin et Raylib apporte des mécaniques de plateforme fondamentales au projet. En gérant les collisions, en ajustant la caméra et en améliorant les graphismes, le jeu prend forme et offre une meilleure expérience utilisateur.