- Timestamp:
- Nov 21, 2017, 4:51:31 PM (7 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/AsteroidMining_HS17/src/modules/asteroidmining/AsteroidMinable.cc
r11586 r11587 44 44 45 45 KNACKPUNKTE: 46 o Maximale Hitpunkte = 200? 47 o komische Startgeschwindigkeit der initialisierten Asteroiden. Fliegen davon. 46 o Der neu erscheinende Asteroid versucht, das Pickup aufzusammeln. 47 --> Mathematisch genuegend Abstand? 48 --> Kollisions-Ausnahme richtig, mit Hit-Methode oder so, auch bei Pickup anpassen? 49 --> Den Fall im eigenen Pickup behandeln? 50 --> Nur ein Pickup generieren, wenn die Groesse sowieso eins ist? -> Loest Kollisionsproblem nicht. 51 48 52 49 53 OFFEN: … … 51 55 o Explosion parts 52 56 o custom HUD 57 o asteroidField.lua anpassen, mit 'Mineraliendichten-Parameter'. 53 58 54 59 HANDBUCH: … … 68 73 o Error-Nachricht: Einfach Argumente leer lassen. 69 74 o Pickups: setMaxSpawned funktioniert nicht -> Bastelloesung: Auf 2 statt eins setzen, erstes wird wohl direkt zerstoert. 75 o setHealth: Wird mit Max verwurstelt, war 0. 76 o Position nicht gesetzt -> alles im Ursprung, Kollision -> fliegt davon. 77 o nimmt zuviel Schaden. -> wird mit maxHealth verwurstelt -> einfach auch setzen. 70 78 71 79 o Groessenabhaengige Collison shape: Umweg ueber zweiten Konstruktor. 72 80 o Absturz beim Asteroidengenerieren: Health war auf 0 gesetzt! Wurde nur bei der xml-Variante definiert. 81 82 NOTIZEN: 83 o SUPER entspricht ueberladen, andere Argumente der Methode. 73 84 74 85 */ … … 149 160 this->generateSmaller = true; 150 161 //this->setHealth(50); 162 this->context = c; 151 163 this->size = size; // customSize 152 this->health_ = 5*size;// capped at 200 in pawn or smth?153 //this->setHealth(health_); // Confusing, delete one of these154 this-> context = c;164 this->health_ = 15*size;// capped at 200 in pawn or smth? 165 this->maxHealth_ = this->health_; 166 this->setPosition(position); 155 167 //this->roll = rand()*5; //etwas Drehung. richtige Variable 156 168 157 // Fliegt davon, irgendwieso. Dies scheint auch nicht zu nuetzen.158 this->setVelocity(0, 0, 0);169 // // Fliegt davon, irgendwieso. Dies scheint auch nicht zu nuetzen. 170 // this->setVelocity(Vector3(0,0,0)); 159 171 160 172 … … 213 225 void AsteroidMinable::registerVariables() 214 226 { 215 registerVariable(this->bAlive_, VariableDirection::ToClient);216 registerVariable(this->bVulnerable_, VariableDirection::ToClient);217 registerVariable(this->health_, VariableDirection::ToClient);218 registerVariable(this->maxHealth_, VariableDirection::ToClient);227 // registerVariable(this->bAlive_, VariableDirection::ToClient); 228 // registerVariable(this->bVulnerable_, VariableDirection::ToClient); 229 // registerVariable(this->health_, VariableDirection::ToClient); 230 // registerVariable(this->maxHealth_, VariableDirection::ToClient); 219 231 220 232 registerVariable(this->size, VariableDirection::ToClient); … … 234 246 void AsteroidMinable::tick(float dt) 235 247 { 236 // SUPER(Pawn, tick, dt);237 248 if(!(this->initialised)){this->putStuff();} 238 249 239 250 if(this->health_ <=0){this->death();} 251 252 // if(this->initialised){ 253 // // this->setVelocity(Vector3(0,0,0)); // Funktioniert, scheint aber unsinnig. 254 // orxout() << "Flying at speed: " << this->getVelocity() << endl; 255 // } 240 256 241 257 } … … 324 340 int massRem = this->size-1; //some mass is lost 325 341 int num = round((massRem-1)*(double)rand() / (double)RAND_MAX)+1; // random number of children, at least one // Tweak towards bigger junks? 326 num = 1; // zum Testen mal nur einen generieren.342 // num = 1; // zum Testen mal nur einen generieren. 327 343 328 344 massRem = massRem-num; … … 352 368 //Spawn this child Game crashes! 353 369 //AsteroidMinable* child = new AsteroidMinable(this->context); 354 AsteroidMinable* child = new AsteroidMinable(this->context, extra+1, this->getPosition() + Vector3(num*5, 0, 0)); 370 int newMass = extra+1; 371 AsteroidMinable* child = new AsteroidMinable(this->context, newMass, this->getPosition() + Vector3(fisch*newMass*2.5, 0, 0)); 355 372 // if(!(child == nullptr)){//Errorgebastel 356 373 … … 417 434 if(orxonox_cast<AsteroidMinable*>(originator) || orxonox_cast<Pickup*>(originator)){return;} 418 435 419 436 orxout() << "Schaden. HP: " << this->health_ << " Dmg: " << damage << " hDmg: " << healthdamage << " sDmg: " << shielddamage << endl; 420 437 421 438 this->damage(damage, healthdamage, shielddamage, originator, cs);
Note: See TracChangeset
for help on using the changeset viewer.