123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126 |
- import { _decorator, assetManager, AudioClip, AudioSource, Component, Node } from 'cc';
- import { attributes_data, scene_item_data, task_data } from '../../data/data';
- import { config } from '../config';
- import { game_run } from './game_run';
- import { gameManager } from './gameManager';
- import { tools } from '../tools';
- import { ClientEvent } from '../clientEvent';
- const { ccclass, property } = _decorator;
- @ccclass('sceneManager')
- export class sceneManager extends Component {
- private mSceneTask :task_data = null;
- private mPageList: scene_item_data[] = []; //每个分页场景
- protected mCurPage:number = 0; //当前场景分页
- private mGameManager:gameManager = null;
- private mSceneData: scene_item_data = null;
- public init(gm:gameManager){
- this.mGameManager = gm;
- ClientEvent.off(config.EventRun.TOGGLE_YIN_YUE,this.updateStatus.bind(this),this)
- ClientEvent.on(config.EventRun.TOGGLE_YIN_YUE,this.updateStatus.bind(this),this)
- }
- public updateStatus(){
- if(!gameManager.getUserData().isOpenYinYue){
- this.getSound().stop()
- }else{
- this.getSound().loop = true;
- this.getSound().play()
- }
- }
- public getSceneTask(){
- return this.mSceneTask;
- }
- public playMusic(path:string, loop: boolean){
- if(path.length<=0){
- return
- }
- let call_back = (err: any, clip: AudioClip)=> {
- if(!err){
- gameManager.mp3_cache.set(path,clip)
- this.playClip(clip, loop);
- }
- }
- if(gameManager.mp3_cache.get(path)){
- let clip = gameManager.mp3_cache.get(path);
- call_back(null,clip)
- }else{
- assetManager.loadRemote(path, call_back );
- }
- }
- public playClip (clip: AudioClip, loop:boolean=true) {
- this.getSound().stop()
- this.getSound().loop = loop;
- this.getSound().clip = clip;
- if(gameManager.getUserData().isOpenYinYue){
- this.getSound().play()
- }
- }
- public stopMusic(){
- this.getSound().pause()
- }
- public play_music(){
- if(this.getSound().clip!=null){
- this.playClip(this.getSound().clip);
- }else{
- this.play_sys_music()
- }
- }
- public play_sys_music() {
- gameManager.Singleton.getSceneManager().playMusic(gameManager.getSysData().content.sys_piped_music,true)
- }
- getSound(){
- if(this.node.getComponent(AudioSource)!=null){
- return this.node.getComponent(AudioSource)
- }
- return this.node.addComponent(AudioSource)
- }
- public getSceneData(){
- // if(this.mSceneData.att==null){
- // if(this.mSceneData.page_list[0].page_list.length>0){
- // return this.mSceneData.page_list[0].page_list[0];
- // }
- // return this.mSceneData.page_list[0];
- // }
- let data = this.mSceneData.page_list[0];
- // while (data.page_list.length>0) {
- // data = data.page_list[0]
- // }
- return data;
- }
- public GetPageList():scene_item_data[]{
- return this.mPageList;
- }
- public startLevelGame(data: scene_item_data){
- this.mSceneTask = data._task_data;
- this.mPageList = data.page_list;
- this.mSceneData = data;
- if(data._task_data==null){
- return tools.showToast("场景任务没有配置!")
- }
- if(this.mPageList.length<=0){
- throw "不可以为空"
- }else{
- this.mGameManager.loadSceneTask(data._task_data)
- this.mGameManager.loadScene(this.mPageList,data.type)
- for (let index = 0; index < data.page_list.length; index++) {
- const element = data.page_list[index];
- this.mGameManager.loadUi(gameManager.getUIWidgetList(element))
- this.mGameManager.loadQuestion(gameManager.getQuestionwidgetList(element))
- this.mGameManager.loadTextSound(gameManager.getTextSoundWidgetList(element))
- this.mGameManager.initCountDownList(gameManager.getCountDownWidgetList(element))
- }
- this.mGameManager.initTaskUi(data._task_data)
- }
- }
- }
|