- Timestamp:
- Oct 24, 2008, 2:48:43 AM (16 years ago)
- Location:
- code/branches/objecthierarchy/src/orxonox/objects/worldentities
- Files:
-
- 9 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchy/src/orxonox/objects/worldentities/ControllableEntity.cc
r1994 r2006 127 127 void ControllableEntity::startLocalControl() 128 128 { 129 std::cout << "###### start local control" << std::endl;129 std::cout << this->getObjectID() << " ###### start local control" << std::endl; 130 130 this->camera_ = new Camera(); 131 131 this->camera_->requestFocus(); … … 155 155 { 156 156 this->velocity_ += (dt * this->acceleration_); 157 this->node_->translate(dt * this->velocity_, Ogre::Node::TS_ PARENT);157 this->node_->translate(dt * this->velocity_, Ogre::Node::TS_LOCAL); 158 158 159 159 if (Core::isMaster()) -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/ControllableEntity.h
r1993 r2006 115 115 { this->hudtemplate_ = name; } 116 116 117 inline bool isLocallyControlled() const 118 { return this->bControlled_; } 119 117 120 private: 118 121 void overwrite(); -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/Model.cc
r1993 r2006 55 55 56 56 XMLPortParam(Model, "mesh", setMeshSource, getMeshSource, xmlelement, mode); 57 XMLPortParam(Model, "shadow", setCastShadows, getCastShadows, xmlelement, mode).defaultValues(true); 57 58 } 58 59 59 60 void Model::registerVariables() 60 61 { 61 REGISTERSTRING(this->meshSrc_, network::direction::toclient, new network::NetworkCallback<Model>(this, &Model::changedMesh)); 62 REGISTERSTRING(this->meshSrc_, network::direction::toclient, new network::NetworkCallback<Model>(this, &Model::changedMesh)); 63 REGISTERDATA(this->bCastShadows_, network::direction::toclient, new network::NetworkCallback<Model>(this, &Model::changedShadows)); 62 64 } 63 65 … … 68 70 69 71 this->mesh_.setMeshSource(this->meshSrc_); 72 70 73 if (this->mesh_.getEntity()) 74 { 71 75 this->getNode()->attachObject(this->mesh_.getEntity()); 76 this->mesh_.getEntity()->setCastShadows(this->bCastShadows_); 77 } 78 } 79 80 void Model::changedShadows() 81 { 82 this->mesh_.setCastShadows(this->bCastShadows_); 72 83 } 73 84 -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/Model.h
r1993 r2006 54 54 { return this->mesh_; } 55 55 56 inline void setCastShadows(bool bCastShadows) 57 { this->bCastShadows_ = bCastShadows; this->changedShadows(); } 58 inline bool getCastShadows() const 59 { return this->bCastShadows_; } 60 56 61 private: 57 62 void changedMesh(); 63 void changedShadows(); 58 64 59 65 std::string meshSrc_; 60 66 Mesh mesh_; 67 bool bCastShadows_; 61 68 }; 62 69 } -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/PositionableEntity.cc
r1993 r2006 57 57 REGISTERDATA(this->getOrientation().z, network::direction::toclient); 58 58 } 59 60 void PositionableEntity::tick(float dt)61 {62 // I don't know why but this has to be done to update the position if attached to another Entity63 this->node_->translate(Vector3::ZERO);64 std::cout << this->getWorldPosition() << std::endl;65 }66 59 } -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/PositionableEntity.h
r1993 r2006 32 32 #include "OrxonoxPrereqs.h" 33 33 #include "WorldEntity.h" 34 #include "objects/Tickable.h"35 34 36 35 namespace orxonox 37 36 { 38 class _OrxonoxExport PositionableEntity : public WorldEntity , public Tickable37 class _OrxonoxExport PositionableEntity : public WorldEntity 39 38 { 40 39 public: … … 43 42 44 43 void registerVariables(); 45 virtual void tick(float dt);46 44 47 45 using WorldEntity::setPosition; -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/WorldEntity.cc
r1993 r2006 51 51 RegisterObject(WorldEntity); 52 52 53 this->node_ = GraphicsEngine::getInstance().getLevelSceneManager()-> createSceneNode();53 this->node_ = GraphicsEngine::getInstance().getLevelSceneManager()->getRootSceneNode()->createChildSceneNode(); 54 54 this->parent_ = 0; 55 55 this->parentID_ = (unsigned int)-1; -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/pawns/Spectator.cc
r2001 r2006 31 31 32 32 #include "core/CoreIncludes.h" 33 #include "core/Core.h" 33 34 #include "objects/worldentities/Model.h" 35 #include "tools/BillboardSet.h" 34 36 35 37 namespace orxonox … … 51 53 this->setDestroyWhenPlayerLeft(true); 52 54 53 Model* temp = new Model; 54 temp->setMeshSource("assff.mesh"); 55 this->attach(temp); 55 // test test test 56 { 57 this->testmesh_ = new Mesh(); 58 this->testnode_ = this->getNode()->createChildSceneNode(); 59 this->testmesh_->setMeshSource("assff.mesh"); 60 if (this->testmesh_->getEntity()) 61 this->testnode_->attachObject(this->testmesh_->getEntity()); 62 this->testnode_->pitch(Degree(-90)); 63 this->testnode_->roll(Degree(+90)); 64 this->testnode_->scale(10, 10, 10); 65 } 66 // test test test 67 68 this->greetingFlare_ = new BillboardSet(); 69 this->greetingFlare_->setBillboardSet("Examples/Flare", ColourValue(1.0, 1.0, 0.8), Vector3(0, 20, 0), 1); 70 this->getNode()->attachObject(this->greetingFlare_->getBillboardSet()); 71 this->greetingFlare_->setVisible(false); 72 this->bGreetingFlareVisible_ = false; 73 this->bGreeting_ = false; 74 75 this->registerVariables(); 56 76 } 57 77 58 78 Spectator::~Spectator() 59 79 { 80 if (this->isInitialized()) 81 { 82 delete this->greetingFlare_; 83 84 // test test test 85 { 86 delete this->testmesh_; 87 delete this->testnode_; 88 } 89 // test test test 90 } 91 } 92 93 void Spectator::registerVariables() 94 { 95 REGISTERDATA(this->bGreetingFlareVisible_, network::direction::toclient, new network::NetworkCallback<Spectator>(this, &Spectator::changedFlareVisibility)); 96 REGISTERDATA(this->bGreeting_, network::direction::toserver, new network::NetworkCallback<Spectator>(this, &Spectator::changedGreeting)); 97 } 98 99 void Spectator::changedGreeting() 100 { 101 this->bGreetingFlareVisible_ = this->bGreeting_; 102 this->changedFlareVisibility(); 103 } 104 105 void Spectator::changedFlareVisibility() 106 { 107 this->greetingFlare_->setVisible(this->bGreetingFlareVisible_); 60 108 } 61 109 62 110 void Spectator::tick(float dt) 63 111 { 64 Vector3 velocity = this->getVelocity(); 65 velocity.normalise(); 66 this->setVelocity(velocity * this->speed_); 112 if (this->isLocallyControlled()) 113 { 114 Vector3 velocity = this->getVelocity(); 115 velocity.normalise(); 116 this->setVelocity(velocity * this->speed_); 67 117 68 // TODO: Check why I have removed *dt (1337) 69 this->yaw(Radian(this->yaw_ * this->rotationSpeed_)); 70 this->pitch(Radian(this->pitch_ * this->rotationSpeed_)); 71 this->roll(Radian(this->roll_ * this->rotationSpeed_)); 118 this->yaw(Radian(this->yaw_ * this->rotationSpeed_)); 119 this->pitch(Radian(this->pitch_ * this->rotationSpeed_)); 120 this->roll(Radian(this->roll_ * this->rotationSpeed_)); 72 121 73 this->yaw_ = this->pitch_ = this->roll_ = 0; 122 this->yaw_ = this->pitch_ = this->roll_ = 0; 123 } 74 124 75 125 SUPER(Spectator, tick, dt); 76 126 77 this->setVelocity(Vector3::ZERO); 127 if (this->isLocallyControlled()) 128 { 129 this->setVelocity(Vector3::ZERO); 130 } 78 131 } 79 132 … … 82 135 ControllableEntity::setPlayer(player); 83 136 84 this->setObjectMode(network::direction::toclient); 137 // this->setObjectMode(network::direction::toclient); 138 } 139 140 void Spectator::startLocalControl() 141 { 142 ControllableEntity::startLocalControl(); 143 if (this->isLocallyControlled()) 144 this->testmesh_->setVisible(false); 85 145 } 86 146 … … 118 178 { 119 179 } 180 181 void Spectator::greet() 182 { 183 this->bGreeting_ = !this->bGreeting_; 184 185 if (Core::isMaster()) 186 { 187 this->bGreetingFlareVisible_ = this->bGreeting_; 188 this->changedFlareVisibility(); 189 } 190 } 120 191 } -
code/branches/objecthierarchy/src/orxonox/objects/worldentities/pawns/Spectator.h
r1993 r2006 42 42 virtual ~Spectator(); 43 43 44 void registerVariables(); 44 45 virtual void tick(float dt); 45 46 46 47 virtual void setPlayer(PlayerInfo* player); 48 virtual void startLocalControl(); 47 49 48 50 virtual void moveFrontBack(float value); … … 55 57 56 58 virtual void fire(); 59 virtual void greet(); 57 60 58 61 private: 62 void changedGreeting(); 63 void changedFlareVisibility(); 64 65 BillboardSet* greetingFlare_; 66 bool bGreetingFlareVisible_; 67 bool bGreeting_; 68 59 69 float speed_; 60 70 float rotationSpeed_; … … 63 73 float pitch_; 64 74 float roll_; 75 76 // test test test 77 Mesh* testmesh_; 78 Ogre::SceneNode* testnode_; 79 // test test test 65 80 }; 66 81 }
Note: See TracChangeset
for help on using the changeset viewer.