Changeset 10138 in orxonox.OLD for branches/ai/src/ai/movement_module.cc
- Timestamp:
- Dec 21, 2006, 10:14:15 PM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
branches/ai/src/ai/movement_module.cc
r10135 r10138 25 25 26 26 #include "shell_command.h" 27 //SHELL_COMMAND(setDistanceToPlayer, MovementModule, setDistanceToPlayer);28 //SHELL_COMMAND(setDistanceToNPC, MovementModule, setDistanceToNPC);29 //SHELL_COMMAND(setMaxAccleartion, MovementModule, setMaxAccleartion);30 // 31 //float MovementModule::distanceToPlayer=15;32 //float MovementModule::distanceToNPC=2;33 //float MovementModule::maxAccleration=200.0f;34 // 35 //void MovementModule::setDistanceToPlayer(float newValue){ distanceToPlayer=newValue; }36 //void MovementModule::setDistanceToNPC(float newValue){ distanceToNPC=newValue; }37 //void MovementModule::setMaxAccleartion(float newValue){ maxAccleration=newValue; }38 // 39 // 40 // 41 // 42 // 43 // 27 SHELL_COMMAND(setDistanceToPlayer, MovementModule, setDistanceToPlayer); 28 SHELL_COMMAND(setDistanceToNPC, MovementModule, setDistanceToNPC); 29 SHELL_COMMAND(setMaxAccleartion, MovementModule, setMaxAccleartion); 30 31 float MovementModule::distanceToPlayer=15; 32 float MovementModule::distanceToNPC=2; 33 float MovementModule::maxAccleration=200.0f; 34 35 void MovementModule::setDistanceToPlayer(float newValue){ distanceToPlayer=newValue; } 36 void MovementModule::setDistanceToNPC(float newValue){ distanceToNPC=newValue; } 37 void MovementModule::setMaxAccleartion(float newValue){ maxAccleration=newValue; } 38 39 40 41 42 43 44 44 // std::vector<Vector> MovementModule::hidingPoint; 45 45 // std::vector<float> MovementModule::hidingPointSize; … … 62 62 // 63 63 // 64 MovementModule::MovementModule(NPC2* object){ this->myNPC=object; }65 MovementModule::~MovementModule(){}66 67 64 68 65 … … 156 153 Player* pl = State::getPlayer(); 157 154 if( pl == NULL)return; 158 159 155 Vector playerPosition = pl->getPlayable()->getAbsCoor(); 160 156 float playerRadius=getRadius( pl->getPlayable() ); 161 162 163 // collectInformation(dt); 164 157 158 159 //get information about myself 165 160 Vector myPosition = myNPC->getAbsCoor(); 166 161 float myRadius = getRadius(myNPC); … … 171 166 Vector tmpVector; 172 167 float tmpFloat; 173 174 // Vector npcCollision; 175 // Vector swarmVector; 168 169 Vector npcCollision; 176 170 Vector playerCollision; 177 171 … … 180 174 //float a=200.0f; 181 175 float vMax=200.0f; 182 float maxAccleration=300.0f;176 //float maxAccleration=300.0f; 183 177 //float safetyDistance=2.0f; 184 178 185 179 186 180 //Anti Player Collision 187 tmpFloat=vectorToPlayer.len()-playerRadius-myRadius- 30;//distanceToPlayer;181 tmpFloat=vectorToPlayer.len()-playerRadius-myRadius-distanceToPlayer; 188 182 if(tmpFloat<0.1)tmpFloat=0.1; 189 183 playerCollision=vectorToPlayer/(tmpFloat*tmpFloat)*(-1); 190 184 191 185 192 193 // for (unsigned int i=0;i<npcList.size();i++) 194 // { 195 // if(npcList.at(i)==myNPC)continue; 196 // 197 // //Anti NPC Collision 198 // tmpVector=myPosition-npcPosition.at(i); 199 // tmpFloat=tmpVector.len()-myRadius-npcRadius.at(i)-distanceToNPC; 200 // 201 // if(tmpFloat<0.1)tmpFloat=0.1; 202 // tmpVector=tmpVector/(tmpFloat*tmpFloat); 203 // 204 // npcCollision=npcCollision+tmpVector; 205 // 206 // //Schwarmverhalten 207 // if(npcSwarm.at(i) == mySwarm){ 208 // 209 // 210 // } 211 // } 212 213 214 215 216 217 //Vector correction=playerCollision*50+npcCollision*50+vectorToPlayer+Vector(70,0,0)-myMovement; 218 Vector correction=playerCollision*50+vectorToPlayer+Vector(50,0,0)-myMovement; 186 //Anti NPC Collision 187 for(ObjectList<WorldEntity>::const_iterator it = WorldEntity::objectList().begin(); it != WorldEntity::objectList().end(); ++it) 188 { 189 if(*it==myNPC)continue; 190 191 tmpVector=myPosition-(*it)->getAbsCoor(); 192 tmpFloat=tmpVector.len()-myRadius-distanceToNPC-getRadius(*it); 193 194 if(tmpFloat<0.1)tmpFloat=0.1; 195 tmpVector=tmpVector/(tmpFloat*tmpFloat); 196 197 npcCollision=npcCollision+tmpVector; 198 } 199 200 201 202 Vector vectorToDestination=destination-myPosition; 203 204 Vector correction=playerCollision*50+npcCollision*50+vectorToDestination+Vector(0,0,0)-myMovement; 219 205 220 206 correction.y=0; … … 234 220 // view = v.cross( Vector(0,1,0) ).getNormalized(); 235 221 //}else{ 236 view = myMovement.cross( Vector(0, -1,0) ).getNormalized();222 view = myMovement.cross( Vector(0,1,0) ).getNormalized(); 237 223 //} 238 224 //if(dist<keepDist)view=view*-1;
Note: See TracChangeset
for help on using the changeset viewer.