begin process at 2012 05 30 00:33:47
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C++ & C++ .NET

 > 

Linux

 > 

OpenGL

 > 

[Opengl] Labyrinthe problème


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

[Opengl] Labyrinthe problème

dimanche 12 avril 2009 à 21:57:30 | [Opengl] Labyrinthe problème

pspflashsystem

Salut tout le monde,

j'ai un problème qui me "gave" (excusez moi pour ce mot un peu familier):
En effet, je souhaite gérer les collisions dans mon labyrinthe (non mon jeu ne sera pas dans le concours :p) mais je n'y arrive que partiellement.Sur 2 côtés de mon mur (sous forme de carré)les collisions marchent impec mais sur les 2 autres les collisions fonctionnent à moitié :S: la caméra etre dans le mu pour être bloqué à l'intérieur (c'est pas top). Je tiens à préciser que mon labyrinthe est chargé depuis un fichier texte, par exemple (1 étant les murs et 0 espace libre):

[CODE]00000000000
00000000000
10000000
1111100001
0010100100111
0010000100000
001111100111
0000001111[/CODE]
Après avoir récité tout mon problème je vous fourni mes fonctions qui gère la caméra (je n'utilise pas de caméra freefly car ne connaissant pas assez bien le c++ et ne voulant pas m'y mettre à ce language):
[CODE]

void Camera(float positionx, float positiony, float positionz, float rotationx, float rotationy, float rotationz) {//gère la caméra qui est fixe et fais des translations et rotations sur le décor
     glMatrixMode(GL_MODELVIEW);
     glLoadIdentity();
     glRotatef(rotationx, 1.0f, 0.0f, 0.0f);
     glRotatef(rotationy, 0.0f, 1.0f, 0.0f);
     glRotatef(rotationz, 0.0f, 0.0f, 1.0f);
     glTranslatef(positionx, positiony, positionz);
}

void checkMur(Map*map, CameraGestion*camera) {//on vérifie si la caméra a atteint un mur
     map->positioni = (camera->posz)/3.0f;//on calcule la position de la caméra sur z suivant la map (on divise par 3 car chaque mur a une taille de 3*3*3)    
     map->positionj = (-camera->posx)/3.0f;
    
     if(map->load[(int)map->positioni][(int)map->positionj] == 0) {//si il n'y a pas de mur on enregistre la position de la caméra pour le réutiliser après
         camera->oldposx = camera->posx;
         camera->oldposy = camera->posy;
         camera->oldposz = camera->posz;
     }
     else if(map->load[(int)map->positioni][(int)map->positionj] == 1) {//si c'est un mur on restaure la position de la caméra
         camera->posx = camera->oldposx;
         camera->posy = camera->oldposy;
         camera->posz = camera->oldposz;
     }
}[/CODE]

Voilà si vous pouviez m'aider s'il vous plait, je vous en serais éternellement reconnaissant :) :)

Merci encore;


Cette discussion est classée dans : caméra, camera, map, float, 0f


Répondre à ce message

Sujets en rapport avec ce message

D3DXMatrixTranslation [ par niketou ] Salut a tous.Voila je fais un moteur 3d en dx9.Voici un bout de code,en fait je devrai voir un objet 3d mais je ne vois rien.L'objet et sa texture se map [ par taieb84 ] salut j'ai une classe caisse class caisse{            float val;        int nbr;            public:            bool exist(float);    void ajouter(floa Texture transparente [ par F0ra ] Bonjour,Je voudrais aff STL map et plusieurs types de valeurs ? [ par RV2931 ] Bonjour à tous,J'ai découvert récemment les STL C++ car je souhaite retrouver un outils permettant de retrouver la puissance et la flexibilité des tab Problème dans un code [ par ichigoZ710 ] Bonjour à tous,J'ai une méthode qui calcule la distance entre 2points. le but étant dans un triangle de type isocèle d'arrivé à calculer la base, un d STL : Vector, Deque ou Map ? [ par jul39dole ] Bonjour,Je ne sais pas trop quoi choisir comme conteneur... Voici mon problème : j'utilise un vector, chaque case du vector contient un set. Le problè Probleme de cosinus [ par Michou69004 ] Bonjour a tous. J'ai un petit probleme avec mon code. pour effectuer une rotation , j'utilise ma fonction my_rota et je suppose qu'il y a un probleme AIDE SVP [ par kakitn ] comment puis je verifier si une donnée entrée au clavier est du type float ou pas? par expl le prog demande d'entrer un float, l'utilisateur peut tape Conversion Float -> Int [ par DroledeBx ] Bonjour,J'ai un problème de conversion entre un float et un entier.Je récupère dans un fichier, sous le type float, une valeur décimale, trois chiffre Surdefinition de fonction [ par samaie ] float test(int i, int j) { return (float) i+j; } float test(float i, float j) <p align="le


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

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 : 0,390 sec (4)

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