1. Livres et vidéos
  2. Allegro 5 - Programmation de jeux en C ou C++

Allegro 5 Programmation de jeux en C ou C++

  • Accès illimité 24h/24, 7J/7
  • Tous les livres en ligne, les vidéos et les cours enregistrés ENI
  • Plus de 10 nouveautés livres et vidéos chaque mois
  • Les nouveautés disponibles le jour de leur sortie
  • Accès 100% en ligne
  • En stock
  • Expédié en 24h00
  • Livraison à partir de 0,01 €
  • Version en ligne offerte
  • 1 h d'accès gratuit à tous nos livres et vidéos pour chaque commande
  • Accessible immédiatement
  • Version HTML
  • Accès illimité 24h/24, 7J/7

Présentation

Ce livre sur Allegro 5 s'adresse à tout développeur C ou C++ désireux d'allier la maîtrise du code et la créativité que nécessite la programmation de jeux vidéos. Il se partage en deux grandes parties : la première se présente plutôt comme un référentiel (en français bien sûr) et la seconde est une invitation à la programmation de jeux en 2D. Tout au long du livre, l'auteur invite le lecteur à utiliser Allegro 5 afin d'entrer dans sa logique de création et ainsi d'en exploiter tout le potentiel.

Dans la première partie sont traités : le fenêtrage et le plein écran, la couleur, le dessin, les images et les événements (clavier, souris, minuteur, joystick). Dans la seconde partie (plus créative) l'auteur propose un début d'étude en vie artificielle basée sur des fourmis, un squelette de jeu d'action, la gestion d'une animation, la création de décors, les interactions de personnages entre eux et sur un décor.

Pour fournir un livre bien plus approfondi qu'une simple prise en main, pour une même situation l'auteur envisage les différentes options possibles et propose parfois un détour pour comprendre comment certaines fonctionnalités de la bibliothèque sont élaborées et programmées. C'est un véritable cheminement exploratoire qui est proposé au lecteur pour partir à la découverte technique de la bibliothèque.

La bibliothèque accepte les systèmes Linux, Raspberry Pi compris, Windows, MacOsX, iOS (iPhone et iPad) et une adaptation pour Android est en cours d'élaboration. Les nombreux exemples de code du livre ont été travaillés et testés avec Visual Studio et Code::Blocks sous Windows 7, 8, 8.1. D'ailleurs, tous les programmes du livre sont téléchargeables sur le site www.editions-eni.fr. Pour chaque chapitre l'auteur propose une solution Visual Studio. Celle-ci comprend autant de projets que de programmes dans le chapitre et pour chaque projet le lecteur dispose du code source avec les ressources nécessaires (images, polices etc.).


Les chapitres du livre :
Introduction – Installation – Démarrage – Texte, polices, couleurs, dessin - Images – Événements – Joystick – Croquis de fourmis – Modèle de jeu simple – Animation, sprites – Décor, monde – Personnages dans un décor – Collisions entre personnages

