Запрос игрового автомата.Как установить лимит времени автоматического воспроизведения? - PullRequest
0 голосов
/ 13 июня 2019

Я строю слот-игру, одну линию с тремя барабанами, используя CocosCreator и Typescript.

Существует одна встроенная функция автоповорота после запуска, она будет вращать барабан бесконечное количество раз.Отжим останавливается только после того, как пользователь нажмет кнопку ручного отжима.

Я хочу установить ограничение по умолчанию для функции автоигры в моем игровом автомате, чтобы при достижении этого предела вращение барабана прекращалось.Я пытался изменить часть кода раньше, но, к сожалению, мне не удалось это сделать.Ниже приведен исходный код, я просто выбрал код автоматического вращения из всей базы кода.

Я пытался добавить оператор цикла, но он также не может работать:

  for (var i=0; i<3; i++) {
    this.scheduleOnce(this.spinTheReelsAgain ,(durations[this.reels.length - i] + 0.2) );
  }

Ваша помощь будет высоко оценена.

/** using for auto spin */
//@property(CustomButton)
autoSpin:CustomButton = null;

rollingCounts:number = 0;

stopUpdate:boolean = true;

spincontroller:SpinController;

gameController:GameController;


public autoSpinCall() {

}

/**
 * start or stop spin
 */
public reelspins() {
  SoundManager.getInstance().stopSoundEffects();
  SoundManager.getInstance().playSoundEffect(SoundManager.SOUND.SPIN_START);
  this.gameController.spinCounterLabel.node.opacity = 0;
  this.gameController.stopWinnerTextAnim();

  this.isSpinStart = !this.isSpinStart;

  if (ConfigManager.getInstance().seletedGamePlugin.gameOnReelSpinStarted) {
    ConfigManager.getInstance().seletedGamePlugin.gameOnReelSpinStarted();
  }

  this.gameController.startSpin.disableButton();
  this.gameController.startSpin.showDollerIcon(false);
  this.schedule(this.reelCountUpdate,0.1);

  const updateSpin = (reel, index) => {
    reel.stopAnimationTime = 0.0;
    reel.stopAnimation();
    reel.node.stopAllActions();
    reel.currentSpinningState=reel.ReelSpinStateEnum.IDLE;
    const spinStartWithDelay = cc.callFunc(() => {
      if (reel.currentSpinningState==reel.ReelSpinStateEnum.IDLE) {
        reel.startSpin();
      }
    }, this);
    const duration = this.gameController.startSpin.isTurboPlayStart ? this.reelTurboEndAnimationDurations[index] : this.reelEndAnimationDurations[index];
    reel.node.runAction(cc.sequence(cc.delayTime(duration),spinStartWithDelay));
  };
  this.reels.forEach(updateSpin.bind(this));
  this.gameController.hideButtonsOnSpinClick();
}

      // if autospin -> spin the reels again
  this.unschedule(this.spinTheReelsAgain);
  this.scheduleOnce(this.spinTheReelsAgain ,(durations[this.reels.length - 1] + 0.2));
}

    /**
* Start spinning if Auto/Turbo play is enable
*/
public spinTheReelsAgain(dt) {
  this.gameController.startSpinningWithDelay(0.15);
}

public balanceCreditWin() {
  this.isWinAnimationStart=false;
  PlayerDataManager.getInstance().spinFinished();
}
public updateReelContainerLayout() {
  // const layout: cc.Layout = this.reelContainer.getComponent(cc.Layout);
  // layout.updateLayout();     
}
...