begin process at 2012 02 08 10:32:55
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Jeux

 > OPENGL - JEU DE BILLARD EN 3D PAS FINI

OPENGL - JEU DE BILLARD EN 3D PAS FINI


 Information sur la source

Note :
Aucune note
Catégorie :Jeux Classé sous :billard, physique, 3d, jeu, opengl Niveau :Initié Date de création :04/01/2008 Date de mise à jour :04/01/2008 02:39:20 Vu :10 476

Auteur : acx01b

Ecrire un message privé
Site perso
Commentaire sur cette source (1)
Ajouter un commentaire et/ou une note

 Description

Cliquez pour voir la capture en taille normale
Bonjour

le projet est trop lourd il fait 1.5mo au lieu de 1mo maximum
vous pouvez le télécharger sur mon ftp:
http://www.hacking.free.fr/paris8/continous_p hysic_billard.zip
(l'exe est dans le zip, il faut renommer le .ex_)

c'est un projet pour la fac qui m'a permis de bien avancer en opengl et en méca

la physique est gérée de manière continue

les librairies utilisées:
SDL
GL
glu
gsl (pour la résolution d'équations du 4ième degré)
glew (pour la lumière avec shader et les vbo)

il manque les choses suivantes pour en faire un super jeu de billard, mais je ne pense pas arriver au bout de tous ces problèmes:
- rajout des règles (8ball, snooker, billard français, ...)
- suppression du bug qui arrive parfois et qui fait sortir les boules de la table
- que la canne ne traverse plus les boules et la table
- permettre de faire sauter les boules avec la canne (le moteur physique peut déja les faire sauter)
- amélioraton du framerate et rajout de lumières, ombres mieux gérées...
- rajouter une gestion des collisions sur les forces et pas seulement sur la vélocité (c'est ça qui fait sortir les boules de la table ou bloquer le jeu parfois)


Source

  • // faire avancer la simulation de t secondes
  • int run_physic(Kbillard *b, Kreal t) {
  • if (!b->nb_collision) {
  • b->total_time += t;
  • return 1; // s'il n'y a pas de boule
  • }
  • while(t > 0) { // on va avancer la simulation de t secondes
  • int i = 0;
  • Kreal breakpoint = b->collision[0]->t;
  • if (breakpoint == -1) {
  • return 1;
  • }
  • if (breakpoint > b->total_time + t) { // si ça va arriver dans plus longtemps que t alors on quitte
  • b->total_time += t;
  • actualiser_positions(b);
  • return 0;
  • }
  • t -= breakpoint - b->total_time;
  • b->total_time = breakpoint;
  • faire_avancer_boule(b,b->collision[i]->a);
  • if (b->collision[i]->type == BALL) {
  • faire_avancer_boule(b,b->collision[i]->b);
  • }
  • traiter_collision(b);
  • printf("%f\n", b->ball[0]->angular_velocity.y);
  • getchar();
  • actualiser_collisions(b,b->collision[i]->a);
  • if (b->collision[i]->type == BALL) {
  • actualiser_collisions(b,b->collision[i]->b);
  • }
  • trier_collisions(b);
  • }
  • actualiser_positions(b);
  • return 0;
  • }
// faire avancer la simulation de t secondes

int run_physic(Kbillard *b, Kreal t) {

    if (!b->nb_collision) {
        b->total_time += t;
        return 1; // s'il n'y a pas de boule
    }

    while(t > 0) { // on va avancer la simulation de t secondes

        int i = 0;
        Kreal breakpoint = b->collision[0]->t;

        if (breakpoint == -1) {
            return 1;
        }

        if (breakpoint > b->total_time + t) { // si ça va arriver dans plus longtemps que t alors on quitte
            b->total_time += t;
            actualiser_positions(b);
            return 0;
        }

        t -= breakpoint - b->total_time;
        b->total_time = breakpoint;


        faire_avancer_boule(b,b->collision[i]->a);
        if (b->collision[i]->type == BALL) {
            faire_avancer_boule(b,b->collision[i]->b);
        }

        traiter_collision(b);

        printf("%f\n", b->ball[0]->angular_velocity.y);
        getchar();

        actualiser_collisions(b,b->collision[i]->a);

        if (b->collision[i]->type == BALL) {
            actualiser_collisions(b,b->collision[i]->b);
        }
        trier_collisions(b);
    }

    actualiser_positions(b);
    return 0;
}

 Conclusion

il faut une carte graphique pour le faire fonctionner car j'utilise les shaders et les vbos !


ce n'est pas moi qui ai fait la table et la room je les ai piquées dans un jeu de billard :)


j'ai mis une version de gsl avec le .lib et le .a:
http://www.hacking.free.fr/paris8/gsl.rar


 Historique

04 janvier 2008 02:39:20 :
....

 Sources du même auteur

Source avec Zip (WIN32) PARSER DU LANGAGE C AVEC YACC
Source avec Zip Source avec une capture BIEN EXPLIQUE: EXEMPLE DE RESEAU DE NEURONE
Source avec Zip OPENGL: CLASSE CAMERA QUI GÈRE LE GLULOOKAT
Source avec Zip Source avec une capture SCREENSAVER HYPNOTISEUR
Source avec Zip LABYRINTHE EN 3D

 Sources de la même categorie

Source avec Zip Source avec une capture JEUX SERPENT par antho974
Source avec Zip Source avec une capture PENDU EN SDL par Damsou91
Source avec Zip STATE MACHINE MODIFICATION MATH BUCKHAM par billybones79
Source avec Zip AUTRE GRILLE DE SUDOKU par Eneur
Source avec Zip Source avec une capture SOKOBAN EN C POUR DÉBUTANT (VERSION AMÉLIORÉE BASÉE SUR LE T... par eustatika

 Sources en rapport avec celle ci

Source avec Zip Source avec une capture BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR U... par envi33
Source avec Zip Source avec une capture FPS EN RÉSEAU par D6R26H59P
Source avec Zip LABYRINTHE EN 3D par acx01b
Source avec Zip Source avec une capture JEU OTHELLO 3D EN OPENGL POUR WINDOWS ET LINUX EN OPEN SOURC... par chfauve59
Source avec Zip Source avec une capture TIR A L'ARC 3D par un4given

Commentaires et avis

Commentaire de karima1984 le 26/10/2008 12:58:38

salut
je travaill avec 3dsmax8,et je ss entrain de modeliser qlq objets
mais j'ais besoin de connaitre la structure d'un fichier 3ds
ou on px trouver les dimensions et la position x,y,z
.....ect.
car je vx creer un base de données pour ces objets,donc j ais besoin de les fragmenter.
voila ce que je vx,donc si tu as qlq information ou documentation
sur la structur d'un fichier 3ds et le loader
j'ais vraiment besoin
merci

 Ajouter un commentaire


Discussions en rapport avec ce code source dans le forum

Objects 3D Opengl [ par mastave ] Comment inclure dans un fenêtre OpenGl un fichier 3D DXF ou3DS??? un ptit jeu [ par BLaFarD ] euh, je viens de me pondre un petit moteur 3d de merde en opengldonc, si qlqun veut me filer des model 3d k'il a fait (sous 3dsmax si possible), bah, Moteur 3d OpenGL [ par Stormy ] Salut. Je recherche des personnes motives pour travailler sur un moteur 3d sous OpenGL. Les bases sont deja etablies (Detection de collisions, sons, m Faire un jeu (Voiture) [ par skone007 ] Voilà depuis peu le modeuleur 3D du projet nous a quitter. Nous recherchons des personnes capables de faires des voitures et des circuits en 3D. Nou OpenGl et objets 3D [ par mshn ] bonjour, est ce qu'on peux céer des objets 3D sous OpenGl, et les manipuler (animer et déplacer) par programme en utilisant un environnement de C++ ? Création d'un moteur physique pour un avion (3d) | comment calculer certaines forces [ par daneel17fr ] Bonjour,donc je voudrai développer un moteur 3d pour simuler le comportement d'un avion en l'air.il n'est pas (encore) question d'affichage 3d, mais j projet jeu voiture 3D [ par supergrey ] Bonjour a tous.Dans le cadre de notre dernier projet de développement, nous proposons au modéliste 3D un partenariat des plus simples.En effet nous vo Projet OpenGl [ par barraq ] salut,Voila j'ai un projet a faire pour ma fac, je doit réaliser tout un environement 3d en opengl .Je doit pouvoir me deplacer dans une map donnée et Projet de jeu sur quimper [ par vini123 ] ça y est après avoir fini mes études et connaissant une petite période de chômage j'en profite pour me lancer dans la programmation d'un moteur 3D. J'


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 2,902 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales