Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Changeset 10022


Ignore:
Timestamp:
Apr 3, 2014, 4:05:52 PM (11 years ago)
Author:
fvultier
Message:

Anzeigen eines .mesh files funktioniert. Es wird nicht im Level-File geladen sondern dynamisch zur laufzeit, wenn die s-taste gedrueckt wird.

Location:
code/branches/pickupsFS14/src/modules/jump
Files:
6 edited

Legend:

Unmodified
Added
Removed
  • code/branches/pickupsFS14/src/modules/jump/Jump.cc

    r10017 r10022  
    4646#include "JumpCenterPoint.h"
    4747#include "JumpShip.h"
    48 #include "JumpPlatform.h"
    4948/*
    5049#include "JumpEnemy.h"
     
    6564       // init();
    6665        //this->setHUDTemplate("JumpHUD");
     66
    6767    }
    6868
  • code/branches/pickupsFS14/src/modules/jump/Jump.h

    r10005 r10022  
    3737
    3838#include "jump/JumpPrereqs.h"
    39 
    4039#include "gametypes/Deathmatch.h"
    41 
    4240#include "JumpCenterPoint.h"
    43 
    4441#include "tools/Timer.h"
     42#include "JumpPlatform.h"
    4543
    4644namespace orxonox
  • code/branches/pickupsFS14/src/modules/jump/JumpPlatform.cc

    r10017 r10022  
    3636#include "graphics/ParticleSpawner.h"
    3737#include "graphics/Model.h"
    38 #include "MovableEntity.h"
     38#include "worldentities/MovableEntity.h"
     39#include "chat/ChatManager.h"
     40#include "OrxonoxPrereqs.h"
    3941
    4042namespace orxonox
     
    4547    {
    4648        RegisterObject(JumpPlatform);
    47         /*
    48         if ( GameMode::showsGraphics() && ( !this->getScene() || !this->getScene()->getSceneManager() ) )
    49             ThrowException(AbortLoading, "Can't create BigExplosion, no scene or no scene manager given.");
    5049
    51         this->bStop_ = false;
    52         this->LOD_ = LODParticle::Normal;
    5350
    54         if ( GameMode::showsGraphics() )
    55         {
    56             try
    57             {
    58                 this->init();
    59             }
    60             catch (const std::exception& ex)
    61             {
    62                 orxout(internal_error) << "Couldn't load particle effect in BigExplosion: " << ex.what() << endl;
    63                 this->initZero();
    64             }
    65         }
    66         else
    67         {
    68             this->initZero();
    69         }
     51        model = new Model(getContext());
     52        model->setSyncMode(0);
     53        model->setMeshSource("drone.mesh");
    7054
    71         if (GameMode::isMaster())
    72         {
    73             this->destroyTimer_.setTimer(rnd(2, 4), false, createExecutor(createFunctor(&BigExplosion::stop, this)));
    74         }
     55        movableEntity = new MovableEntity(getContext());
     56        movableEntity->attach(model);
    7557
    76         this->registerVariables();
    77         */
     58        movableEntity->setScale(100);
     59        //movableEntity->setPosition(Vector3(0,0,0));
     60        //movableEntity->setVelocity(Vector3(0,0,1));
     61
     62
    7863    }
    7964
    80     /*void BigExplosion::init()
    81     {
    82         this->debrisEntity1_ = new MovableEntity(this->getContext());
    83         this->debrisEntity2_ = new MovableEntity(this->getContext());
    84         this->debrisEntity3_ = new MovableEntity(this->getContext());
    85         this->debrisEntity4_ = new MovableEntity(this->getContext());
    86 
    87         this->debrisEntity1_->setSyncMode(0);
    88         this->debrisEntity2_->setSyncMode(0);
    89         this->debrisEntity3_->setSyncMode(0);
    90         this->debrisEntity4_->setSyncMode(0);
    91 
    92         this->debris1_ = new Model(this->getContext());
    93         this->debris2_ = new Model(this->getContext());
    94         this->debris3_ = new Model(this->getContext());
    95         this->debris4_ = new Model(this->getContext());
    96 
    97         this->debris1_->setSyncMode(0);
    98         this->debris2_->setSyncMode(0);
    99         this->debris3_->setSyncMode(0);
    100         this->debris4_->setSyncMode(0);
    101 
    102         this->explosion_ = new StaticEntity(this->getContext());
    103         this->explosion_->setSyncMode(0);
    104 
    105         this->debrisSmoke1_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
    106         this->debrisSmoke2_ =  new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
    107         this->debrisSmoke3_ =  new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
    108         this->debrisSmoke4_ =  new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/smoke7", this->LOD_);
    109 
    110         this->debrisFire1_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/fire4", this->LOD_);
    111         this->debrisFire2_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/fire4", this->LOD_);
    112         this->debrisFire3_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/fire4", this->LOD_);
    113         this->debrisFire4_ = new ParticleInterface(this->getScene()->getSceneManager(), "Orxonox/fire4", this->LOD_);
    114 
    115         this->debris1_->attachOgreObject(this->debrisSmoke1_->getParticleSystem());
    116         this->debris1_->attachOgreObject(this->debrisFire1_->getParticleSystem());
    117         this->debris2_->attachOgreObject(this->debrisSmoke2_->getParticleSystem());
    118         this->debris2_->attachOgreObject(this->debrisFire2_->getParticleSystem());
    119         this->debris3_->attachOgreObject(this->debrisSmoke3_->getParticleSystem());
    120         this->debris3_->attachOgreObject(this->debrisFire3_->getParticleSystem());
    121         this->debris4_->attachOgreObject(this->debrisSmoke4_->getParticleSystem());
    122         this->debris4_->attachOgreObject(this->debrisFire4_->getParticleSystem());
    123 
    124         this->debris1_->setMeshSource("CockpitDebris.mesh");
    125         this->debris2_->setMeshSource("WingDebris1.mesh");
    126         this->debris3_->setMeshSource("BodyDebris1.mesh");
    127         this->debris4_->setMeshSource("WingDebris2.mesh");
    128 
    129         this->debrisEntity1_->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(50,100));
    130         this->debrisEntity1_->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
    131         this->debrisEntity1_->setScale(4);
    132 
    133         this->debrisEntity2_->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(50,100));
    134         this->debrisEntity2_->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
    135         this->debrisEntity2_->setScale(4);
    136 
    137         this->debrisEntity3_->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(50,100));
    138         this->debrisEntity3_->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
    139         this->debrisEntity3_->setScale(4);
    140 
    141         this->debrisEntity4_->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(50,100));
    142         this->debrisEntity4_->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
    143         this->debrisEntity4_->setScale(4);
    144 
    145         this->debrisEntity1_->attach(debris1_);
    146         this->debrisEntity2_->attach(debris2_);
    147         this->debrisEntity3_->attach(debris3_);
    148         this->debrisEntity4_->attach(debris4_);
    149 
    150         ParticleSpawner* effect = new ParticleSpawner(this->getContext());
    151         effect->setDestroyAfterLife(true);
    152         effect->setSource("Orxonox/explosion2b");
    153         effect->setLifetime(4.0f);
    154         effect->setSyncMode(0);
    155 
    156         ParticleSpawner* effect2 = new ParticleSpawner(this->getContext());
    157         effect2->setDestroyAfterLife(true);
    158         effect2->setSource("Orxonox/smoke6");
    159         effect2->setLifetime(4.0f);
    160         effect2->setSyncMode(0);
    161 
    162         this->explosion_->attach(effect);
    163         this->explosion_->attach(effect2);
    164 
    165         this->attach(explosion_);
    166         this->attach(debrisEntity1_);
    167         this->attach(debrisEntity2_);
    168         this->attach(debrisEntity3_);
    169         this->attach(debrisEntity4_);
    17065
    17166
    172         for(int i=0;i<10;i++)
    173         {
    174             Model* part1 = new Model(this->getContext());
    175             Model* part2 = new Model(this->getContext());
    176 
    177             MovableEntity* partEntity1 = new MovableEntity(this->getContext());
    178             MovableEntity* partEntity2 = new MovableEntity(this->getContext());
    179 
    180             part1->setSyncMode(0);
    181             part2->setSyncMode(0);
    182             partEntity1->setSyncMode(0);
    183             partEntity2->setSyncMode(0);
    184 
    185             partEntity1->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(10,100));
    186             partEntity1->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
    187             partEntity1->setScale(rnd(1, 3));
    188 
    189             partEntity2->setVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1))*rnd(10, 100));
    190             partEntity2->setAngularVelocity(Vector3(rnd(-1, 1), rnd(-1, 1), rnd(-1, 1)).normalisedCopy() * Degree(400).valueRadians());
    191             partEntity2->setScale(rnd(1, 3));
    192 
    193             part1->setMeshSource("SmallPart1.mesh");
    194             part2->setMeshSource("SmallPart2.mesh");
    195 
    196             partEntity1->attach(part1);
    197             partEntity2->attach(part2);
    198 
    199             this->attach(partEntity1);
    200             this->attach(partEntity2);
    201         }
    202     }
    203 
    204     void BigExplosion::initZero()
    205     {
    206         this->debrisFire1_ = 0;
    207         this->debrisFire2_ = 0;
    208         this->debrisFire3_ = 0;
    209         this->debrisFire4_ = 0;
    210 
    211         this->debrisSmoke1_ = 0;
    212         this->debrisSmoke2_ = 0;
    213         this->debrisSmoke3_ = 0;
    214         this->debrisSmoke4_ = 0;
    215 
    216         this->explosionSmoke_=0;
    217         this->explosionFire_=0;
    218     }
    219 
    220     BigExplosion::~BigExplosion()
    221     {
    222         if (this->isInitialized())
    223         {
    224             if (this->debrisFire1_)
    225             {
    226                 this->debris1_->detachOgreObject(this->debrisFire1_->getParticleSystem());
    227                 delete this->debrisFire1_;
    228             }
    229             if (this->debrisSmoke1_)
    230             {
    231                 this->debris1_->detachOgreObject(this->debrisSmoke1_->getParticleSystem());
    232                 delete this->debrisSmoke1_;
    233             }
    234 
    235             if (this->debrisFire2_)
    236             {
    237                 this->debris2_->detachOgreObject(this->debrisFire2_->getParticleSystem());
    238                 delete this->debrisFire2_;
    239             }
    240             if (this->debrisSmoke2_)
    241             {
    242                 this->debris2_->detachOgreObject(this->debrisSmoke2_->getParticleSystem());
    243                 delete this->debrisSmoke2_;
    244             }
    245 
    246             if (this->debrisFire3_)
    247             {
    248                 this->debris3_->detachOgreObject(this->debrisFire3_->getParticleSystem());
    249                 delete this->debrisFire3_;
    250             }
    251             if (this->debrisSmoke3_)
    252             {
    253                 this->debris3_->detachOgreObject(this->debrisSmoke3_->getParticleSystem());
    254                 delete this->debrisSmoke3_;
    255             }
    256 
    257             if (this->debrisFire4_)
    258             {
    259                 this->debris4_->detachOgreObject(this->debrisFire4_->getParticleSystem());
    260                 delete this->debrisFire4_;
    261             }
    262             if (this->debrisSmoke4_)
    263             {
    264                 this->debris4_->detachOgreObject(this->debrisSmoke4_->getParticleSystem());
    265                 delete this->debrisSmoke4_;
    266             }
    267         }
    268     }
    269 
    270     void BigExplosion::registerVariables()
    271     {
    272         registerVariable((int&)(this->LOD_), VariableDirection::ToClient, new NetworkCallback<BigExplosion>(this, &BigExplosion::LODchanged));
    273         registerVariable(this->bStop_,       VariableDirection::ToClient, new NetworkCallback<BigExplosion>(this, &BigExplosion::checkStop));
    274     }
    275 
    276     void BigExplosion::LODchanged()
    277     {
    278         if (this->debrisFire1_)
    279             this->debrisFire1_->setDetailLevel(this->LOD_);
    280         if (this->debrisSmoke1_)
    281             this->debrisSmoke1_->setDetailLevel(this->LOD_);
    282 
    283         if (this->debrisFire2_)
    284             this->debrisFire2_->setDetailLevel(this->LOD_);
    285         if (this->debrisSmoke2_)
    286             this->debrisSmoke2_->setDetailLevel(this->LOD_);
    287 
    288         if (this->debrisFire3_)
    289             this->debrisFire3_->setDetailLevel(this->LOD_);
    290         if (this->debrisSmoke3_)
    291             this->debrisSmoke3_->setDetailLevel(this->LOD_);
    292 
    293         if (this->debrisFire4_)
    294             this->debrisFire4_->setDetailLevel(this->LOD_);
    295         if (this->debrisSmoke4_)
    296             this->debrisSmoke4_->setDetailLevel(this->LOD_);
    297     }
    298 
    299     void BigExplosion::checkStop()
    300     {
    301         if (this->bStop_)
    302             this->stop();
    303     }
    304 
    305     void BigExplosion::stop()
    306     {
    307         if (this->debrisFire1_)
    308             this->debrisFire1_->setEnabled(false);
    309         if (this->debrisSmoke1_)
    310             this->debrisSmoke1_->setEnabled(false);
    311 
    312         if (this->debrisFire2_)
    313             this->debrisFire2_->setEnabled(false);
    314         if (this->debrisSmoke2_)
    315             this->debrisSmoke2_->setEnabled(false);
    316 
    317         if (this->debrisFire3_)
    318             this->debrisFire3_->setEnabled(false);
    319         if (this->debrisSmoke3_)
    320             this->debrisSmoke3_->setEnabled(false);
    321 
    322         if (this->debrisFire4_)
    323             this->debrisFire4_->setEnabled(false);
    324         if (this->debrisSmoke4_)
    325             this->debrisSmoke4_->setEnabled(false);
    326 
    327         if (GameMode::isMaster())
    328         {
    329             this->bStop_ = true;
    330             this->destroyTimer_.setTimer(1.0f, false, createExecutor(createFunctor(&BigExplosion::destroy, this)));
    331         }
    332     }*/
    33367
    33468}
  • code/branches/pickupsFS14/src/modules/jump/JumpPlatform.h

    r10017 r10022  
    3737#include "jump/JumpPrereqs.h"
    3838
    39 #include "MobileEntity.h"
     39#include "worldentities/MobileEntity.h"
    4040
    4141namespace orxonox
     
    4848
    4949        private:
     50            Model* model;
     51            MovableEntity* movableEntity;
    5052
    5153    };
  • code/branches/pickupsFS14/src/modules/jump/JumpShip.cc

    r10017 r10022  
    141141        else if (downPressed == true)
    142142        {
     143                platform = new JumpPlatform(getContext());
     144                platform->setPosition(Vector3(0, 0, 0));
     145                platform->setVelocity(Vector3(0, 0, 0));
     146                platform->setScale(100);
     147
    143148                movement -= Vector3(0, 0, 0);
    144149                downPressed = false;
  • code/branches/pickupsFS14/src/modules/jump/JumpShip.h

    r10017 r10022  
    4040#include "graphics/Camera.h"
    4141#include "weapons/projectiles/Projectile.h"
     42#include "JumpPlatform.h"
    4243
    4344namespace orxonox
     
    103104            const float yAcceleration = 10.0f;
    104105            const float ySpeedAfterJump = 300.0f;
     106
     107            JumpPlatform* platform;
    105108    };
    106109}
Note: See TracChangeset for help on using the changeset viewer.