| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208 |
- cc.Class({
- extends: cc.Component,
- properties: {
- touchFlag: false,
- _isEnemy: false,
- },
- init(parents, randomIndex) {
- this.父级 = parents;
- this._isEnemy = false;
- if (this.父级.name == "敌方父级") {
- this._isEnemy = true;
- }
- this.添加事件();
- this._name = randomIndex;
- if (randomIndex == 0)
- this._name = "";
- this.PlayDragonBones(this.animationDisplay, "jian" + this._name, this.默认状态, 1);
- this.surplusCount = this.击打次数(randomIndex);
- this.clickCount = 0;
- this.reduceBloodCount = 1;
- this.目标父级 = this.父级;
- this.node.position = new cc.Vec2(0, -190);
- this.canClick = true;
- this.伸头();
- },
- 添加事件() {
- this.animationDisplay = this.getComponent(dragonBones.ArmatureDisplay);
- if (this._isEnemy) {
- } else {
- this.node.on(cc.Node.EventType.TOUCH_START, function () {
- if (!this.canClick)
- return;
- ObjectPools.playSimpleAudioEngine(0);
- var pos = this.node.parent.parent.position;
- Games.拳套.position = pos;
- this.PlayDragonBones(Games.glovesDragon, "attack2", this.隐藏拳套, 1);
- this.击中();
- }, this);
- Games.node.on(cc.Node.EventType.TOUCH_MOVE, function (event) {
- if (!this.canClick)
- return;
- if (Games.checkTouch(this.node, event.getLocation())) {
- if (this.touchFlag == false) {
- this.lastPos = event.getLocation();
- this.touchFlag = true;
- }
- } else {
- if (this.touchFlag == true) {
- this.currentPos = event.getLocation();
- this.方向判断();
- }
- }
- }, this);
- ObjectPools.playSimpleAudioEngine(3);
- }
- },
- 方向判断() {
- if (!this.canClick)
- return;
- var valuex = this.currentPos.x - this.lastPos.x;
- if (Math.abs(valuex) < 5)
- return;
- this.touchFlag = false;
- // 左右滑动
- if (valuex > 0) {
- ObjectPools.playSimpleAudioEngine(0);
- var pos = this.node.parent.parent.position;
- Games.拳套.position = pos;
- Games.拳套.scale = new cc.Vec2(1, 1);
- this.PlayDragonBones(Games.glovesDragon, "attack1", this.隐藏拳套, 1);
- this.右击();
- }
- else {
- ObjectPools.playSimpleAudioEngine(0);
- var pos = this.node.parent.parent.position;
- Games.拳套.position = pos;
- Games.拳套.scale = new cc.Vec2(-1, 1);
- this.PlayDragonBones(Games.glovesDragon, "attack1", this.隐藏拳套, 1);
- this.左击();
- }
- },
- 默认状态(event) {
- var scripts = this.node.getComponent("dishu");
- scripts.PlayDragonBones(scripts.animationDisplay, "idle" + scripts._name, scripts.默认状态, 1);
- },
- // 伸头后倒计时 2秒后自动缩头
- 伸头() {
- var self = this;
- this.scheduleOnce(function () {
- if (this.canClick) {
- console.log("ceshi");
- this.canClick = false;
- this.unscheduleAllCallbacks();
- if (!this._isEnemy) {
- ObjectPools.playSimpleAudioEngine(5);
- }
- var finished = cc.callFunc(function () {
- self.node.stopAllActions();
- ObjectPools.地鼠回收(self.node);
- Games.随机生成(self.父级);
- });
- this.缩头动作 = cc.sequence(cc.moveBy(0.2, cc.p(0, -150)), finished);
- this.node.runAction(this.缩头动作);
- }
- }, 2);
- },
- 击中() {
- this.PlayDragonBones(this.animationDisplay, "yun" + this._name, this.默认状态, 1);
- this.连击();
- },
- 左击() {
- var names;
- if (this._name == "") {
- names = "11";
- } else {
- names = 10 + parseInt(this._name) + 1;
- }
- //console.log("左击" + "attack" + names);
- this.PlayDragonBones(this.animationDisplay, "attack" + names, this.默认状态, 1, -1);
- this.连击();
- },
- 右击() {
- var names;
- if (this._name == "") {
- names = "11";
- } else {
- names = 10 + parseInt(this._name) + 1;
- }
- // console.log("左击" + "attack" + names);
- this.PlayDragonBones(this.animationDisplay, "attack" + names, this.默认状态, 1);
- this.连击();
- },
- 连击() {
- this.surplusCount--;
- this.clickCount++;
- if (this.node.parent != null) {
- if (this.clickCount >= 3) {
- ObjectPools.playSimpleAudioEngine(4);
- Games.连击播放(this.node.parent.parent.position, Games.连击动画, this.clickCount);
- }
- }
- if (this.surplusCount == 0) {
- this.挂掉();
- }
- },
- 隐藏拳套(event) {
- Games.拳套.position = cc.Vec2.ZERO;
- },
- 挂掉() {
- if (!this.canClick)
- return;
- ObjectPools.playSimpleAudioEngine(2);
- this.canClick = false;
- this.node.stopAllActions();
- this.unscheduleAllCallbacks();
- var randomIndex = parseInt(Math.random() * 2, 10);
- if (randomIndex == 0) {
- var names;
- if (this._name == "") {
- names = "21";
- } else {
- names = 20 + parseInt(this._name) + 1;
- }
- this.PlayDragonBones(this.animationDisplay, "attack" + names, this.回收, 1);
- } else {
- this.PlayDragonBones(this.animationDisplay, "cry" + this._name, this.回收, 1);
- }
- },
- 回收(event) {
- var scripts = this.node.getComponent("dishu");
- Games.掉血(scripts.目标父级, scripts.reduceBloodCount);
- ObjectPools.地鼠回收(this.node);
- Games.随机生成(scripts.父级);
- },
- PlayDragonBones(animationDisplays, newAnimation, completeCallback, playTimes, scaleX = 1) { //动态加载龙骨
- animationDisplays.playAnimation(newAnimation, playTimes);
- this.node.scale = new cc.Vec2(scaleX, 1);
- animationDisplays.addEventListener(dragonBones.EventObject.COMPLETE, completeCallback, animationDisplays);//.apply(this));
- },
- 击打次数(index) {
- var count;
- // idle:普通 idle1:安全帽 idel2:海盗帽 idle:南瓜帽
- switch (index + 1) {
- case 1: count = 1; break;
- case 2: count = 6; break;
- case 3: count = 3; break;
- case 4: count = 9; break;
- }
- return count;
- },
- });
|