Planet
navi homePPSaboutscreenshotsdownloaddevelopmentforum

Ignore:
Timestamp:
Jan 28, 2007, 2:56:01 PM (17 years ago)
Author:
stefalie
Message:

blink: everything(?) done

File:
1 edited

Legend:

Unmodified
Added
Removed
  • branches/blink/src/world_entities/effects/blink.cc

    r10436 r10442  
    3535  if(root)
    3636    this->loadParams(root);
     37
     38  // calculation of the symbolTime
     39  this->symbolTime = this->period / this->blinkSequence.length();
    3740}
    3841
     
    6871  // 10x10 pxl if not defined in xml
    6972  this->size = 10;
    70   // default angular rate
    71   this->omega = 10;
     73  // default period
     74  this->period = 1;
     75  // default blink sequence
     76  this->blinkSequence = "00011234567889998876543211";
    7277
    73   // random start angle, blinkies shouldn't blink synchronous
    74   this->angle = (float)rand()/(float)RAND_MAX * 2 * M_PI;
     78  // start values of non-loadable variables
     79  this->blinkStr = 0;
     80  this->timer = 0;
     81  this->seqCounter = 0;
    7582}
    7683
     
    8794  LoadParam(root, "size", this, Blink, setSize);
    8895  LoadParam(root, "color", this, Blink, setColor);
    89   LoadParam(root, "omega", this, Blink, setOmega);
     96  LoadParam(root, "period", this, Blink, setPeriod);
     97  LoadParam(root, "sequence", this, Blink, loadBlinkSequence);
    9098}
    9199
     
    97105void Blink::tick(float dt)
    98106{
    99   this->angle += dt * this->omega;
     107  timer += dt;
    100108
    101   while (this->angle > 2 * M_PI)
    102     this->angle -= 2 * M_PI;
     109  while(this->timer >= this->symbolTime)
     110  {
     111    this->blinkStr = (float)((int)(blinkSequence[seqCounter]) - 48) / 9;
    103112
    104   // blinkStr should be element of [0, 1]
    105   this->blinkStr = (sinf(angle) + 1) / 2;
     113    this->timer -= symbolTime;
     114
     115    seqCounter++;
     116    seqCounter %= this->blinkSequence.length();
     117  }
    106118
    107119  this->bBoard->colorTexture(Color(color.r(), color.g(), color.b(), this->blinkStr));
Note: See TracChangeset for help on using the changeset viewer.