手游研发:博彩大转盘(二)

2014-02-08 13:36:46 · 作者: · 浏览: 416

 

  用了一个递归去循环去跑一个加速度的效果的方法:

  void TurntableSystem::runTurntableGet(float time)

  {

  this->schedule(schedule_selector(TurntableSystem::runAct), time);

  }

  void TurntableSystem::runAct(float time)

  {

  vector gezi_l = GlobalInfo::getInstance()->get_gizilist();

  //做事儿

  if(gezi_l.size()>0)

  {

  if(fnum>gezi_l.size()-1)

  {

  fnum = 0;

  }

  int bid = gezi_l.at(fnum);

  changeBox(bid,true);

  //再把上一个变回来

  int lastnum = fnum-1;

  if(lastnum<0)

  {

  lastnum=gezi_l.size()-1;

  }

  int lastid = gezi_l.at(lastnum);

  changeBox(lastid,false);

  fnum++;

  }

  runnum++;

  this->unschedule(schedule_selector(TurntableSystem::runAct));

  CCLOG("------%f----times=%d-",time,runnum);

  if(runnum<25)

  {

  float nexttime = time+runnum*0.01f;

  if(nexttime>=1.5f)

  {

  nexttime=1.5f;

  }

  this->schedule(schedule_selector(TurntableSystem::runAct),nexttime);

  }

  }

  这边我是启动了一个定时器去实现这个递归加速的方法,里面的25目前是固定的跑25格必定停下!!!

  以下就牵扯到随机数概率获取奖品的问题了,那么根据咱们策划给的方案,每个格子的概率对应的格子数,和步数

  去set这个值就可以了,剩下的工作就很简单了,只需增加随机概率就可以了;

  下面我帖一下跑起来的效果图:

  开始后循环跑动;