Table des matières

  • Introduction
    • 1. Introduction
    • 2. La bibliothèque Allegro 5
      • 2.1 Concept de la bibliothèque
      • 2.2 Documentation
    • 3. Compilateurs et IDE
    • 4. Contenu du livre
      • 4.1 Principe
      • 4.2 Objectifs
    • 5. Prérequis
    • 6. Public visé
    • 7. Remerciements
  • Installation de la bibliothèque Allegro
    • 1. Introduction
    • 2. Téléchargement de la bibliothèque compilée
    • 3. À propos des noms de DLL et de .lib dans Allegro
    • 4. Positionnement des DLL
    • 5. Installation et configuration sous Code::Blocks, MinGW
      • 5.1 Création d’un projet console (ou vide)
      • 5.2 Accès à la bibliothèque
        • 5.2.1 Accès du compilateur à la bibliothèque pour un seul projet
        • 5.2.2 Accès du compilateur à la bibliothèque pour tous les projets
      • 5.3 Relier des modules de la bibliothèque (linkage)
      • 5.4 Vérification de l'installation
      • 5.5 Erreurs fréquentes
    • 6. Installation et configuration sous Visual C++
      • 6.1 Création d’un projet vide
      • 6.2 Accès à la bibliothèque et liaison avec les modules
      • 6.3 Vérification de l'installation
      • 6.4 Erreurs fréquentes
      • 6.5 Liaison statique de la bibliothèque
        • 6.5.1 Lier le projet aux bibliothèques statiques nécessaires
        • 6.5.2 Configurer la génération de code
        • 6.5.3 Spécifier la directive ALLEGRO_STATICLINK
  • Premiers pas avec Allegro
    • 1. Introduction
    • 2. Créer une fenêtre
    • 3. Obtenir le clavier
    • 4. Obtenir la souris
    • 5. Éléments de gestion des fenêtres
      • 5.1 Dimensionner une fenêtre existante et la positionner à l'écran
      • 5.2 Activer le contrôle de redimensionnement
    • 6. Gestion du plein écran
      • 6.1 Fenêtre qui couvre tout l'écran
      • 6.2 Plein écran sans fenêtre
      • 6.3 Résolutions supportées
    • 7. Création d’un modèle de projet (template)
      • 7.1 Code de base du projet
      • 7.2 Modèle de projet sous Code::Blocks
      • 7.3 Modèle de projet sous Visual Studio
    • 8. Quelques précisions
      • 8.1 Utilisation de la fenêtre console
        • 8.1.1 Création d'un projet sans fenêtre console
        • 8.1.2 Alternative à la fenêtre console sous Allegro
      • 8.2 Meilleur contrôle du clavier simple
        • 8.2.1 Problème des répétitions du clavier
        • 8.2.2 Compter les répétitions clavier
      • 8.3 Meilleur contrôle de la souris simple
        • 8.3.1 Problème des répétitions de clics
        • 8.3.2 Compter les clics sur chaque bouton de la souris
  • Texte, polices, couleur, dessin
    • 1. Introduction
    • 2. Texte et polices
      • 2.1 Sélectionner une police
      • 2.2 Afficher du texte
      • 2.3 Obtenir les dimensions d’une police
    • 3. Couleurs, transparence
    • 4. Primitives de dessin
      • 4.1 Mise en place du module de dessin
      • 4.2 Lignes, triangles, rectangles, cercles
        • 4.2.1 Expérimentation des fonctions de tracé
      • 4.3 Arcs
        • 4.3.1 Expérimentation : tracer des arcs
        • 4.3.2 Expérimentation : récupérer les points d'un arc
      • 4.4 Courbe de Bézier (spline)
        • 4.4.1 Expérimentation : tracer une courbe de Bézier
        • 4.4.2 Expérimentation : récupérer les points d'une courbe de Bézier
      • 4.5 Ruban
        • 4.5.1 Expérimentation : tracer un ruban
        • 4.5.2 Expérimentation : récupérer les points d'un ruban
  • Images
    • 1. Introduction
    • 2. Bitmap en mémoire
      • 2.1 Créer une bitmap
      • 2.2 Dessiner dans une bitmap
    • 3. Image
      • 3.1 Charger une image (load)
      • 3.2 Afficher une image
      • 3.3 Expérimenter les fonctions d’affichage
      • 3.4 Sélectionner une image pour la modifier
      • 3.5 Obtenir les propriétés de l'image
      • 3.6 Sauvegarder une image
    • 4. L'image pixel par pixel
      • 4.1 Accès aux pixels
      • 4.2 Expérimentations verrouillage, al_get_pixel(), al_put_pixel()
      • 4.3 Mélanges de couleurs (blending)
    • 5. Paramétrage des options
  • Les événements
    • 1. Introduction
    • 2. Mettre en place une boucle d'événements
      • 2.1 Création d'une file d'événements
      • 2.2 Sélection des types d'événements à prendre en compte
      • 2.3 Capture des événements
      • 2.4 Identification de l'événement
      • 2.5 Autres possibilités de capture d'événements
    • 3. Récupérer le clavier et la souris dans une boucle d'événements
    • 4. Piloter un rectangle avec les flèches du clavier
    • 5. Contrôler l'exécution d'un programme avec un minuteur
    • 6. Donner de la fluidité aux mouvements du rectangle
    • 7. Constituer un modèle de projet (template)
    • 8. Comprendre l'implémentation des événements
      • 8.1 Les identificateurs d'événements
      • 8.2 Les structures d'événements
        • 8.2.1 Structure ALLEGRO_DISPLAY_EVENT
        • 8.2.2 Structure ALLEGRO_JOYSTICK_EVENT
        • 8.2.3 Structure ALLEGRO_KEYBOARD_EVENT
        • 8.2.4 Structure ALLEGRO_MOUSE_EVENT
        • 8.2.5 Structure ALLEGRO_TIMER_EVENT
        • 8.2.6 Structure ALLEGRO_USER_EVENT
      • 8.3 L'union ALLEGRO_EVENT
        • 8.3.1 Rappel sur le type union
        • 8.3.2 Détail de l'union ALLEGRO_EVENT
  • Joystick
    • 1. Introduction
    • 2. Prise en main simple
      • 2.1 Principales fonctions
      • 2.2 Expérimentation en mode texte
      • 2.3 Structure de données pour l'état d'un joystick
    • 3. Utilisation des événements
      • 3.1 Types d'événements
      • 3.2 Expérimentation en mode texte
      • 3.3 Expérimentation graphique
  • Croquis de fourmis
    • 1. Introduction
    • 2. Fourmi seule
      • 2.1 Structure de données d'une fourmi
      • 2.2 Initialisation
      • 2.3 Affichage
      • 2.4 Mouvement
      • 2.5 Libération mémoire
      • 2.6 Code complet
      • 2.7 Code complet version référence
    • 3. Colonie de fourmis
      • 3.1 Structure de données d'une colonie
      • 3.2 Initialisation
      • 3.3 Affichage
      • 3.4 Mouvement
      • 3.5 Mise à jour du code
      • 3.6 Mise à jour du code, version référence
    • 4. Colonie et collisions
      • 4.1 Collision entre deux fourmis
      • 4.2 Collisions dans la colonie
      • 4.3 Mise à jour du code
      • 4.4 Mise à jour du code, version référence
    • 5. Collisions et combats
      • 5.1 Combat
      • 5.2 Modification de l'affichage
      • 5.3 Modification de la fonction de détection de collision
      • 5.4 Mise en œuvre des combats
      • 5.5 Mise à jour du code version référence uniquement
    • 6. Plusieurs colonies
      • 6.1 Structure de données
      • 6.2 Initialisation
      • 6.3 Affichage
      • 6.4 Mouvement
      • 6.5 Mise à jour du code
      • 6.6 Mise à jour du code, version référence
    • 7. Mouvements d'ensemble des fourmis
      • 7.1 Principe
      • 7.2 Structure de données
      • 7.3 Initialisation des fourmis
        • 7.3.1 Fonction d'initialisation des fourmis
        • 7.3.2 Création d'une palette de couleurs
      • 7.4 Affichage
      • 7.5 Mouvement
        • 7.5.1 Détermination du mouvement
        • 7.5.2 Actualisation
      • 7.6 Changement de couleur
      • 7.7 Initialisation du programme
      • 7.8 Code complet
  • Modèle de jeu simple
    • 1. Introduction
    • 2. Mouvements du vaisseau
      • 2.1 Structure de données du vaisseau
      • 2.2 Initialisation
      • 2.3 Affichage
      • 2.4 Déplacements
      • 2.5 Boucle événementielle du jeu, organisation du code
    • 3. Lancement de missiles
      • 3.1 Structure de données du missile
      • 3.2 Initialisation
      • 3.3 Affichage
      • 3.4 Mouvement
      • 3.5 Lancement
      • 3.6 Mise à jour du code, action
    • 4. Avancée des ennemis
      • 4.1 Structure de données de l'ennemi
      • 4.2 Initialisation
      • 4.3 Affichage
      • 4.4 Mouvement
      • 4.5 Apparition
      • 4.6 Mise à jour du code, action
    • 5. Collisions
      • 5.1 Point dans un rectangle
      • 5.2 Point dans un triangle
      • 5.3 Intersection de rectangles
      • 5.4 Recherche d'une couleur sur un fond
    • 6. Destruction des ennemis
      • 6.1 Détection de collisions missiles-ennemis
      • 6.2 Détection de collisions entre vaisseau et ennemis
    • 7. Code complet du programme
  • Animation, sprites
    • 1. Introduction
    • 2. Un personnage marchant sur place
    • 3. Un personnage piloté par le clavier
    • 4. Gestion de la couleur du masque
    • 5. Contrôle de la vitesse de l'animation
    • 6. Récupération d'une série d'images sur un fichier unique
    • 7. Plusieurs séquences simultanées
      • 7.1 Plusieurs balles qui rebondissent
      • 7.2 Plusieurs personnages qui se déplacent
  • Décor, monde
    • 1. Introduction
    • 2. Deux principes de décor : continu ou discontinu
      • 2.1 La forme continue : une image, des calques, des rails
      • 2.2 La forme discontinue : technique du « tile mapping »
    • 3. Défilement d'une grande image (scroll)
    • 4. Un univers composé de petites images (tile mapping)
      • 4.1 Décor continu aléatoire
      • 4.2 Utiliser une matrice de nombres
      • 4.3 Composer le décor avec un éditeur graphique
  • Personnages dans un décor
    • 1. Introduction
    • 2. Un personnage mobile dans un décor fixe
      • 2.1 Structures de données et initialisations
      • 2.2 Contrôle du joueur
    • 3. Nombreux personnages mobiles
      • 3.1 Un ensemble de personnages
      • 3.2 Le mouvement des clones
      • 3.3 Le mouvement du joueur
  • Collisions entre personnages
    • 1. Introduction
    • 2. Cartographie des personnages
      • 2.1 Mise en place de la carte
      • 2.2 Mouvement des personnages
      • 2.3 Code complet commenté
      • 2.4 Problèmes posés
    • 3. Automatisation du comportement des clones coincés
      • 3.1 Modification de la structure de données
      • 3.2 Gestion du mouvement
      • 3.3 Gestion de l'affichage
    • 4. Suppression de superpositions entre personnages
      • 4.1 Principe d'une échelle de la cartographie
      • 4.2 Principe de l'interception des collisions
      • 4.3 Implémentation
      • 4.4 Quelques perfectionnements
      • 4.5 Code complet commenté
    • Index
    • Liste des programmes

