Changeset 1993 for code/branches/objecthierarchy/src/orxonox/objects/worldentities/ControllableEntity.cc
- Timestamp:
- Oct 22, 2008, 5:25:01 AM (16 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/objecthierarchy/src/orxonox/objects/worldentities/ControllableEntity.cc
r1989 r1993 53 53 this->hud_ = 0; 54 54 this->camera_ = 0; 55 55 this->bDestroyWhenPlayerLeft_ = false; 56 56 57 57 this->velocity_ = Vector3::ZERO; … … 94 94 95 95 if (this->bControlled_) 96 { 96 97 this->startLocalControl(); 98 this->setObjectMode(network::direction::bidirectional); 99 } 97 100 } 98 101 … … 105 108 this->playerID_ = network::OBJECTID_UNKNOWN; 106 109 this->bControlled_ = false; 110 this->setObjectMode(network::direction::toclient); 111 112 if (this->bDestroyWhenPlayerLeft_) 113 delete this; 107 114 } 108 115 109 116 void ControllableEntity::updatePlayer() 110 117 { 111 this->player_ = dynamic_cast<PlayerInfo*>(network::Synchronisable::getSynchronisable(this->playerID_)); 112 if (this->player_ && (this->player_->getPawn() != this)) 113 this->player_->startControl(this); 118 if (this->playerID_ != network::OBJECTID_UNKNOWN) 119 { 120 this->player_ = dynamic_cast<PlayerInfo*>(network::Synchronisable::getSynchronisable(this->playerID_)); 121 if (this->player_ && (this->player_->getPawn() != this)) 122 this->player_->startControl(this); 123 } 114 124 } 115 125 116 126 void ControllableEntity::startLocalControl() 117 127 { 128 std::cout << "###### start local control" << std::endl; 118 129 this->camera_ = new Camera(); 119 130 this->camera_->requestFocus(); 120 121 this->hud_ = new OverlayGroup(); 122 this->hud_->addTemplate(this->hudtemplate_); 131 this->attach(this->camera_); 132 133 if (this->hudtemplate_ != "") 134 { 135 this->hud_ = new OverlayGroup(); 136 this->hud_->addTemplate(this->hudtemplate_); 137 } 123 138 } 124 139 125 140 void ControllableEntity::stopLocalControl() 126 141 { 142 std::cout << "###### stop local control" << std::endl; 143 this->detach(this->camera_); 127 144 delete this->camera_; 128 145 this->camera_ = 0; … … 137 154 { 138 155 this->velocity_ += (dt * this->acceleration_); 139 this->node_->translate(dt * this->velocity_ );156 this->node_->translate(dt * this->velocity_, Ogre::Node::TS_PARENT); 140 157 141 158 if (Core::isMaster()) … … 150 167 } 151 168 } 152 153 // std::cout << this->getPosition() << std::endl;154 169 } 155 170
Note: See TracChangeset
for help on using the changeset viewer.