Historique des modifications - Message

Message #10711

Sujet: Test de gravité - Irrlicht + Newton


Type Date Auteur Contenu
Dernière modification 24-08-2012 16:24:55 Kaze
J'au une autre erreur :

evenement.hpp

Code c++ :


#ifndef EVENEMENT_HPP
#define EVENEMENT_HPP

#include "main.hpp"
#include "physics.hpp"

class Evenement : public irr::IEventReceiver
{
    public :
    
    Evenement();
    void Init();
    int Run();
    
    protected :
              
    virtual bool OnEvent(const irr::SEvent& event);
    
    private :
    
    irr::IrrlichtDevice* eventDevice;
    irr::video::IVideoDriver* eventDriver;
    irr::scene::ISceneManager* eventSceneManager;
    
    Physics newton;
    
};

#endif


evenement.cpp :

Code c++ :


#include "evenement.hpp"

Evenement::Evenement(){}

void Evenement::Init(){
    
    eventDevice = irr::createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(640,480), false);
    eventDriver = eventDevice->getVideoDriver();
    eventSceneManager = eventDevice->getSceneManager();
    eventSceneManager->addSkyBoxSceneNode(eventDriver->getTexture("data/irrlicht2_up.bmp"),eventDriver->getTexture("data/irrlicht2_dn.bmp"),eventDriver->getTexture("data/irrlicht2_rt.bmp"),eventDriver->getTexture("data/irrlicht2_lf.bmp"),eventDriver->getTexture("data/irrlicht2_ft.bmp"),eventDriver->getTexture("data/irrlicht2_bk.bmp"));
    
    eventDevice->setWindowCaption(L"Test sur les evenements lies a la physique.");
    
    // Caméra
    irr::scene::ICameraSceneNode* camera = eventSceneManager->addCameraSceneNode();
    camera->setPosition(irr::core::vector3df(200,100,0));
    camera->setTarget(irr::core::vector3df(0,0,0));
    
    // Installation de la physique.
    Physics newton(eventDevice, eventDriver, eventSceneManager);
    newton.Sol();
    
    // Création d'un cube soumis à la gravité.
    irr::core::vector3df positionA = irr::core::vector3df(0,50,0);
    irr::core::vector3df tailleA = irr::core::vector3df(40,40,40);
    float masseA = 100.0;
    newton.Cube(positionA, tailleA, masseA);
    
    // Création d'un cube soumis à la gravité.
    irr::core::vector3df positionB = irr::core::vector3df(0,0,25);
    irr::core::vector3df tailleB = irr::core::vector3df(40,40,40);
    float masseB = 100.0;
    newton.Cube(positionB, tailleB, masseB);
    
    // Création d'un cube controler.
    irr::core::vector3df positionC = irr::core::vector3df(-50,-79,0);
    float masseC = 100.0;
    newton.Player(positionC, masseC);
    
    eventDevice->setEventReceiver(this);
}

int Evenement::Run(){
    while (eventDevice->run())
    {
        newton.Update();
        
        eventDriver->beginScene(true, true, irr::video::SColor(255,255,255,255));
        eventSceneManager->drawAll();
        eventDriver->endScene();
    }
    eventDevice->drop();
	return 0;
}

bool Evenement::OnEvent(const irr::SEvent& event){
     
    if(event.EventType == irr::EET_MOUSE_INPUT_EVENT)
	{
        if(event.MouseInput.Event == irr::EMIE_LMOUSE_PRESSED_DOWN)
        {
            newton.Cube(irr::core::vector3df(0,50,0), irr::core::vector3df(40,40,40), 100.0);
		    return true;
        }
	}
    return false;
}



Je n'arrive pas à transmettre mon monde physique aux différentes méthodes de ma classe Evenement. Je voudrais pouvoir utiliser "newton" comme j'utilise "eventDevice", c'est pourquoi j'ai utilisé Physics newton dans mon .hpp mais il ne veux pas.

