[Orxonox-commit 350] r2961 - branches/gametypes/src/orxonox/objects/worldentities
Aurelian at orxonox.net
Aurelian at orxonox.net
Sun May 10 22:49:36 CEST 2009
Author: Aurelian
Date: 2009-05-10 22:49:36 +0200 (Sun, 10 May 2009)
New Revision: 2961
Modified:
branches/gametypes/src/orxonox/objects/worldentities/ForceField.cc
Log:
Gametype Asteroids - ForceField working
Modified: branches/gametypes/src/orxonox/objects/worldentities/ForceField.cc
===================================================================
--- branches/gametypes/src/orxonox/objects/worldentities/ForceField.cc 2009-05-10 09:56:07 UTC (rev 2960)
+++ branches/gametypes/src/orxonox/objects/worldentities/ForceField.cc 2009-05-10 20:49:36 UTC (rev 2961)
@@ -42,9 +42,9 @@
//Standard Values
this->setDirection(Vector3::ZERO);
- velocity_ = 1000;
+ velocity_ = 100;
diameter_ = 500;
- length_ = 1000;
+ length_ = 2000;
}
ForceField::~ForceField() {}
@@ -56,14 +56,16 @@
//For correct xml import use: position, direction, velocity, scale
XMLPortParam(ForceField, "velocity", setVelocity, getVelocity, xmlelement, mode).defaultValues(100);
- XMLPortParam(ForceField, "diameter", setDiameter, getDiameter, xmlelement, mode).defaultValues(20);
- XMLPortParam(ForceField, "length" , setLength , getLength , xmlelement, mode).defaultValues(500);
+ XMLPortParam(ForceField, "diameter", setDiameter, getDiameter, xmlelement, mode).defaultValues(500);
+ XMLPortParam(ForceField, "length" , setLength , getLength , xmlelement, mode).defaultValues(2000);
}
void ForceField::tick(float dt)
{
+
for (ObjectList<MobileEntity>::iterator it = ObjectList<MobileEntity>::begin(); it != ObjectList<MobileEntity>::end(); ++it)
{
+
//calculate from
Vector3 directionVec = this->getOrientation() * WorldEntity::FRONT;
directionVec.normalise();
@@ -76,8 +78,7 @@
if (distanceVec.length() < this->length_ / 2 && distFromCenterVec < diameter_ / 2)
{
//normalize distance from center
- it->applyCentralForce(((diameter_ / 2 - distFromCenterVec) / diameter_) * directionVec * velocity_);
- COUT(0) << "Forfce aplied" << std::endl;
+ it->applyCentralForce(((diameter_ / 2 - distFromCenterVec) / (diameter_ / 2)) * directionVec * velocity_);
}
}
More information about the Orxonox-commit
mailing list