| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184 |
- let aWebView = require("WebView");
- let aLib = require("Library");
- cc.Class({
- extends: cc.Component,
- properties: {
- GameMode: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- GameStates: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- PlayerNode: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- CharactorNode: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- PlayerStatesNode: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- PunchTimes: {
- default: null,
- type: cc.Node,
- serializable: true,
- },
- PuchTimesLabel: {
- default: null,
- type: cc.Label,
- serializable: true,
- },
- },
- start () {
- //初始化
- this.GameModeScp = this.GameMode.getComponent('GameMode');
- this.GameStatesScp = this.GameStates.getComponent('GameStates');
- this.CharactorScp = this.CharactorNode.getComponent('Charactor');
- this.PlayerStatesScp = this.PlayerStatesNode.getComponent('PlayerStates');
- this.PunchTimesAnim = this.PunchTimes.getComponent(cc.Animation);
- //触摸事件
- this.TouchEventScp = this.PlayerNode.getComponent('TouchEvent');
- this.TouchEventScp.registerListener(this.node);
- this.node.on('touchstart',this.onEventStart,this);
- //记录开始位置
- this.GameStatesScp.startPosition.x = this.PlayerNode.x;
- this.GameStatesScp.startPosition.y = this.PlayerNode.y;
- this.PlayerStatesScp.state = this.PlayerStatesScp.stateTag.idle;//idle
- //减慢玩家速度
- this.schedule(function(){
- this.SpeedDown();
- }.bind(this),0.1,cc.macro.REPEAT_FOREVER);
- //是否在pC
- if(!aLib.isMobile()) return;
- let self = this;
-
- aWebView.init(self.node, ()=>{
- aWebView.onBindHitBoxingPost();
- self.node.on('onBoxingPostHit',self.onBoxingPostHit,self);
- });
- },
- onBoxingPostHit(data)
- {
- if(this.GameStatesScp.progress != this.GameStatesScp.progressTag.start)//2 start game
- {
- this.GameModeScp.StarGame();
- }
- else
- {
- this.Run(1);
- }
- },
- onEventStart(worldPoint)
- {
- this.Run(0);
- },
- Run(bPunch)
- {
- //是否游戏开始
- if(this.GameStatesScp.progress != this.GameStatesScp.progressTag.start) return;
- let time = new Date();
- if(this.PlayerStatesScp.lastPucnTime!=0)
- {
- let dtTime = time.getMilliseconds() - this.PlayerStatesScp.lastPucnTime.getMilliseconds();
- if(bPunch)
- {
- if(dtTime < 500)
- {
- this.PlayerStatesScp.dtDownSpeed = 0.1;
- }
- else if(dtTime >= 500 && dtTime < 1000)
- {
- this.PlayerStatesScp.dtDownSpeed = 0.2;
- }
- else if(dtTime >= 1000 && dtTime < 2000)
- {
- this.PlayerStatesScp.dtDownSpeed = 0.5;
- }
- }
- else
- {
- if(dtTime < 200)
- {
- this.PlayerStatesScp.dtDownSpeed = 0.1;
- }
- else if(dtTime >= 200 && dtTime < 300)
- {
- this.PlayerStatesScp.dtDownSpeed = 0.2;
- }
- else if(dtTime >= 300 && dtTime < 500)
- {
- this.PlayerStatesScp.dtDownSpeed = 0.5;
- }
- }
-
- }
- this.PlayerStatesScp.lastPucnTime = time;
- this.GameStatesScp.PunchTimes++;
- this.PuchTimesLabel.string = this.GameStatesScp.PunchTimes;
- if(this.PlayerStatesScp.speed+this.PlayerStatesScp.dtSpeed<=10)
- {
- this.PlayerStatesScp.speed+=this.PlayerStatesScp.dtSpeed;
- }
- //console.log('this.PlayerStatesScp.speed=',this.PlayerStatesScp.speed)
- this.unschedule(this.StopRun);
- if(bPunch)
- {
- this.scheduleOnce(this.StopRun,2);
- }
- else
- {
- this.scheduleOnce(this.StopRun,0.5);
- }
- },
- StopRun()
- {
- this.PlayerStatesScp.speed = 0;
- this.CharactorScp.Idel();
- },
- SpeedDown()
- {
- if(this.PlayerStatesScp.speed<=0) return;
- this.PlayerStatesScp.speed-=this.PlayerStatesScp.dtDownSpeed;
- },
- Reset()
- {
- this.PlayerNode.x = this.GameStatesScp.startPosition.x;
- this.PlayerNode.y = this.GameStatesScp.startPosition.y;
- this.PuchTimesLabel.string = '0';
- },
- update (dt)
- {
- if(this.PlayerStatesScp.speed>0 && this.PlayerStatesScp.speed<3)//run
- {
- this.CharactorScp.Run(1);
- }
- else if(this.PlayerStatesScp.speed>=3 && this.PlayerStatesScp.speed<8)
- {
- this.CharactorScp.Run(2);
- }
- else if(this.PlayerStatesScp.speed>=9)
- {
- this.CharactorScp.Run(3);
- }
- this.PlayerNode.x += this.PlayerStatesScp.speed;
- },
- });
|