IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Ogre Discussion :

Faire disparaitre des objets


Sujet :

Ogre

  1. #1
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut Faire disparaitre des objets
    Bonjour,
    je travaille actuellement sur un projet utilisant Ogre3d, Visual studio 2005 et 3dsmax.
    Mon probleme c'est la gestion de collision.
    J ai 2 objets qui bougent et qui entrent en collision.la moindre des choses c ke des flammes apparaissent.
    Malheuresement, lors de l'exécution, ces flammes apparaissent depuis le début dans ma scene!
    Je pense avoir besoin d'un frame ou un truc du genre pour la gestion du temps?!!

    Toute aide serait vraiment d'une grande utilité!

  2. #2
    Membre éprouvé
    Avatar de Ange_blond
    Homme Profil pro
    Ingénieur développement en 3D temps réel
    Inscrit en
    Mars 2007
    Messages
    902
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement en 3D temps réel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Points : 1 179
    Points
    1 179
    Par défaut
    La je crois que c'est juste un soucis d'implémentation... de mettre le code au bon endroit pr qu'il s'execute au bon moment...

    Juste comme ça là je doute qu'on puisse t'aider...

  3. #3
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Merci!
    je vais quand meme mieux t'expliquer au cas ou!.
    j'ai une voiture, une grenade et des flammes!
    au debut de ma scene, je veux que la voiture bouge et que la grenade soit lancée : chose faite.
    après, a un point(frame) précis de ma scene, la voiture doit sauter!et des flammes doivent apparaitre!
    malheuresement les flammes sont existantes depuis le début au point(frame) de colliision!
    quel est le bout de code pour faire appaitre ces flammes au moment de la collision,non durant toute la durée de la scene!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 366
    Points : 440
    Points
    440
    Par défaut
    reponse "sans" connaitre Ogre.

    -Ne pas creer le system de particule des le debut

    -Creer un FrameListener et l enregistrer : dans ce frame listener , ut verifie la position de la voiture , et si ca coincide avec ton point particulier , tu creer le system de particule

  5. #5
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    salut.
    j'ai essayé pas mal de possibilité.la j'ai la tête qui tourne.
    voila la partie de mon code ou g besoin de faire apparaitre les flammes au bon moment!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
     
    SceneNode *snode,*fnode;
    AnimationState* mOgreAnimState = 0;
     
     
    class TestFrameListener : public ExampleFrameListener
    {
    protected:
         SceneNode* mFountainNode;
    public:
     
        TestFrameListener (RenderWindow* win, Camera* cam,SceneNode* fountainNode) 
            : ExampleFrameListener( win, cam )
        {
            mFountainNode = fountainNode;
        }
     
     
        bool frameStarted( const FrameEvent& evt )
        {
     
            if( ExampleFrameListener::frameStarted( evt ) == false )
            return false;
     
            mOgreAnimState->addTime(evt.timeSinceLastFrame);
            return true;
        }
        ~VolumeTexFrameListener(){}
    };
     
     
     
    class TestApplication : public ExampleApplication
    {
     
    public:
        TestApplication() {
     
        }
     
     
    protected:
        SceneNode* mFountainNode;
     
     
        virtual void createFrameListener(void)
        {
            mFrameListener= new VolumeTexFrameListener(mWindow, mCamera,mFountainNode);
            mFrameListener->showDebugOverlay(true);
            mRoot->addFrameListener(mFrameListener);
     
        }
     
     
        virtual void createViewports(void) { }
        void createCamera(void){}
        // Just override the mandatory create scene method
        void createScene(void)
        {
        Entity* mEntity;
     
    // creat a particule system
        ParticleSystem* pSys2 = mSceneMgr->createParticleSystem("fountain1", 
                "Examples/Smoke");
     
     
     
        // My Object1
        SceneNode *nd = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3
     
    (x1,y1,z1));
     
        // Load Object1
        Entity* head = mSceneMgr->createEntity("object1", "object1.mesh");        
        nd->attachObject(head);
     
        // node root for object2
            SceneNode *nd2 = mSceneMgr->getRootSceneNode()->createChildSceneNode
     
    (Vector3(x2,y2,z2));
        // Load object2
        Entity* head2 = mSceneMgr->createEntity("object2", "object2.mesh");
        nd2->attachObject(head2);
        nd2->pitch( Degree( 270 ));
     
     
            Animation* anim = mSceneMgr->createAnimation("aaa",10);
     
            // Spline it for nice curves
            anim->setInterpolationMode(Animation::IM_SPLINE);
     
            // Create a track to animate the camera's node
     
        //object1
            NodeAnimationTrack* track = anim->createNodeTrack(0, nd);
     
        //object2
        NodeAnimationTrack* track2 = anim->createNodeTrack(1, nd2);
     
            // Setup keyframes
        TransformKeyFrame* key = track->createNodeKeyFrame(0);
        TransformKeyFrame* key2 = track2->createNodeKeyFrame(0);
     
        key = track->createNodeKeyFrame(2);
        //ici on fait notre code pr le faire bouger
     
     
        key2 = track2->createNodeKeyFrame(2);
              //ici on fait notre code pr le faire bouger
     
            key = track->createNodeKeyFrame(6);
            //ici on fait notre code pr le faire bouger
     
            key2 = track2->createNodeKeyFrame(6);
        //ici on fait notre code pr le faire bouger
     
         /*Create shared node for fountains*/
        SceneNode *fNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( Vector3
     
    (x3,y3,z3)); // normalement on donne les coordonnés de point de contact de l'objet1 et 2     
     
        //(point de collision) à la position de la flamme.
        fNode->attachObject( pSys2 );   
     
     
     
            // Create a new animation state to track this
            mOgreAnimState = mSceneMgr->createAnimationState("aaa");
            mOgreAnimState->setEnabled(true);
     
     
        }
     
     
    };

    // fin du code


    Toute aide serait d'une aide précieuse.
    merci!!!!

  6. #6
    Membre confirmé
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Points : 641
    Points
    641
    Par défaut
    balise code
    je te suggere une solution "moche" mais facile.Tu met un
    bool Flame;
    qui dit si tes flames sont crées ou pas.
    Tu ne créer pas tes flammes des le début(et flame = false).Quand ta condition pour que les flammes apparaissent est verifié:
    if(flame==false)
    {
    créer tes flammes;
    flame = true;
    }

  7. #7
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Bonsoir, j'ai beau essayé ce ke tu m'as dis, mais en vain.
    la compilation est bonne.
    mais lors de l'exécution, les flammes n'apparaissent plus!ni au début(ce ki est bonne nouvelle :-) ni à la fin)

    Comment faire?

  8. #8
    Membre confirmé
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Points : 641
    Points
    641
    Par défaut
    Quelle est ton code qui s'occupe de savoir quand la flamme doit apparaitre?(l'a tu mis dans frameStarted?)

    Ps:essai de ne pas trop utiliser de langage SMS genre ki et ke,personnellement sa ne me dérange pas,mais d'autre sont plus sensible sur ce point

  9. #9
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Salut.
    desolé pour le retard.
    j'étais un peu débordé ces derniers temps.
    j'ai toujours le meme problème lors de l'apparition des flammes.
    ci joint mon code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
    180
    181
    182
    183
    184
    185
    186
    187
    188
    189
    190
    191
    192
    193
    194
    195
    196
    197
    198
    199
    200
    201
    202
    203
    204
    205
    206
    207
    208
    209
    210
    211
    212
    213
    214
    215
    216
    217
    218
    219
    220
    221
    222
    223
    224
    225
    226
    227
    228
    229
    230
    231
    232
    233
    234
    235
    236
    237
    238
    239
    240
    241
    242
    243
    244
    245
    246
    247
    248
    249
    250
    251
    252
    253
    254
    255
    256
    257
    258
    259
    260
    261
    262
    263
    264
    265
    266
    267
    268
    269
    270
    271
    272
    273
    274
    275
    276
    277
    278
    279
    280
    281
    282
    283
    284
    285
    286
    287
    288
    289
    290
    291
    292
    293
    294
    295
    296
    297
    298
    299
    300
    301
    302
    303
    304
    305
    306
    307
    308
    309
    310
    311
    312
    313
    314
    315
    316
    317
    318
    319
    320
    321
    322
    323
    324
    325
    326
    327
    328
    329
    330
    331
    332
    333
    334
    335
    336
    337
    338
    339
    340
    341
    342
    343
    344
    345
    346
    347
    348
    349
    350
    351
    352
    353
    354
    355
    356
    357
    358
     
    #include "ExampleApplication.h"
    #include <OgreTexture.h>
    #include <OgreHardwarePixelBuffer.h>
    #include <OgreTextureManager.h>
    #include <OgreLogManager.h>
    #include <sstream>
    //#include "OgreConfigFile.h"
     
    using namespace OIS;
     
    TexturePtr ptex;
    Overlay* overlay;
    //float xtime = 0.0f;
    SceneNode *snode,*fnode;
    AnimationState* mOgreAnimState = 0;
     
    bool flamme=false;
     
    class VolumeTexFrameListener : public ExampleFrameListener
    {
    protected:
    	 SceneNode* mFountainNode;
    public:
     
        VolumeTexFrameListener(RenderWindow* win, Camera* cam,SceneNode* fountainNode) 
    		: ExampleFrameListener( win, cam )
        {
    		mFountainNode = fountainNode;
        }
     
     
        bool frameStarted( const FrameEvent& evt )
        {
     
            if( ExampleFrameListener::frameStarted( evt ) == false )
    		return false;
     
    		mOgreAnimState->addTime(evt.timeSinceLastFrame);
            return true;
     
        }
     
     
    	~VolumeTexFrameListener()
    	{
    	}
    };
     
     
     
    class VolumeTexApplication : public ExampleApplication
    {
     
    public:
        VolumeTexApplication() 
    	{
    	}
     
     
    protected:
    	SceneNode* mFountainNode;
     
     
        virtual void createFrameListener(void)
        {
            mFrameListener= new VolumeTexFrameListener(mWindow, mCamera,mFountainNode);
            mFrameListener->showDebugOverlay(true);
            mRoot->addFrameListener(mFrameListener);
        }
     
     void chooseSceneManager(void)
        {
    		mSceneMgr = mRoot->createSceneManager(ST_EXTERIOR_CLOSE);
    		ResourceGroupManager::getSingleton().initialiseAllResourceGroups();
     
        }
     
    	virtual void createViewports(void)
        {
    		// Create one viewport, entire window
            Viewport* vp = mWindow->addViewport(mCamera);
            vp->setBackgroundColour(ColourValue(1,1,1));
     
            // Alter the camera aspect ratio to match the viewport
            mCamera->setAspectRatio(Real(vp->getActualWidth()) / Real(vp->getActualHeight()));
        }
     
    	void createCamera(void)
    	{
    //camera
            mCamera = mSceneMgr->createCamera("PlayerCam");
            mCamera->setPosition(Vector3(-2520.0f, 700.0f, 4000.0f));
            mCamera->lookAt(Vector3(-120,6,1000));
            mCamera->setNearClipDistance(20);
    		mCamera->setFixedYawAxis(true);
    		/*mCameraCollid->setCollisionEnabled(false);*/
    	}
     
     
     
    /******Deb Collision*****
        void chooseSceneManager(void)
        {
            mSceneMgr = mRoot->createSceneManager("BspSceneManager");
        }
        void createWorld(void)
        {
            // Create BSP-specific world
            mWorld = new World(mSceneMgr, World::WT_REFAPP_BSP);
        }
    **********/
     
     
     
    //creation des méthodes de la scene
        void createScene(void)
        {
    		float timeFrame =0;
     
    //For Shadow
    //		mSceneMgr->setShadowTechnique(SHADOWTYPE_STENCIL_MODULATIVE);
     
    		//// Setup World
      //      mWorld->setGravity(Vector3(0, 0, -60));
      //      mWorld->getSceneManager()->setWorldGeometry("ogretestmap.bsp");
     
    //terrain
     
    		mSceneMgr->setWorldGeometry( "terrain.cfg" );
    		Plane plane;
            plane.d = 500;
             plane.normal = Vector3::NEGATIVE_UNIT_Y;
     
     
    //Particules
    		ParticleSystem* pSys2 = mSceneMgr->createParticleSystem("fountain1","Examples/Smoke");
    		SceneNode *fNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( Vector3(-2520.0f, 500.0f, 2500.0f));
    		fNode->attachObject( pSys2 );
    		fNode->setVisible(true);
     
     
    //Avion
    		Entity* avion = mSceneMgr->createEntity("plane", "avion.mesh");	
    		avion->setMaterialName("Examples/Chrome");
    		avion->setCastShadows(true);
    		SceneNode *nd = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(1000,5000,3000));
    		nd->attachObject(avion);
    		nd->pitch(Degree(270));
     
    //Missile
    		Entity* missile = mSceneMgr->createEntity("missile", "missile.mesh");
    		missile->setCastShadows(true);
    		missile->setMaterialName("Examples/grass_1024");
    		SceneNode *nd2 = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(10,10,10));
    		nd2->attachObject(missile);
    		nd2->pitch(Degree(270));
     
    //Radar
    		Entity* radar = mSceneMgr->createEntity("Radar","radar.mesh");
    		radar->setCastShadows(true);
    		radar->setMaterialName("Examples/flare");
    		SceneNode * nd3 = mSceneMgr->getRootSceneNode()->createChildSceneNode(Vector3(-120,6,10));
    		nd3->attachObject(radar);
    		nd3->pitch( Degree(270) );		
     
    //CC
    		Entity* cc = mSceneMgr->createEntity("CC","CC.mesh");
    		cc->setCastShadows(true);
    		cc->setMaterialName("Examples/TextureEffect2");
    		SceneNode *nd4 = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node3",Vector3(-30,10,270));
    		nd4->attachObject(cc);
    		nd4->pitch( Degree(270) );
            nd4->roll( Degree(180 ) );
    		nd4->setScale (Vector3(2,2,2));
    /*		
    // porteur de missile 
    		Entity* mEntity3 = mSceneMgr->createEntity("y5","hindi5.mesh");
    		mEntity3->setCastShadows(true);
    		SceneNode *mNode5 = mSceneMgr->getRootSceneNode()->createChildSceneNode("Node5",Vector3(10,2,10));
    		mNode5->attachObject(mEntity3);
    		mNode5->setScale( 0.1f, 0.14f, 0.1f );
     
     
            // Create dynamic texture
    		//ptex = TextureManager::getSingleton().createManual(
    		//	"DynaTex","General", TEX_TYPE_3D, 64, 64, 64, 0, PF_A8R8G8B8);
    */		
     
    // lumiere ambiante
            mSceneMgr->setAmbientLight(ColourValue(0.3, 0.3, 0.3));
    		mSceneMgr->setSkyBox(true, "Examples/MorningSkyBox", 50 );
            mRoot->getRenderSystem()->clearFrameBuffer(FBT_COLOUR, ColourValue(255,255,255,0));
     
    /*
    		Plane plane( Vector3::UNIT_Y, 0 );
    		MeshManager::getSingleton().createPlane("fw12b",ResourceGroupManager::DEFAULT_RESOURCE_GROUP_NAME, plane,3000,4000,1,1,true,1,1,1,Vector3::UNIT_Z); 
            
    		avion= mSceneMgr->createEntity("GroundEntity","fw12b");
    		mSceneMgr->getRootSceneNode()->createChildSceneNode()->attachObject(avion);
    		avion->setMaterialName("Examples/fw12b");
    		avion->setCastShadows(false);
    */
    //lumiere
            Light* l = mSceneMgr->createLight("MainLight");
            l->setDiffuseColour(0.75, 0.75, 0.80);
    		l->setSpecularColour(0.9, 0.9, 1);
            l->setPosition(-100,80,50);
    		mSceneMgr->getRootSceneNode()->attachObject(l);
     
     
     
     
     
     
    		// Create a track for the light
     
    		/*float timePos;
     
    		timePos=1000;*/
     
    //creer l'animation		
    		Animation* anim = mSceneMgr->createAnimation("simulation",10);
     
    // Mode d'interpolation : SPLINE (curve)
            anim->setInterpolationMode(Animation::IM_SPLINE);
     
    // Create a track to animate the camera's node
    //avion
            NodeAnimationTrack* track = anim->createNodeTrack(0, nd);
     
    //missile
    		NodeAnimationTrack* track2 = anim->createNodeTrack(1, nd2);
     
     
     
    /*
    		//NodeAnimationTrack* track3 = anim->createNodeTrack(2, fNode);
     
    		 // KeyFrame* key3 = track3->createKeyFrame(0);
    		// A startposition
     
    		//key->setRotation(Quaternion(1.0,-1.0,0.0,0.0));
            //key2->setRotation(Quaternion(1.0,-1.0,0.0,0.0));
     
    		fNode->attachObject( pSys2 );
    		fNode->setVisible(false);
      */
     
    // Setup keyframes
    		TransformKeyFrame* key = track->createNodeKeyFrame(0);
    		TransformKeyFrame* key2 = track2->createNodeKeyFrame(0);
     
     
    		key = track->createNodeKeyFrame(2);
            key->setRotation(Quaternion(1.0,-1.0,0.0,0.0));
    		key->setTranslate(Vector3(500.0f, 10.0f, 0.0f));
    		key->setRotation(Quaternion(0.6,-1.0,-0.3,-0.4));
     
    		key2 = track2->createNodeKeyFrame(2);
            key2->setRotation(Quaternion(1.0,-1.0,0.0,0.0));
    		key2->setTranslate(Vector3(-500.0f, 250.0f, 200.0f));
     
            key = track->createNodeKeyFrame(6);
    		timeFrame = key->getTime();
            key->setRotation(Quaternion(0.6,-1.0,-0.3,-0.4));
    		key->setTranslate(Vector3(-2520.0f, 445.0f, 2500.0f));
     
    		key2 = track2->createNodeKeyFrame(6);	
    		float timeFrame2 = key2->getTime();
    		key2->setRotation(Quaternion(1.0,-1.0,0.0,0.0));
    		key2->setTranslate(Vector3(-2520.0f, 500.0f, 2500.0f));
     
     
    //ici le code de la création des flammes-----je c pas ou le mettre!!!!!!
    		if( flamme == true )
    				{
    				ParticleSystem* pSys2 = mSceneMgr->createParticleSystem("fountain1","Examples/Smoke");
    		 /*Create shared node for fountains*/
    				SceneNode *fNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( Vector3(-2520.0f, 500.0f, 2500.0f));
    				fNode->attachObject( pSys2 );
    				fNode->setVisible( true );}
    		else flamme=false;
     
    	//if( flamme == true )
    		//{
    	//	ParticleSystem* pSys2 = mSceneMgr->createParticleSystem("fountain1","Examples/Smoke");
     /*Create shared node for fountains
    		SceneNode *fNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( Vector3(-2520.0f, 500.0f, 2500.0f));
    		fNode->attachObject( pSys2 );
    		fNode->setVisible( true );
    			//flamme=false;
    	//}
    //}
    */		
           // key3 = track3->createKeyFrame(timePos);
    		//key3->getTime;
    		//fNode->setVisible(true,true);
           // Point the fountain at an angle
     
    // Create a new animation state to track this
            mOgreAnimState = mSceneMgr->createAnimationState("simulation");
            mOgreAnimState->setEnabled(true);
     
            //mFountainNode->attachObject(pSys2);
    		// show GUI
    		//overlay = OverlayManager::getSingleton().getByName("Example/groupe3D");    
    		//overlay->show();
     
    	// Create shared node for 2 fountains
           // mFountainNode = static_cast<SceneNode*>(mSceneMgr->getRootSceneNode()->createChild());
     
            // smoke
           // ParticleSystem* pSys2 = mSceneMgr->createParticleSystem("fountain1", 
           //     "Examples/Smoke");
           // // Point the fountain at an angle
           //fNode = static_cast<SceneNode*>(mFountainNode->createChild());
           // fNode->attachObject(pSys2);
    	}
     
    	/*void destroyScene()
    	{
    		ptex.setNull();
    	}
    */
    };
     
     
     
    #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
    #define WIN32_LEAN_AND_MEAN
    #include "windows.h"
    #endif
     
     
     
    #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
    INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
    #else
    int main(int argc, char *argv[])
    #endif
    {
        // Create application object
        VolumeTexApplication app;
     
        try {
            app.go();
        } catch( Ogre::Exception& e ) {
    #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
            MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
    #else
            std::cerr << "An exception has occured: " <<
                e.getFullDescription().c_str() << std::endl;
    #endif
        }
     
        return 0;
    }

    merci à l'avance pour ton aide!!!!

  10. #10
    Membre confirmé
    Avatar de gusgus
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    500
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 500
    Points : 641
    Points
    641
    Par défaut
    Ce bout de code:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    		if( flamme == true )
    				{
    				ParticleSystem* pSys2 = mSceneMgr->createParticleSystem("fountain1","Examples/Smoke");
    		 /*Create shared node for fountains*/
    				SceneNode *fNode = mSceneMgr->getRootSceneNode()->createChildSceneNode( Vector3(-2520.0f, 500.0f, 2500.0f));
    				fNode->attachObject( pSys2 );
    				fNode->setVisible( true );}
    devrait être placer dans un framelistener,ici dans VolumeTexFrameListener::frameStarted par exemple. Par contre,je ne vois pas de condition qui active flamme = true(cette condition devrait aussi être dans framestarted).

  11. #11
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    J'ai beau essayé mon ami mais en vain!
    cette fois ci, en déplacant mon code en haut, dans le framestarted, il ne reconnait pas pas mal de variables que je ne peux définir au début!

    une idée?

  12. #12
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Les passer au listener? :/

  13. #13
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    Oui.
    Parce que pour faire bouger mes objets, j'utilise des keys.
    et au moment ou mes 2 keys ou plutot mes gettime correspondent , il faut afficher les flammes.tout est lié :-(

  14. #14
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Donc acte. Il faut les passer si tu ne peux les fournir à la création (ce qui est normal dans bien des cas )

  15. #15
    Candidat au Club
    Inscrit en
    Mars 2008
    Messages
    12
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 12
    Points : 4
    Points
    4
    Par défaut
    OK.Comment le faire alors dans le code.
    c'est très urgent pour moi ce truc!
    merci

  16. #16
    Membre expert

    Avatar de IrmatDen
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    1 727
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 727
    Points : 3 266
    Points
    3 266
    Par défaut
    Je dois mal comprendre la question. Car pour passer une variable (ici, flamme) il te suffit d'une méthode setDisplayFire (par exemple...) dans ton frame listener qui permet d'indiquer à ce dernier si oui ou non les flammes doivent être affichées.

Discussions similaires

  1. Faire disparaitre un objet
    Par dark64 dans le forum ActionScript 3
    Réponses: 4
    Dernier message: 13/08/2008, 18h42
  2. Faire disparaitre des propriétés publiques
    Par Crystal Noir dans le forum VB.NET
    Réponses: 13
    Dernier message: 05/12/2007, 14h41
  3. Réponses: 4
    Dernier message: 25/04/2007, 16h23
  4. Faire "disparaitre" des boutons
    Par kevinf dans le forum Général JavaScript
    Réponses: 17
    Dernier message: 06/03/2007, 14h32
  5. Faire fonctionner des objets d'Excel 2007 sur Excel 2003 ?
    Par brunoperel dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 08/12/2006, 20h52

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo