import guidePanel from "./guide/guidePanel"; import { App } from "./Manager/App"; import { SoundManager } from "./Manager/SoundManager"; const {ccclass, property} = cc._decorator; export enum BeefState { Raw, //生的 Cooked, //熟的 Burnt, //焦了 Plate, //盘子 YellowSouce, Cocumber, Tomato, RedSouce, } export enum FoodType { None = 0, Drink, PureSteak, CocumberSteak, TomatoSteak, YellowSteak, RedSteak, }; @ccclass export default class Beef extends cc.Component { // 牛肉 @property([cc.SpriteFrame]) beefs: cc.SpriteFrame[] = []; // // 黄瓜 // @property([cc.SpriteFrame]) // huangGua: cc.SpriteFrame[] = []; // // 番茄 // @property([cc.SpriteFrame]) // tomato: cc.SpriteFrame[] = []; // // 芝士 // @property([cc.SpriteFrame]) // Cheese: cc.SpriteFrame[] = []; // // 番茄酱 // @property([cc.SpriteFrame]) // fanQieJiang: cc.SpriteFrame[] = []; @property(cc.Sprite) spBeef: cc.Sprite = null; @property(cc.Node) nodeCocumber: cc.Node = null; @property(cc.Node) nodeTomato: cc.Node = null; @property(cc.Node) nodeYellowSouce: cc.Node = null; @property(cc.Node) nodeRedSouce: cc.Node = null; @property(cc.ProgressBar) pBarCooked: cc.ProgressBar = null; @property(cc.ProgressBar) pBarBurnt: cc.ProgressBar = null; public m_state = BeefState.Raw; public m_foodType = FoodType.None; private m_cookedTime = 3; private m_burntTime = 3; private m_pause = false; onLoad () { } start () { this.setState(BeefState.Raw); } public setState(state: BeefState){ this.m_state = state; switch(this.m_state){ case BeefState.Raw: cc.tween(this.pBarCooked).to(this.m_cookedTime, {progress: 1}).call(()=>{ this.setState(BeefState.Cooked); }).start(); break; case BeefState.Cooked: this.spBeef.spriteFrame = this.beefs[1]; this.pBarCooked.node.active = false; this.pBarBurnt.node.active = true; if(App.DataManager.guideStep == 1){ guidePanel.getInstance().showCurGuide(); } cc.tween(this.pBarBurnt).to(this.m_burntTime, {progress: 1}).call(()=>{ this.setState(BeefState.Burnt); }).start(); App.SoundManager.playEffect(SoundManager.cookingOver); break; case BeefState.Burnt: this.pBarCooked.node.active = false; this.pBarBurnt.node.active = false; this.spBeef.spriteFrame = this.beefs[2]; break; case BeefState.Plate: cc.Tween.stopAllByTarget(this.pBarCooked); cc.Tween.stopAllByTarget(this.pBarBurnt); this.pBarCooked.node.active = false; this.pBarBurnt.node.active = false; this.m_foodType = FoodType.PureSteak; break; case BeefState.YellowSouce: this.nodeYellowSouce.active = true; this.m_foodType = FoodType.YellowSteak; break; case BeefState.Cocumber: this.nodeCocumber.active = true; this.m_foodType = FoodType.CocumberSteak; break; case BeefState.Tomato: this.nodeTomato.active = true; this.m_foodType = FoodType.TomatoSteak; break; case BeefState.RedSouce: this.nodeRedSouce.active = true; this.m_foodType = FoodType.RedSteak; break; } } update (dt) { if(!this.m_pause){ if(this.m_state == BeefState.Raw){ this.m_cookedTime -= dt; } else if(this.m_state == BeefState.Cooked){ this.m_burntTime -= dt; } } } }