Historique des modifications - Message

Message #10708

Sujet: Test de gravité - Irrlicht + Newton


Type Date Auteur Contenu
Création du message 24-08-2012 06:04:50 johnplayer
Normal! Quand est-ce que tu appelles Physics::OnEvent?
1/ Physics ne dérive pas de IEventReceiver!
2/ Physics n'est pas le IEventReceiver attaché au device!

Créé un eventReceiver dans la partie de ton code qui contient ce qui appartient à Irrlicht.

Je ferais comme ça :

class Engine : public IEventReceiver
{
// classe principale contenant ce qui concerne Irrlicht
// contient aussi les pointeurs vers tes autres classes comme Physics

Engine();
virtual~Engine();

//! contient le code pour les événements
virtual bool OnEvent();

//! créé la fenetre et la classe Physique (instance de Physics)
bool init();

//! boucle de rendu
void run();

//! Quitte le jeu (quitte proprement irrlicht, et détruit l'instance Physique)
u32 Quit();

}

class Physics
{
// contient ce qui concerne Newton
}

Physics ne reçoit des infos appartenant a engine QUE par arguments (dans ces fonctions ou constructeurs)
Engine a un pointeur sur Physics pour faire appel à ses fonctions, ainsi que le créé et le détruire.

Le code sera déjà mieux structuré. Parce que tu créé une classe afin de séparer Irrlicht et Newton et ensuite tu mets du code Irrlicht (OnEvent) dans le code Newton. Garde à l'esprit que la base de ton code est Irrlicht donc c'est lui qui gère l'intégration des autres parties (newton, irrklang...). Et que les autres parties sont autonomes! Newton fait des "trucs Newtonien" et Irrlicht appelle ces "trucs Newtonien". Si tu gardes cette optique, tu devrais pouvoir faire un code cohérent, sinon tu te seras compliqué la vie pour rien puisque ton code équivaudra à avoir tout codé dans le "main".

Ceci dit, je dis ça pour t'aider. Après libre à toi de le suivre ou non. Mais saches qu'il est plus facile de debugger un code bien structuré et que moi ainsi que les autres sur le forum t'aideront plus facilement aussi.

Retour

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
160 invités en ligne
membre en ligne: -
RSS Feed