// Learn TypeScript: // - https://docs.cocos.com/creator/manual/en/scripting/typescript.html // Learn Attribute: // - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html // Learn life-cycle callbacks: // - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html const {ccclass, property, } = cc._decorator; export enum moduleState { INIT1 = 0, INIT2 = 1, Ready = 2, Spining = 3, Stopping = 4, }; @ccclass("gameMY") export class gameMY extends cc.Component { @property columnCount:number = 5; @property itemSize:number = 240; @property(cc.Label) betString: cc.Label = null; @property(cc.Label) bigFrameString: cc.Label = null; @property(cc.Label) balanceString: cc.Label = null; @property({type: cc.Prefab}) columnPrefab: cc.Prefab | null = null; @property(cc.Node) slotBoard: cc.Node = null; private betNumber: number; private balanceNumber: number; private bigFrameNumber: number; private stopCount:number; nowState: moduleState = 0; // item 圖片資源存放區 itemNameMapping = { 'item_01':1, 'item_02':2, 'item_03':3, 'item_04':4, 'item_9':5, 'item_10':6, 'item_j':7, 'item_k':8, 'item_q':9, 'item_a':10, 'item_scatter':51, 'item_wild':52 } as const; item_spriteFrame = {}; itemBlur_spriteFrame = {}; protected onLoad () { this.unitTestInit(); // for engineer use this.onColumnsSignal() // 讀取 item 圖片資源 cc.resources.loadDir('item',cc.SpriteFrame, (err: any, sF) => { sF.forEach( (eachSpriteFrame)=>{ this.item_spriteFrame[ this.itemNameMapping[eachSpriteFrame.name] ] = eachSpriteFrame }) } ); cc.resources.loadDir('item_blur',cc.SpriteFrame, (err: any, sF) => { sF.forEach( (eachSpriteFrame)=>{ this.itemBlur_spriteFrame[ this.itemNameMapping[eachSpriteFrame.name] ] = eachSpriteFrame }) } ); } protected start () { this.betNumber = 50; this.slotBoard.addChild( cc.instantiate(this.columnPrefab), 1 ) this.slotBoard.addChild( cc.instantiate(this.columnPrefab), 2 ) this.slotBoard.addChild( cc.instantiate(this.columnPrefab), 3 ) this.slotBoard.addChild( cc.instantiate(this.columnPrefab), 4 ) } protected update (dt) { switch(this.nowState){ case moduleState.INIT1: // 檢查圖片載入完成後 // 將必要資訊餵給 column 後再 active column // 再完成初始化 if((Object.keys(this.item_spriteFrame).length === Object.keys(this.itemNameMapping).length)){ for(let i=0; i{ this.stopCount += 1; }, this) } unitTestInit():void { // for unitTest 1 this.node.on('Bob', (arg1)=>{ cc.log("gameModule Recieve Bob say " + arg1) }, this) } }