Il ne me dit que : evenement.hpp `Physics' does not name a type
Création du message 24-08-2012 16:24:20 Kaze
J'au une autre erreur :

evenement.hpp

Code c++ :


#ifndef EVENEMENT_HPP
#define EVENEMENT_HPP

#include "main.hpp"
#include "physics.hpp"

class Evenement : public irr::IEventReceiver
{
    public :
    
    Evenement();
    void Init();
    int Run();
    
    protected :
              
    virtual bool OnEvent(const irr::SEvent& event);
    
    private :
    
    irr::IrrlichtDevice* eventDevice;
    irr::video::IVideoDriver* eventDriver;
    irr::scene::ISceneManager* eventSceneManager;
    
    Physics newton;
    
};

#endif


evenement.cpp :

Code c++ :


#include "evenement.hpp"

Evenement::Evenement(){}

void Evenement::Init(){
    
    eventDevice = irr::createDevice(irr::video::EDT_OPENGL, irr::core::dimension2d<irr::u32>(640,480), false);
    eventDriver = eventDevice->getVideoDriver();
    eventSceneManager = eventDevice->getSceneManager();
    eventSceneManager->addSkyBoxSceneNode(eventDriver->getTexture("data/irrlicht2_up.bmp"),eventDriver->getTexture("data/irrlicht2_dn.bmp"),eventDriver->getTexture("data/irrlicht2_rt.bmp"),eventDriver->getTexture("data/irrlicht2_lf.bmp"),eventDriver->getTexture("data/irrlicht2_ft.bmp"),eventDriver->getTexture("data/irrlicht2_bk.bmp"));
    
    eventDevice->setWindowCaption(L"Test sur les evenements lies a la physique.");
    
    // Caméra
    irr::scene::ICameraSceneNode* camera = eventSceneManager->addCameraSceneNode();
    camera->setPosition(irr::core::vector3df(200,100,0));
    camera->setTarget(irr::core::vector3df(0,0,0));
    
    // Installation de la physique.
    Physics newton(eventDevice, eventDriver, eventSceneManager);
    newton.Sol();
    
    // Création d'un cube soumis à la gravité.
    irr::core::vector3df positionA = irr::core::vector3df(0,50,0);
    irr::core::vector3df tailleA = irr::core::vector3df(40,40,40);
    float masseA = 100.0;
    newton.Cube(positionA, tailleA, masseA);
    
    // Création d'un cube soumis à la gravité.
    irr::core::vector3df positionB = irr::core::vector3df(0,0,25);
    irr::core::vector3df tailleB = irr::core::vector3df(40,40,40);
    float masseB = 100.0;
    newton.Cube(positionB, tailleB, masseB);
    
    // Création d'un cube controler.
    irr::core::vector3df positionC = irr::core::vector3df(-50,-79,0);
    float masseC = 100.0;
    newton.Player(positionC, masseC);
    
    eventDevice->setEventReceiver(this);
}

int Evenement::Run(){
    while (eventDevice->run())
    {
        newton.Update();
        
        eventDriver->beginScene(true, true, irr::video::SColor(255,255,255,255));
        eventSceneManager->drawAll();
        eventDriver->endScene();
    }
    eventDevice->drop();
	return 0;
}

bool Evenement::OnEvent(const irr::SEvent& event){
     
    if(event.EventType == irr::EET_MOUSE_INPUT_EVENT)
	{
        if(event.MouseInput.Event == irr::EMIE_LMOUSE_PRESSED_DOWN)
        {
            newton.Cube(irr::core::vector3df(0,50,0), irr::core::vector3df(40,40,40), 100.0);
		    return true;
        }
	}
    return false;
}



Je n'arrive pas à transmettre mon monde physique aux différentes méthodes de ma classe Evenement. Je voudrais pouvoir utiliser "newton" comme j'utilise "eventDevice", c'est pourquoi j'ai utilisé Physics newton dans mon .hpp mais il ne veux pas.

Il ne me dit que : evenement.hpp `Physics' does not name a type

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