const GameStatesStatic = require('GameStates'); cc.Class({ extends: cc.Component, properties: { MyArrivedTime:[], RivalArrivedTime:[], fadeInAndOutTag : false, bHasAddScore:false }, SynchronizationFun : function(data) { if(cc.find('Canvas').getComponent('GameStates').bConnect) { var str = JSON.stringify(data); if (str.trim().length <= 0) { return } network.send(qqNetwork.game2Room.gameData, JSON.stringify({str:str})); } }, CheckPlayersDistance: function(bFromServer) { var GameStates = cc.find('Canvas').getComponent('GameStates'); if(GameStates.EnterStartLinePlayersArray.length >1) return; // cc.log('GameStates.EnterStartLinePlayersArray.length=',GameStates.EnterStartLinePlayersArray.length) var Hero = cc.find('Hero'); var Rivel = cc.find('Rivel'); if (Math.abs(Hero.position.x - Rivel.position.x) > 3000) { // cc.log('GameMode >3000'); this.OverPosition(); } else { // cc.log('GameMode PreTransport'); GameStates.bPreTransport = true; this.schedule(function() { GameStates.bPreTransport = false; }.bind(this), 5,0); this.schedule(this.Transport, 3,0); var data = {FunctionName: 'Transport'}; this.SynchronizationFun(data); this.schedule(this.UnScheduleFadeIn,0.01,cc.REPEAT_FOREVER); } }, OverPosition:function() { var GameMode = cc.find('Canvas').getComponent('GameMode'); var GameStates = cc.find('Canvas').getComponent('GameStates'); var Hero = cc.find('Hero'); var Rivel = cc.find('Rivel'); var HeroControl = Hero.getComponent('HeroControl'); var RivelControl = Rivel.getComponent('HeroControl'); var PlayerStateScript = Hero.getComponent("PlayerState"); PlayerStateScript.TouchControlEnableTouch = false; var data = {FunctionName: 'FadeInAndOut'}; GameMode.SynchronizationFun(data); this.schedule(function() { GameStates.EnterStartLinePlayersArray=[]; }.bind(this), 5,0); cc.find("Shade").getComponent('Shade').FadeInAndOut(function () { Hero.setPositionX(GameStates.StartLinePositionX-30); Rivel.setPositionX(GameStates.StartLinePositionX); HeroControl.StopPlayerAllSchedule(); RivelControl.StopPlayerAllSchedule(); if(GameStates.bServer) { this.schedule(function() { this.PlayersStartToRun(); }.bind(this), 2,0); } }.bind(this,GameMode,Rivel,HeroControl,RivelControl,GameMode,GameStates)) }, Transport : function() { // cc.log('GameMode Transport'); this.unschedule(this.UnScheduleFadeIn); var Hero = cc.find('Hero'); var Rivel = cc.find('Rivel'); var HeroControl = Hero.getComponent('HeroControl'); var RivelControl = Rivel.getComponent('HeroControl'); this.fadeInAndOutTag = false; var PlayerState = cc.find("Hero").getComponent("PlayerState"); PlayerState.TouchControlEnableTouch = false; cc.find("Shade").getComponent('Shade').FadeInAndOut(function () { this.fadeInAndOutTag = true; Hero.setPositionX(cc.find('Canvas').getComponent('GameStates').StartLinePositionX-30); Rivel.setPositionX(cc.find('Canvas').getComponent('GameStates').StartLinePositionX); HeroControl.node.stopAllActions(); RivelControl.node.stopAllActions(); HeroControl.StopPlayerAllSchedule(); RivelControl.StopPlayerAllSchedule(); var data = {FunctionName: 'StopPlayerAllSchedule'}; this.SynchronizationFun(data); }. bind(this),function () { this.schedule(function() { cc.find('Canvas').getComponent('GameStates').EnterStartLinePlayersArray=[]; }.bind(this), 5,0); this.schedule(function() { cc.find('Canvas').getComponent('GameStates').CurrentProgress = GameStatesStatic.GameProgress.default; HeroControl.javelinTag = false; RivelControl.javelinTag = false; HeroControl.CameraNode.parent = Hero; if(cc.find('Canvas').getComponent('GameStates').bServer) { this.schedule(function() { this.PlayersStartToRun(); }.bind(this), 1,0); } }.bind(this),cc.find('Canvas').getComponent('GameStates').ReadyToRunDuration,0); }.bind(this)); }, UnScheduleFadeIn:function () { var GameStates = cc.find('Canvas').getComponent('GameStates'); var EnterStartLinePlayersArray = GameStates.EnterStartLinePlayersArray; if(EnterStartLinePlayersArray.length == 2) { // cc.log('GameMode Unschedule'); this.unschedule(this.UnScheduleFadeIn); this.unschedule(this.Transport); var Hero = cc.find('Hero'); var Rivel = cc.find('Rivel'); var HeroControl = Hero.getComponent('HeroControl'); var RivelControl = Rivel.getComponent('HeroControl'); HeroControl.javelinTag = false; RivelControl.javelinTag = false; HeroControl.CameraNode.parent = Hero; HeroControl.StopPlayerAllSchedule(); RivelControl.StopPlayerAllSchedule(); var data = {FunctionName: 'StopPlayerAllSchedule'}; this.SynchronizationFun(data); Hero.setPositionX(GameStates.StartLinePositionX-30); Rivel.setPositionX(GameStates.StartLinePositionX); this.schedule(function() { GameStates.EnterStartLinePlayersArray=[]; }.bind(this), 5,0); if(GameStates.bServer) { this.schedule(function() { this.PlayersStartToRun(); }.bind(this), 2,0); } var data = {FunctionName: 'UnScheduleFadeIn'}; this.SynchronizationFun(data); } }, PlayersStartToRun: function () { var Hero = cc.find('Hero'); var Rivel = cc.find('Rivel'); Hero.getComponent('HeroControl').playAudioByName('StartGun');//项目开始时哨声 var PlayerStateScript = Hero.getComponent("PlayerState"); PlayerStateScript.TouchControlEnableTouch = false; var HeroControl = Hero.getComponent('HeroControl'); var RivelControl = Rivel.getComponent('HeroControl'); HeroControl.HeroIsStop = false; RivelControl.HeroIsStop = false; // console.log(11); HeroControl.ResetSpeed_noType(); RivelControl.ResetSpeed_noType(); var data = {FunctionName: 'PlayersStartToRun'}; this.SynchronizationFun(data); }, SyncPositionXRange:function(PlayerNode,CurrentPositionX) { if(Math.abs(CurrentPositionX-PlayerNode.position.x) > cc.find('Canvas').getComponent('GameStates').bSyncPositionXRange) { if(PlayerNode.name == 'Hero') { PlayerNode.setPositionX(CurrentPositionX); } else { PlayerNode.setPositionX(CurrentPositionX+40); } } }, addScore : function (CurrentPlayerNode) { if(this.bHasAddScore == false){ var PlayerState = CurrentPlayerNode.getComponent("PlayerState"); var UIControl = cc.find("UIControl").getComponent("UIControl"); // cc.log("比分",CurrentPlayerNode,PlayerState.TerminalPoint); if (CurrentPlayerNode.name=="Hero") { UIControl.GameUI.setTopMyScore(PlayerState.TerminalPoint+=1); if(cc.find('Canvas').getComponent('GameStates').bServer){ var data = { FunctionName: 'addScore',PlayerName:'Hero'}; this.SynchronizationFun(data); } }else{ UIControl.GameUI.setTopRivalScore(PlayerState.TerminalPoint+=1); } this.bHasAddScore = true; } }, });