123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152 |
- import { _decorator, Button, Component,director,game,Node,Sprite, SpriteFrame } from 'cc';
- import { GameData } from './GameData';
- import { MainScene } from './MainScene';
- const { ccclass, property } = _decorator;
- @ccclass('Menu')
- export class Menu extends Component {
- //加速Buton
- @property(Button)
- btnSpeed:Button = null;
- @property(SpriteFrame)
- imgSpeed_1:SpriteFrame = null;
- @property(SpriteFrame)
- imgSpeed_2:SpriteFrame = null;
- //暂停Button
- @property(Button)
- btnPause:Button = null;
- @property(SpriteFrame)
- imgPause_1:SpriteFrame = null;
- @property(SpriteFrame)
- imgPause_2:SpriteFrame = null;
- @property(SpriteFrame)
- imgMenuCenter_1:SpriteFrame = null;//第几波怪物
- @property(SpriteFrame)
- imgMenuCenter_2:SpriteFrame = null;//暂停中
- //弹出框
- //@property(Node)
- dialog:Node = null;
- isAccelerate:boolean = false;//是否加速
- currentState:boolean = null;//当前状态
- isPause:boolean = false;//是否暂停
- currentPauseState:boolean = null;//当前状态
- currentSpeed:number = null;//当前速度
- start(){
- this.dialog = this.node.getChildByName("Dialog");
- this.dialog.active = false;
- this.currentSpeed = GameData.speed;//将初始速度赋值给当前速度
- // let btnQuit = this.dialog.getChildByName("BtnQuit");
- // btnQuit.on(Button.EventType.CLICK,this.onBtnQuitDialog,this)
- // let btnSelect = this.dialog.getChildByName("BtnSelect");
- // btnSelect.on(Button.EventType.CLICK,this.onBtnSelectDialog,this);
- // let btnRestart = this.dialog.getChildByName("BtnRestart");
- // btnRestart.on(Button.EventType.CLICK,this.onBtnRestartDialog,this);
- // let btnResume = this.dialog.getChildByName("BtnResume");
- // btnResume.on(Button.EventType.CLICK,this.onBtnQuitDialog,this);
- const buttonConfigs = [
- {name : "BtnResume",handler : this.onBtnQuitDialog},
- {name : "BtnRestart",handler : this.onBtnRestartDialog},
- {name : "BtnSelect",handler : this.onBtnSelectDialog},
- {name : "BtnQuit",handler : this.onBtnQuitDialog}
- ]
-
- buttonConfigs.forEach(config =>{
- let button = this.dialog.getChildByName(config.name);
- button.on(Button.EventType.CLICK,config.handler,this);
- });
-
- this.currentState = this.isAccelerate; //当前状态没有加速
- this.btnSpeed.getComponent(Sprite).spriteFrame = this.imgSpeed_1;
- this.currentPauseState = this.isPause;
- this.btnPause.getComponent(Sprite).spriteFrame = this.imgPause_1;
- this.node.getChildByName("MenuCenter_01_CN").getComponent(Sprite).spriteFrame = this.imgMenuCenter_1;
- }
- //加速
- onBtnSpeed(){
- let btnSpeedComponent = this.btnSpeed.getComponent(Sprite);
- //获取父节点MainScene的脚本组件
- let mainSceneTS = this.node.parent.getComponent(MainScene);
- this.isAccelerate = !this.isAccelerate;//加速
- this.currentState = this.isAccelerate;//当前状态为加速
- if(!this.isAccelerate){
- //一倍速
- mainSceneTS.speed = this.currentSpeed;
- btnSpeedComponent.spriteFrame = this.imgSpeed_1;
- }else{
- //二倍速
- mainSceneTS.speed = mainSceneTS.speed * 2
- btnSpeedComponent.spriteFrame = this.imgSpeed_2;
- }
- }
- //暂停游戏
- onBtnPause(){
- let menuCenterComponent = this.node.getChildByName("MenuCenter_01_CN").getComponent(Sprite);
- let btnPauseComponent = this.btnPause.getComponent(Sprite);
- this.isPause = !this.isPause;//暂停
- this.currentPauseState = this.isPause;//当前状态为暂停
- if(!this.isPause){
- menuCenterComponent.spriteFrame = this.imgMenuCenter_1;
- btnPauseComponent.spriteFrame = this.imgPause_1;
- //恢复暂停
- if(director.isPaused){
- director.resume();
- return;
- }
- }else{
- //暂停
- director.pause();
- menuCenterComponent.spriteFrame = this.imgMenuCenter_2;
- btnPauseComponent.spriteFrame = this.imgPause_2;
- }
- }
- //弹出dialog
- onBtnMore(){
- console.log("More")
- director.pause();
- this.dialog.active = true;
- }
- //退出 恢复暂停
- onBtnQuitDialog(){
- console.log("quitDialog");
- if(director.isPaused()){
- director.resume();
- return;
- }
- this.dialog.active = false;
- }
- //重新选择关卡
- onBtnSelectDialog(){
- director.loadScene("SelectLevel");
- console.log("SelectLevel");
- }
- //重新开始游戏
- onBtnRestartDialog(){
- console.log("Restart");
- }
- update(deltaTime: number) {
-
- }
- }
|