| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251 |
- const PlayerStateStatic = require('PlayerState');
- cc.Class({
- extends: cc.Component,
- properties: {
- Level: {
- default: null,
- type: cc.Node
- },
- Hero: {
- default: null,
- type: cc.Node
- },
- player: {
- default: null,
- type: cc.Node
- },
- enableTouch:true,
- //todo 控制是否可以点击
- TouchControlEnableTouch : false,
- PlayerCollisionLine:null,
- PlayerStateScript:null,
- HeroControlScript:null,
- },
- onLoad:function () {
- this.isFristClick = false;
- },
- start : function () {
- cc.director.getCollisionManager().enabled = true;
- this.PlayerStateScript = this.Hero.getComponent("PlayerState");
- this.HeroControlScript = this.Hero.getComponent("HeroControl");
- // this.PlayerCollisionLine = this.Hero.getChildByName("Player").getChildByName('PlayerCollisionLine');
- this.PlayerCollisionLine = this.Hero.getChildByName('Player').getChildByName('PlayerCollisionLine');
- this.touchClick();
- },
- touchClick : function () {
- // cc.log("按屏幕了",this.enableTouch,this.TouchControlEnableTouch);
- var TouchLayout = cc.find("TouchLayout");
- var self = this;
- TouchLayout.on(cc.Node.EventType.TOUCH_START, function (event) {
- var self = this;
- // var layout = this.getChildByName("TouchLayout");
- // var touches = event.getTouches();
- // var touchLoc = touches[0].getLocation();
- // cc.log("限制 允许 前",this.TouchControlEnableTouch);
- if(!this.enableTouch)return;
- if(!this.TouchControlEnableTouch)return;
- // cc.log("限制 允许 后",this.TouchControlEnableTouch);
- var HeroControlPosition = self.HeroControlScript.node.getPosition();
- var PlayerCollisionLinePosition = cc.p(HeroControlPosition.x-360,0);//HeroControlPosition.y+self.PlayerCollisionLine.getPosition().y-3);
- // cc.log(self.PlayerCollisionLine.getPosition());
- if(self.PlayerStateScript.CurrentInZoneType!=PlayerStateStatic.ZoneType.FrontLongAccelerationBand
- && self.PlayerStateScript.CurrentInZoneType!=PlayerStateStatic.ZoneType.CenterLongAccelerationBand)
- {
- self.Level.getComponent('LevelControl').SetLocationLine(PlayerCollisionLinePosition);
- }
- // cc.log(PlayerStateScript.CurrentInZoneType);
- if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.FrontAccelerationBand) //AccelerationBand
- {
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.FrontAccelerationBand);
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- // cc.log('TouchedFrontAccelerationBand' );
- // cc.log("点击 一般加速1");
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.AccelerationBandCenter)
- {
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.AccelerationBandCenter);
- self.player.getComponent("Charactor").setOnTouchListener(event);
- // HeroControlScript.EnableHeroMoving(false);
- // cc.log("点击 完美加速");
- var AccelerationBandCenterSprite = self.PlayerStateScript.AccelerationBandCenterTouched.node.getComponent(cc.Sprite);
- AccelerationBandCenterSprite.destroy();
- // cc.log('TouchedAccelerationBandCenter' );
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.BehindAccelerationBand)
- {
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.BehindAccelerationBand);
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- // cc.log('TouchedBehindAccelerationBand' );
- // cc.log("点击 一般加速2");
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.PreHurdleBand)//Hurdle
- {
- self.enableTouch = false;
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- self.HeroControlScript.HeroJump();
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.PreHurdleBand);
- self.player.getComponent("Charactor").setOnHurdlingListener(event);
- self.schedule(function()
- {
- self.PlayerStateScript.Barrier.getComponent("Barrier").Shake();
- }, 0.2, 0);
- self.schedule(function()
- {
- self.enableTouch = true;
- }, 0.5, 0);
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.PerfectHurdleBand)
- {
- // cc.log("现在动作","跨栏");
- self.enableTouch = false;
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- self.HeroControlScript.HeroJump();
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.PerfectHurdleBand);
- self.player.getComponent("Charactor").setOnHurdlingListener(event);
- var AccelerationBandCenterSprite = self.PlayerStateScript.AccelerationBandCenterTouched.node.getComponent(cc.Sprite);
- AccelerationBandCenterSprite.destroy();
- self.schedule(function()
- {
- self.enableTouch = true;
- }, 0.5, 0);
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.FrontLongAccelerationBand)
- {
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.FrontLongAccelerationBand);
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- self.schedule(function()
- {
- this.PlayerStateScript.BDrawYellowLine = true;
- }, 0.02, 0);
- // self.PlayerCollisionLine = this.Level.getComponent('LevelControl').CreateYellowLongAccelerationLine(PlayerCollisionLinePosition);
- // HeroControlScript.EnableHeroMoving(false);
- // cc.log(self.PlayerCollisionLine);
- // cc.loader.loadRes('res/Levels/LongAccelerationBand10ColumnHasFrames/yellowLongAccelerationLine', cc.SpriteFrame,function(err,spriteFrame){
- // cc.log('111');
- // //创建一个新的节点,因为cc.Sprite是组件不能直接挂载到节点上,只能添加到为节点的一个组件
- // var node=new cc.Node('myNode');
- //
- // node.setPosition(PlayerCollisionLine.getPosition());
- // //调用新建的node的addComponent函数,会返回一个sprite的对象
- // const sprite=node.addComponent(cc.Sprite);
- // //给sprite的spriteFrame属性 赋值
- // sprite.spriteFrame=spriteFrame;
- // //把新的节点追加到self.node节点去。self.node,就是脚本挂载的节点
- // this.Level.addChild(node);
- // })
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.CenterLongAccelerationBand)
- {
- self.PlayerStateScript.BDrawYellowLine = !self.PlayerStateScript.BDrawYellowLine;
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.BehindLongAccelerationBand)
- {
- self.HeroControlScript.Stagger();
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.FrontLongJumpBand)//Hurdle
- {
- // cc.log("现在动作","跳远");
- self.enableTouch = false;
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- self.HeroControlScript.HeroLongJump();
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.FrontLongJumpBand);
- // self.player.getComponent("Charactor").setOnHurdlingListener(event);
- CustomLog("跳远 一般加速");
- self.schedule(function()
- {
- self.enableTouch = true;
- }, 0.5, 0);
- }
- else if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.PerfectLongJumpBand)
- {
- self.enableTouch = false;
- self.PlayerStateScript.BTouchedScreenInTheZone = true;
- self.HeroControlScript.HeroLongJump();
- self.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.PerfectLongJumpBand);
- // self.player.getComponent("Charactor").setOnHurdlingListener(event);
- CustomLog("跳远 完美加速");
- var AccelerationBandCenterSprite = self.PlayerStateScript.PerfectLongJumpBandCenterTouched.node.getComponent(cc.Sprite);
- AccelerationBandCenterSprite.destroy();
- self.schedule(function()
- {
- self.enableTouch = true;
- }, 0.5, 0);
- }
- else
- {
- //todo 如果我们在不允许 点击的地方点击了 就 踉跄
- self.HeroControlScript.Stagger();
- }
- }.bind(this), self.node);
- self.node.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
- }.bind(this), self.node);
- self.node.on(cc.Node.EventType.TOUCH_END, function (event) {
- if(self.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.CenterLongAccelerationBand)
- {
- if(self.PlayerStateScript.BDrawYellowLine)
- {
- self.PlayerStateScript.BDrawYellowLine = !self.PlayerStateScript.BDrawYellowLine;
- }
- }
- }.bind(this), self.node);
- },
- update : function (dt) {
- if(this.PlayerStateScript.BDrawYellowLine)// && this.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.CenterLongAccelerationBand)
- {
- if(this.PlayerStateScript.CurrentInZoneType===PlayerStateStatic.ZoneType.BehindLongAccelerationBand)
- {
- this.PlayerStateScript.BDrawYellowLine = !this.PlayerStateScript.BDrawYellowLine;
- this.HeroControlScript.Stagger();
- return;
- }
- var HeroControlPosition = this.HeroControlScript.node.getPosition();
- for(var i=0;i<1;i++)
- {
- // var PlayerCollisionLinePosition = cc.p(HeroControlPosition.x+this.PlayerCollisionLine.getPosition().x+i,HeroControlPosition.y+this.PlayerCollisionLine.getPosition().y+3);
- var PlayerCollisionLinePosition = cc.p(HeroControlPosition.x-355,HeroControlPosition.y-643);
- // var PlayerCollisionLinePosition = cc.p(0,-640);//cc.p(360,640);
- this.Level.getComponent('LevelControl').CreateYellowLongAccelerationLine(PlayerCollisionLinePosition);
- }
- this.HeroControlScript.SpeedUp(PlayerStateStatic.ColliderSpeedUpPoint.CenterLongAccelerationBand);
- }
- }
- });
|