Commit deb521da authored by wildfirecode's avatar wildfirecode

1

parent 0c645983
...@@ -417,6 +417,7 @@ export default class MainBase extends eui.UILayer { ...@@ -417,6 +417,7 @@ export default class MainBase extends eui.UILayer {
"unlightedStar", "unlightedStar",
"mainSoundBtnOff", "mainSoundBtnOff",
"mainMusicBtnOff", "mainMusicBtnOff",
"monster_shoot",
] ]
for (var i = 0; i < arr.length; i++) { for (var i = 0; i < arr.length; i++) {
RES.getResAsync(arr[i] + "_png") RES.getResAsync(arr[i] + "_png")
......
This diff is collapsed.
...@@ -3,10 +3,14 @@ import { StateType } from "../something/enum/StateType"; ...@@ -3,10 +3,14 @@ import { StateType } from "../something/enum/StateType";
import MainScene from "./MainScene"; import MainScene from "./MainScene";
import { Tool } from "../something/Tool"; import { Tool } from "../something/Tool";
import { EffectType } from "../something/enum/EffectType"; import { EffectType } from "../something/enum/EffectType";
import wait from "../../libs/new_tc/wait";
import { MonsterShootAni, monstShootAniDur } from "../something/anis/MonsterShootAni";
import { RecoverName } from "../something/enum/RecoverName";
import { Pool } from "../something/Pool";
/** /**
* 独眼怪爆炸 * 独眼怪爆炸
*/ */
export default (thisObj: MainScene) => { export default async (thisObj: MainScene) => {
//先找出所有激活的怪物 //先找出所有激活的怪物
const awakeMonsterIndexs: number[] = []; const awakeMonsterIndexs: number[] = [];
for (var i = 0; i < thisObj.lattices.length; i++) { for (var i = 0; i < thisObj.lattices.length; i++) {
...@@ -17,7 +21,7 @@ export default (thisObj: MainScene) => { ...@@ -17,7 +21,7 @@ export default (thisObj: MainScene) => {
} }
} }
//遍历所有基础元素 //遍历所有基础元素
const baseElements:Element[] = []; const baseElements: Element[] = [];
for (var i = Tool.colNum * Tool.rowNum - 1; i >= 0; i--) { for (var i = Tool.colNum * Tool.rowNum - 1; i >= 0; i--) {
var lat = thisObj.lattices[i]; var lat = thisObj.lattices[i];
if (Tool.judgeBaseEle(lat) && if (Tool.judgeBaseEle(lat) &&
...@@ -31,10 +35,10 @@ export default (thisObj: MainScene) => { ...@@ -31,10 +35,10 @@ export default (thisObj: MainScene) => {
return (0.5 - Math.random()); return (0.5 - Math.random());
}); });
let genarateEffect:Element[] = []; //生成的特效的列表 let genarateEffect: Element[] = []; //生成的特效的列表
const activeMosterEles: Element[] = awakeMonsterIndexs.map(i => thisObj.lattices[i].element); const activeMosterEles: Element[] = awakeMonsterIndexs.map(i => thisObj.lattices[i].element);
const foundsResult:Element[][] = []; const foundsResult: Element[][] = [];
//遍历激活的怪物 //遍历激活的怪物
for (let index = 0; index < activeMosterEles.length; index++) { for (let index = 0; index < activeMosterEles.length; index++) {
const monsterEle = activeMosterEles[index]; const monsterEle = activeMosterEles[index];
...@@ -45,9 +49,25 @@ export default (thisObj: MainScene) => { ...@@ -45,9 +49,25 @@ export default (thisObj: MainScene) => {
foundsResult[index] = founds; foundsResult[index] = founds;
} }
for (let index = 0; index < activeMosterEles.length; index++) {
const monsterEle = activeMosterEles[index];
//找到相同颜色的元素
let founds = foundsResult[index];
founds.forEach((ele) => {
let bonusShootAni: MonsterShootAni = Pool.takeOut(RecoverName.MONSTER_SHOOT_ANI);
if (!bonusShootAni)
bonusShootAni = new MonsterShootAni();
var r = Tool.getForwardRotation([monsterEle.x, monsterEle.y], [ele.x, ele.y])
bonusShootAni.play(r * 180 / Math.PI, [monsterEle.x, monsterEle.y], [ele.x, ele.y], () => { });
thisObj.addChild(bonusShootAni);
});
}
if (genarateEffect.length > 0)
await wait(monstShootAniDur);
for (let index = 0; index < foundsResult.length; index++) { for (let index = 0; index < foundsResult.length; index++) {
const founds = foundsResult[index]; const founds = foundsResult[index];
founds.forEach(ele=>{ founds.forEach(ele => {
ele.effectType = Math.random() > 0.5 ? EffectType.HORIZONTAL : EffectType.VERTICAL; ele.effectType = Math.random() > 0.5 ? EffectType.HORIZONTAL : EffectType.VERTICAL;
}); });
activeMosterEles[index].monster.resetStatus(); activeMosterEles[index].monster.resetStatus();
......
...@@ -369,6 +369,11 @@ export default class MapScene extends Scene { ...@@ -369,6 +369,11 @@ export default class MapScene extends Scene {
RES.getResAsync('hbRule_bg_png'); RES.getResAsync('hbRule_bg_png');
loadSvga(getResPath() + 'resource/assets/svgas/monster1.svga');
loadSvga(getResPath() + 'resource/assets/svgas/monster2.svga');
loadSvga(getResPath() + 'resource/assets/svgas/monster3.svga');
loadSvga(getResPath() + 'resource/assets/svgas/monster4.svga');
loadSvga(getResPath() + 'resource/assets/svgas/monster5.svga');
loadSvga(getResPath() + 'resource/assets/svgas/box.svga'); loadSvga(getResPath() + 'resource/assets/svgas/box.svga');
loadSvga(getResPath() + 'resource/assets/svgas/invite.svga'); loadSvga(getResPath() + 'resource/assets/svgas/invite.svga');
loadSvga(getResPath() + 'resource/assets/svgas/turntable.svga'); loadSvga(getResPath() + 'resource/assets/svgas/turntable.svga');
......
import { ImageAni } from "../class/ImageAni";
import { Pool } from "../Pool";
import { RecoverName } from "../enum/RecoverName";
import { playSound, SoundType } from "../../soundCtrl";
export const monstShootAniDur: number=500;
/**
* 需要回调的
* 手动修改this.shoot.rotation=
*/
export class MonsterShootAni extends egret.DisplayObjectContainer {
shoot: egret.Bitmap;
// imageAni: ImageAni
constructor() {
super()
var texture = RES.getRes("monster_shoot_png")
this.shoot = new egret.Bitmap(texture);
this.shoot.anchorOffsetX = 87;
this.shoot.anchorOffsetY = 28 / 2;
this.addChild(this.shoot);
}
private reset(p: number[]) {
this.x = p[0];
this.y = p[1];
}
play(rotation: number, from: number[], p: number[], callback: Function) {
this.reset(from)
this.shoot.rotation = rotation;
egret.Tween.get(this)
.to({ x: p[0], y: p[1] }, monstShootAniDur)
.call(() => {
callback();
if (this.parent) {
this.parent.removeChild(this)
};
Pool.recover(RecoverName.MONSTER_SHOOT_ANI, this)
})
}
}
\ No newline at end of file
...@@ -137,7 +137,7 @@ export class Element extends eui.Component { ...@@ -137,7 +137,7 @@ export class Element extends eui.Component {
resetToMonsterView(res: ElementType) { resetToMonsterView(res: ElementType) {
this.changeSource("ele" + res + "_png"); this.changeSource("ele" + res + "_png");
this.monster = new Monster(res); this.monster = new Monster(res,this.type);
this.addChild(this.monster); this.addChild(this.monster);
this.showImage.alpha = 0; this.showImage.alpha = 0;
} }
......
import { ElementType } from "../enum/ElementType"; import { ElementType } from "../enum/ElementType";
import { loadSvga } from "../../loadSvga";
import getResPath from "../../../libs/new_tc/getResPath";
export class Monster extends eui.Component { export class Monster extends eui.Component {
nextStatus() { nextStatus() {
this._statusNum++; this._statusNum++;
...@@ -18,32 +20,43 @@ export class Monster extends eui.Component { ...@@ -18,32 +20,43 @@ export class Monster extends eui.Component {
return this._statusNum == 4; return this._statusNum == 4;
} }
private showImage: eui.Image; // private showImage: eui.Image;
/** /**
* 状态变化 0,1,2,3 * 状态变化 0,1,2,3
*/ */
private _statusNum: number; private _statusNum: number;
res: ElementType; res: ElementType;
_mv;
getRes() { getRes() {
return `ele${this.res}_${this._statusNum}_png`; return `ele${this.res}_${this._statusNum}_png`;
} }
constructor(res: ElementType, n: number = 0) { type;
constructor(res: ElementType, type: number, n: number = 0) {
super(); super();
this.touchEnabled = this.touchChildren = false;
this.res = res; this.res = res;
this.showImage = new eui.Image(); this.type = type;
this.addChild(this.showImage) // this.showImage = new eui.Image();
// this.addChild(this.showImage)
this._statusNum = n; this._statusNum = n;
this.changeSource(); this.changeSource();
this.initSvga();
}
async initSvga() {
const mv: any = await loadSvga(getResPath() + 'resource/assets/svgas/monster' + this.type + '.svga');
this._mv = mv;
this.addChild(mv);
mv.anchorOffsetX = 87 / 2;
mv.anchorOffsetY = 92 / 2;
} }
changeSource() { changeSource() {
const source = this.getRes(); const source = this.getRes();
var texture: egret.Texture = RES.getRes(source); var texture: egret.Texture = RES.getRes(source);
this.showImage.texture = texture; // this.showImage.texture = texture;
this.showImage.anchorOffsetX = texture.textureWidth / 2; // this.showImage.anchorOffsetX = texture.textureWidth / 2;
this.showImage.anchorOffsetY = texture.textureHeight / 2; // this.showImage.anchorOffsetY = texture.textureHeight / 2;
} }
// shakeAni() { // shakeAni() {
// this.showImage.rotation = 0; // this.showImage.rotation = 0;
......
...@@ -17,6 +17,7 @@ export enum RecoverName { ...@@ -17,6 +17,7 @@ export enum RecoverName {
//带回调的动画,和不带的合并不了,因为可能还有其他参数 //带回调的动画,和不带的合并不了,因为可能还有其他参数
BONUSSHOOT_ANI = "BonusShootAni", BONUSSHOOT_ANI = "BonusShootAni",
MONSTER_SHOOT_ANI = "MONSTER_SHOOT_ANI",
JELLYSPREAD_ANI = "JellySpreadAni", JELLYSPREAD_ANI = "JellySpreadAni",
PIECETOEGG_ANI = "PieceToEggAni", PIECETOEGG_ANI = "PieceToEggAni",
BUBBLE_ANI = "BubbleAni", BUBBLE_ANI = "BubbleAni",
......
...@@ -1892,6 +1892,26 @@ ...@@ -1892,6 +1892,26 @@
"levelNum": 376, "levelNum": 376,
"maxScore": 47440, "maxScore": 47440,
"stars": 1 "stars": 1
},
{
"levelNum": 377,
"maxScore": 47440,
"stars": 1
},
{
"levelNum": 378,
"maxScore": 47440,
"stars": 1
},
{
"levelNum": 379,
"maxScore": 47440,
"stars": 1
},
{
"levelNum": 380,
"maxScore": 47440,
"stars": 1
} }
], ],
"remainProp": [ "remainProp": [
......
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