Accueil > > > Envi3D/Personnage.h
BASE/MOTEUR 3D EN QT/OPENGL (COMPLET ET FONCTIONNEL!) POUR UN TRÈS PROCHAIN JEU 3D
Envi3D/Personnage.h
Informations sur ce code source
Bonjour à tous,
Voici un moteur 3D gérant les textures tous formats (supporté par QT) et contient un loader de fichier .obj que j'ai écrit personnellement.
Il permet d'illustrer l'utilisation de deux QGLWidget en même temps et comment se servir de
Fichier : Envi3D/Personnage.h
Nombre de lignes : 96 lignes
Afficher ce fichier en plein écran
-
- /*
- Auteur : Xcxl
- Date : lun. aout 4 2008
- Role : Gere les joueurs
-
- C'est ici que l'on gère le joueur, son point de vue, la direction de son regard, son deplacement
- avec tous les test de collision, et que l'on gère l'arme (charge/munitions)
-
- */
-
- #ifndef PERSONNAGE_H
- #define PERSONNAGE_H
-
- #include <QString>
-
- #include "Coord3D.h"
- #include "Objets.h"
-
-
- class Personnage : public Objet //Le personnage, qui herite de la classe "Objet" (beh oui cest un objet aussi...)
- {
- public:
- Personnage(bool visible, Coord3D position, Coord3D cibleCamera, Coord3D orientation, bool possedeCollisionBox, Coord3D diagonaleCollisionBox, bool rotation90degBoundBox, float vitesseJoueur = 0, float sensivity = 0, QString fichierMesh = "", QString fichierTexture = "", bool isTextureUVmap = false);
-
- void Animate (Objet *listeObjet[], int nombreObjets, int tailleTerrainX, int tailleTerrainY); //fonction la plus utilise, elle est appele a chaques fois que l'on rafraichit l'image (pour deplacer la camera par ex)
- bool test_Collision (Coord3D positionObjet1, Coord3D boxObjet1, Coord3D positionObjet2, Coord3D boxObjet2);
-
- void mouvementSouris (int new_x, int new_y);
- void deplacement (int numDirection, bool valeur);
-
- bool gestionArme(Objet *listeObjets[], int nombreObjets);
- int getAngleRotationArme();
- void setToucheArmeActive(bool statut);
- bool getStatutTir();
- Coord3D getCoordOrigineTir();
- Coord3D getCoordVecteurTir();
- int getChargeArme();
- int getNiveauMunitions();
-
-
- void setVitesse(float speed);
- float getVitesse();
- Coord3D getCibleCamera();
-
-
- private:
- void ConversionAnglesVersVecteurs();
- void ConversionVecteursVersAngles();
- void DeterminerConstanteSaut(float altitudeInitiale, float altitudeVoulu);
-
- float _vitesse;
- float _sensivity;
- bool _collision;
-
-
- bool _armeActive;
- bool _toucheArmeActive;
- bool _tir;
- int _etapeTir;
- Coord3D _origineTir;
- Coord3D _vecteurTir;
-
- int _munitions;
- float _rotationArme;
- float _rotationSupplementaire;
- bool donneeArmeModifie;
- bool soundPlayed;
- //QSound *soundLoadArme;
- //QSound *soundTirArme;
-
-
- bool Mouvement[6];
- bool joueurAccroupi;
-
- Coord3D _cibleCamera; //contient les coordonnees du point que le joueur regarde
- Coord3D _forward; //contient les coord du !vecteur! de la direction que le joueur regarde, le calcul entre _targetJoueur et _forward sont effectuee par les fonctions ConversionAnglesVersVecteurs() et ConversionVecteursVersAngles()
-
- Coord3D _up; //Vecteur vertical du monde, utilisé dans les calculs
- Coord3D _left; //Vecteur qui montre la gauche (orthogonal au sens de deplacement et au vecteur up)
-
- float _theta;
- float _phi;
-
- struct GestionSaut //Toutes les donnees qui influe le saut
- {float acceleration; float vitesseBase;
- float altitude ; float altitudeInitial; float altitudeVoulu; int step;
- float altitudePrecedente; bool enCollision;};
- GestionSaut saut;
-
- };
-
-
-
- #endif // PERSONNAGE_H
|