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

Projets Discussion :

[WE Jeu] Participation de fearyourself


Sujet :

Projets

  1. #1
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut [WE Jeu] Participation de fearyourself
    Pour l'événement : Voir ici

    Le SVN pour ce projet est : Ici!

    Mon défi est un Super Mario Like mais avec une tortue et une louche

    Voilà le programme pour la programmation :

    - Vendredi soir :
    - ouverture de fenêtre
    - gestionaire de textures
    - gestionaire de son
    - gestionaire du jeu avec un premier bonhomme animé au milieu de l'écran
    - gestion du clavier pour sortir du programme et faire bouger le bonhomme sur l'écran

    - Samedi:
    - Chargement d'un fichier niveau avec un seul sol sur tout le niveau
    - Ajout du gestionnaire de niveau
    - Ajout de l'affichage du niveau
    - Ajout d'un moteur physique qui fait sauter le perso, atterir
    - Ajout du fait que le plan défile sur la longueur du programme

    Dimanche:
    - Ajout des bonus
    - Ajout des lors des événements
    - Ajout d'un menu
    - Ajout des autres persos que le joueur doit éviter


    Je mettrai ici et sur le chat les images et les statistiques sur le code :-)

    Bon courage à tous !
    Jc

  2. #2
    Membre averti
    Homme Profil pro
    Lycéen
    Inscrit en
    Novembre 2008
    Messages
    86
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Novembre 2008
    Messages : 86
    Points : 355
    Points
    355
    Par défaut
    Eh bien bon courage

  3. #3
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Bien sûr la première image de mon jeu, je n'ai pas encore vraiment commencé, je commence que dans quelques heures mais pour vous rendre curieux
    Images attachées Images attachées  

  4. #4
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 196
    Points : 109
    Points
    109
    Par défaut
    Waaaa trop fort, c'est un jeu next generation qui va tourner sur PS4, ca ce voit directe !! Trop fort les shaders de la flèche..... bon ok, ta gueule Corentin

  5. #5
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Voici le SVN pour mon projet d'ailleurs, il est en GPL :

    http://sourceforge.net/projects/turtleladle/

    Jc

  6. #6
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Citation Envoyé par corentin3D Voir le message
    Waaaa trop fort, c'est un jeu next generation qui va tourner sur PS4, ca ce voit directe !! Trop fort les shaders de la flèche..... bon ok, ta gueule Corentin
    Faut juste que je mette une lumière et ca va te bluffer,
    ;-)

  7. #7
    Inactif  
    Profil pro
    Inscrit en
    Novembre 2009
    Messages
    196
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Novembre 2009
    Messages : 196
    Points : 109
    Points
    109
    Par défaut
    C'est du second degré hein

  8. #8
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Après le codage du gestionnaire d'objet, on a un premier écran avec l'affichage du fichier sprite !

    Bon c'est un petit peu petit alors on va l'agrandir :-)
    Images attachées Images attachées  

  9. #9
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Bon ben c'est à l'envers :-)
    Images attachées Images attachées  

  10. #10
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Transparence :

    :-)
    Images attachées Images attachées  

  11. #11
    Membre actif

    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2007
    Messages
    51
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2007
    Messages : 51
    Points : 211
    Points
    211
    Par défaut
    oh hé, j'ai hâte de voir la louche et la tortue réunies ensemble dans tes screenshots!!

  12. #12
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Ok c'est encore de la triche, il y a des choses en travaux.

    Version 9 du SVN :-)
    Images attachées Images attachées  

  13. #13
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Voilà, avec un fichier de config :

    #
    # File for defining sprite sheets automatically
    #
    # Sprites can have states that are handled internally by the object
    # Structure of this file is:
    #
    # - Sprite file name
    #
    # - Number of states
    #
    # Then for each state
    # Number of frames
    # Speed of change (can be 0, then there is by default change)
    # Coordinates one frame per line
    #
    #
    # Lines starting with '#' are comments
    data/sprite.bmp
    3
    #Staying still
    4
    200
    0.4 .45 0.14 0.06
    0.475 .525 0.14 0.06
    0.55 .6 0.14 0.06
    0.63 .68 0.14 0.06
    0.4 .45 0.22 0.14
    0.475 .525 0.22 0.14
    0.55 .6 0.22 0.14
    0.63 .68 0.22 0.14
    #Moving
    5
    1000
    0 .12 0 .15
    0 .12 0 .15
    0 .12 0 .15
    0 .12 0 .15
    0 .12 0 .15
    #Jumping
    1
    1000
    0 .12 0 .15
    Ou on gére les commentaires et tout le reste...

    On a cette petite video ! L'heure de dormir, à demain !
    Fichiers attachés Fichiers attachés

  14. #14
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Ok, après grosso modo 6h de programmation, on est à 1400 lignes de code et 42 pour le fichier du sprite...

    Petit détail avant de dormir : je ne sais pas pourquoi les textures me semblent chargées à l'envers... Qui sait :-)

  15. #15
    Membre averti Avatar de Remizkn
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    322
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2009
    Messages : 322
    Points : 338
    Points
    338
    Par défaut
    Houla! Grosse journée de code pour toi hier on dirait. En tout cas, un Mario Like moi j'adhère à 100% et ça m'a l'air très bien partis.

  16. #16
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Bon, hier avant de dormir, je n'ai pas pris le temps de faire le point sur le code et les prochaines étapes :-)

    Nous avons comme classes:

    Les classes principales:
    Object qui contient un Sprite
    Un sprite contient une texture


    Toutes les sprites sont chargées via un Sprite_Factory qui gére le chargement multiple du même sprite (limitation mémoire)
    Idem pour les textures.


    Classes annexes: Vecteur et Texture pour un conteneur de 2 ou 4 doubles.


    Prochaine étape, ajouter la classe moteur et lié notre bonhomme au clavier (et aussi finir le fichier perso.txt qui défini les états du persos...).

  17. #17
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    On peut enfin bouger le personnage :-)

    Voilà la video, faut encore qu'il se tourne dans le bon sens :-)
    Fichiers attachés Fichiers attachés

  18. #18
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Suffisait de demander ;-). Avec ce code
    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
        //Handle flip code:
        /* 
            We basically have 4 cases : no flip, flip only X, flip only Y, flip both
            First put in txtLeft, txtRight, txtTop, txtBottom
            And then flip :-)
        */
        txtLeft = frame->getLeft ();
        txtRight = frame->getRight ();
        txtTop = frame->getTop ();
        txtBottom = frame->getBottom ();
     
        if (flipX == true)
        {
            tmp = txtLeft;
            txtLeft = txtRight;
            txtLeft = txtRight;
            txtRight = tmp;
        }
     
        if (flipY == true)
        {
            tmp = txtTop;
            txtTop = txtBottom;
            txtTop = txtBottom;
            txtBottom = tmp;
        }
    On a la video suivante :-)
    Fichiers attachés Fichiers attachés

  19. #19
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    Forcément, maintenant on peut s'arrêter ;-)

    Grâce à ce code :
    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
        if (diff != 0)
        {
            //Update speeds
            double vx = speed.getX () + acceleration.getX() *diff;
            double vy = speed.getY () + acceleration.getY() *diff;
     
            //Check maximum
            vx = (vx > maxSpeed) ? maxSpeed : vx;
            vx = (vx < -maxSpeed) ? -maxSpeed : vx;
     
            //Turn off acceleration and speed if speed has changed signs 
            if (vx * speed.getX () < 0)
            {
                vx = 0;
                acceleration.setX (0);
            }
     
            //Update
            speed.set (vx, vy);
     
            //Calculate new position
            double x = pos.getX() + speed.getX() * diff,
                   y = pos.getY() + speed.getY() * diff;
     
            //For the moment let's cheat, can go lower than 0 for y
            if (y < 0)
            {
                stopJump ();
                y = 0;
            }
     
            //Update
            pos.set(x,y);
     
            //Update lastTouched
            lastTouched = now;
        }
    On a une video encore plus sympa :-)
    Fichiers attachés Fichiers attachés

  20. #20
    Expert éminent sénior

    Avatar de fearyourself
    Homme Profil pro
    Ingénieur Informaticien Senior
    Inscrit en
    Décembre 2005
    Messages
    5 121
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Ingénieur Informaticien Senior
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2005
    Messages : 5 121
    Points : 11 877
    Points
    11 877
    Par défaut
    On continue avec l'image de fond:

    Un niveau est défini par :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    #
    # File for defining a level
    #
    # Structure of this file is: 
    # 
    # - Background sprite file name
    # - Sprite for character
    # - Size of level
    #
    # Lines starting with '#' are comments
    data/lvl1bg.txt
    data/perso.txt
    5000
    Où les fichiers textes sont des sprites et donc lvl1bg.txt contient:
    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
     
    #
    # File for defining objects
    #
    # Objects have sprite sheet file description, their default size (if different than given sprite), their default position
    #
    # Structure of this file is: 
    #
    # - Number of objects
    #
    # Per object:
    #
    # - Sprite sheet description file name
    #
    # - Default Size (-1, -1) if taking sprite sheet defaults
    #
    # - Default position
    # Lines starting with '#' are comments
    #
    # Nbr of objects here
    1
    data/lvl1_sprite.txt
    -1 -1
    0 0
    et le lvl1_sprite defini l'image au final:
    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
     
    #
    # File for defining sprite sheets automatically
    #
    # Sprites can have states that are handled internally by the object
    # Structure of this file is: 
    # 
    # - Sprite file name
    #
    # - Size
    #
    # - Number of states
    # 
    # Then for each state
    # Number of frames
    # Speed of change (can be 0, then there is by default change)
    # Coordinates one frame per line
    # 
    #
    # Lines starting with '#' are comments
    data/lvl1bg.bmp
    5120 640
    1
    #Background still
    1
    0
    0 1 1 0
    bool LevelState::loadLevel (string fileName)
    {
    LineParser lp (fileName, true);

    //Load up background
    std::cout << "Loading background" << std::endl;
    background.addObject (new Object (lp.getNextLine ()));

    //Load up our character
    std::cout << "Loading character" << std::endl;
    character = new Object (lp.getNextLine ());

    //Get level size
    lvlSize = lp.getNumber ();

    return true;
    }


    Ce qui nous donne pour le chargement d'un niveau :
    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
    bool LevelState::loadLevel (string fileName)
    {
        LineParser lp (fileName, true);
     
        //Load up background
        std::cout << "Loading background" << std::endl;
        background.addObject (new Object (lp.getNextLine ()));
     
        //Load up our character
        std::cout << "Loading character" << std::endl;
        character = new Object (lp.getNextLine ());
     
        //Get level size
        lvlSize = lp.getNumber ();
     
        return true;
    }
    et à l'affichage:
    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
     
    void LevelState::draw ()
    {
        //Mettre a zero le tampon de couleurs
        glClear(GL_COLOR_BUFFER_BIT);
        glLoadIdentity();
     
        //By default we turn on alpha test
        glEnable(GL_ALPHA_TEST);
        glAlphaFunc(GL_LEQUAL,0.1f);
     
        //Call background first
        background.display ();
     
        //Call the ObjectManager render
        character->display ();
     
        SDL_GL_SwapBuffers();
    }
    Et on obtient donc la video attachée :yeah:
    Fichiers attachés Fichiers attachés

Discussions similaires

  1. [Projet terminé] [WE Jeu] Participation de Remizkn
    Par Remizkn dans le forum Projets
    Réponses: 23
    Dernier message: 14/03/2010, 11h16
  2. [Projet en cours] [WE Jeu] Participation de Yavaitdelalumière
    Par Yavaitdelalumière... dans le forum Projets
    Réponses: 6
    Dernier message: 08/03/2010, 13h57
  3. [Projet terminé] [WE Jeu] Participation de raptor70
    Par raptor70 dans le forum Projets
    Réponses: 11
    Dernier message: 03/03/2010, 11h23
  4. [Projet en cours] [WE Jeu] Participation de Golgotha
    Par Golgotha dans le forum Projets
    Réponses: 9
    Dernier message: 02/03/2010, 01h32
  5. [Projet en cours] [WE Jeu] Participation de Guntha
    Par Guntha dans le forum Projets
    Réponses: 8
    Dernier message: 01/03/2010, 01h01

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