Commit 29e6f2ee authored by zjz1994's avatar zjz1994

修改猩猩状态暂存

parent 56df5beb
...@@ -166,6 +166,8 @@ let cannofire1mvdata:any = null; ...@@ -166,6 +166,8 @@ let cannofire1mvdata:any = null;
let cannolightmvdata:any = null; let cannolightmvdata:any = null;
let cannoparticlemvdata:any = null; let cannoparticlemvdata:any = null;
let pongomvdata:any = null;
//红包炸弹弹框名字 //红包炸弹弹框名字
const redBombPanelName = "RedBombAlert"; const redBombPanelName = "RedBombAlert";
...@@ -1089,7 +1091,9 @@ export default class MainScene extends Scene { ...@@ -1089,7 +1091,9 @@ export default class MainScene extends Scene {
}else{ }else{
if (!svgaParser) svgaParser = new window["SVGA"].Parser(); if (!svgaParser) svgaParser = new window["SVGA"].Parser();
svgaParser.load(resPath + 'resource/assets/svgas/canno1.svga',(videoItem)=>{ svgaParser.load(resPath + 'resource/assets/svgas/canno1.svga',(videoItem)=>{
cannomvdata = videoItem; if(!cannomvdata){
cannomvdata = videoItem;
}
canno.createCanno(cannomvdata); canno.createCanno(cannomvdata);
}) })
} }
...@@ -1116,6 +1120,19 @@ export default class MainScene extends Scene { ...@@ -1116,6 +1120,19 @@ export default class MainScene extends Scene {
this.elementContainer.addChild(pongo); this.elementContainer.addChild(pongo);
pongo.setPongoPart(inpart); pongo.setPongoPart(inpart);
this.lattices[i].element = pongo; this.lattices[i].element = pongo;
if(inpart=="tl"){
if(pongomvdata){
pongo.createPongo(pongomvdata);
}else{
if (!svgaParser) svgaParser = new window["SVGA"].Parser();
svgaParser.load(resPath + 'resource/assets/svgas/xingxing.svga',(videoItem)=>{
if(!pongomvdata){
pongomvdata = videoItem;
}
pongo.createPongo(pongomvdata);
})
}
}
break; break;
default: default:
//其他标识按空元素记 //其他标识按空元素记
...@@ -4110,7 +4127,7 @@ export default class MainScene extends Scene { ...@@ -4110,7 +4127,7 @@ export default class MainScene extends Scene {
lockPongoArr.push(ilockpongo); lockPongoArr.push(ilockpongo);
//解锁猩猩被锁状态 //解锁猩猩被锁状态
lat.element.removePongoLockStat(); this.changePongoStat(lat.element);
} }
// } // }
} }
...@@ -4119,6 +4136,35 @@ export default class MainScene extends Scene { ...@@ -4119,6 +4136,35 @@ export default class MainScene extends Scene {
//本次全地图解锁的猩猩部分处理 //本次全地图解锁的猩猩部分处理
this.solvePongoEle(lockPongoArr); this.solvePongoEle(lockPongoArr);
} }
//消除动画中的猩猩解锁状态
changePongoStat(ele:Element){
var pongopart = ele.inPongoPart;
var eleidx = ele.index;
var tlidx:number;
switch(pongopart){
case "tl":
tlidx = eleidx;
break;
case "tr":
tlidx = eleidx - 1;
break;
case "bl":
tlidx = eleidx - Tool.colNum;
break;
case "br":
tlidx = eleidx - Tool.colNum - 1;
break;
default:
console.error("未定义猩猩解锁");
break;
}
if(this.lattices[tlidx]&&this.lattices[tlidx].element){
var tlele:Element = this.lattices[tlidx].element;
tlele.changePongoStat(pongopart);
}
ele.removePongoLockStat();
}
//横纵特效穿过解救猩猩 //横纵特效穿过解救猩猩
checkPongoHVEle(row:number,col:number,dir:string){ checkPongoHVEle(row:number,col:number,dir:string){
var lockPongoArr:Array<{idx:number,part:string}> = new Array(); var lockPongoArr:Array<{idx:number,part:string}> = new Array();
...@@ -4171,7 +4217,7 @@ export default class MainScene extends Scene { ...@@ -4171,7 +4217,7 @@ export default class MainScene extends Scene {
part:lat.element.inPongoPart part:lat.element.inPongoPart
} }
lockPongoArr.push(ilockpongo); lockPongoArr.push(ilockpongo);
lat.element.removePongoLockStat(); this.changePongoStat(lat.element);
} }
} }
return 3; return 3;
...@@ -4546,6 +4592,9 @@ export default class MainScene extends Scene { ...@@ -4546,6 +4592,9 @@ export default class MainScene extends Scene {
//先赋值指向 //先赋值指向
let ele = this.lattices[index].element; let ele = this.lattices[index].element;
//猩猩新增,去除ticker
ele.addDisable();
//添加进emptys //添加进emptys
this.emptys.push(index) this.emptys.push(index)
//从容器移除 //从容器移除
......
...@@ -71,6 +71,7 @@ chapters.forEach((chapter,index) => { ...@@ -71,6 +71,7 @@ chapters.forEach((chapter,index) => {
*/ */
export function getChapterData(index: number): ChapterData { export function getChapterData(index: number): ChapterData {
//没有数据就返回第一关数据 //没有数据就返回第一关数据
return chapters[576];
return chapters[index] || chapters[1]; return chapters[index] || chapters[1];
} }
......
...@@ -31,6 +31,7 @@ import { State } from "./State"; ...@@ -31,6 +31,7 @@ import { State } from "./State";
import wait from "../../../libs/new_tc/wait"; import wait from "../../../libs/new_tc/wait";
import { Fish } from "./Fish"; import { Fish } from "./Fish";
import MainScene from "../../mainScene/MainScene"; import MainScene from "../../mainScene/MainScene";
import MovieClip from "../../movieclip/MovieClip";
/** /**
* 考虑到底继承白鹭的啥Component还是Container * 考虑到底继承白鹭的啥Component还是Container
* 坐标原点需要坐落在格子的中心点 * 坐标原点需要坐落在格子的中心点
...@@ -39,6 +40,13 @@ import MainScene from "../../mainScene/MainScene"; ...@@ -39,6 +40,13 @@ import MainScene from "../../mainScene/MainScene";
//加载器 //加载器
let svgaParser; let svgaParser;
//猩猩新增草idx
enum grassPongo{
tl = "7,9",
tr = "4,6",
bl = "2",
br = "3"
}
export class Element extends eui.Component { export class Element extends eui.Component {
private _fishState = 0; private _fishState = 0;
private _isNeb: boolean;//是否 private _isNeb: boolean;//是否
...@@ -218,6 +226,18 @@ export class Element extends eui.Component { ...@@ -218,6 +226,18 @@ export class Element extends eui.Component {
} }
//猩猩的哪个部分 //猩猩的哪个部分
inPongoPart:string; inPongoPart:string;
pongoMoveClip:any;
/**
* 猩猩草的位置
* 2--左脚
* 3--右脚
* 4,6--右手
* 7,9--左手
*/
noseeimgs:Array<number> = [];
// 剩余显示部分
lessPart:Array<string> = [];
//暂给猩猩两种状态,normal正常,readyelm准备消除 //暂给猩猩两种状态,normal正常,readyelm准备消除
/** /**
* 设置为猩猩的一部分 * 设置为猩猩的一部分
...@@ -227,12 +247,7 @@ export class Element extends eui.Component { ...@@ -227,12 +247,7 @@ export class Element extends eui.Component {
this.inPongoPart = part; this.inPongoPart = part;
// console.log("我是猩猩的"+part); // console.log("我是猩猩的"+part);
if(part=="tl"){ if(part=="tl"){
var source = "ele40_png";
var texture: egret.Texture = RES.getRes(source);
if (!texture) { return console.error("未找到纹理",source,this.type); }
this.showImage.texture = texture
this.showImage.x = -texture.textureWidth/4;
this.showImage.y = -texture.textureHeight/4;
} }
this.showImage.alpha = 0.5; this.showImage.alpha = 0.5;
var state = StateType.PongoLockState; var state = StateType.PongoLockState;
...@@ -253,6 +268,107 @@ export class Element extends eui.Component { ...@@ -253,6 +268,107 @@ export class Element extends eui.Component {
//视图添加 //视图添加
this.addChild(this.states[state]); this.addChild(this.states[state]);
} }
createPongo(videoItem:any){
if(this.pongoMoveClip){
if(this.pongoMoveClip.parent){
this.pongoMoveClip.parent.removeChild(this.pongoMoveClip);
}
this.initPongoMoveClip();
}else{
this.pongoMoveClip = new window["SVGA"].EgretMovieClip(videoItem);
this.initPongoMoveClip();
}
}
initPongoMoveClip(){
console.log("创建了一个猩猩");
var boxwidth = 80;
var boxheight = 80;
var mvwidth = 161;
var mvheight = 161;
this.pongoMoveClip.x = (boxwidth-mvwidth)/2;
this.pongoMoveClip.y = (boxheight-mvheight)/2;
this.addChild(this.pongoMoveClip);
this.pongoMoveClip.gotoAndPlay(1);
this.noseeimgs = new Array();
this.lessPart = ["tl","tr","bl","br"];
this.pongoMoveClip.addEventListener(egret.Event.ENTER_FRAME,this.pongoFrameAni,this);
egret.ticker.$startTick(this.update,this);
}
//猩猩当前应处于的播放状态
//控制猩猩的播放
pongoFrameAni(){
var curframe = this.pongoMoveClip.currentFrame;
//检测当前
}
changePongoStat(part:string,lock:string="free"){
var partIarr:Array<number> = [];
switch(part){
case "tl":
partIarr = grassPongo.tl.split(",").map(Number);
break;
case "tr":
partIarr = grassPongo.tr.split(",").map(Number);
break;
case "bl":
partIarr = grassPongo.bl.split(",").map(Number);
break;
case "br":
partIarr = grassPongo.br.split(",").map(Number);
break;
default:
console.error("未定义猩猩解锁");
break;
}
if(lock=="free"){
for(var i=0;i<partIarr.length;i++){
var ipart = partIarr[i];
var ipartidx = this.noseeimgs.indexOf(ipart);
if(ipartidx==-1){
this.noseeimgs.push(ipart);
}
}
var inpart = this.lessPart.indexOf(part);
if(inpart!=-1){
this.lessPart.splice(inpart,1);
}
}else{
for(var i=0;i<partIarr.length;i++){
var ipart = partIarr[i];
var ipartidx = this.noseeimgs.indexOf(ipart);
if(ipartidx!=-1){
this.noseeimgs.splice(ipartidx,1);
}
}
var inpart = this.lessPart.indexOf(part);
if(inpart==-1){
this.lessPart.push(part);
}
}
console.log("剩余显示",this.lessPart);
}
update(t:number){
if(this.pongoMoveClip&&this.pongoMoveClip.numChildren>10){
for(let i=0;i<this.noseeimgs.length;i++){
var noseeidx = this.noseeimgs[i];
let noseeimg = this.pongoMoveClip.getChildAt(noseeidx) as egret.Bitmap;
noseeimg.visible = false;
}
}
return true;
}
addDisable(){
if(this.inPongoPart&&this.inPongoPart=="tl"){
console.log("猩猩消除ticker");
if(this.pongoMoveClip&&this.pongoMoveClip.parent){
this.pongoMoveClip.parent.removeChild(this.pongoMoveClip);
}
egret.ticker.$stopTick(this.update,this);
}
}
removePongoLockStat(){ removePongoLockStat(){
var state = StateType.PongoLockState; var state = StateType.PongoLockState;
this.states[state].recover(); this.states[state].recover();
......
...@@ -19,7 +19,7 @@ export class PongoLockState extends State{ ...@@ -19,7 +19,7 @@ export class PongoLockState extends State{
this.once(egret.Event.ADDED,this.initShow,this); this.once(egret.Event.ADDED,this.initShow,this);
} }
initShow(){ initShow(){
this.alpha = 1; this.alpha = 0;
var texture: egret.Texture = RES.getRes("lockVine_png"); var texture: egret.Texture = RES.getRes("lockVine_png");
this.showImage.texture = texture; this.showImage.texture = texture;
this.showImage.x = -texture.textureWidth / 2; this.showImage.x = -texture.textureWidth / 2;
......
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