Commit 85cc4884 authored by zjz1994's avatar zjz1994

修改烟花和黑洞的bug,加入黑洞动画

parent d8cb8ff9
...@@ -175,6 +175,8 @@ let pongorfootdata:any = null; ...@@ -175,6 +175,8 @@ let pongorfootdata:any = null;
let pongojiodata:any = null; let pongojiodata:any = null;
let pongojioArr:Array<any> = []; let pongojioArr:Array<any> = [];
let wormlightdata:any = null;
let wormlightArr:Array<any> = [];
//红包炸弹弹框名字 //红包炸弹弹框名字
const redBombPanelName = "RedBombAlert"; const redBombPanelName = "RedBombAlert";
...@@ -193,7 +195,7 @@ export default class MainScene extends Scene { ...@@ -193,7 +195,7 @@ export default class MainScene extends Scene {
// private _converyorTag; // private _converyorTag;
// private _wormholeTag; // private _wormholeTag;
//一次操作仅影响一次 //一次操作仅影响一次
private _checkMtag:{ _checkMtag:{
coveryor:boolean,//传送带 coveryor:boolean,//传送带
sand:boolean,//流沙 sand:boolean,//流沙
block:boolean,//石门 block:boolean,//石门
...@@ -377,7 +379,7 @@ export default class MainScene extends Scene { ...@@ -377,7 +379,7 @@ export default class MainScene extends Scene {
//黑洞转移需在所有动画播放完毕后进行 //黑洞转移需在所有动画播放完毕后进行
wormHolePromise: Promise<any>[]; wormHolePromise: Promise<any>[];
//处理烟花的 //处理烟花的
wormFireworks:any; wormFireworks:Array<number> = [];
//todo //todo
targetContainer:egret.DisplayObjectContainer; targetContainer:egret.DisplayObjectContainer;
chapterTxt:ChapterNum; chapterTxt:ChapterNum;
...@@ -709,6 +711,23 @@ export default class MainScene extends Scene { ...@@ -709,6 +711,23 @@ export default class MainScene extends Scene {
} }
} }
} }
/**
* 黑洞上的光
*/
initWormSvgas(){
var resPath = getResPath();
if (!svgaParser) svgaParser = new window["SVGA"].Parser();
if(wormlightdata){
}else{
svgaParser.load(resPath + 'resource/assets/svgas/wormholelight.svga', (videoItem) => {
if(!wormlightdata){
wormlightdata = videoItem;
}
})
}
}
/** /**
* 加载猩猩脚印 * 加载猩猩脚印
*/ */
...@@ -1060,6 +1079,7 @@ export default class MainScene extends Scene { ...@@ -1060,6 +1079,7 @@ export default class MainScene extends Scene {
this.wormholeContainer.addChild(onehole); this.wormholeContainer.addChild(onehole);
onehole.x = jholepos[0]; onehole.x = jholepos[0];
onehole.y = jholepos[1]; onehole.y = jholepos[1];
onehole.name = "wormhole_"+i+"_"+j;
// console.log("添加了一个黑洞",onehole); // console.log("添加了一个黑洞",onehole);
} }
...@@ -1067,6 +1087,7 @@ export default class MainScene extends Scene { ...@@ -1067,6 +1087,7 @@ export default class MainScene extends Scene {
console.error(i+"号线仅存在一个黑洞????"); console.error(i+"号线仅存在一个黑洞????");
} }
} }
this.initWormSvgas();
} }
} }
...@@ -1871,7 +1892,7 @@ export default class MainScene extends Scene { ...@@ -1871,7 +1892,7 @@ export default class MainScene extends Scene {
} }
if(s) { if(s) {
this.wormHolePromise = new Array(); this.wormHolePromise = new Array();
this.wormFireworks = {}; this.wormFireworks = new Array();
//成功的 //成功的
switch(prop) { switch(prop) {
case PropType.BOOM: case PropType.BOOM:
...@@ -2061,7 +2082,7 @@ export default class MainScene extends Scene { ...@@ -2061,7 +2082,7 @@ export default class MainScene extends Scene {
mouseDownE(e: egret.TextEvent) { mouseDownE(e: egret.TextEvent) {
this.wormHolePromise = new Array(); this.wormHolePromise = new Array();
this.wormFireworks = {}; this.wormFireworks = new Array();
// if (!this.enableTouch) return // if (!this.enableTouch) return
this.initOneElmtTag(); this.initOneElmtTag();
var self = this; var self = this;
...@@ -2089,7 +2110,7 @@ export default class MainScene extends Scene { ...@@ -2089,7 +2110,7 @@ export default class MainScene extends Scene {
mouseMoveE(e) { mouseMoveE(e) {
this.wormHolePromise = new Array(); this.wormHolePromise = new Array();
this.wormFireworks = {}; this.wormFireworks = new Array();
this.initOneElmtTag(); this.initOneElmtTag();
if(this.SELECTED && e.target.parent instanceof Element) { if(this.SELECTED && e.target.parent instanceof Element) {
...@@ -3442,6 +3463,16 @@ export default class MainScene extends Scene { ...@@ -3442,6 +3463,16 @@ export default class MainScene extends Scene {
}) })
} }
checkFireWorks(idx:number){
let inidx = this.wormFireworks.indexOf(idx);
if(inidx!=-1){
this.wormFireworks.splice(inidx,1);
if(this.wormFireworks.length==0){
console.log("黑洞上的烟花播放完毕");
this.aiMotionCheckDieMap();
}
}
}
/** /**
* 果冻蔓延和气泡变色需要重新检查死图 * 果冻蔓延和气泡变色需要重新检查死图
*/ */
...@@ -3449,27 +3480,19 @@ export default class MainScene extends Scene { ...@@ -3449,27 +3480,19 @@ export default class MainScene extends Scene {
console.log("重置点击"); console.log("重置点击");
//黑洞转移 //黑洞转移
if(this._checkMtag.wormhole){ if(this._checkMtag.wormhole){
this._checkMtag.wormhole = false;
let wormholes = this.chapterData.map.WORMHOLE; let wormholes = this.chapterData.map.WORMHOLE;
if(wormholes&&wormholes.length>0){ if(wormholes&&wormholes.length>0){
console.log("虫洞位移",this.wormHolePromise.length); console.log("虫洞位移检测",this.wormHolePromise.length);
await Promise.all(this.wormHolePromise).then(()=>{ await Promise.all(this.wormHolePromise).then(()=>{
console.log("动画完毕"); console.log("动画完毕");
}); });
let fireworkspro = new Array();
for(let firekey in this.wormFireworks){
let ifirepro = this.wormFireworks[firekey];
fireworkspro.push(ifirepro);
}
if(fireworkspro.length>0){
await Promise.all(fireworkspro).then(()=>{
console.log("烟花完毕,虫洞可以开始移动");
})
}
if(this.wormFireworks.length>0){
return console.error("等待烟花放完");
}
console.log("开始黑洞转移");
await doWormHoleAI(this); await doWormHoleAI(this);
this._checkMtag.wormhole = false;
// console.log("黑洞转移完毕"); // console.log("黑洞转移完毕");
//黑洞转移,使黑洞占位变空,需要添加到emptys中, //黑洞转移,使黑洞占位变空,需要添加到emptys中,
...@@ -3504,6 +3527,8 @@ export default class MainScene extends Scene { ...@@ -3504,6 +3527,8 @@ export default class MainScene extends Scene {
this.fallCallback(); this.fallCallback();
}) })
return; return;
}else{
this._checkMtag.wormhole = false;
} }
} }
//检查死图 //检查死图
...@@ -4652,7 +4677,7 @@ export default class MainScene extends Scene { ...@@ -4652,7 +4677,7 @@ export default class MainScene extends Scene {
const p = Tool.getPositionByIndex(lat.index); const p = Tool.getPositionByIndex(lat.index);
//动画 //动画
let pro = this.playAni(RecoverName.ICE_ANI, p); let pro = this.playAni(RecoverName.ICE_ANI, p);
if(Tool.judgeInWormHole(lat.index,this.chapterData.map.WORMHOLE)){ if(this._checkMtag.wormhole&&Tool.judgeInWormHole(lat.index,this.chapterData.map.WORMHOLE)){
console.log("冰块pro",lat.index); console.log("冰块pro",lat.index);
this.wormHolePromise.push(pro); this.wormHolePromise.push(pro);
} }
...@@ -4670,7 +4695,7 @@ export default class MainScene extends Scene { ...@@ -4670,7 +4695,7 @@ export default class MainScene extends Scene {
const p = Tool.getPositionByIndex(lat.index); const p = Tool.getPositionByIndex(lat.index);
//动画 //动画
let pro = this.playAni(RecoverName.ICE_ANI, p); let pro = this.playAni(RecoverName.ICE_ANI, p);
if(Tool.judgeInWormHole(lat.index,this.chapterData.map.WORMHOLE)){ if(this._checkMtag.wormhole&&Tool.judgeInWormHole(lat.index,this.chapterData.map.WORMHOLE)){
console.log("石门冰块pro",lat.index); console.log("石门冰块pro",lat.index);
this.wormHolePromise.push(pro); this.wormHolePromise.push(pro);
} }
...@@ -4746,11 +4771,12 @@ export default class MainScene extends Scene { ...@@ -4746,11 +4771,12 @@ export default class MainScene extends Scene {
let pro = lat.element.fire(type); let pro = lat.element.fire(type);
let isInworm = Tool.judgeInWormHole(index,this.chapterData.map.WORMHOLE); let isInworm = Tool.judgeInWormHole(index,this.chapterData.map.WORMHOLE);
if(isInworm){ if(isInworm&&this._checkMtag.wormhole){
console.error("添加烟花pro",lat.index); console.error("添加烟花pro",lat.index);
// this.wormHolePromise.push(pro); // this.wormHolePromise.push(pro);
if(this.wormFireworks.indexOf(index)==-1){
this.wormFireworks[index] = pro; this.wormFireworks.push(index);
}
} }
} }
this.goElementTarget(type, [ele.x, ele.y]); this.goElementTarget(type, [ele.x, ele.y]);
...@@ -5209,7 +5235,7 @@ export default class MainScene extends Scene { ...@@ -5209,7 +5235,7 @@ export default class MainScene extends Scene {
this.removeOperation(index); this.removeOperation(index);
//播放动效 //播放动效
let pro = this.playAni(RecoverName.ROCK_ANI, Tool.getPositionByIndex(index)) let pro = this.playAni(RecoverName.ROCK_ANI, Tool.getPositionByIndex(index))
if(Tool.judgeInWormHole(index,this.chapterData.map.WORMHOLE)){ if(this._checkMtag.wormhole&&Tool.judgeInWormHole(index,this.chapterData.map.WORMHOLE)){
console.log("石头裂开pro",index); console.log("石头裂开pro",index);
this.wormHolePromise.push(pro); this.wormHolePromise.push(pro);
} }
...@@ -5661,4 +5687,39 @@ export default class MainScene extends Scene { ...@@ -5661,4 +5687,39 @@ export default class MainScene extends Scene {
this.eliminate(); this.eliminate();
} }
} }
//黑洞星星动画
wormlightAnm(posx,posy){
let onewormlight;
if(wormlightArr.length>0){
onewormlight = wormlightArr.shift();
}else{
onewormlight = new window["SVGA"].EgretMovieClip(wormlightdata);
}
this.effectContainer.addChild(onewormlight);
console.log(onewormlight);
onewormlight.x = posx-41;
onewormlight.y = posy-41;
// onewormlight.addEventListener(egret.Event.ENTER_FRAME,this.playWormLightFrame,this);
onewormlight.addEventListener(egret.Event.COMPLETE,this.playWormLightComplete,this);
onewormlight.gotoAndPlay(1,1);
}
playWormLightFrame(e){
let onewormlight = e.target;
var curframe = onewormlight.currentFrame;
if(curframe==60){
}
}
playWormLightComplete(e){
let onewormlight = e.target;
onewormlight.removeEventListener(egret.Event.COMPLETE,this.playWormLightComplete,this);
onewormlight.gotoAndStop(1);
if(onewormlight.parent){
onewormlight.parent.removeChild(onewormlight);
wormlightArr.push(onewormlight);
}
}
} }
\ No newline at end of file
...@@ -3,6 +3,8 @@ import { Lattice } from "../something/class/Lattice"; ...@@ -3,6 +3,8 @@ import { Lattice } from "../something/class/Lattice";
import { LatticeType } from "../something/enum/LatticeType"; import { LatticeType } from "../something/enum/LatticeType";
import { Tool } from "../something/Tool"; import { Tool } from "../something/Tool";
import { ElementType } from "../something/enum/ElementType"; import { ElementType } from "../something/enum/ElementType";
import WormHole from "../something/class/WormHole";
import wait from "../../libs/new_tc/wait";
const getMapsp = function(lattice:Lattice){ const getMapsp = function(lattice:Lattice){
var mapcf:{ var mapcf:{
...@@ -67,28 +69,37 @@ const tweenAnisp = function(sp:egret.DisplayObject,posx:number,posy:number,latti ...@@ -67,28 +69,37 @@ const tweenAnisp = function(sp:egret.DisplayObject,posx:number,posy:number,latti
//统一处理 //统一处理
var norscaleX = sp.scaleX; var norscaleX = sp.scaleX;
var norscaleY = sp.scaleY; var norscaleY = sp.scaleY;
var startalpha = sp.alpha;
// console.log("翻转检查",norscaleX,norscaleY); // console.log("翻转检查",norscaleX,norscaleY);
var pro = new Promise(function(resolve,reject){ var pro = new Promise(function(resolve,reject){
egret.Tween.get(sp) egret.Tween.get(sp)
.wait(1300)
.to({ .to({
scaleX:0, alpha:0
scaleY:0, },700,egret.Ease.quadOut)
},500) .wait(200)
.to({
alpha:startalpha
},700,egret.Ease.quadOut);
egret.Tween.get(sp)
.wait(1300)
.to({
scaleX:0.2,
scaleY:0.2,
rotation:180
},800,egret.Ease.quadOut)
.call(()=>{ .call(()=>{
sp.x = posx; sp.x = posx;
sp.y = posy; sp.y = posy;
// console.log("黑洞转移位置",posx,posy);
}) })
.to({ .to({
scaleX:norscaleX, scaleX:norscaleX,
scaleY:norscaleY scaleY:norscaleY,
},500) rotation:360
},800,egret.Ease.quadOut)
.call(()=>{ .call(()=>{
// if(lattice&&mapcf&&elecf){ sp.rotation = 0;
// // console.log("需要替换数据11111111",lattice.index);
// lattice.changeData(mapcf,elecf);
// // console.log("替换数据",JSON.stringify(lattice));
// }
resolve(); resolve();
}) })
}) })
...@@ -176,6 +187,15 @@ export default async (thisObj:MainScene)=>{ ...@@ -176,6 +187,15 @@ export default async (thisObj:MainScene)=>{
let jlidxpos = Tool.getPositionByIndex(jlholeidx); let jlidxpos = Tool.getPositionByIndex(jlholeidx);
// console.log("转移前1----------",JSON.stringify(jidxlattice),"\n2--------------",JSON.stringify(jlidxlattice)) // console.log("转移前1----------",JSON.stringify(jidxlattice),"\n2--------------",JSON.stringify(jlidxlattice))
// console.log("11111111黑洞转移位置",jlholeidx,jlidxpos[0],jlidxpos[1]); // console.log("11111111黑洞转移位置",jlholeidx,jlidxpos[0],jlidxpos[1]);
//黑洞动画
let holesp:WormHole = thisObj.wormholeContainer.getChildByName("wormhole_"+i+"_"+j) as WormHole;
let holeposx = holesp.x;
let holeposy = holesp.y;
thisObj.wormlightAnm(holeposx,holeposy);
// console.log("下一个洞");
// let waitpro = wait(1300).then(()=>{
// console.log("开始缓动");
if(mapsp){ if(mapsp){
let mapro = tweenAnisp(mapsp,jlidxpos[0],jlidxpos[1]); let mapro = tweenAnisp(mapsp,jlidxpos[0],jlidxpos[1]);
promiseList.push(mapro); promiseList.push(mapro);
...@@ -190,11 +210,40 @@ export default async (thisObj:MainScene)=>{ ...@@ -190,11 +210,40 @@ export default async (thisObj:MainScene)=>{
// console.log("烟花特殊处理"); // console.log("烟花特殊处理");
let firework = elesp["_fireworks"]; let firework = elesp["_fireworks"];
let fireposx = jlidxpos[0]; let fireposx = jlidxpos[0];
let fireposy = jlidxpos[1]+12; let fireposy = jlidxpos[1]+3;
let firepro = tweenAnisp(firework,fireposx,fireposy); let firepro = tweenAnisp(firework,fireposx,fireposy);
promiseList.push(firepro); promiseList.push(firepro);
} }
} }
wait(1000).then(()=>{
holesp.playAnm();
})
// })
// promiseList.push(waitpro);
// setTimeout(() => {
// console.log("开始缓动");
// if(mapsp){
// let mapro = tweenAnisp(mapsp,jlidxpos[0],jlidxpos[1]);
// promiseList.push(mapro);
// }
// if(elesp){
// // console.log("000000发起时准备替换元素",jlidxlattice.index,mapcf.mapdata["maptype"],elecf.eledata["type"]);
// let elepro = tweenAnisp(elesp,jlidxpos[0],jlidxpos[1]);
// promiseList.push(elepro);
// //烟花特殊处理
// if(elecf.eledata["type"]==ElementType.FIREWORKS_SHOOTER){
// // console.log("烟花特殊处理");
// let firework = elesp["_fireworks"];
// let fireposx = jlidxpos[0];
// let fireposy = jlidxpos[1]+3;
// let firepro = tweenAnisp(firework,fireposx,fireposy);
// promiseList.push(firepro);
// }
// }
// holesp.playAnm();
// }, 1300);
} }
} }
} }
......
...@@ -273,7 +273,7 @@ export default class MapScene extends Scene { ...@@ -273,7 +273,7 @@ export default class MapScene extends Scene {
RES.getResAsync(`${key}_png`)]); RES.getResAsync(`${key}_png`)]);
} catch (error) { } catch (error) {
} }
console.log("开始加载一系列资源"); // console.log("开始加载一系列资源");
RES.getResAsync('candydis0_json'); RES.getResAsync('candydis0_json');
RES.getResAsync('candydis1_json'); RES.getResAsync('candydis1_json');
RES.getResAsync('candydis2_json'); RES.getResAsync('candydis2_json');
......
...@@ -106,6 +106,7 @@ export class Element extends eui.Component { ...@@ -106,6 +106,7 @@ export class Element extends eui.Component {
_fireworks; _fireworks;
resetFireworks(thisobj) { resetFireworks(thisobj) {
this.mainScene = thisobj;
this.changeSource('empty_png'); this.changeSource('empty_png');
this.showImage.alpha = 0; this.showImage.alpha = 0;
if(this._fireworks){ if(this._fireworks){
...@@ -118,7 +119,7 @@ export class Element extends eui.Component { ...@@ -118,7 +119,7 @@ export class Element extends eui.Component {
} }
this._fireworks.x = this.x; this._fireworks.x = this.x;
this._fireworks.y = this.y + 12; this._fireworks.y = this.y+3;
thisobj.addChild(this._fireworks); thisobj.addChild(this._fireworks);
this._fireworks.gotoAndStop(1); this._fireworks.gotoAndStop(1);
} }
...@@ -129,6 +130,7 @@ export class Element extends eui.Component { ...@@ -129,6 +130,7 @@ export class Element extends eui.Component {
this._fireworks.gotoAndStop(start); this._fireworks.gotoAndStop(start);
this._fireworks.removeEventListener(egret.Event.ENTER_FRAME, cb, this); this._fireworks.removeEventListener(egret.Event.ENTER_FRAME, cb, this);
console.error("释放烟花pro",this.index); console.error("释放烟花pro",this.index);
this.mainScene.checkFireWorks(this.index);
resolve(); resolve();
} }
}; };
......
let wormvideo:any;
let svgaParser
export default class WormHole extends egret.Sprite{ export default class WormHole extends egret.Sprite{
showImage:eui.Image; showImage:eui.Image;
wormHoleClip:any;
constructor(){ constructor(){
super(); super();
this.showImage = new eui.Image(); // this.showImage = new eui.Image();
this.addChild(this.showImage); // this.addChild(this.showImage);
var texture: egret.Texture = RES.getRes("wormhole_png"); // var texture: egret.Texture = RES.getRes("wormhole_png");
if(texture){ // if(texture){
this.showImage.texture = texture; // this.showImage.texture = texture;
this.showImage.x = 0; // this.showImage.x = 0;
this.showImage.y = 0; // this.showImage.y = 0;
this.showImage.anchorOffsetX = this.showImage.width/2; // this.showImage.anchorOffsetX = this.showImage.width/2;
this.showImage.anchorOffsetY = this.showImage.height/2; // this.showImage.anchorOffsetY = this.showImage.height/2;
this.showImage.scaleX = 1.5; // this.showImage.scaleX = 1.5;
this.showImage.scaleY = 1.5; // this.showImage.scaleY = 1.5;
} // }
this.initSvga();
} }
index:number index:number
init(index:number){ init(index:number){
this.index = index; this.index = index;
} }
initSvga(){
if(wormvideo){
console.log("复用黑洞数据");
this.createWormHole();
}else{
if (!svgaParser) svgaParser = new window["SVGA"].Parser();
svgaParser.load(resPath + 'resource/assets/svgas/wormhole.svga',(videoItem)=>{
if(!wormvideo){
wormvideo = videoItem;
}
this.createWormHole();
})
}
}
createWormHole(){
this.wormHoleClip = new window["SVGA"].EgretMovieClip(wormvideo);
var mvwidth = 82;
var mvheight = 82;
this.wormHoleClip.x = -mvwidth/2;
this.wormHoleClip.y = -mvwidth/2;
this.addChild(this.wormHoleClip);
this.wormHoleClip.gotoAndStop(1);
this.wormHoleClip.addEventListener(egret.Event.ENTER_FRAME,this.toFrameAni,this);
console.log("添加黑洞",this.wormHoleClip);
}
toFrameAni(){
var curframe = this.wormHoleClip.currentFrame;
if(curframe==123){
var endtime = new Date().getTime();
console.log("passtime",endtime-this.playtime);
this.wormHoleClip.gotoAndStop(1);
}
}
playtime:number;
playAnm(){
this.playtime = new Date().getTime();
this.wormHoleClip&&this.wormHoleClip.gotoAndPlay(1,1);
}
recover(){ recover(){
if(this.parent){ if(this.parent){
this.parent.removeChild(this); this.parent.removeChild(this);
......
...@@ -378,8 +378,11 @@ export class AiControl { ...@@ -378,8 +378,11 @@ export class AiControl {
resolve(); resolve();
}) })
}) })
if(thisObj._checkMtag.wormhole){
console.log("蛋壳pro",activeEggIndex); console.log("蛋壳pro",activeEggIndex);
thisObj.wormHolePromise.push(pro); thisObj.wormHolePromise.push(pro);
}
if (++count == countAll) { if (++count == countAll) {
//做个延时,有节奏感 //做个延时,有节奏感
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment