Commit e57929b2 authored by Tt's avatar Tt

处理闪电效果

parent c07760f2
// pg.event.emit('img_voice_play_voice_start')
// pg.event.emit('img_voice_play_voice_end')
import pg from "./pg_sn05_night";
const { ccclass, property } = cc._decorator;
@ccclass
export default class ImgVoice extends cc.Component {
onLoad() {
this.initView();
this.initEvent();
}
protected onDestroy(): void {
this.unscheduleAllCallbacks();
}
initView() {
}
initEvent() {
pg.event.on('img_voice_play_voice_start', () => {
this.playVoiceStart();
})
pg.event.on('img_voice_play_voice_end', () => {
this.playVoiceEnd();
})
}
private playVoiceCount: number;
playVoiceStart() {
if (this.playVoiceCount > 0) return;
this.playVoiceCount = 0;
this.playVoiceRunning();
this.schedule(this.playVoiceRunning, 0.3)
}
playVoiceRunning() {
if (!this.node) return;
this.playVoiceCount++;
let list = this.node.children;
list.forEach((li, i) => {
li.active = this.playVoiceCount % list.length == i;
})
}
playVoiceEnd() {
this.unschedule(this.playVoiceRunning)
this.playVoiceCount = 0;
let list = this.node.children;
list.forEach((li, i) => {
li.active = false
})
}
}
{
"ver": "1.0.8",
"uuid": "dd264aa4-50ca-4479-8592-1e407ae7bb04",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
......@@ -666,7 +666,9 @@ let pg = {
const audio = cc.find(`Canvas/res/audio/${audioName}`).getComponent(cc.AudioSource);
return new Promise((resolve, reject) => {
const id = cc.audioEngine.playEffect(audio.clip, loop);
cc.audioEngine.setFinishCallback(id, () => {
resolve(id);
});
})
}
},
......
This diff is collapsed.
import { asyncDelay, onHomeworkFinish } from "../script/util_sn05_night";
import { MyCocosSceneComponent } from "../script/MyCocosSceneComponent_sn05_night";
import pg from "./pg_sn05_night";
import ImgVoice from "./ImgVoice";
const { ccclass, property } = cc._decorator;
......@@ -136,18 +137,15 @@ export default class SceneComponent extends MyCocosSceneComponent {
let list = this.currentQuestion.options;
let posList = [
[
cc.v2(-13, -76)
, cc.v2(-240, 290)
, cc.v2(250, 250)
, cc.v2(300, -310)
, cc.v2(-340, -300)
, cc.v2(-655, 300)
, cc.v2(-670, -90)
, cc.v2(630, 330)
, cc.v2(600, -40)
cc.v2(-300, 0)
, cc.v2(300, 0)
], [
cc.v2(-600, 0)
, cc.v2(0, 0)
, cc.v2(600, 0)
],
]
let posArr = posList[0];
let posArr = posList[list.length - 2];
for (let i = 0; i < list.length; i++) {
let data = list[i]
let item = cc.instantiate(paoaoParent)
......@@ -173,24 +171,16 @@ export default class SceneComponent extends MyCocosSceneComponent {
let broken = item.getChildByName("bubble_broken")
let img = bubble.getChildByName("img")
let text = bubble.getChildByName("text")
let img_broken = broken.getChildByName("img")
let text_broken = broken.getChildByName("text")
pg.view.visible(broken, false)
// 判断是显示图片还是文字
if (data.type === 'img') {
pg.view.visible(img, true)
pg.view.visible(text, false)
pg.view.setNetImg(img, data.image, { w: 180, h: 160 })
pg.view.visible(img_broken, true)
pg.view.visible(text_broken, false)
pg.view.setNetImg(img_broken, data.image, { w: 180, h: 160 })
pg.view.setNetImg(img, data.image, { w: 270, h: 270 })
} else {
pg.view.visible(img, false)
pg.view.visible(text, true)
pg.view.setString(text, data.text)
pg.view.visible(img_broken, false)
pg.view.visible(text_broken, true)
pg.view.setString(text_broken, data.text)
}
// 点击泡泡
item.data = data;
......@@ -206,12 +196,11 @@ export default class SceneComponent extends MyCocosSceneComponent {
// 如果泡泡没有到指定位置不允许点击
let item = e.target;
let data = e.target.data;
if (data.right) {
cc.Tween.stopAllByTarget(item)
// 成功 泡泡破碎 里面的内容消失
let bubble = e.target.getChildByName("bubble")
let broken = e.target.getChildByName("bubble_broken")
if (data.right) {
cc.Tween.stopAllByTarget(item)
pg.view.visible(bubble, false)
pg.view.visible(broken, true)
cc.tween(item).delay(0.5).call(() => {
......@@ -236,14 +225,15 @@ export default class SceneComponent extends MyCocosSceneComponent {
}
}, 1);
} else {
pg.hw.playLocalAudio('error')
// 失败 泡泡左右微晃两次
cc.tween(pg.view.find(item, 'bubble'))
.to(0.1, { x: -15 })
.to(0.1, { x: 0 })
.to(0.1, { x: 15 })
.to(0.1, { x: 0 })
.start()
pg.view.visible(bubble, false)
pg.view.visible(broken, true)
// 处理闪电效果
broken.getComponent(ImgVoice).playVoiceStart();
pg.hw.playLocalAudio('error').then(() => {
broken.getComponent(ImgVoice).playVoiceEnd();
pg.view.visible(bubble, true)
pg.view.visible(broken, false)
})
}
}
......@@ -257,15 +247,15 @@ export default class SceneComponent extends MyCocosSceneComponent {
}
update(dt) {
if (!this.currentQuestion) return;
if (!this.startCreate) return;
this.time -= dt;
if (this.time <= 0) {
console.log("游戏结束部分")
this.nextQuestion();
// return;
}
this.updateTime();
// if (!this.currentQuestion) return;
// if (!this.startCreate) return;
// this.time -= dt;
// if (this.time <= 0) {
// console.log("游戏结束部分")
// this.nextQuestion();
// // return;
// }
// this.updateTime();
}
//----------------------------动画相关---------------------------------------------
......
......@@ -10,7 +10,7 @@ export const defaultData =
"duration": 10,
"options": [
{
"type": "text",
"type": "img",
"image": "http://staging-teach.cdn.ireadabc.com/e921b21c9ac22a623497b79cf849a421.png",
"audio": "",
"text": "info",
......@@ -25,16 +25,16 @@ export const defaultData =
"text": "bad",
"duration": "",
"content": "",
"right": true
"right": false
},
{
"type": "txt",
"image": "",
"audio": "",
"text": "bad",
"text": "info",
"duration": "",
"content": "",
"right": true
"right": false
}
],
"audioName": "bad.mp3"
......
......@@ -4484,6 +4484,7 @@ declare namespace cc {
Cocos Creator 场景中的所有节点类。<br/>
支持的节点事件,请参阅 {{#crossLink "Node.EventType"}}{{/crossLink}}。 */
export class Node extends _BaseNode {
data:any;
/** !#en
Group index of node.<br/>
Which Group this node belongs to will resolve that this node's collision components can collide with which other collision componentns.<br/>
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