[Orxonox-commit 6966] r11587 - code/branches/AsteroidMining_HS17/src/modules/asteroidmining

remartin at orxonox.net remartin at orxonox.net
Tue Nov 21 16:51:32 CET 2017


Author: remartin
Date: 2017-11-21 16:51:31 +0100 (Tue, 21 Nov 2017)
New Revision: 11587

Modified:
   code/branches/AsteroidMining_HS17/src/modules/asteroidmining/AsteroidMinable.cc
Log:
Kleinere Probleme gelost (HP, Position richtig setzen). Noch die Eigenkollision des Pickups verhindern und die Grundfunktionalitat steht. 

Modified: code/branches/AsteroidMining_HS17/src/modules/asteroidmining/AsteroidMinable.cc
===================================================================
--- code/branches/AsteroidMining_HS17/src/modules/asteroidmining/AsteroidMinable.cc	2017-11-21 12:07:17 UTC (rev 11586)
+++ code/branches/AsteroidMining_HS17/src/modules/asteroidmining/AsteroidMinable.cc	2017-11-21 15:51:31 UTC (rev 11587)
@@ -43,13 +43,18 @@
 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 
 KNACKPUNKTE:
-o Maximale Hitpunkte = 200?
-o komische Startgeschwindigkeit der initialisierten Asteroiden. Fliegen davon. 
+o Der neu erscheinende Asteroid versucht, das Pickup aufzusammeln. 
+--> Mathematisch genuegend Abstand?
+--> Kollisions-Ausnahme richtig, mit Hit-Methode oder so, auch bei Pickup anpassen?
+--> Den Fall im eigenen Pickup behandeln? 
+--> Nur ein Pickup generieren, wenn die Groesse sowieso eins ist? -> Loest Kollisionsproblem nicht. 
 
+
 OFFEN: 
 o Add custom pickup 'resources'. Weird template stuff -> Problems setting 'size' and other properties? setNumber of Resources. 
 o Explosion parts
 o custom HUD
+o asteroidField.lua anpassen, mit 'Mineraliendichten-Parameter'. 
 
 HANDBUCH:
 o im Level-File includes/pickups.oxi importieren. 
@@ -67,10 +72,16 @@
 o Dynamische Definition -> putStuff-Methode, Werte noch nicht durchgesickert. 
 o Error-Nachricht: Einfach Argumente leer lassen. 
 o Pickups: setMaxSpawned funktioniert nicht -> Bastelloesung: Auf 2 statt eins setzen, erstes wird wohl direkt zerstoert. 
+o setHealth: Wird mit Max verwurstelt, war 0. 
+o Position nicht gesetzt -> alles im Ursprung, Kollision -> fliegt davon. 
+o nimmt zuviel Schaden. -> wird mit maxHealth verwurstelt -> einfach auch setzen. 
 
 o Groessenabhaengige Collison shape: Umweg ueber zweiten Konstruktor. 
 o Absturz beim Asteroidengenerieren: Health war auf 0 gesetzt! Wurde nur bei der xml-Variante definiert. 
 
+NOTIZEN:
+o SUPER entspricht ueberladen, andere Argumente der Methode. 
+
 */
 
 
@@ -148,14 +159,15 @@
         // Default Values
         this->generateSmaller = true; 
         //this->setHealth(50);
+        this->context = c;
         this->size = size; // customSize
-        this->health_ = 5*size;// capped at 200 in pawn or smth?
-        //this->setHealth(health_); // Confusing, delete one of these
-        this->context = c;
+        this->health_ = 15*size;// capped at 200 in pawn or smth?
+        this->maxHealth_ = this->health_;
+        this->setPosition(position);
         //this->roll = rand()*5; //etwas Drehung. richtige Variable
 
-        // Fliegt davon, irgendwieso. Dies scheint auch nicht zu nuetzen. 
-        this->setVelocity(0, 0, 0);
+        // // Fliegt davon, irgendwieso. Dies scheint auch nicht zu nuetzen. 
+        // this->setVelocity(Vector3(0,0,0));
 
 
 
@@ -212,10 +224,10 @@
 
     void AsteroidMinable::registerVariables()
     {
-        registerVariable(this->bAlive_,            VariableDirection::ToClient);
-        registerVariable(this->bVulnerable_,       VariableDirection::ToClient);
-        registerVariable(this->health_,            VariableDirection::ToClient);
-        registerVariable(this->maxHealth_,         VariableDirection::ToClient);
+        // registerVariable(this->bAlive_,            VariableDirection::ToClient);
+        // registerVariable(this->bVulnerable_,       VariableDirection::ToClient);
+        // registerVariable(this->health_,            VariableDirection::ToClient);
+        // registerVariable(this->maxHealth_,         VariableDirection::ToClient);
 
         registerVariable(this->size, VariableDirection::ToClient);
         registerVariable(this->generateSmaller, VariableDirection::ToClient);
@@ -233,11 +245,15 @@
 
     void AsteroidMinable::tick(float dt)
     {
-        // SUPER(Pawn, tick, dt);
         if(!(this->initialised)){this->putStuff();}
 
         if(this->health_ <=0){this->death();}
 
+        // if(this->initialised){
+        //     // this->setVelocity(Vector3(0,0,0));  // Funktioniert, scheint aber unsinnig. 
+        //     orxout() << "Flying at speed: " << this->getVelocity() << endl;
+        // }
+
     }
 
     void AsteroidMinable::setSize(float s){
@@ -323,7 +339,7 @@
     // Spawn smaller Children 
     int massRem = this->size-1; //some mass is lost
     int num = round((massRem-1)*(double)rand() / (double)RAND_MAX)+1; // random number of children, at least one // Tweak towards bigger junks?
-    num = 1; // zum Testen mal nur einen generieren. 
+    // num = 1; // zum Testen mal nur einen generieren. 
     
     massRem = massRem-num;    
     int extra = 0;
@@ -351,7 +367,8 @@
 
         //Spawn this child  Game crashes!
         //AsteroidMinable* child = new AsteroidMinable(this->context);
-        AsteroidMinable* child = new AsteroidMinable(this->context, extra+1, this->getPosition() + Vector3(num*5, 0, 0));
+        int newMass = extra+1; 
+        AsteroidMinable* child = new AsteroidMinable(this->context, newMass, this->getPosition() + Vector3(fisch*newMass*2.5, 0, 0));
         // if(!(child == nullptr)){//Errorgebastel
 
         // Position zu spaet gesetzt? Tick nicht atomar -> falsche Groesse evtl?
@@ -416,8 +433,8 @@
         // Wird staending aufgerufen -> Rechenleistung?
         if(orxonox_cast<AsteroidMinable*>(originator) || orxonox_cast<Pickup*>(originator)){return;}
 
+        orxout() << "Schaden. HP: " << this->health_ << " Dmg: " << damage << " hDmg: " << healthdamage << " sDmg: " << shielddamage << endl;
 
-
         this->damage(damage, healthdamage, shielddamage, originator, cs);
 
 



More information about the Orxonox-commit mailing list