begin process at 2012 05 28 10:49:44
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

OpenGL

 > 

Casse Brique Besoin URGENT d'aide


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Casse Brique Besoin URGENT d'aide

vendredi 3 juin 2005 à 16:44:18 | Casse Brique Besoin URGENT d'aide

paulina82

Bonjour
Je dois programmer un casse brique en opengl,mais je n'y comprend rien.Est ce que vous avez des exemples de programmation pour que je puisse y arriver s'il vous plait.
C'est très urgent,alors s'il vous plait aidez moi
Je vous remercie d'avance


samedi 4 juin 2005 à 09:51:35 | Re : Casse Brique Besoin URGENT d'aide

Pamaury

Bonjour,
tout d'abord qu'est-ce que tu ne comprend pas:
->le casse-brique ?
->OpenGL ?
->les deux ?

Si c'est un problème avec OpenGL, il y a sur internet plein de tuto sur OpenGL en 2D et comment déciner des carré(avec ou sans texture) .

Si c'est un problème de casse-brique voilà une ébauche en C++

->Une classe "Ball":
 -Vecteur position
 -Vecteur direction
 -Entier rayon

->Une classe "Brick"
 -Boolean exists
 -Vecteur position(en haut gauche)
 -Vecteur taille(longeur/largeur)
 -virtual Callback "OnCollide"

->Une classe "MyBrick" dérivée de "Brick" qui représente la brique que l'on déplace
 -Callback "OnTouch"

Maintenant la boucle du moteur(en gros)

#deifne PLAY_BRICK 20

Ball ball;
Brick **bricks; // allocation dynamique à cause de la classe dérivée
int points;
unsigned long elapsed;

