Commit ae298c79 authored by yu's avatar yu

撒花

parent c5999e5c
import { asyncDelay, onHomeworkFinish } from "../script/util";
import { asyncDelay, onHomeworkFinish, RandomInt } from "../script/util";
import { MyCocosSceneComponent } from "../script/MyCocosSceneComponent";
import Game, { FISH_OUT, GAME_STATE, Option } from "./tool/Game";
import pg from "./tool/pg";
......@@ -88,9 +88,6 @@ export default class SceneComponent extends MyCocosSceneComponent {
private layout_start: cc.Node;
private audioId: any;
private countDown: number = 999999;
private timeCount: number;
private startCount = 15;
async initView() {
cc.audioEngine.stopAllEffects();
this.layout_start = pg.view.find(this, "layout_start");
......@@ -126,6 +123,11 @@ export default class SceneComponent extends MyCocosSceneComponent {
pg.event.on("play_laba_audio", () => {
this.playLaba();
});
pg.event.on("skiing_show_firework", () => {
this.playLocalAudio("sahua");
let endPos = cc.find("Canvas/bg/bg_could/endPos");
this.showOneFirework(endPos.getPosition(), endPos.parent, cc.find('paperBase', this.node).children);
});
pg.event.on("game_time_over", () => {
// alert("game_time_over")
//这里的事件会发送的很早。但是我们需要等待动画执行完了之后再开始后续的内容
......@@ -216,6 +218,78 @@ export default class SceneComponent extends MyCocosSceneComponent {
pg.audio.playAudioByUrl(Game.getIns().getCurrentPage().audio).then(() => { stop = true; })
}
async showOneFirework(pos, parentNode, nodeList) {
for (let i = 0; i < 3; i++) {
this.showFirework(pos, parentNode, nodeList, 200, 200, 25);
await asyncDelay(0.1);
}
}
showFirework(pos, parentNode, nodeList, width = 200, height = 500, number = 30) {
for (let i = 0; i < number; i++) {
const quad = this.createQuads(pos, parentNode, nodeList);
const targetX = RandomInt(width / 2, -width / 2);
const targetY = RandomInt(height);
cc.tween(quad)
.by(0.5, { x: targetX })
.by(3, { x: targetX * 2 })
.start();
cc.tween(quad)
.by(0.5, { y: targetY }, { easing: 'quadOut' })
.to(4, { y: -parentNode.height * 2 }, { easing: 'quadIn' })
.removeSelf()
.start();
cc.tween(quad)
.delay(1)
.to(0.5 + 1 * Math.random(), { opacity: 0 })
.start();
}
}
createQuads(pos, parentNode, nodeList) {
const quadBase = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
// console.log('nodeList', nodeList);
// console.log('quadBase', quadBase);
quadBase.x = pos.x;
quadBase.y = pos.y + 30;
quadBase.z = pos.z;
quadBase.angle = RandomInt(180);
quadBase.parent = parentNode;
const quad = quadBase.getChildByName('quad');
quad.x = 0;
quad.y = 0;
quad.angle = RandomInt(180);
const paper = quad.getChildByName('paper');
paper.scaleX = Math.random() * 0.8 + 0.2;
paper.scaleY = Math.random() * 0.8 + 0.2;
quadBase.scaleX = Math.random();
cc.tween(quadBase)
.to((1 - quadBase.scaleX) * 0.3, { scaleX: 1 })
.call(() => {
const time = Math.random() * 0.2;
cc.tween(quadBase)
.to(0.1 + time, { scaleX: -1 })
.to(0.1 + time, { scaleX: 1 })
.union()
.repeatForever()
.start();
})
.start();
return quadBase;
}
}
......@@ -107,7 +107,6 @@ export default class layout_game extends cc.Component {
this.touch = true;
if (data.right) {
data.touchRight = true;
//爆炸效果
this.rightNum++;
item.opacity = 0;
Game.getIns().player.addRight();
......@@ -155,7 +154,12 @@ export default class layout_game extends cc.Component {
return new Promise((resolve, reject) => {
let img_player = cc.find("Canvas/bg/bg_could/img_player");
let endPos = cc.find("Canvas/bg/bg_could/endPos");
cc.tween(img_player).to(1, { x: img_player.x, y: endPos.y, scale: 0.16 })
cc.tween(img_player)
.delay(0.1)
.call(() => { this.playLocalAudio("huaxue"); })
.to(1, { x: img_player.x, y: endPos.y, scale: 0.16 })
.call(() => { pg.event.emit("skiing_show_firework") })
.delay(1)
.call(() => { return resolve('') })
.start();
})
......
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