Я строю слот-игру, одну линию с тремя барабанами, используя 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();
}