... GameLoop...
{
   InitOpenGL();
   InitGame();

   elapsed=MyGetElapsedTime();
   
   while(!EndGame())
   {
        if(!OnPause())
        {
            if(BallOutOfBounds())
            {
                 // replacer la balle, mettre sur pause...
                 continue;
             }
             
             for(int i=0;i<(PLAY_BRICK+1);i++)
            {
                 if(BallCollide(brick[i])
                   brick[i]->OnTouch(); // le callback fera l'action appropriée:
                   // si c'est la brique spécial il renvoit la balle sinon il se détruit .
                   // grâce à ce système on peut créer des brique spécial(bonus, + de vie...)
             }
         }

         unsigned long elapsed2=MyGetElapsedTime();
         BallUpdate(float(elapsed2-elapsed)/1000);
         elapsed=elapsed2;
         Display();
    }
    Release();
    return ...;
}


voilà maintenant il faut implémenter la collision entre un rectangle et un cercle:
test avec chaque côté de la distance entre le côté et le centre du cercle: si <= à rayon cercle: collision !!!

il faut implémenter les classe et programmer les callback pour faire l'action convenu .

Si tu programme en C, rempplacer les classe par des structrure: la classe MyBrick disparait et tu fais pointer la fonction de callback de une brique sur une fonction spéciale:

void MyBrickTouch(void); // comportement brique spéciale
void BrickTouch(void);// comportement par défaut

typedef void (*CallbackFunc)(void);

typedef struct _brick
{
    Vector pos,size;
    CallbackFunc callback;
    .....
}brick;

Voilà si tu as encore des problème n'hésite pas .

A m a u r y
vendredi 10 juin 2005 à 15:10:00 | Re : Casse Brique Besoin URGENT d'aide

paulina82

Salut!
Merci pour ta réponse .En fait, mon problème c'est opengl,est ce que tu n'aurais pas un code compréhensible pour les débutant s'il te plait ,tu me sauverai la vie car c'est une question de vie ou de mort.
A bientot j'espère     

vendredi 10 juin 2005 à 18:31:05 | Re : Casse Brique Besoin URGENT d'aide

paulina82

Bonjour,
Est ce que quelqu'un pourrait me dire comment résoudre mon problème:j'ai écris une fonction keyboard pour que la barre de mon casse brique se déplace,mais en appuyant les touches,rien ne bouge . Est ce que quelqu'un pourrait me dire d'où provient l'erreur?
Merci beaucoup davance



vendredi 10 juin 2005 à 18:33:18 | Re : Casse Brique Besoin URGENT d'aide

paulina82

voila le code qui ne fonctionne pas (je n'ai recopié que ce qui avait en rapport avec les touches du clavier)
float x_b=0.0;
float y_b=0.0;


static void keyboard(unsigned char k,int x,int y){
  switch(k){
    case 'q':
    case 'Q':
    case 27:
     glutLeaveMainLoop();
 break;
  case 'd':  x_b-=0.2;
 break;
case 'm': x_b+=0.2;
    break;
  }
}

void barre(){
  glColor3f(1.0,1.0,1.0);
 glBegin(GL_POLYGON);
  glVertex2f(-0.25,-0.8);
  glVertex2f(0.25,-0.8);
  glVertex2f(0.25,-0.9);
  glVertex2f(-0.25,-0.9);
  glEnd();
    }


static void display(void){
  glClear(GL_COLOR_BUFFER_BIT);
  glCallList(CARRE);
  glTranslatef(x_b,y_b,0.0);
  barre();
  glLoadIdentity();
  glColor3f(1.0,0.0,1.0);
  glTranslatef(0.0 ,-0.75,0.0);
  glutSolidSphere(0.05,50,50);
  glFlush();

  }







Cette discussion est classée dans : aide, urgent, plait, casse, brique


Répondre à ce message

Sujets en rapport avec ce message

BESOIN URGENT D'AIDE !!!! SVP [ par SidSilver ] Bonjour,J'aimerai trouver un moyen d'ajouter une piece jointe aux mail envoyés par mon appli :cf http://www.cppfrance.com/article.aspx?Val=819Pourrais PrintScreen URGENT !!! [ par bily ] Vegeta :-)Bonjours, les colleguesvoila mon blame,je vourdais faire un Printscreen de l'ecranta l'aide d'un programme !ya t'il un executable dans windo BESOIN D'AIDE URGENT VC\+\+ [ par capnader ] Salut,Je suis un étudiant en génie informatique et je prépare un projet de find'étude qui consiste a développer une application qui génère automatique casse brique pb collision [ par mat74 ] voila je suis en train de faire un casse brique et je n'arrive pas a gerer les collisions entre les briques et la balle "correctement" .je connais le URGENT Besoin d'aide base de données avec borland [ par cocanash ] Salut, je travaille actuellement sur un logiciel de gestion de codes barres ,en fait je stocke tout les codes barres dans une base de données de type A L'AIDE URGENT, recuperation caractere dans chaine de caractere d'un fichier [ par sisteroots ] sisterootsBonjour, et merci d'avance:Voilà j'ai des fichiers à controler du type :UNB+UNOA:1+0941A43003987A+0941A430039878+030312:1714+00000000000007' besoin urgent d'aide [ par stevo4 ] G vraiment 1 gros prob, je veux faire bouger 1 balle et G besoin de creer 1 base de tps ss visual C, apparement ce serai avec la fonction TTimer mais URGENT BESOIN D AIDE [ par ranouf ] voila faites une petite boucle de ce qui suit le pb c que une fois le premier film creer, le deuxieme le titre du film je peux pas le rentrer comment URGENT!! Besoin d'aide pour des onglets!! en VC++ [ par JazzBerri ] j'ai crée une boite de dialogue qui permet a l'utilisateur de choisir le nombre de filtre qu'il souhaite configurer ( 4 filtres max).Une fois le nombr Besoin d'aide urgent sur affichage boite de dialogue [ par mista ] mistaSalut, je réitere ma question...Est-ce que quelqu'un pourrais m'aider pour que je puisse afficher un foutu boite de dialogue, via un programme en


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

Photothèque

A découvrir



 
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 : 9,188 sec (4)

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