Commit 5562df9c authored by Tt's avatar Tt

增加bgm

parent 67ed2671
...@@ -1836,15 +1836,15 @@ ...@@ -1836,15 +1836,15 @@
"_opacity": 255, "_opacity": 255,
"_color": { "_color": {
"__type__": "cc.Color", "__type__": "cc.Color",
"r": 255, "r": 247,
"g": 255, "g": 229,
"b": 255, "b": 146,
"a": 255 "a": 255
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 50, "width": 50,
"height": 170.39999999999998 "height": 127.8
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
...@@ -1855,7 +1855,7 @@ ...@@ -1855,7 +1855,7 @@
"__type__": "TypedArray", "__type__": "TypedArray",
"ctor": "Float64Array", "ctor": "Float64Array",
"array": [ "array": [
-565.233, -563.222,
174.126, 174.126,
0, 0,
0, 0,
...@@ -1895,10 +1895,10 @@ ...@@ -1895,10 +1895,10 @@
], ],
"_srcBlendFactor": 770, "_srcBlendFactor": 770,
"_dstBlendFactor": 771, "_dstBlendFactor": 771,
"_string": "速前进", "_string": "速前进",
"_N$string": "速前进", "_N$string": "速前进",
"_fontSize": 40, "_fontSize": 30,
"_lineHeight": 40, "_lineHeight": 30,
"_enableWrapText": true, "_enableWrapText": true,
"_N$file": null, "_N$file": null,
"_isSystemFontUsed": true, "_isSystemFontUsed": true,
...@@ -2074,7 +2074,7 @@ ...@@ -2074,7 +2074,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "btn_music-on", "_name": "on",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 43 "__id__": 43
...@@ -2168,13 +2168,13 @@ ...@@ -2168,13 +2168,13 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "btn_music-off", "_name": "off",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 43 "__id__": 43
}, },
"_children": [], "_children": [],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 47 "__id__": 47
...@@ -2330,7 +2330,7 @@ ...@@ -2330,7 +2330,7 @@
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "btn_laba1", "_name": "btn_laba",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 48 "__id__": 48
...@@ -2353,8 +2353,8 @@ ...@@ -2353,8 +2353,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 9, "width": 92,
"height": 23 "height": 92
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
...@@ -2388,7 +2388,7 @@ ...@@ -2388,7 +2388,7 @@
"_is3DNode": false, "_is3DNode": false,
"_groupIndex": 0, "_groupIndex": 0,
"groupIndex": 0, "groupIndex": 0,
"_id": "f7boJjIb9F/7CBWpmrbHtC" "_id": "03xoqAbo9A+6AXjrp1jI7f"
}, },
{ {
"__type__": "cc.Sprite", "__type__": "cc.Sprite",
...@@ -2406,7 +2406,7 @@ ...@@ -2406,7 +2406,7 @@
"_srcBlendFactor": 770, "_srcBlendFactor": 770,
"_dstBlendFactor": 771, "_dstBlendFactor": 771,
"_spriteFrame": { "_spriteFrame": {
"__uuid__": "0e4c065f-4a60-4e1d-8e3b-2761c3e9414f" "__uuid__": "f1eb0593-55cb-4d7f-85b2-680e71116161"
}, },
"_type": 0, "_type": 0,
"_sizeMode": 1, "_sizeMode": 1,
...@@ -2420,11 +2420,11 @@ ...@@ -2420,11 +2420,11 @@
"_fillRange": 0, "_fillRange": 0,
"_isTrimmedMode": true, "_isTrimmedMode": true,
"_atlas": null, "_atlas": null,
"_id": "06zHAFMSxBO42ECELD6V58" "_id": "f09kKIvcRBTqN6hdM6DCMY"
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
"_name": "btn_laba", "_name": "btn_laba1",
"_objFlags": 0, "_objFlags": 0,
"_parent": { "_parent": {
"__id__": 48 "__id__": 48
...@@ -2447,8 +2447,8 @@ ...@@ -2447,8 +2447,8 @@
}, },
"_contentSize": { "_contentSize": {
"__type__": "cc.Size", "__type__": "cc.Size",
"width": 92, "width": 9,
"height": 92 "height": 23
}, },
"_anchorPoint": { "_anchorPoint": {
"__type__": "cc.Vec2", "__type__": "cc.Vec2",
...@@ -2459,7 +2459,7 @@ ...@@ -2459,7 +2459,7 @@
"__type__": "TypedArray", "__type__": "TypedArray",
"ctor": "Float64Array", "ctor": "Float64Array",
"array": [ "array": [
589.429, 572.871,
-307.359, -307.359,
0, 0,
0, 0,
...@@ -2482,7 +2482,7 @@ ...@@ -2482,7 +2482,7 @@
"_is3DNode": false, "_is3DNode": false,
"_groupIndex": 0, "_groupIndex": 0,
"groupIndex": 0, "groupIndex": 0,
"_id": "03xoqAbo9A+6AXjrp1jI7f" "_id": "f7boJjIb9F/7CBWpmrbHtC"
}, },
{ {
"__type__": "cc.Sprite", "__type__": "cc.Sprite",
...@@ -2500,7 +2500,7 @@ ...@@ -2500,7 +2500,7 @@
"_srcBlendFactor": 770, "_srcBlendFactor": 770,
"_dstBlendFactor": 771, "_dstBlendFactor": 771,
"_spriteFrame": { "_spriteFrame": {
"__uuid__": "f1eb0593-55cb-4d7f-85b2-680e71116161" "__uuid__": "0e4c065f-4a60-4e1d-8e3b-2761c3e9414f"
}, },
"_type": 0, "_type": 0,
"_sizeMode": 1, "_sizeMode": 1,
...@@ -2514,7 +2514,7 @@ ...@@ -2514,7 +2514,7 @@
"_fillRange": 0, "_fillRange": 0,
"_isTrimmedMode": true, "_isTrimmedMode": true,
"_atlas": null, "_atlas": null,
"_id": "f09kKIvcRBTqN6hdM6DCMY" "_id": "06zHAFMSxBO42ECELD6V58"
}, },
{ {
"__type__": "cc.Node", "__type__": "cc.Node",
...@@ -2553,7 +2553,7 @@ ...@@ -2553,7 +2553,7 @@
"__type__": "TypedArray", "__type__": "TypedArray",
"ctor": "Float64Array", "ctor": "Float64Array",
"array": [ "array": [
589.429, 565.935,
-307.359, -307.359,
0, 0,
0, 0,
...@@ -6722,7 +6722,7 @@ ...@@ -6722,7 +6722,7 @@
"__id__": 141 "__id__": 141
}, },
"_children": [], "_children": [],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 143 "__id__": 143
...@@ -6826,7 +6826,7 @@ ...@@ -6826,7 +6826,7 @@
"__id__": 149 "__id__": 149
} }
], ],
"_active": true, "_active": false,
"_components": [], "_components": [],
"_prefab": null, "_prefab": null,
"_opacity": 255, "_opacity": 255,
...@@ -7176,7 +7176,7 @@ ...@@ -7176,7 +7176,7 @@
"__id__": 154 "__id__": 154
} }
], ],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 157 "__id__": 157
...@@ -7485,7 +7485,7 @@ ...@@ -7485,7 +7485,7 @@
"__id__": 141 "__id__": 141
}, },
"_children": [], "_children": [],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 159 "__id__": 159
...@@ -7650,7 +7650,7 @@ ...@@ -7650,7 +7650,7 @@
"__id__": 141 "__id__": 141
}, },
"_children": [], "_children": [],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 162 "__id__": 162
...@@ -7744,7 +7744,7 @@ ...@@ -7744,7 +7744,7 @@
"__id__": 141 "__id__": 141
}, },
"_children": [], "_children": [],
"_active": true, "_active": false,
"_components": [ "_components": [
{ {
"__id__": 164 "__id__": 164
......
...@@ -61,6 +61,15 @@ export default class NewClass extends MyCocosSceneComponent { ...@@ -61,6 +61,15 @@ export default class NewClass extends MyCocosSceneComponent {
} }
private layout_start: cc.Node; private layout_start: cc.Node;
initView() { initView() {
let label_title = pg.view.find(this, 'label_title');
pg.view.setString(label_title, Game.getIns().title);
if (Game.getIns().bgm) {
pg.audio.playBgmByUrl(Game.getIns().bgm);
pg.view.visible(pg.view.find(this, 'btn_music'), true);
} else {
pg.view.visible(pg.view.find(this, 'btn_music'), false);
}
this.layout_start = pg.view.find(this, "layout_start"); this.layout_start = pg.view.find(this, "layout_start");
let desc = pg.view.find(this.layout_start, 'desc'); let desc = pg.view.find(this.layout_start, 'desc');
pg.view.setString(desc, Game.getIns().question.text) pg.view.setString(desc, Game.getIns().question.text)
...@@ -70,12 +79,32 @@ export default class NewClass extends MyCocosSceneComponent { ...@@ -70,12 +79,32 @@ export default class NewClass extends MyCocosSceneComponent {
} }
initEvent() { initEvent() {
pg.view.touchOn(pg.view.find(this.layout_start, 'btn_start'), this.onTouchStart, this); pg.view.touchOn(pg.view.find(this.layout_start, 'btn_start'), this.onTouchStart, this);
pg.view.touchOn(pg.view.find(this, 'btn_music/on'), this.onTouchMusicOn, this);
pg.view.touchOn(pg.view.find(this, 'btn_music/off'), this.onTouchMusicOff, this);
this.log("test initEvent") this.log("test initEvent")
pg.event.on("game_start", () => { this.onGameStart() }) pg.event.on("game_start", () => { this.onGameStart() })
pg.event.on("speak_success", () => { this.onSpeakScueess() }); pg.event.on("speak_success", () => { this.onSpeakScueess() });
pg.event.on("speak_fail", () => { this.onSpeakFail() }); pg.event.on("speak_fail", () => { this.onSpeakFail() });
pg.event.on("music_temp_stop", () => {
if (pg.view.find(this, 'btn_music/off').active) return;
pg.audio.pauseBgm();
})
pg.event.on("music_temp_start", () => {
if (pg.view.find(this, 'btn_music/off').active) return;
pg.audio.resumeBgm();
})
}
onTouchMusicOn() {
pg.view.visible(pg.view.find(this, 'btn_music/off'), true);
pg.audio.pauseBgm();
}
onTouchMusicOff() {
pg.view.visible(pg.view.find(this, 'btn_music/off'), false);
pg.audio.resumeBgm();
} }
onTouchStart() { onTouchStart() {
...@@ -85,10 +114,6 @@ export default class NewClass extends MyCocosSceneComponent { ...@@ -85,10 +114,6 @@ export default class NewClass extends MyCocosSceneComponent {
this.showVs(); this.showVs();
} }
private showVs() { private showVs() {
setTimeout(() => {
pg.event.emit("game_start");
}, 100);
if(1)return;
let vs = cc.find("vs", this.node); let vs = cc.find("vs", this.node);
vs.active = true; vs.active = true;
let player1 = cc.find("player1", vs); let player1 = cc.find("player1", vs);
...@@ -338,26 +363,34 @@ export default class NewClass extends MyCocosSceneComponent { ...@@ -338,26 +363,34 @@ export default class NewClass extends MyCocosSceneComponent {
//----------------------------OVER------------------- //----------------------------OVER-------------------
gameOver() { gameOver() {
let state = pg.view.find(this, "state"); let player = {
let bg_win = pg.view.find(state, "bg_win"); stone: this.playerPoint > this.robotPoint ? 10 : 0
let bg_lose = pg.view.find(state, "bg_lose"); }
pg.view.visible(state, true); let robot = {
if (this.playerPoint > this.robotPoint) { stone: this.robotPoint > this.playerPoint ? 10 : 0
pg.view.visible(bg_win, true); }
pg.view.visible(bg_lose, false); this.log("player: " + JSON.stringify({ player, robot }));
this.showFireFlower(); onHomeworkFinish({ player, robot })
// pg.hw.playLocalAudio("flower"); // let state = pg.view.find(this, "state");
} else { // let bg_win = pg.view.find(state, "bg_win");
pg.view.visible(bg_win, false); // let bg_lose = pg.view.find(state, "bg_lose");
pg.view.visible(bg_lose, true); // pg.view.visible(state, true);
} // if (this.playerPoint > this.robotPoint) {
this.scheduleOnce(() => { // pg.view.visible(bg_win, true);
pg.view.visible(bg_win, false); // pg.view.visible(bg_lose, false);
pg.view.visible(bg_lose, false); // this.showFireFlower();
pg.event.emit("game_over"); // // pg.hw.playLocalAudio("flower");
}, 5) // } else {
// onHomeworkFinish最后需要添加作业完成 // pg.view.visible(bg_win, false);
onHomeworkFinish(); // pg.view.visible(bg_lose, true);
// }
// this.scheduleOnce(() => {
// pg.view.visible(bg_win, false);
// pg.view.visible(bg_lose, false);
// pg.event.emit("game_over");
// }, 5)
// // onHomeworkFinish最后需要添加作业完成
// onHomeworkFinish();
} }
//-----------------------------TOOL------------------------------- //-----------------------------TOOL-------------------------------
showFireFlower() { showFireFlower() {
......
...@@ -146,6 +146,7 @@ export default class SpeakRecord extends cc.Component { ...@@ -146,6 +146,7 @@ export default class SpeakRecord extends cc.Component {
cc.audioEngine.stopEffect(this.audioId); cc.audioEngine.stopEffect(this.audioId);
this.audioId = null; this.audioId = null;
} }
pg.event.emit("music_temp_stop")
pg.view.playDBAnimation(this.speak_ske, "newAnimation", 0); pg.view.playDBAnimation(this.speak_ske, "newAnimation", 0);
pg.view.visible(this.btn_audio_start, false); pg.view.visible(this.btn_audio_start, false);
pg.view.visible(this.btn_audio_stop, true); pg.view.visible(this.btn_audio_stop, true);
...@@ -192,6 +193,7 @@ export default class SpeakRecord extends cc.Component { ...@@ -192,6 +193,7 @@ export default class SpeakRecord extends cc.Component {
} }
onRealStop(score) { onRealStop(score) {
pg.event.emit("music_temp_start")
let db = pg.view.playDBAnimation(this.speak_ske, "newAnimation", 1); let db = pg.view.playDBAnimation(this.speak_ske, "newAnimation", 1);
db.once(dragonBones.EventObject.COMPLETE, () => { db.once(dragonBones.EventObject.COMPLETE, () => {
pg.view.visible(this.text_tip, false); pg.view.visible(this.text_tip, false);
......
...@@ -491,6 +491,15 @@ let pg = { ...@@ -491,6 +491,15 @@ let pg = {
}); });
}); });
}, },
stopBgm() {
cc.audioEngine.stopMusic();
},
pauseBgm() {
cc.audioEngine.pauseMusic();
},
resumeBgm() {
cc.audioEngine.resumeMusic();
},
playAudioByUrl(audio_url) { playAudioByUrl(audio_url) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
if (!audio_url) return resolve(0); if (!audio_url) return resolve(0);
......
...@@ -14,5 +14,5 @@ export const defaultData = { ...@@ -14,5 +14,5 @@ export const defaultData = {
, { , {
"image": "http://staging-teach.cdn.ireadabc.com/fecbb8471427a38d68486ae1bbc6c25c.png", "audio": "http://staging-teach.cdn.ireadabc.com/227c25a67e1398026bd6185bf9a6e87c_l.mp3", "audioName": "", "text": "robot", "time": "15", "tip": "" "image": "http://staging-teach.cdn.ireadabc.com/fecbb8471427a38d68486ae1bbc6c25c.png", "audio": "http://staging-teach.cdn.ireadabc.com/227c25a67e1398026bd6185bf9a6e87c_l.mp3", "audioName": "", "text": "robot", "time": "15", "tip": ""
}], }],
"bgAudio": "", "audioBgName": "", "audioName": "急速前进" "bgAudio": "http://staging-teach.cdn.ireadabc.com/0913981cdeb2c6bc785de1054e80a500_l.mp3", "audioBgName": "", "audioName": "急速前进"
} }
\ No newline at end of file
import { log } from "console";
export function getPosByAngle(angle, len) { export function getPosByAngle(angle, len) {
const radian = angle * Math.PI / 180; const radian = angle * Math.PI / 180;
...@@ -94,15 +96,15 @@ export function getScaleRateBy2Node(baseNode, targetNode, maxFlag = true) { ...@@ -94,15 +96,15 @@ export function getScaleRateBy2Node(baseNode, targetNode, maxFlag = true) {
} }
} }
export function getDistance (start, end){ export function getDistance(start, end) {
var pos = cc.v2(start.x - end.x, start.y - end.y); var pos = cc.v2(start.x - end.x, start.y - end.y);
var dis = Math.sqrt(pos.x*pos.x + pos.y*pos.y); var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y);
return dis; return dis;
} }
export function playAudioByUrl(audio_url, cb=null) { export function playAudioByUrl(audio_url, cb = null) {
if (audio_url) { if (audio_url) {
cc.assetManager.loadRemote(audio_url, (err, audioClip:any) => { cc.assetManager.loadRemote(audio_url, (err, audioClip) => {
const audioId = cc.audioEngine.play(audioClip, false, 0.8); const audioId = cc.audioEngine.play(audioClip, false, 0.8);
if (cb) { if (cb) {
cc.audioEngine.setFinishCallback(audioId, () => { cc.audioEngine.setFinishCallback(audioId, () => {
...@@ -114,21 +116,21 @@ export function playAudioByUrl(audio_url, cb=null) { ...@@ -114,21 +116,21 @@ export function playAudioByUrl(audio_url, cb=null) {
} }
export function btnClickAnima(btn, time=0.15, rate=1.05) { export function btnClickAnima(btn, time = 0.15, rate = 1.05) {
btn.tmpScale = btn.scale; btn.tmpScale = btn.scale;
btn.on(cc.Node.EventType.TOUCH_START, () => { btn.on(cc.Node.EventType.TOUCH_START, () => {
cc.tween(btn) cc.tween(btn)
.to(time / 2, {scale: btn.scale * rate}) .to(time / 2, { scale: btn.scale * rate })
.start() .start()
}) })
btn.on(cc.Node.EventType.TOUCH_CANCEL, () => { btn.on(cc.Node.EventType.TOUCH_CANCEL, () => {
cc.tween(btn) cc.tween(btn)
.to(time / 2, {scale: btn.tmpScale}) .to(time / 2, { scale: btn.tmpScale })
.start() .start()
}) })
btn.on(cc.Node.EventType.TOUCH_END, () => { btn.on(cc.Node.EventType.TOUCH_END, () => {
cc.tween(btn) cc.tween(btn)
.to(time / 2, {scale: btn.tmpScale}) .to(time / 2, { scale: btn.tmpScale })
.start() .start()
}) })
} }
...@@ -177,15 +179,85 @@ export function playAudio(audioClip, cb = null) { ...@@ -177,15 +179,85 @@ export function playAudio(audioClip, cb = null) {
export async function asyncDelay(time) { export async function asyncDelay(time) {
return new Promise((resolve, reject) => { return new Promise((resolve, reject) => {
try { try {
setTimeout(() => { cc.tween(cc.find('Canvas'))
.delay(time)
.call(() => {
resolve(null); resolve(null);
}, time * 1000); })
.start();
} catch (e) { } catch (e) {
reject(e); reject(e);
} }
}) })
} }
export async function asyncLoadDragonBoneAnime(node, { skeJsonData: { url: skeJsonDataUrl }, texJsonData: { url: texJsonDataUrl }, texPngData: { url: texPngDataUrl } }) {
if (!texPngDataUrl || !texJsonDataUrl || !texPngDataUrl
|| texPngDataUrl == '' || texJsonDataUrl == '' || texPngDataUrl == '') {
return;
}
return new Promise((resolve, reject) => {
if (node.animaNode) {
node.animaNode.removeFromParent();
}
const animaNode = new cc.Node();
animaNode.name = 'animaNode';
animaNode.parent = node;
animaNode.active = true;
node.animaNode = animaNode;
const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
const loadTexture = new Promise((resolve, reject) => {
cc.assetManager.loadRemote(texPngDataUrl, (error, texture) => {
if (error) {
reject(error);
}
resolve(texture);
});
});
const loadTexJsonData = new Promise((resolve, reject) => {
cc.assetManager.loadAny({ url: texJsonDataUrl }, (error, atlasJson) => {
if (error) {
reject(error);
}
resolve(atlasJson);
});
});
const loadSkeJsonData = new Promise((resolve, reject) => {
cc.assetManager.loadAny({ url: skeJsonDataUrl }, (error, dragonBonesJson) => {
if (error) {
reject(error);
}
resolve(dragonBonesJson);
});
});
Promise.all([loadTexture, loadTexJsonData, loadSkeJsonData]).then(([texture, atlasJson, dragonBonesJson]) => {
const atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = JSON.stringify(atlasJson);
atlas.texture = texture;
const asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = JSON.stringify(dragonBonesJson);
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
let armatureNames = dragonBonesJson.armature.map(data => data.name);
if (armatureNames.length > 0) {
dragonDisplay.armatureName = armatureNames[0];
}
resolve(animaNode);
});
});
}
export class FireworkSettings { export class FireworkSettings {
baseNode; // 父节点 baseNode; // 父节点
nodeList; // 火花节点的array nodeList; // 火花节点的array
...@@ -341,12 +413,15 @@ export function showTrebleFirework(baseNode, rabbonList) { ...@@ -341,12 +413,15 @@ export function showTrebleFirework(baseNode, rabbonList) {
showFireworks(right); showFireworks(right);
} }
export function onHomeworkFinish() { export function onHomeworkFinish(data) {
console.log("onHomeworkFinish");
const middleLayer = cc.find('middleLayer'); const middleLayer = cc.find('middleLayer');
if (!middleLayer) return;
middleLayer.getComponent('middleLayer').log(JSON.stringify(data));
if (middleLayer) { if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer'); const middleLayerComponent = middleLayer.getComponent('middleLayer');
if (middleLayerComponent.role == 'student') { if (middleLayerComponent.role == 'student') {
middleLayerComponent.onHomeworkFinish(() => { }); middleLayerComponent.onHomeworkFinish(() => { }, data);
} }
} else { } else {
console.log('onHomeworkFinish'); console.log('onHomeworkFinish');
......
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