#1 

16-06-2008 20:01:46

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 86.196.22.61
Courriel

Bonjour ceci est ma première routine que je poste sur le forum alors svp soyer l'indulgent

Cette classe permet ajouter des joueur/model 3d sans faire 15 ligne de code par modele est peut servir surtout pour les débutant moi je men serre dans mon MMORPG amateur.




player.hplayer.cppmain.cpp
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#ifndef DEF_PLAYER    //pour éviter les inclusion multiple
#define DEF_PLAYER

#include <irr\\irrlicht.h>           //moteur 3d
 
using namespace irr;      // namespace
using namespace core;   // namespace
using namespace scene; // namespace
using namespace video; // namespace
using namespace io;      // namespace
using namespace gui;    // namespace
 using namespace std;    // namespace

class Player
{
      public:
             Player();        // constructeur
             ~Player();     // destructeur
             
             void CreatePlayer(video::IVideoDriver* driver, scene::ISceneManager* smgr, char model[256], char Texture[256], irr::core::vector3df position, irr::core::vector3df rotation, irr::core::vector3df scale);  // pour cree le nouveau player
             void CreateBillboard(video::IVideoDriver* driver, scene::ISceneManager* smgr, char image[256], int x, int y);  // pour ajouter un billoard au dessu du player
            
             //pour cette partie je me passe de commentaire

             void setPosition(irr::core::vector3df Pposition);
             void setRotation(irr::core::vector3df Protation);
             void setFrameLoop(int debut, int fin);
                     
             IAnimatedMeshSceneNode* getPlayer();
             
             irr::core::vector3df getPosition();
             
             double getPositionX();
             double getPositionY();
             double getPositionZ();
             double getRotationX();
             double getRotationY();
             double getRotationZ();
             
             irr::core::vector3df getRotation();
             
             void Update();
             
      private:
             IAnimatedMeshSceneNode* NodePlayer;                 // le node du player
             
             irr::scene::IBillboardSceneNode *bilo;                    // le billoard
             
             irr::core::vector3df NodePlayerVector;                   // vector 3d
             irr::core::vector3df NodePlayerRotationVector;       // vector 3d
             
             video::ITexture *TXTbiloard;                                 // texture du billboard
             
             char FileModel[256];
             char FileTexture[256];
};

#endif

Liste des fonction
  • CreatePlayer
  • >pour crée un nouveau joueur


  • CreateBillboard
  • >Pour cree un billboard


  • setPosition
  • >Pour définir la position


  • setRotation
  • >Pour définir la rotation


  • setFrameLoop
  • >Pour définir les frame d'animation


  • getPlayer
  • >Pour récupéré le IAnimatedMeshSceneNode du player


  • getPosition
  • >Pour recuperer la position du player


  • getPositionX
  • getPositionY
  • getPositionZ
  • >Pour récupérer les valeur de chaque parametre de position separement


  • getRotationX
  • getRotationY
  • getRotationZ
  • >Pour recuperer les valeur de chaque parametre de rotation separement


  • getRotation
  • >Pour récupérer la rotation du player


  • Update
  • >Pour Mettre a jour la position du billboard



/!\\ N'OUBLIER PAS D'UTILISER LA FONCTION UPDATE SI VOUS UTILISER UN BILLBOARD/!\\

Bon ben voila. j'espère que sa poura aider quelque personne et tant donner que c'est ma première aide.


Hors ligne


#2 

17-06-2008 16:04:15

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 83.198.76.118
Courriel

personne?


Hors ligne


#3 

17-06-2008 21:10:46

Copland
Modérateurs
Date d'inscription:
Messages: 657
IP: 90.38.41.159
Courriel  Site web

Si y'a du monde qui pompe sans doute mais personne n'a dit merci donc je m'en charge pour eux, excuse les ils sont pas sociable big_smile.
Non sans déconner, Merci beaucoup pour ta contribution wink.


Config : I5 2400, ATI HD6870 1Go DDR5, 4Go DDR3.
Single Boot : Windows Seven.

Hors ligne


#4 

18-06-2008 06:47:05

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 83.198.113.116
Courriel

dr je penser mettre en ligne plusieurs de met classe que j'utilise dans mon mmorpg afin d'aider d autre personne


Hors ligne


#5 

18-06-2008 06:49:42

hardcpp
Membres
Avatar de hardcpp
Date d'inscription:
Messages: 229
IP: 83.198.113.116
Courriel

dsl pour le double post jai aussi des idée d'amélioration de cette classe:

  • laissez plus de souplesse de paramètre pour le billboard
  • récupérer le billboard du billboard crée dans la classe
  • ajouter une fonction pour definir la vitesse d'animation
  • possibilité d'utiliser plusieurs texture...


Hors ligne


#6 

18-06-2008 15:32:53

Magun
Administrateurs
Avatar de Magun
Date d'inscription:
Messages: 910
IP: 79.84.38.143
Courriel  Site web

sympa cette class ^^
m'ci smile

ps : pour l'améliorer rajoute la possibilité de mettre du bump, shaders, .... etc wink

edit : tien mais je n'est pas encore donner de code moi aussi big_smile .... a mais oui ses vrai j'avais oublier .... ses pas fini =_=

Hors ligne


#7 

18-06-2008 19:29:25

maitrelame12545
Membres
Avatar de maitrelame12545
Date d'inscription:
Messages: 51
IP: 75.56.198.36
Courriel

Tu pourrais ne pas utiliser la fonction CreatePlayer en utilisant le constructeur car comme je t'ai dis une classe qui a besoin d'une autre fonction que le constructeur pour être initialisé est une classe mal fichu ^^ .
Dans le destructeur tu peux détruire tes pointeurs pour ne pas avoir de problème de fuite.
Tes chaines de char crée un pointeur et alloue dynamiquement un tableau de la même taille que le paramètre texture passé, tu gagnes ainsi en mémoire et si il y a dépassement tu n'aura pas de blem d'injection...
Les namespaces devant les fonctions et les variables sont inutiles car elles sont déclarés en haut de ton fichier.
Et pour finir utilise les inlines pour les Get tu gagneras ainsi en performance, je sais plus si tout les membres d'une classe sont inline ou seulement celle qui sont déclaré dans le header...

Bref voila ^^
Sinon c'est très gentil de passé ton travail.


Codeur elewendyl

Hors ligne


#8 

19-06-2008 01:23:19

noals
Membres
Date d'inscription:
Messages: 34
IP: 62.35.19.87
Courriel

merci, ça me servira surement plus tard pour faire mes propres classes.


Hors ligne


#9 

24-06-2008 14:46:45

BooBs
Membres
Date d'inscription:
Messages: 8
IP: 41.201.215.104
Courriel

thnx man c du bon boulot


Hors ligne


#10 

21-02-2009 16:34:28

NeoCrysis
Membres
Date d'inscription:
Messages: 11
IP: 82.237.255.250
Courriel

Merci, ça à l'air très interessant smile


Hors ligne


Options Liens officiels Caractéristiques Statistiques Communauté
Préférences cookies
Corrections
irrlicht
irrklang
irredit
irrxml
Propulsé par Django
xhtml 1.0
css 2.1
884 membres
1440 sujets
11337 messages
Dernier membre inscrit: Saidov17
119 invités en ligne
membre en ligne: -
RSS Feed