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