Auteur

Frédéric DROUILLONEn savoir plus

Frédéric DROUILLON est enseignant, chercheur et aussi créateur dans le domaine de l’informatique et des arts numériques. Il envisage la programmation et ses langages comme un moyen d’expression et de formulation d’idées qui nécessite de la recherche et de la créativité. L’objectif de son enseignement en langage C est de permettre au lecteur d’acquérir un savoir-faire fondamental en programmation informatique pour ensuite circuler le plus librement possible dans les différentes techniques et langages de programmation.

Revue de presse

Développez.com18/05/2015

Ce livre permet de découvrir une bibliothèque pour réaliser un jeu, à travers une documentation simplifiée et en français aidant ainsi à s'habituer au travail autonome et à l'exploration, non dirigée, d'une bibliothèque. Après sa lecture, le développeur aura toutes les bases nécessaires pour continuer sa progression et réaliser son premier jeu vidéo.

Caractéristiques

  • Niveau Initié à Confirmé
  • Nombre de pages 556 pages
  • Parution mars 2015
    • Livre (broché) - 17 x 21 cm
    • ISBN : 978-2-7460-0938-7
    • EAN : 9782746093867
    • Ref. ENI : EI5ALL
  • Niveau Confirmé à Expert
  • Parution mars 2015
    • HTML
    • ISBN : 978-2-7460-9534-2
    • EAN : 9782746095342
    • Ref. ENI : LNEI5ALL

Téléchargements

En complétant ce formulaire, vous acceptez d'être contacté afin de recevoir des informations sur nos produits et services ainsi que nos communications marketing. Vous aurez la possibilité de vous désabonner de nos communications à tout moment. Pour plus d'informations sur notre politique de protection des données, cliquez ici.
  • Des fichiers complémentaires (5,93 Mo)