Historique des modifications - Message

Message #10695

Sujet: Test de gravité - Irrlicht + Newton


Type Date Auteur Contenu
Dernière modification 23-08-2012 15:29:47 Kaze
Ai-je le droit de t'appeler dieu ?! Non parce que ça marche et je suis content !!!!!!!

EDIT : maintenant le problème est pour integrer la physique. En clair j'ai créer un code qui utilise la classe Physics pour fabriquer deux cubes et les faire ce rentrer dedans. Voici mon code pour main.cpp (twentieth.cpp et twentieth.hpp sont les mêmes) :

main.cpp

Code c++ :


#include "main.hpp"

int main(){
    
    irr::IrrlichtDevice *device = irr::createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(640,480), false);
    irr::video::IVideoDriver *driver = device->getVideoDriver();
    irr::scene::ISceneManager *sceneManager = device->getSceneManager();
    sceneManager->addSkyBoxSceneNode(driver->getTexture("data/irrlicht2_up.bmp"),driver->getTexture("data/irrlicht2_dn.bmp"),driver->getTexture("data/irrlicht2_rt.bmp"),driver->getTexture("data/irrlicht2_lf.bmp"),driver->getTexture("data/irrlicht2_ft.bmp"),driver->getTexture("data/irrlicht2_bk.bmp"));
    
    device->setWindowCaption(L"Test de separation des fichiers physiques.");
    
    // Caméra
    irr::scene::ICameraSceneNode* camera = sceneManager->addCameraSceneNode();
    camera->setPosition(irr::core::vector3df(100,0,0));
    camera->setTarget(irr::core::vector3df(0,0,0));
    
    // Installation de la physique.
    Physics newton(device, driver, sceneManager);
    
    // Création d'un cube soumis à la gravité.
    
    irr::core::vector3df position = irr::core::vector3df(0,0,0);
    irr::core::vector3df taille = irr::core::vector3df(40,40,40);
    float masse = 100.0;
    newton.Cube(position, taille, masse);
    
    
    // Création d'un cube non soumis à la gravité.
    
    irr::core::vector3df positionS = irr::core::vector3df(0,0,0);
    irr::core::vector3df tailleS = irr::core::vector3df(40,40,40);
    float masseS = 0.0;
    //newton.Cube(positionS, tailleS, masseS);
    
    
    while(device->run())
    {
        newton.Update();
        driver->beginScene(true, true, irr::video::SColor(255,255,255,255));
        sceneManager->drawAll();
        driver->endScene();
    }
    
    device->drop();
    return 0;
}



Pour info, main.hpp ne fait que l'inclusion d'irrlicht, d'iostream et de newton.

Grâce à des commentaires, j'ai pu déduire que l'erreur était dû au fonction newton.Cube. Si vous pouviez trouver pourquoi mon code s'execute mais ne veux rien afficher et plante. Je vais continuer à chercher de mon coté pendant ce temps.
Création du message 23-08-2012 15:20:27 Kaze
Ai-je le droit de t'appeler dieu ?! Non parce que ça marche et je suis content !!!!!!!

EDIT : maintenant le problème est pour integrer la physique. En clair j'ai créer un code qui utilise la classe Physics pour fabriquer deux cubes et les faire ce rentrer dedans. Voici mon code pour main.cpp (twentieth.cpp et twentieth.hpp sont les mêmes) :

main.cpp

Code c++ :


#include "main.hpp"

int main(){
    
    irr::IrrlichtDevice *device = irr::createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(640,480), false);
    irr::video::IVideoDriver *driver = device->getVideoDriver();
    irr::scene::ISceneManager *sceneManager = device->getSceneManager();
    sceneManager->addSkyBoxSceneNode(driver->getTexture("data/irrlicht2_up.bmp"),driver->getTexture("data/irrlicht2_dn.bmp"),driver->getTexture("data/irrlicht2_rt.bmp"),driver->getTexture("data/irrlicht2_lf.bmp"),driver->getTexture("data/irrlicht2_ft.bmp"),driver->getTexture("data/irrlicht2_bk.bmp"));
    
    device->setWindowCaption(L"Test de separation des fichiers physiques.");
    
    // Caméra
    irr::scene::ICameraSceneNode* camera = sceneManager->addCameraSceneNode();
    camera->setPosition(irr::core::vector3df(100,0,0));
    camera->setTarget(irr::core::vector3df(0,0,0));
    
    // Installation de la physique.
    Physics newton(device, driver, sceneManager);
    
    // Création d'un cube soumis à la gravité.
    
    irr::core::vector3df position = irr::core::vector3df(0,0,0);
    irr::core::vector3df taille = irr::core::vector3df(40,40,40);
    float masse = 100.0;
    newton.Cube(position, taille, masse);
    
    
    // Création d'un cube non soumis à la gravité.
    
    irr::core::vector3df positionS = irr::core::vector3df(0,0,0);
    irr::core::vector3df tailleS = irr::core::vector3df(40,40,40);
    float masseS = 0.0;
    //newton.Cube(positionS, tailleS, masseS);
    
    
    while(device->run())
    {
        newton.Update();
        driver->beginScene(true, true, irr::video::SColor(255,255,255,255));
        sceneManager->drawAll();
        driver->endScene();
    }
    
    device->drop();
    return 0;
}



Pour info, main.hpp ne fait que l'inclusion d'irrlicht, d'iostream et de newton.

Grâce à des commentaires, j'ai pu déduire que l'erreur était dû au fonction newton.Cube. Si vous pouviez trouver pourquoi mon code s'execute mais ne veux rien afficher et plante. Je vais continuer à chercher de mon coté pendant ce temps.

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