IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C Discussion :

Développement d'un jeu en C


Sujet :

C

  1. #1
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2026
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2026
    Messages : 3
    Par défaut Développement d'un jeu en C
    Bonjour,

    Je suis en train de créer un jeu en C dans lequel un personnage doit éclater des bulles sans se faire toucher, et cela dans un temps imparti.

    J’ai commencé à écrire plusieurs sous-programmes pour gérer la partie logique du jeu (initialisation, mise à jour du jeu et vérification de fin de niveau), mais je ne suis pas totalement sûre de leur correction.

    Voici mes fonctions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    /// sous programme vérifiant la fin d'un niveau 
    int verifierFinNiveau(Joueur *joueur, int nbBulles, int tempsRestant){
        if (joueur == NULL){
            return -1;
        }
     
        if (joueur->vivant == 0){
            return -1;//défaite
        }
     
        if (tempsRestant <= 0){
            return -1;
        }
     
        if (nbBulles == 0){
            return 1; //victoire
        }
     
        return 0;//le niveau continue
    }
     
    ///sous-programme permettant de mettre a jour le jeu -> à revoir !!
     
    void mettreAJourJeu(Joueur *joueur, Bulle **bulles, int *tempsRestant){
        if (joueur == NULL){
            return;
        }
        deplacerJoueur(joueur);
        deplacerBulles(*bulles);
     
        if (collisionJoueurBulle(joueur, *bulles) == 1){
            joueur->vivant = 0; //joueur mort
        }
        *tempsRestant = *tempsRestant - 1;
    }
     
    ///sous-programme permettant d'initialiser une partie 
     
    void initialiserPartie(Joueur *joueur, char pseudo[]){
        if (joueur == NULL){
            return;
        }
        strcpy(joueur->pseudo, pseudo); //on copie le pseudo
        joueur->vivant = 1;
    }
    Merci d'avance pour votre réponse

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 221
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 221
    Billets dans le blog
    170
    Par défaut
    Bonjour,

    À première vue, pourquoi pas. Je veux dire que le code semble correct, mais que que cela dépend aussi du reste du programme et de comment ce code va aller avec le reste.
    Aussi, je vous conseille d'avancer par petites étapes. Par exemple, vous commencez par gérer le joueur (affichage, mis à jour), ensuite, lorsque le joueur fonctionne, vous ajoutez la gestion des bulles. Et même ces étapes peuvent être découpées en plusieurs autres étapes : déplacement des bulles, collisions...
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2026
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2026
    Messages : 3
    Par défaut
    Merci beaucoup pour votre réponse !

    C’est exactement la démarche que j’ai essayé de suivre : j’ai découpé mon code en 11 parties différentes, chacune avec son header, et j’ai avancé étape par étape (gestion du joueur, puis des éléments comme les bulles, etc.).

    À ce stade, il me reste surtout à finaliser le système de projectiles et la partie logique du jeu, qui regroupe les sous-programmes que j’ai développés précédemment. Mon doute principal, c’est justement de savoir si ces sous-programmes sont corrects et bien conçus pour s’intégrer ensemble.

    Merci encore pour vos conseils, ça me conforte dans ma façon de procéder !

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 574
    Par défaut
    Bonjour et bienvenue !

    Citation Envoyé par juliiie17 Voir le message
    À ce stade, il me reste surtout à finaliser le système de projectiles et la partie logique du jeu, qui regroupe les sous-programmes que j’ai développés précédemment. Mon doute principal, c’est justement de savoir si ces sous-programmes sont corrects et bien conçus pour s’intégrer ensemble.
    C'est pas mal du tout dans le principe. Découpage logique propre, des commentaires là où nécessaire mais pas trop, etc. C'est comme ça qu'il faut procéder pour éviter d'accumuler de la dette technique et s'assurer ainsi que son projet ira loin, parce qu'il pourra être maintenu sur la durée.

    Les remarques supplémentaires que l'on pourrait faire à ce stade sont les pièges habituels en C, comme les dépassements de tampon (spécialement avec strcpy()), les conditions ==0 qui peuvent dans certains cas dépasser la condition d'arrêt avant le test, etc. Mais justement, il est en général préférable quand on débute d'être rapidement confrontés à ces bugs et se casser la tête pour les résoudre pour ne plus jamais se faire prendre ensuite.

    Juste une question de principe : est-ce un projet scolaire ou simplement une initiative personnelle ?

  5. #5
    Invité de passage
    Femme Profil pro
    Étudiant
    Inscrit en
    Mai 2026
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Mai 2026
    Messages : 3
    Par défaut
    Bonjour,
    Merci pour votre réponse.
    C’est un projet scolaire. J’essaie surtout de progresser en comprenant vraiment ce que je fais, donc j’utilise plutôt des forums pour être accompagné et résoudre les problèmes étape par étape, plutôt que d’utiliser des IA directement.

  6. #6
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 574
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 574
    Par défaut
    Citation Envoyé par juliiie17 Voir le message
    C’est un projet scolaire. J’essaie surtout de progresser en comprenant vraiment ce que je fais, donc j’utilise plutôt des forums pour être accompagné et résoudre les problèmes étape par étape, plutôt que d’utiliser des IA directement.
    Tu es au bon endroit. ;-)

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Network game programmer
    Inscrit en
    Juin 2010
    Messages
    7 175
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Canada

    Informations professionnelles :
    Activité : Network game programmer

    Informations forums :
    Inscription : Juin 2010
    Messages : 7 175
    Billets dans le blog
    4
    Par défaut
    Petite amélioration pas chère : utilise des enum plutôt que des int pour tes retour de fonction, ça permettra d'avoir plus de significations et contextes que devoir deviner que -x est telle erreur etc
    Pensez à consulter la FAQ ou les cours et tutoriels de la section C++.
    Un peu de programmation réseau ?
    Aucune aide via MP ne sera dispensée. Merci d'utiliser les forums prévus à cet effet.

  8. #8
    Membre Expert Avatar de edgarjacobs
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2011
    Messages
    844
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 66
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mai 2011
    Messages : 844
    Par défaut
    Hello,

    Une autre petite amélioration qui ne coûte pas grand chose: employer des booléens (#include <stdbool.h>) pour les variables qui, comme joueur->vivant par exemple, ne peuvent prendre que deux valeurs: true ou false. Cela rend le code plus clair lors de la (re)lecture.
    On écrit "J'ai tort" ; "tord" est la conjugaison du verbre "tordre" à la 3ème personne de l'indicatif présent ;)

Discussions similaires

  1. Quel style de DirectX pour un jeu 2D ?
    Par delire8 dans le forum DirectX
    Réponses: 34
    Dernier message: 31/07/2003, 00h47
  2. Réponses: 7
    Dernier message: 18/06/2003, 15h20
  3. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  4. [C réseau débutant] jeu
    Par Heimdall dans le forum Développement
    Réponses: 6
    Dernier message: 22/05/2003, 13h58
  5. Une déclaration pour la survie du jeu vidéo en France
    Par Freakazoid dans le forum DirectX
    Réponses: 1
    Dernier message: 30/10/2002, 14h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo