Commit 07900478 authored by Tt's avatar Tt

基础调整,音频待优化

parent 7e4a572f
{
"ver": "2.0.1",
"uuid": "042df0b8-33ee-47fe-a08c-b529ee599978",
"downloadMode": 0,
"duration": 7.74,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "debd6cea-1475-4d46-a5c5-02b2540f97f4",
"downloadMode": 0,
"duration": 10.944,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "1f6a1248-1578-4eb1-bdf9-4f2801c14558",
"downloadMode": 0,
"duration": 0.972,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "5559b108-5f24-4091-9a4a-3d5ca803d1fd",
"downloadMode": 0,
"duration": 1.188,
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
...@@ -3,6 +3,22 @@ const BaseUI = require('BaseUI'); ...@@ -3,6 +3,22 @@ const BaseUI = require('BaseUI');
import { DefaultData } from '../script/DefaultData'; import { DefaultData } from '../script/DefaultData';
import { jelly, onHomeworkFinish } from "../script/utils"; import { jelly, onHomeworkFinish } from "../script/utils";
function playDragonBoneAnimation(node, animationName, time = 1, onFinish = null, onFrameEvent = null) {
const armatureDisplay = node.getComponent(dragonBones.ArmatureDisplay);
armatureDisplay.timeScale = 1;
armatureDisplay.once(dragonBones.EventObject.COMPLETE, () => {
if (onFinish) {
onFinish();
}
});
armatureDisplay.on(dragonBones.EventObject.FRAME_EVENT, (event) => {
if (onFrameEvent) {
onFrameEvent(event);
}
});
armatureDisplay.playAnimation(animationName, time);
}
const POS = { const POS = {
LeftPage: { x: -239, y: -5 }, LeftPage: { x: -239, y: -5 },
RightPage: { x: 239, y: -5 }, RightPage: { x: 239, y: -5 },
...@@ -88,8 +104,11 @@ cc.Class({ ...@@ -88,8 +104,11 @@ cc.Class({
getDefaultData() { getDefaultData() {
let data = DefaultData; let data = DefaultData;
// return data; // return data;
return {
return { "haveCover": false, "coverType": "Image", "coverImage": "", "coverAudio": "", "coverText": "", "coverDragonBone": { "skeJsonData": { "url": "" }, "texJsonData": { "url": "" }, "texPngData": { "url": "" } }, "titleAudio": "", "titleText": "", "titleTextColor": "A", "pageList": [{ "pageType": "Image", "pageAudio": "http://staging-teach.cdn.ireadabc.com/cc5b1a8730bc275ecac85185d5ce2c5b.mp3", "pageText": "", "pageImage": "", "textColor": "A", "pageDragonBone": { "skeJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json", "name": "alien-pro.json" }, "texJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas", "name": "alien-pro.atlas" }, "texPngData": { "url": "http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png", "name": "alien-pro.png" }, "animType": "spine" } }, { "pageType": "Image", "pageAudio": "http://staging-teach.cdn.ireadabc.com/fd877ad376fdffdb0dfc62122065a78f.mp3", "pageText": "", "pageImage": "", "textColor": "A", "pageDragonBone": { "skeJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/d1f859d3fba84bd03565e543c986fb28.json", "name": "6_4_ske.json" }, "texJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/70f96e1cc7f013e27ed1952c503fb750.json", "name": "6_4_tex.json" }, "texPngData": { "url": "http://staging-teach.cdn.ireadabc.com/b06f9b90018a6eb0175a01e355b9ced6.png", "name": "6_4_tex.png" }, "animType": "dragonBone" } }, { "pageType": "Image", "pageAudio": "http://staging-teach.cdn.ireadabc.com/dff6748c93f6bf3de8cb7105fa9ba5de.mp3", "pageText": "", "pageImage": "", "textColor": "A", "pageDragonBone": { "skeJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/a278a56fe77dfade7366829e9c65c815.json", "name": "6_3_ske.json" }, "texJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/96680527a570cec4d7c9818c91ec434a.json", "name": "6_3_tex.json" }, "texPngData": { "url": "http://staging-teach.cdn.ireadabc.com/5c441810b0a5bc73248c50d8c32b4899.png", "name": "6_3_tex.png" }, "animType": "dragonBone" } }] } "startAudio": "http://staging-teach.cdn.ireadabc.com/1227771664f9dd7b1fe210a7736b76a0.mp3",
"endAudio": "http://staging-teach.cdn.ireadabc.com/1227771664f9dd7b1fe210a7736b76a0.mp3",
"waitAudio": "http://staging-teach.cdn.ireadabc.com/1227771664f9dd7b1fe210a7736b76a0.mp3",
"haveCover": false, "coverType": "Image", "coverImage": "", "coverAudio": "", "coverText": "", "coverDragonBone": { "skeJsonData": { "url": "" }, "texJsonData": { "url": "" }, "texPngData": { "url": "" } }, "titleAudio": "", "titleText": "", "titleTextColor": "A", "pageList": [{ "pageType": "Image", "pageAudio": "http://staging-teach.cdn.ireadabc.com/cc5b1a8730bc275ecac85185d5ce2c5b.mp3", "pageText": "", "pageImage": "", "textColor": "A", "pageDragonBone": { "skeJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/679fed26daa464819d553de6331b3552.json", "name": "alien-pro.json" }, "texJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/65d8214c6b5c5d0496e17adb0408276a.atlas", "name": "alien-pro.atlas" }, "texPngData": { "url": "http://staging-teach.cdn.ireadabc.com/a319b372899239325b90bb4ec07b4970.png", "name": "alien-pro.png" }, "animType": "spine" } }, { "pageType": "Image", "pageAudio": "http://staging-teach.cdn.ireadabc.com/fd877ad376fdffdb0dfc62122065a78f.mp3", "pageText": "", "pageImage": "", "textColor": "A", "pageDragonBone": { "skeJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/d1f859d3fba84bd03565e543c986fb28.json", "name": "6_4_ske.json" }, "texJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/70f96e1cc7f013e27ed1952c503fb750.json", "name": "6_4_tex.json" }, "texPngData": { "url": "http://staging-teach.cdn.ireadabc.com/b06f9b90018a6eb0175a01e355b9ced6.png", "name": "6_4_tex.png" }, "animType": "dragonBone" } }, { "pageType": "Image", "pageAudio": "http://staging-teach.cdn.ireadabc.com/dff6748c93f6bf3de8cb7105fa9ba5de.mp3", "pageText": "", "pageImage": "", "textColor": "A", "pageDragonBone": { "skeJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/a278a56fe77dfade7366829e9c65c815.json", "name": "6_3_ske.json" }, "texJsonData": { "url": "http://staging-teach.cdn.ireadabc.com/96680527a570cec4d7c9818c91ec434a.json", "name": "6_3_tex.json" }, "texPngData": { "url": "http://staging-teach.cdn.ireadabc.com/5c441810b0a5bc73248c50d8c32b4899.png", "name": "6_3_tex.png" }, "animType": "dragonBone" } }] }
}, },
preloadItem() { preloadItem() {
...@@ -173,7 +192,7 @@ cc.Class({ ...@@ -173,7 +192,7 @@ cc.Class({
let page = this.pageList[GameData.pageIndex + 1]; let page = this.pageList[GameData.pageIndex + 1];
if (!page) { if (!page) {
onHomeworkFinish(); this.gameOver();
return resolve(''); return resolve('');
} }
GameData.isPlaying = true; GameData.isPlaying = true;
...@@ -181,12 +200,18 @@ cc.Class({ ...@@ -181,12 +200,18 @@ cc.Class({
itemPage.playAudio(); itemPage.playAudio();
itemPage.playSpine().then(() => { itemPage.playSpine().then(() => {
if (this.pageList.length - GameData.pageIndex <= 2) { if (this.pageList.length - GameData.pageIndex <= 2) {
onHomeworkFinish(); this.gameOver();
} }
resolve(''); resolve('');
}) })
}); });
}, },
gameOver() {
this.catSpeakEnd(() => {
onHomeworkFinish();
alert("游戏结束,调试弹窗")
})
},
initData() { initData() {
this.data.haveCover = false; this.data.haveCover = false;
// 所有全局变量 默认都是null // 所有全局变量 默认都是null
...@@ -194,9 +219,11 @@ cc.Class({ ...@@ -194,9 +219,11 @@ cc.Class({
this.initTitle(); this.initTitle();
}, },
initEvent() { initEvent() {
const btn_cat = cc.find('Canvas/mao/btn_mao')
btn_cat.on(cc.Node.EventType.TOUCH_END, this.onTouchCat, this)
// this.touchPanel._touchListener && this.touchPanel._touchListener.setSwallowTouches(false); // this.touchPanel._touchListener && this.touchPanel._touchListener.setSwallowTouches(false);
// this.touchPanel._touchListener.swallowTouches = false; // this.touchPanel._touchListener.swallowTouches = false;
this.touchPanel.active = false; // this.touchPanel.active = false;
this.touchPanel.on(cc.Node.EventType.TOUCH_END, this.onTouchPanel, this) this.touchPanel.on(cc.Node.EventType.TOUCH_END, this.onTouchPanel, this)
}, },
cons(data) { cons(data) {
...@@ -229,12 +256,19 @@ cc.Class({ ...@@ -229,12 +256,19 @@ cc.Class({
}, 220); }, 220);
}, },
autoPlay() { autoPlay() {
this.catSpeakStart(() => {
this.inited = true;
this.isTruning = false
})
if (1) return;
//自动开始播放动画,及触发动画效果 //自动开始播放动画,及触发动画效果
this.inited = false; this.inited = false;
this.onTouchLeft().then(() => { this.onTouchLeft().then(() => {
this.onTouchRight().then(() => { this.onTouchRight().then(() => {
this.inited = true; this.catSpeakStart(() => {
this.isTruning = false this.inited = true;
this.isTruning = false
})
}) })
}); });
}, },
...@@ -365,6 +399,75 @@ cc.Class({ ...@@ -365,6 +399,75 @@ cc.Class({
}, },
catSpeakStart(cb) {
const cat = cc.find('Canvas/mao');
playDragonBoneAnimation(cat, 'begin', 0);
this.playAudioByUrl(this.data.startAudio, () => {
playDragonBoneAnimation(cat, 'normal', -1);
cb();
});
},
catSpeakRight(cb) {
const cat = cc.find('Canvas/mao');
playDragonBoneAnimation(cat, 'right', -1);
this.playEffect('CoolCatRight', () => {
playDragonBoneAnimation(cat, 'normal', -1);
cb();
});
},
catSpeakWrong(cb) {
const cat = cc.find('Canvas/mao');
playDragonBoneAnimation(cat, 'wrong', -1);
this.playEffect('CoolCatWrong', () => {
playDragonBoneAnimation(cat, 'normal', -1);
cb();
});
},
catSpeakEnd(cb) {
const cat = cc.find('Canvas/mao');
playDragonBoneAnimation(cat, 'finish', -1);
this.playAudioByUrl(this.data.endAudio, () => {
playDragonBoneAnimation(cat, 'normal', -1);
cb();
});
},
onTouchCat() {
this.catSpeakWait(() => {
console.log("猫说话")
});
},
catSpeakWait(cb) {
const cat = cc.find('Canvas/mao');
playDragonBoneAnimation(cat, 'right', -1);
this.playAudioByUrl(this.data.waitAudio, () => {
playDragonBoneAnimation(cat, 'normal', -1);
cb();
});
},
currentPlayedAudioId: null,
stopCurrentPlayedAudio() {
if (this.currentPlayedAudioId !== null) {
cc.audioEngine.stop(this.currentPlayedAudioId);
this.currentPlayedAudioId = null;
}
},
playEffect(name, cb) {
this.stopCurrentPlayedAudio();
const audioNode = cc.find(`audios/${name}`);
const audioClip = audioNode.getComponent(cc.AudioSource).clip;
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
this.currentPlayedAudioId = audioId;
if (cb) {
cc.audioEngine.setFinishCallback(audioId, cb);
}
},
playAudioEntrer() { playAudioEntrer() {
GameData.audioCount++; GameData.audioCount++;
let id = cc.audioEngine.play(this.audEnter, false, 1); let id = cc.audioEngine.play(this.audEnter, false, 1);
...@@ -731,4 +834,20 @@ cc.Class({ ...@@ -731,4 +834,20 @@ cc.Class({
}); });
}, },
playAudioByUrl(audio_url, cb = null) {
if (!audio_url) {
if (cb) {
cb();
}
return;
}
this.stopCurrentPlayedAudio();
cc.assetManager.loadRemote(audio_url.toLowerCase(), (err, audioClip) => {
const audioId = cc.audioEngine.play(audioClip, false, 0.8);
this.currentPlayedAudioId = audioId;
if (cb) {
cc.audioEngine.setFinishCallback(audioId, cb);
}
});
},
}); });
export const DefaultData = { export const DefaultData = {
"startAudio": "http://staging-teach.cdn.ireadabc.com/1227771664f9dd7b1fe210a7736b76a0.mp3",
"endAudio": "http://staging-teach.cdn.ireadabc.com/1227771664f9dd7b1fe210a7736b76a0.mp3",
"waitAudio": "http://staging-teach.cdn.ireadabc.com/1227771664f9dd7b1fe210a7736b76a0.mp3",
"haveCover": false, "haveCover": false,
"coverType": "Image", "coverType": "Image",
"coverImage": "", "coverImage": "",
......
{
"ver": "1.1.2",
"uuid": "5d3dbf71-3907-492a-8140-e402460ca901",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
This diff is collapsed.
{
"ver": "1.0.1",
"uuid": "ce0a0ad1-ea3c-4943-b4df-0018e6fdc873",
"subMetas": {}
}
\ No newline at end of file
{"name":"mao","imagePath":"mao_tex.png","SubTexture":[{"name":"猫01/影子","x":1,"height":66,"y":343,"width":337},{"name":"猫01/尾巴","x":1,"height":109,"y":188,"width":175},{"name":"猫01/右腿","x":178,"height":117,"y":188,"width":104},{"name":"猫01/左腿","x":1,"height":115,"y":569,"width":64},{"name":"猫01/右手","x":427,"height":122,"y":590,"width":69},{"name":"猫01/左手","x":301,"height":74,"y":590,"width":124},{"name":"猫01伸/左手伸直","x":299,"height":169,"y":1,"width":168},{"name":"猫01伸/右手伸直","x":299,"height":169,"y":172,"width":168},{"name":"猫01/身体","x":340,"height":180,"y":343,"width":122},{"name":"猫01/领带","x":1,"height":156,"y":411,"width":120},{"name":"猫01/右耳","x":155,"height":76,"y":602,"width":90},{"name":"猫01/左耳","x":67,"height":85,"y":602,"width":86},{"name":"猫01/组_1","x":1,"height":185,"y":1,"width":296},{"name":"猫01/右眼","x":1,"height":60,"y":686,"width":59},{"name":"猫01/右眉毛","x":67,"height":5,"y":595,"width":33},{"name":"猫01/左眼","x":247,"height":60,"y":666,"width":59},{"name":"猫01/左眉毛","x":247,"height":12,"y":602,"width":31},{"name":"猫01/眼镜","x":301,"height":63,"y":525,"width":170},{"name":"猫01/胡子","x":123,"height":85,"y":515,"width":176},{"name":"猫01/鼻子","x":67,"height":24,"y":569,"width":28},{"name":"猫01/嘴","x":1,"height":30,"y":299,"width":65},{"name":"猫01/帽子","x":123,"height":102,"y":411,"width":158}],"height":1024,"width":512}
\ No newline at end of file
{
"ver": "1.0.1",
"uuid": "0beeaa34-33fe-41c8-9ced-36f73b9f71a7",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4dfebff1-7d99-40fb-8f61-c515e6ff3e9e",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 512,
"height": 1024,
"platformSettings": {},
"subMetas": {
"mao_tex": {
"ver": "1.0.4",
"uuid": "795b7b2c-7018-4e77-bdad-bfb8099e01df",
"rawTextureUuid": "4dfebff1-7d99-40fb-8f61-c515e6ff3e9e",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -7.5,
"offsetY": 138.5,
"trimX": 1,
"trimY": 1,
"width": 495,
"height": 745,
"rawWidth": 512,
"rawHeight": 1024,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
This diff is collapsed.
<div class="model-content"> <div class="model-content">
<div style="padding: 10px;">
<div style="width: 500px; margin-top: 20px; border: 1px solid #ccc; border-radius: 5px; padding: 15px;">
猫咪开头音频:
<app-audio-recorder
style="margin-left: 10px; "
[audioUrl]="item.startAudio"
(audioUploaded)="onAudioUploadSuccess($event, 'startAudio', item)"
></app-audio-recorder>
</div>
<div style="width: 500px; margin-top: 20px; border: 1px solid #ccc; border-radius: 5px; padding: 15px;">
猫咪结束音频:
<app-audio-recorder
style="margin-left: 10px; "
[audioUrl]="item.endAudio"
(audioUploaded)="onAudioUploadSuccess($event, 'endAudio', item)"
></app-audio-recorder>
</div>
<div style="width: 500px; margin-top: 20px; border: 1px solid #ccc; border-radius: 5px; padding: 15px;">
猫咪待机音频:
<app-audio-recorder
style="margin-left: 10px; "
[audioUrl]="item.waitAudio"
(audioUploaded)="onAudioUploadSuccess($event, 'waitAudio', item)"
></app-audio-recorder>
</div>
</div>
<div class="card-config"> <div class="card-config">
<div *ngFor="let page of item.pageList; let i = index" class="card-item clearfix" <div *ngFor="let page of item.pageList; let i = index" class="card-item clearfix"
style="padding: 0.5vw; width: 25%; "> style="padding: 0.5vw; width: 25%; ">
......
...@@ -57,6 +57,9 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { ...@@ -57,6 +57,9 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
ngOnInit() { ngOnInit() {
this.item = { this.item = {
startAudio:'',
endAudio:'',
waitAudio:'',
"haveCover": false, "haveCover": false,
"coverType": "Image", "coverType": "Image",
"coverImage": "", "coverImage": "",
...@@ -78,6 +81,9 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { ...@@ -78,6 +81,9 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
if (data) { if (data) {
this.item = data; this.item = data;
this.item.startAudio = data.startAudio || "";
this.item.endAudio = data.endAudio || "";
this.item.waitAudio = data.waitAudio || "";
} }
this.init(); this.init();
...@@ -124,6 +130,15 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { ...@@ -124,6 +130,15 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
} }
/**
* 储存音频数据
* @param e
*/
onAudioUploadSuccess(e, key, item) {
item[key] = e.url;
this.save();
}
handleCoverTypeChange(e) { handleCoverTypeChange(e) {
this.item.coverType = e; this.item.coverType = e;
if (e == 'Spine') { if (e == 'Spine') {
......
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "574",
"texture": "c1a692e1-05f9-49bd-a933-9081dbf897e0",
"atlas": "",
"rect": [
0,
0,
502,
115
],
"offset": [
0,
0
],
"originalSize": [
502,
115
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
"use strict";
cc._RF.push(module, '10b30V8c/ZEs5olGN2C+NyA', 'verlet_assembler');
// OP13/script/verlet_assembler.ts
"use strict";
var __extends = (this && this.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
Object.defineProperty(exports, "__esModule", { value: true });
var page_effect_assembler_base_1 = require("./page_effect_assembler_base");
var gfx = cc.gfx;
var vfmtPosUvColorFront = new gfx.VertexFormat([
{ name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },
{ name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },
{ name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true },
{ name: "a_isFront", type: gfx.ATTR_TYPE_FLOAT32, num: 1 },
]);
var VerletAssembler = /** @class */ (function (_super) {
__extends(VerletAssembler, _super);
function VerletAssembler() {
return _super !== null && _super.apply(this, arguments) || this;
}
VerletAssembler.prototype.init = function (comp) {
_super.prototype.init.call(this, comp);
//@ts-ignore
var segmentCount = comp.pointsCount - 1;
this.verticesCount = 4 * segmentCount;
this.indicesCount = 6 * segmentCount;
this.floatsPerVert = 6;
this.initData();
};
VerletAssembler.prototype.getVfmt = function () {
return vfmtPosUvColorFront;
};
VerletAssembler.prototype.updateRenderData = function (comp) {
if (comp) {
var pointList = comp.getPointList();
var pointNum = pointList.length;
if (pointNum < 2) {
return;
}
var node = comp.node;
var height = node.height;
var width = node.width;
var posX = -width * node.anchorX;
var posY = -height * node.anchorY;
var gapU = 1 / (pointNum - 1);
var lastU = 0;
var nextU = 0;
var floatsPerVert = this.floatsPerVert;
var verts = this.renderData.vDatas[0];
// 写verts时的下标
var dstOffset = 0;
for (var i = 1; i < pointNum; i++) {
var lastPoint = pointList[i - 1];
var nextPoint = pointList[i];
nextU = lastU + gapU;
// 顶点和质点一一对应
// 顶点数据写入verts
dstOffset = floatsPerVert * (i - 1) * 4;
verts[dstOffset] = posX + lastPoint.x;
verts[dstOffset + 1] = posY + lastPoint.y;
verts[dstOffset + 2] = lastU;
verts[dstOffset + 3] = 1;
dstOffset += floatsPerVert;
verts[dstOffset] = posX + nextPoint.x;
verts[dstOffset + 1] = posY + nextPoint.y;
verts[dstOffset + 2] = nextU;
verts[dstOffset + 3] = 1;
dstOffset += floatsPerVert;
verts[dstOffset] = posX + lastPoint.x;
verts[dstOffset + 1] = posY + height + lastPoint.y;
verts[dstOffset + 2] = lastU;
verts[dstOffset + 3] = 0;
dstOffset += floatsPerVert;
verts[dstOffset] = posX + nextPoint.x;
verts[dstOffset + 1] = posY + height + nextPoint.y;
verts[dstOffset + 2] = nextU;
verts[dstOffset + 3] = 0;
lastU = nextU;
}
this.updateColor(comp, null);
this.updateIsFront(comp, 5);
}
};
return VerletAssembler;
}(page_effect_assembler_base_1.default));
exports.default = VerletAssembler;
cc._RF.pop();
\ No newline at end of file
{"version":3,"sources":["assets\\OP13\\script\\verlet_assembler.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["import PageEffectAssemblerBase from \"./page_effect_assembler_base\";\r\n\r\nconst gfx = cc.gfx\r\n\r\nlet vfmtPosUvColorFront = new gfx.VertexFormat([\r\n { name: gfx.ATTR_POSITION, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_UV0, type: gfx.ATTR_TYPE_FLOAT32, num: 2 },\r\n { name: gfx.ATTR_COLOR, type: gfx.ATTR_TYPE_UINT8, num: 4, normalize: true },\r\n { name: \"a_isFront\", type: gfx.ATTR_TYPE_FLOAT32, num: 1},\r\n]);\r\n\r\nexport default class VerletAssembler extends PageEffectAssemblerBase {\r\n\r\n init(comp: cc.RenderComponent) {\r\n super.init(comp);\r\n\r\n //@ts-ignore\r\n let segmentCount = comp.pointsCount - 1;\r\n this.verticesCount = 4 * segmentCount;\r\n this.indicesCount = 6 * segmentCount;\r\n this.floatsPerVert = 6;\r\n \r\n this.initData();\r\n }\r\n\r\n getVfmt() {\r\n return vfmtPosUvColorFront;\r\n }\r\n \r\n public updateRenderData (comp: any) {\r\n if (comp) {\r\n let pointList: cc.Vec2[] = comp.getPointList()\r\n let pointNum: number = pointList.length\r\n if (pointNum < 2) {\r\n return\r\n }\r\n\r\n let node = comp.node\r\n let height = node.height\r\n let width = node.width\r\n let posX = - width * node.anchorX\r\n let posY = - height * node.anchorY\r\n\r\n let gapU = 1 / (pointNum - 1)\r\n let lastU = 0\r\n let nextU = 0\r\n\r\n let floatsPerVert = this.floatsPerVert;\r\n let verts = this.renderData.vDatas[0];\r\n // 写verts时的下标\r\n let dstOffset = 0;\r\n for (let i = 1; i < pointNum; i++) {\r\n let lastPoint = pointList[i - 1]\r\n let nextPoint = pointList[i]\r\n nextU = lastU + gapU\r\n\r\n // 顶点和质点一一对应\r\n // 顶点数据写入verts\r\n dstOffset = floatsPerVert * (i-1) * 4;\r\n verts[dstOffset] = posX + lastPoint.x;\r\n verts[dstOffset + 1] = posY + lastPoint.y;\r\n verts[dstOffset + 2] = lastU;\r\n verts[dstOffset + 3] = 1;\r\n dstOffset += floatsPerVert;\r\n\r\n verts[dstOffset] = posX + nextPoint.x;\r\n verts[dstOffset + 1] = posY + nextPoint.y;\r\n verts[dstOffset + 2] = nextU;\r\n verts[dstOffset + 3] = 1;\r\n dstOffset += floatsPerVert;\r\n\r\n verts[dstOffset] = posX + lastPoint.x;\r\n verts[dstOffset + 1] = posY + height + lastPoint.y;\r\n verts[dstOffset + 2] = lastU;\r\n verts[dstOffset + 3] = 0;\r\n dstOffset += floatsPerVert;\r\n\r\n verts[dstOffset] = posX + nextPoint.x;\r\n verts[dstOffset + 1] = posY + height + nextPoint.y;\r\n verts[dstOffset + 2] = nextU;\r\n verts[dstOffset + 3] = 0;\r\n\r\n lastU = nextU\r\n }\r\n\r\n this.updateColor(comp, null);\r\n this.updateIsFront(comp, 5);\r\n }\r\n }\r\n}"]}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "left_arrow",
"texture": "9d40e503-6466-431e-90fa-9a8772e5a7de",
"atlas": "",
"rect": [
0,
0,
124,
128
],
"offset": [
0,
0
],
"originalSize": [
124,
128
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
[
{
"__type__": "cc.Prefab",
"_name": "ItemTurnPage",
"_objFlags": 0,
"_native": "",
"data": {
"__id__": 1
},
"optimizationPolicy": 0,
"asyncLoadAssets": false,
"readonly": false
},
{
"__type__": "cc.Node",
"_name": "ItemTurnPage",
"_objFlags": 0,
"_parent": null,
"_children": [],
"_active": true,
"_components": [
{
"__id__": 2
}
],
"_prefab": {
"__id__": 3
},
"_opacity": 0,
"_color": {
"__type__": "cc.Color",
"r": 255,
"g": 255,
"b": 255,
"a": 255
},
"_contentSize": {
"__type__": "cc.Size",
"width": 473,
"height": 464
},
"_anchorPoint": {
"__type__": "cc.Vec2",
"x": 0.5,
"y": 0.5
},
"_trs": {
"__type__": "TypedArray",
"ctor": "Float64Array",
"array": [
239,
-5,
0,
0,
0,
0,
1,
1,
1,
1
]
},
"_eulerAngles": {
"__type__": "cc.Vec3",
"x": 0,
"y": 0,
"z": 0
},
"_skewX": 0,
"_skewY": 0,
"_is3DNode": false,
"_groupIndex": 0,
"groupIndex": 0,
"_id": ""
},
{
"__type__": "faf27AoK/ZCOrghpYoEK7kY",
"_name": "",
"_objFlags": 0,
"node": {
"__id__": 1
},
"_enabled": true,
"_materials": [
{
"__uuid__": "3b4fb913-cf1a-43eb-9c29-91e8f7043bdd"
}
],
"textureList": [],
"pointsCount": 5,
"_id": ""
},
{
"__type__": "cc.PrefabInfo",
"root": {
"__id__": 1
},
"asset": {
"__uuid__": "1bbf8381-0252-47ce-a584-ca5598cf3255"
},
"fileId": "",
"sync": false
}
]
\ No newline at end of file
"use strict";
cc._RF.push(module, '1be932YNPdN868qHa6IUyoA', 'EventMgr');
// OP13/script/EventMgr.ts
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
var EventMgr = /** @class */ (function () {
function EventMgr() {
// 所有事件的监听器
this.es = {};
}
EventMgr.prototype.on = function (eventName, cb, target) {
if (!this.es[eventName]) {
this.es[eventName] = [];
}
this.es[eventName].push({
cb: cb,
once: false,
target: target,
});
};
EventMgr.prototype.once = function (eventName, cb, target) {
if (!this.es[eventName]) {
this.es[eventName] = [];
}
this.es[eventName].push({
cb: cb,
once: true,
target: target,
});
};
EventMgr.prototype.emit = function (eventName, params) {
var listeners = this.es[eventName] || [];
var l = listeners.length;
for (var i = 0; i < l; i++) {
var _a = listeners[i], cb = _a.cb, once = _a.once, target = _a.target;
var args = [eventName, params];
cb.apply(target, args);
if (once) {
listeners.splice(i, 1);
i--;
l--;
}
}
};
EventMgr.prototype.off = function (eventName, cb, target) {
// clean all
if (eventName === undefined) {
this.es = {};
}
else {
if (cb === undefined) {
// clean the eventName's listeners
delete this.es[eventName];
}
else if (cb === null) {
if (!target) {
return;
}
var listeners = this.es[eventName] || [];
// clean the event and listener
var l = listeners.length;
for (var i = 0; i < l; i++) {
if (listeners[i].target === target) {
listeners.splice(i, 1);
i--;
l--;
}
}
}
else {
var listeners = this.es[eventName] || [];
// clean the event and listener
var l = listeners.length;
for (var i = 0; i < l; i++) {
if (listeners[i].cb === cb && listeners[i].target === target) {
listeners.splice(i, 1);
i--;
l--;
}
}
}
}
};
return EventMgr;
}());
exports.default = new EventMgr();
cc._RF.pop();
\ No newline at end of file
{"version":3,"sources":["assets\\OP13\\script\\EventMgr.ts"],"names":[],"mappings":"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","file":"","sourceRoot":"/","sourcesContent":["/**\r\n * 事件模块\r\n * onfire.js\r\n * \r\n */\r\ninterface Listener {\r\n cb: Function;\r\n once: boolean;\r\n target: object;\r\n}\r\n\r\ninterface EventsType {\r\n [eventName: string]: Listener[];\r\n}\r\nclass EventMgr {\r\n // 所有事件的监听器\r\n es: EventsType = {};\r\n\r\n on(eventName: string, cb: Function, target: object) {\r\n if (!this.es[eventName]) {\r\n this.es[eventName] = [];\r\n }\r\n\r\n this.es[eventName].push({\r\n cb,\r\n once: false,\r\n target,\r\n });\r\n }\r\n\r\n once(eventName: string, cb: Function, target: object) {\r\n if (!this.es[eventName]) {\r\n this.es[eventName] = [];\r\n }\r\n\r\n this.es[eventName].push({\r\n cb,\r\n once: true,\r\n target,\r\n });\r\n }\r\n\r\n emit(eventName: string, params?: any) {\r\n const listeners = this.es[eventName] || [];\r\n\r\n let l = listeners.length;\r\n\r\n for (let i = 0; i < l; i++) {\r\n const { cb, once, target } = listeners[i];\r\n let args = [eventName, params];\r\n cb.apply(target, args);\r\n\r\n if (once) {\r\n listeners.splice(i, 1);\r\n i--;\r\n l--;\r\n }\r\n }\r\n }\r\n\r\n off(eventName?: string, cb?: Function, target?: object) {\r\n // clean all\r\n if (eventName === undefined) {\r\n this.es = {};\r\n } else {\r\n if (cb === undefined) {\r\n // clean the eventName's listeners\r\n delete this.es[eventName];\r\n } else if (cb === null) {\r\n if (!target) {\r\n return;\r\n }\r\n const listeners = this.es[eventName] || [];\r\n // clean the event and listener\r\n let l = listeners.length;\r\n for (let i = 0; i < l; i++) {\r\n if (listeners[i].target === target) {\r\n listeners.splice(i, 1);\r\n i--;\r\n l--;\r\n }\r\n }\r\n } else {\r\n const listeners = this.es[eventName] || [];\r\n // clean the event and listener\r\n let l = listeners.length;\r\n for (let i = 0; i < l; i++) {\r\n if (listeners[i].cb === cb && listeners[i].target === target) {\r\n listeners.splice(i, 1);\r\n i--;\r\n l--;\r\n }\r\n }\r\n }\r\n }\r\n }\r\n}\r\n\r\nexport default new EventMgr();"]}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "btnNext_1",
"texture": "e3dd9582-1bee-45fe-8018-17397aa011a5",
"atlas": "",
"rect": [
0,
0,
82,
66
],
"offset": [
0,
0
],
"originalSize": [
82,
66
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "tip_1",
"texture": "e81168ea-da65-4df0-9f1c-84fbd286be7d",
"atlas": "",
"rect": [
0,
0,
497,
110
],
"offset": [
0,
0
],
"originalSize": [
497,
110
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
"use strict";
cc._RF.push(module, '23c70ZolwFBWpdwEfbCLBDn', 'capture_to_web');
// OP13/script/capture_to_web.js
"use strict";
cc.Class({
"extends": cc.Component,
start: function start() {},
doCapture: function doCapture(nodeCapture, isTurn) {
var nodeCamera = new cc.Node();
nodeCamera.parent = cc.find("Canvas");
var camera = nodeCamera.addComponent(cc.Camera);
var position = nodeCapture.getPosition();
var width = nodeCapture.width;
var height = nodeCapture.height;
if (isTurn) {
nodeCapture.scaleX = -1;
} // 当 alignWithScreen 为 true 的时候,摄像机会自动将视窗大小调整为整个屏幕的大小。如果想要完全自由地控制摄像机,则需要将 alignWithScreen 设置为 false。(v2.2.1 新增)
camera.alignWithScreen = false; // 设置摄像机的投影模式是正交(true)还是透视(false)模式
camera.ortho = true; // 摄像机在正交投影模式下的视窗大小。该属性在 alignWithScreen 设置为 false 时生效。
camera.orthoSize = height / 2;
var texture = new cc.RenderTexture(); // 如果截图内容中不包含 Mask 组件,可以不用传递第三个参数
texture.initWithSize(width, height, cc.gfx.RB_FMT_S8); // 如果设置了 targetTexture,那么摄像机渲染的内容不会输出到屏幕上,而是会渲染到 targetTexture 上。
camera.targetTexture = texture; // 创建画布
var canvas = document.createElement('canvas');
canvas.width = width;
canvas.height = height;
var ctx = canvas.getContext('2d');
nodeCapture.setPosition(cc.Vec2.ZERO); // 渲染一次摄像机,即更新一次内容到 RenderTexture 中
camera.render(nodeCapture);
nodeCapture.setPosition(position); // 从 render texture 读取像素数据,数据类型为 RGBA 格式的 Uint8Array 数组。
// 默认每次调用此函数会生成一个大小为 (长 x 高 x 4) 的 Uint8Array。
var data = texture.readPixels(); // write the render data
// PNG 中 1 像素 = 32 bit(RGBA),1 byte = 8 bit,所以 1 像素 = 4 byte
// 每行 width 像素,即 width * 4 字节
var rowBytes = width * 4;
for (var row = 0; row < height; row++) {
// RenderTexture 得到的纹理是上下翻转的
var srow = height - 1 - row;
var imageData = ctx.createImageData(width, 1);
var start = srow * width * 4;
for (var i = 0; i < rowBytes; i++) {
imageData.data[i] = data[start + i];
}
ctx.putImageData(imageData, 0, row);
}
var dataURL = canvas.toDataURL("image/png");
var img = document.createElement("img");
img.src = dataURL;
nodeCamera.destroy();
var texture2D = new cc.Texture2D();
texture2D.initWithElement(img);
var spriteFrame = new cc.SpriteFrame();
spriteFrame.setTexture(texture2D);
var node = new cc.Node();
var sprite = node.addComponent(cc.Sprite);
sprite.spriteFrame = spriteFrame;
nodeCapture.scaleX = 1;
return spriteFrame;
}
});
cc._RF.pop();
\ No newline at end of file
{"version":3,"sources":["assets\\OP13\\script\\capture_to_web.js"],"names":["cc","Class","Component","start","doCapture","nodeCapture","isTurn","nodeCamera","Node","parent","find","camera","addComponent","Camera","position","getPosition","width","height","scaleX","alignWithScreen","ortho","orthoSize","texture","RenderTexture","initWithSize","gfx","RB_FMT_S8","targetTexture","canvas","document","createElement","ctx","getContext","setPosition","Vec2","ZERO","render","data","readPixels","rowBytes","row","srow","imageData","createImageData","i","putImageData","dataURL","toDataURL","img","src","destroy","texture2D","Texture2D","initWithElement","spriteFrame","SpriteFrame","setTexture","node","sprite","Sprite"],"mappings":"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","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n\r\n start () {\r\n \r\n },\r\n\r\n doCapture(nodeCapture,isTurn) {\r\n let nodeCamera = new cc.Node();\r\n nodeCamera.parent = cc.find(\"Canvas\");\r\n let camera = nodeCamera.addComponent(cc.Camera);\r\n \r\n let position = nodeCapture.getPosition();\r\n let width = nodeCapture.width;\r\n let height = nodeCapture.height;\r\n if(isTurn){\r\n nodeCapture.scaleX = -1;\r\n }\r\n // 当 alignWithScreen 为 true 的时候,摄像机会自动将视窗大小调整为整个屏幕的大小。如果想要完全自由地控制摄像机,则需要将 alignWithScreen 设置为 false。(v2.2.1 新增)\r\n camera.alignWithScreen = false;\r\n // 设置摄像机的投影模式是正交(true)还是透视(false)模式\r\n camera.ortho = true;\r\n // 摄像机在正交投影模式下的视窗大小。该属性在 alignWithScreen 设置为 false 时生效。\r\n camera.orthoSize = height / 2;\r\n \r\n let texture = new cc.RenderTexture();\r\n // 如果截图内容中不包含 Mask 组件,可以不用传递第三个参数\r\n texture.initWithSize(width, height, cc.gfx.RB_FMT_S8);\r\n \r\n // 如果设置了 targetTexture,那么摄像机渲染的内容不会输出到屏幕上,而是会渲染到 targetTexture 上。\r\n camera.targetTexture = texture;\r\n \r\n // 创建画布\r\n let canvas = document.createElement('canvas');\r\n canvas.width = width;\r\n canvas.height = height;\r\n \r\n let ctx = canvas.getContext('2d');\r\n \r\n nodeCapture.setPosition(cc.Vec2.ZERO);\r\n // 渲染一次摄像机,即更新一次内容到 RenderTexture 中\r\n camera.render(nodeCapture);\r\n nodeCapture.setPosition(position);\r\n // 从 render texture 读取像素数据,数据类型为 RGBA 格式的 Uint8Array 数组。\r\n // 默认每次调用此函数会生成一个大小为 (长 x 高 x 4) 的 Uint8Array。\r\n let data = texture.readPixels();\r\n // write the render data\r\n // PNG 中 1 像素 = 32 bit(RGBA),1 byte = 8 bit,所以 1 像素 = 4 byte\r\n // 每行 width 像素,即 width * 4 字节\r\n let rowBytes = width * 4;\r\n for (let row = 0; row < height; row++) {\r\n // RenderTexture 得到的纹理是上下翻转的\r\n let srow = height - 1 - row;\r\n let imageData = ctx.createImageData(width, 1);\r\n let start = srow * width * 4;\r\n for (let i = 0; i < rowBytes; i++) {\r\n imageData.data[i] = data[start + i];\r\n }\r\n \r\n ctx.putImageData(imageData, 0, row);\r\n }\r\n \r\n let dataURL = canvas.toDataURL(\"image/png\");\r\n let img = document.createElement(\"img\");\r\n img.src = dataURL;\r\n \r\n nodeCamera.destroy();\r\n \r\n let texture2D = new cc.Texture2D();\r\n texture2D.initWithElement(img);\r\n \r\n let spriteFrame = new cc.SpriteFrame();\r\n spriteFrame.setTexture(texture2D);\r\n \r\n let node = new cc.Node();\r\n let sprite = node.addComponent(cc.Sprite);\r\n sprite.spriteFrame = spriteFrame;\r\n nodeCapture.scaleX = 1;\r\n return spriteFrame;\r\n },\r\n});\r\n"]}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
"use strict";
cc._RF.push(module, '2c0c3WgsglIe407Cu8vF6pN', 'NodeFitScreen');
// OP13/script/NodeFitScreen.js
"use strict";
var FitType = {
Scale: 0,
//等比缩放,一般用于背景图
FullScreen: 1,
//铺满全屏,拉伸
FitMode: 2,
//更改canvas适配策略,只能挂在canvas上
FullHeight: 3,
FullWidth: 4
};
var designSize = cc.size(1280, 720);
cc.Class({
"extends": cc.Component,
properties: {
FitType: {
type: cc.Enum(FitType),
"default": 0
}
},
onLoad: function onLoad() {
cc.view.on('canvas-resize', this.refreshFit, this);
this.refreshFit();
},
onDestroy: function onDestroy() {
cc.view.off('canvas-resize', this.refreshFit, this);
},
refreshFit: function refreshFit() {
if (this.FitType == FitType.Scale) {
var winSize = cc.view.getVisibleSize();
console.log(winSize);
console.log(this.node.width, this.node.height);
if (this.node.width >= winSize.width && this.node.height >= winSize.height) {
return;
}
var scale1 = winSize.width / this.node.width;
var scale2 = winSize.height / this.node.height;
if (scale1 > scale2) {
this.node.scale = scale1;
} else {
this.node.scale = scale2;
}
} else if (this.FitType == FitType.FullScreen) {
var visiblesize = cc.view.getVisibleSize();
this.node.width = visiblesize.width;
this.node.height = visiblesize.height;
} else if (this.FitType == FitType.FullHeight) {
var _visiblesize = cc.view.getVisibleSize();
var scale = _visiblesize.width / this.node.width;
this.node.width = scale * this.node.width;
this.node.height = scale * this.node.height;
} else if (this.FitType == FitType.FullWidth) {
var _visiblesize2 = cc.view.getVisibleSize();
var _scale = _visiblesize2.height / this.node.height;
this.node.width = _scale * this.node.width;
this.node.height = _scale * this.node.height;
} else {
var wsize = cc.view.getFrameSize();
var scaleW = wsize.width / designSize.width;
var scaleH = wsize.height / designSize.height;
var pCanvas = this.node.getComponent(cc.Canvas);
if (pCanvas) {
if (scaleW > scaleH) {
//更宽了要fitHeight, 否则height就留黑边了;
pCanvas.fitHeight = true;
pCanvas.fitWidth = false;
} else {
//更高;
pCanvas.fitHeight = false;
pCanvas.fitWidth = true;
}
} else {
console.error("fitmode模式只能用在canvas节点上");
}
}
}
});
cc._RF.pop();
\ No newline at end of file
{"version":3,"sources":["assets\\OP13\\script\\NodeFitScreen.js"],"names":["FitType","Scale","FullScreen","FitMode","FullHeight","FullWidth","designSize","cc","size","Class","Component","properties","type","Enum","onLoad","view","on","refreshFit","onDestroy","off","winSize","getVisibleSize","console","log","node","width","height","scale1","scale2","scale","visiblesize","wsize","getFrameSize","scaleW","scaleH","pCanvas","getComponent","Canvas","fitHeight","fitWidth","error"],"mappings":"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","sourceRoot":"/","sourcesContent":["\r\nconst FitType = {\r\n Scale: 0,//等比缩放,一般用于背景图\r\n FullScreen: 1,//铺满全屏,拉伸\r\n FitMode: 2,//更改canvas适配策略,只能挂在canvas上\r\n FullHeight: 3,\r\n FullWidth: 4,\r\n};\r\nconst designSize = cc.size(1280, 720);\r\ncc.Class({\r\n extends: cc.Component,\r\n\r\n properties: {\r\n FitType: {\r\n type: cc.Enum(FitType),\r\n default: 0\r\n },\r\n },\r\n\r\n onLoad: function () {\r\n cc.view.on('canvas-resize', this.refreshFit, this)\r\n this.refreshFit();\r\n },\r\n onDestroy(){\r\n cc.view.off('canvas-resize', this.refreshFit, this)\r\n },\r\n\r\n refreshFit() {\r\n if (this.FitType == FitType.Scale) {\r\n let winSize = cc.view.getVisibleSize();\r\n console.log(winSize)\r\n console.log(this.node.width,this.node.height)\r\n if(this.node.width >= winSize.width && this.node.height >= winSize.height ){\r\n return;\r\n }\r\n let scale1 = winSize.width / this.node.width;\r\n let scale2 = winSize.height / this.node.height;\r\n if (scale1 > scale2) {\r\n this.node.scale = scale1;\r\n } else {\r\n this.node.scale = scale2;\r\n }\r\n } else if (this.FitType == FitType.FullScreen) {\r\n let visiblesize = cc.view.getVisibleSize();\r\n this.node.width = visiblesize.width;\r\n this.node.height = visiblesize.height;\r\n } else if (this.FitType == FitType.FullHeight) {\r\n let visiblesize = cc.view.getVisibleSize();\r\n let scale = visiblesize.width / this.node.width;\r\n this.node.width = scale * this.node.width;\r\n this.node.height = scale * this.node.height;\r\n } else if (this.FitType == FitType.FullWidth) {\r\n let visiblesize = cc.view.getVisibleSize();\r\n let scale = visiblesize.height / this.node.height;\r\n this.node.width = scale * this.node.width;\r\n this.node.height = scale * this.node.height;\r\n } else {\r\n let wsize = cc.view.getFrameSize();\r\n let scaleW = wsize.width / designSize.width;\r\n let scaleH = wsize.height / designSize.height;\r\n\r\n let pCanvas = this.node.getComponent(cc.Canvas);\r\n if (pCanvas) {\r\n if (scaleW > scaleH) { //更宽了要fitHeight, 否则height就留黑边了;\r\n pCanvas.fitHeight = true;\r\n pCanvas.fitWidth = false;\r\n } else { //更高;\r\n pCanvas.fitHeight = false;\r\n pCanvas.fitWidth = true;\r\n }\r\n } else {\r\n console.error(\"fitmode模式只能用在canvas节点上\");\r\n }\r\n }\r\n },\r\n});\r\n"]}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "rectangle-22",
"texture": "e254742d-24a0-47e6-8009-67f74a4be123",
"atlas": "",
"rect": [
0,
0,
384,
544
],
"offset": [
0,
0
],
"originalSize": [
384,
544
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.Material",
"_name": "page-material",
"_objFlags": 0,
"_native": "",
"_effectAsset": {
"__uuid__": "74abcb8f-38de-4259-bd33-d7818d6adef8"
},
"_techniqueIndex": 0,
"_techniqueData": {
"0": {
"defines": {
"USE_TEXTURE": true
}
}
}
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "bg_flower",
"texture": "2fb95e88-79e4-46fe-b272-53bd343173b5",
"atlas": "",
"rect": [
0,
0,
1556,
235
],
"offset": [
0,
0
],
"originalSize": [
1556,
235
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.TTFFont",
"_name": "ComicSansMS",
"_objFlags": 0,
"_native": "ComicSansMS.ttf",
"_fontFamily": null
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "tip_0",
"texture": "68ed6875-8c30-4d1e-bbb3-48ed4e0c21ee",
"atlas": "",
"rect": [
0,
0,
497,
110
],
"offset": [
0,
0
],
"originalSize": [
497,
110
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "right_arrow",
"texture": "26903881-b87c-45a3-b107-184d9898169c",
"atlas": "",
"rect": [
0,
0,
122,
130
],
"offset": [
0,
0
],
"originalSize": [
122,
130
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "bg_book",
"texture": "9e91383f-9ab8-48ba-b2ba-919988cf3bcb",
"atlas": "",
"rect": [
0,
0,
1220,
1143
],
"offset": [
0,
0
],
"originalSize": [
1220,
1143
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.EffectAsset",
"_name": "page-effect",
"_objFlags": 0,
"_native": "",
"properties": null,
"techniques": [
{
"passes": [
{
"blendState": {
"targets": [
{
"blend": true
}
]
},
"rasterizerState": {
"cullMode": 0
},
"properties": {
"texture0": {
"value": "white",
"type": 29
},
"texture1": {
"value": "white",
"type": 29
},
"alphaThreshold": {
"value": [
0.5
],
"type": 13
}
},
"program": "page-effect|vs|fs"
}
]
}
],
"shaders": [
{
"hash": 3931591539,
"glsl3": {
"vert": "\nprecision highp float;\nuniform CCGlobal {\n mat4 cc_matView;\n mat4 cc_matViewInv;\n mat4 cc_matProj;\n mat4 cc_matProjInv;\n mat4 cc_matViewProj;\n mat4 cc_matViewProjInv;\n vec4 cc_cameraPos;\n vec4 cc_time;\n mediump vec4 cc_screenSize;\n mediump vec4 cc_screenScale;\n};\nuniform CCLocal {\n mat4 cc_matWorld;\n mat4 cc_matWorldIT;\n};\nin vec3 a_position;\nin vec4 a_color;\nout vec4 v_color;\n#if USE_TEXTURE\nin vec2 a_uv0;\nout vec2 v_uv0;\nin float a_isFront;\nout float v_isFront;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n v_isFront = a_isFront;\n gl_Position = pos;\n}",
"frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform ALPHA_TEST {\n float alphaThreshold;\n };\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nin vec4 v_color;\n#if USE_TEXTURE\nin vec2 v_uv0;\nin float v_isFront;\nuniform sampler2D texture0;\nuniform sampler2D texture1;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n if(v_isFront == 1.0) {\n o *= texture(texture0, v_uv0);\n } else {\n o *= texture(texture1, v_uv0);\n }\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"
},
"glsl1": {
"vert": "\nprecision highp float;\nuniform mat4 cc_matViewProj;\nuniform mat4 cc_matWorld;\nattribute vec3 a_position;\nattribute vec4 a_color;\nvarying vec4 v_color;\n#if USE_TEXTURE\nattribute vec2 a_uv0;\nvarying vec2 v_uv0;\nattribute float a_isFront;\nvarying float v_isFront;\n#endif\nvoid main () {\n vec4 pos = vec4(a_position, 1);\n #if CC_USE_MODEL\n pos = cc_matViewProj * cc_matWorld * pos;\n #else\n pos = cc_matViewProj * pos;\n #endif\n #if USE_TEXTURE\n v_uv0 = a_uv0;\n #endif\n v_color = a_color;\n v_isFront = a_isFront;\n gl_Position = pos;\n}",
"frag": "\nprecision highp float;\n#if USE_ALPHA_TEST\n uniform float alphaThreshold;\n#endif\nvoid ALPHA_TEST (in vec4 color) {\n #if USE_ALPHA_TEST\n if (color.a < alphaThreshold) discard;\n #endif\n}\nvoid ALPHA_TEST (in float alpha) {\n #if USE_ALPHA_TEST\n if (alpha < alphaThreshold) discard;\n #endif\n}\nvarying vec4 v_color;\n#if USE_TEXTURE\nvarying vec2 v_uv0;\nvarying float v_isFront;\nuniform sampler2D texture0;\nuniform sampler2D texture1;\n#endif\nvoid main () {\n vec4 o = vec4(1, 1, 1, 1);\n #if USE_TEXTURE\n if(v_isFront == 1.0) {\n o *= texture2D(texture0, v_uv0);\n } else {\n o *= texture2D(texture1, v_uv0);\n }\n #if CC_USE_ALPHA_ATLAS_TEXTURE\n o.a *= texture2D(texture, v_uv0).r;\n #endif\n #endif\n o *= v_color;\n ALPHA_TEST(o);\n gl_FragColor = o;\n}"
},
"builtins": {
"globals": {
"blocks": [
{
"name": "CCGlobal",
"defines": []
}
],
"samplers": []
},
"locals": {
"blocks": [
{
"name": "CCLocal",
"defines": []
}
],
"samplers": []
}
},
"defines": [
{
"name": "USE_TEXTURE",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_MODEL",
"type": "boolean",
"defines": []
},
{
"name": "USE_ALPHA_TEST",
"type": "boolean",
"defines": []
},
{
"name": "CC_USE_ALPHA_ATLAS_TEXTURE",
"type": "boolean",
"defines": [
"USE_TEXTURE"
]
}
],
"blocks": [
{
"name": "ALPHA_TEST",
"members": [
{
"name": "alphaThreshold",
"type": 13,
"count": 1
}
],
"defines": [
"USE_ALPHA_TEST"
],
"binding": 0
}
],
"samplers": [
{
"name": "texture0",
"type": 29,
"count": 1,
"defines": [
"USE_TEXTURE"
],
"binding": 30
},
{
"name": "texture1",
"type": 29,
"count": 1,
"defines": [
"USE_TEXTURE"
],
"binding": 31
}
],
"record": null,
"name": "page-effect|vs|fs"
}
]
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "rectangle-21",
"texture": "1023b411-1478-45fa-9d4d-ff673a5a322f",
"atlas": "",
"rect": [
0,
0,
526,
572
],
"offset": [
0,
0
],
"originalSize": [
526,
572
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "rectangle-3",
"texture": "6f315d27-6795-42af-9b2f-a245e6a87d01",
"atlas": "",
"rect": [
0,
0,
1556,
722
],
"offset": [
0,
0
],
"originalSize": [
1556,
722
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "bg_moon",
"texture": "1ae95003-20cc-447a-935e-664088f607e3",
"atlas": "",
"rect": [
0,
0,
1520,
511
],
"offset": [
0,
0
],
"originalSize": [
1520,
511
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
"use strict";
cc._RF.push(module, '7f42357OrpEersTkWS/ZJPG', 'ItemPage');
// OP13/script/ItemPage.js
"use strict";
var _require = require('./utils'),
loadSpine = _require.loadSpine;
var colorMap = {
"A": ["#1f356b", "#ffffff", "#bd2c37"],
"B": ["#fff8d0", "#000000", "#ffb93b"]
};
cc.Class({
"extends": require('BaseUI'),
properties: {
dragonBone: dragonBones.ArmatureDisplay,
skeleton: sp.Skeleton
},
onLoad: function onLoad() {
this._super();
this.sprImage = this.nodeDict.sprImage.getComponent(cc.Sprite);
this.labText = this.nodeDict.labText.getComponent(cc.RichText);
this.labTextTitle = this.nodeDict.labTextTitle.getComponent(cc.RichText);
},
init: function init(data, isCover, pageIndex) {
var _this = this;
return new Promise(function (resolve, reject) {
_this.data = data;
_this.data.pageType = "spine";
_this.pageIndex = pageIndex;
_this.isCover = isCover;
_this.labText.string = '';
_this.labTextTitle.string = '';
if (_this.data.pageDragonBone.animType == 'spine') {
_this.loadSpineAnim().then(function () {
resolve('');
});
} else {
_this.loadDragonBoneAnim().then(function () {
resolve('');
});
}
});
},
playSpine: function playSpine() {
var _this2 = this;
return new Promise(function (resolve, reject) {
if (_this2.data.pageDragonBone.animType == 'spine') {
var skeleton = _this2.skeleton;
skeleton.setToSetupPose();
setTimeout(function () {
skeleton.setAnimation(0, _this2.animationName, false);
skeleton.setCompleteListener(function () {
GameData.isPlaying = false;
resolve('');
});
}, 1);
} else {
_this2.dragonBone.playAnimation(_this2.animationName, 1);
_this2.dragonBone.on(dragonBones.EventObject.COMPLETE, function (evt) {
GameData.isPlaying = false;
resolve('');
});
}
});
},
playAudio: function playAudio() {
var _this3 = this;
if (this.data.pageAudio) {
cc.assetManager.loadRemote(this.data.pageAudio, null, function (err, clip) {
_this3.audioID = cc.audioEngine.play(clip, false, 1);
_this3.audioDuration = cc.audioEngine.getDuration(_this3.audioID);
});
}
},
stopAudio: function stopAudio() {
cc.audioEngine.stop(this.audioID);
this.unschedule(this.chengeTextColor);
GameData.isPlaying = false;
},
loadBg: function loadBg() {
var _this4 = this;
var url = this.data.pageImage;
if (!url) return;
cc.assetManager.loadRemote(url, function (error, texture) {
if (error) {
console.log(error);
}
_this4.sprImage.spriteFrame = new cc.SpriteFrame(texture);
_this4.setBgScale();
});
},
loadSpineAnim: function loadSpineAnim() {
var _this5 = this;
return new Promise(function (resolve, reject) {
var tex = _this5.data.pageDragonBone.texPngData.url;
var atlas = _this5.data.pageDragonBone.texJsonData.url;
var ske = _this5.data.pageDragonBone.skeJsonData.url;
loadSpine(_this5.skeleton, _this5.data.pageDragonBone.texPngData.name, {
tex: tex,
atlas: atlas,
ske: ske
}).then(function (_ref) {
var width = _ref.width,
height = _ref.height;
_this5.skeleton.node.width = width;
_this5.skeleton.node.height = height;
resolve('');
_this5.animationName = _this5.skeleton.animationNames[0];
console.log('width: ', _this5.skeleton.node.width);
console.log('height~~~: ', _this5.skeleton.node.height);
console.log('this.skeleton.node: ', _this5.skeleton.node);
_this5.setSpineScale(_this5.skeleton.node, _this5.skeleton.node);
});
});
},
loadDragonBoneAnim: function loadDragonBoneAnim() {
var _this6 = this;
return new Promise(function (resolve, reject) {
var imageUrl = _this6.data.pageDragonBone.texPngData.url;
var skeUrl = _this6.data.pageDragonBone.skeJsonData.url;
var atlasUrl = _this6.data.pageDragonBone.texJsonData.url;
cc.assetManager.loadAny([{
url: atlasUrl,
ext: '.txt'
}, {
url: skeUrl,
ext: '.txt'
}], function (error, assets) {
if (error) return resolve('');
if (imageUrl == '') console.log(_this6.data);
cc.assetManager.loadRemote(imageUrl, function (error, texture) {
if (error) return resolve('');
var atlas = new dragonBones.DragonBonesAtlasAsset();
atlas._uuid = atlasUrl;
atlas.atlasJson = assets[0];
atlas.texture = texture;
var asset = new dragonBones.DragonBonesAsset();
asset._uuid = skeUrl;
asset.dragonBonesJson = assets[1];
_this6.dragonBone.dragonAtlasAsset = atlas;
_this6.dragonBone.dragonAsset = asset;
var data = asset._dragonBonesJsonData.armature[0];
if (!data) return resolve('');
_this6.dragonBone.armatureName = data.name;
_this6.animationName = data.animation[0].name;
_this6.dragonBone.animationName = _this6.animationName; // this.dragonBone.premultipliedAlpha = true;
// atlas.texture.setPremultiplyAlpha(true);
console.log('data.canvas:', data.canvas);
_this6.setSpineScale(data.canvas, _this6.dragonBone.node);
return resolve('');
});
});
});
},
// 缩放
setBgScale: function setBgScale() {
var bgWidth = 382;
var bgHeight = 540;
if (this.nodeDict.sprImage.width != bgWidth || this.nodeDict.sprImage.height != bgHeight) {
var designScale = bgWidth / bgHeight;
var scale = this.nodeDict.sprImage.width / this.nodeDict.sprImage.height;
if (scale > designScale) {
this.nodeDict.sprImage.scale = bgWidth / this.nodeDict.sprImage.width;
} else {
this.nodeDict.sprImage.scale = bgHeight / this.nodeDict.sprImage.height;
}
}
},
setSpineScale: function setSpineScale(size, node) {
// return;
if (!size) {
return;
}
var bgWidth = 482;
var bgHeight = 489;
if (size.width != bgWidth || size.height != bgHeight) {
var designScale = bgWidth / bgHeight;
var scale = size.width / size.height;
if (scale > designScale) {
node.scale = bgWidth / size.width;
} else {
node.scale = bgHeight / size.height;
}
}
} // update (dt) {},
});
cc._RF.pop();
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "btnNext_2",
"texture": "d5006523-7faf-486e-920b-bfaf5f3412f6",
"atlas": "",
"rect": [
0,
0,
82,
66
],
"offset": [
0,
0
],
"originalSize": [
82,
66
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "group",
"texture": "fefa3d71-69b3-4fae-a2c4-456d5cfca93e",
"atlas": "",
"rect": [
0,
0,
199,
139
],
"offset": [
0,
0
],
"originalSize": [
199,
139
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
{
"__type__": "dragonBones.DragonBonesAtlasAsset",
"_name": "nv_tex",
"_objFlags": 0,
"_native": "",
"_atlasJson": "{\"width\":510,\"imagePath\":\"nv_tex.png\",\"height\":624,\"name\":\"女巫\",\"SubTexture\":[{\"width\":259,\"y\":356,\"height\":115,\"name\":\"女巫/扫把\",\"x\":1},{\"width\":41,\"y\":1,\"height\":45,\"name\":\"女巫/头发下\",\"x\":451},{\"width\":183,\"y\":473,\"height\":149,\"name\":\"女巫/帽子下\",\"x\":1},{\"width\":205,\"y\":356,\"height\":134,\"name\":\"女巫/罐子\",\"x\":262},{\"width\":42,\"y\":85,\"height\":39,\"name\":\"女巫/右臂\",\"x\":451},{\"width\":18,\"y\":473,\"height\":10,\"name\":\"女巫/飞虫\",\"x\":239},{\"width\":24,\"y\":473,\"height\":17,\"name\":\"女巫/图层_4\",\"x\":186},{\"width\":79,\"y\":492,\"height\":66,\"name\":\"女巫/领结\",\"x\":186},{\"width\":25,\"y\":473,\"height\":14,\"name\":\"女巫/图层_3\",\"x\":212},{\"width\":10,\"y\":21,\"height\":15,\"name\":\"女巫/图层_2\",\"x\":494},{\"width\":14,\"y\":1,\"height\":18,\"name\":\"女巫/图层_1\",\"x\":494},{\"width\":48,\"y\":48,\"height\":35,\"name\":\"女巫/左臂\",\"x\":451},{\"width\":22,\"y\":155,\"height\":19,\"name\":\"女巫/图层_6\",\"x\":451},{\"width\":448,\"y\":1,\"height\":353,\"name\":\"女巫/提交_0000_光束\",\"x\":1},{\"width\":34,\"y\":126,\"height\":27,\"name\":\"女巫/shiluo\",\"x\":451}]}",
"_texture": {
"__uuid__": "2e304f99-256c-455b-88ac-7d6930b3f517"
},
"texture": {
"__uuid__": "2e304f99-256c-455b-88ac-7d6930b3f517"
},
"_textureAtlasData": null
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "btnLast_1",
"texture": "6f416b5d-6582-45bc-b681-8797e2779a66",
"atlas": "",
"rect": [
0,
0,
82,
66
],
"offset": [
0,
0
],
"originalSize": [
82,
66
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
"use strict";
cc._RF.push(module, '9aa37GzjxNHyoKspnPuKHcw', 'util');
// OP13/script/util.js
"use strict";
exports.__esModule = true;
exports.getPosByAngle = getPosByAngle;
exports.getAngleByPos = getAngleByPos;
exports.exchangeNodePos = exchangeNodePos;
exports.RandomInt = RandomInt;
exports.randomSortByArr = randomSortByArr;
exports.setSprNodeMaxLen = setSprNodeMaxLen;
exports.localPosTolocalPos = localPosTolocalPos;
exports.worldPosToLocalPos = worldPosToLocalPos;
exports.getScaleRateBy2Node = getScaleRateBy2Node;
exports.getDistance = getDistance;
exports.playAudioByUrl = playAudioByUrl;
exports.btnClickAnima = btnClickAnima;
function getPosByAngle(angle, len) {
var radian = angle * Math.PI / 180;
var x = Math.sin(radian) * len;
var y = Math.cos(radian) * len;
return {
x: x,
y: y
};
}
function getAngleByPos(px, py, mx, my) {
var x = Math.abs(px - mx);
var y = Math.abs(py - my);
var z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
var cos = y / z;
var radina = Math.acos(cos); // 用反三角函数求弧度
var angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度
if (mx > px && my > py) {
// 鼠标在第四象限
angle = 180 - angle;
}
if (mx === px && my > py) {
// 鼠标在y轴负方向上
angle = 180;
}
if (mx > px && my === py) {
// 鼠标在x轴正方向上
angle = 90;
}
if (mx < px && my > py) {
// 鼠标在第三象限
angle = 180 + angle;
}
if (mx < px && my === py) {
// 鼠标在x轴负方向
angle = 270;
}
if (mx < px && my < py) {
// 鼠标在第二象限
angle = 360 - angle;
} // console.log('angle: ', angle);
return angle;
}
function exchangeNodePos(baseNode, targetNode) {
return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
}
function RandomInt(a, b) {
if (b === void 0) {
b = 0;
}
var max = Math.max(a, b);
var min = Math.min(a, b);
return Math.floor(Math.random() * (max - min) + min);
}
function randomSortByArr(arr) {
var newArr = [];
var tmpArr = arr.concat();
while (tmpArr.length > 0) {
var randomIndex = Math.floor(tmpArr.length * Math.random());
newArr.push(tmpArr[randomIndex]);
tmpArr.splice(randomIndex, 1);
}
return newArr;
}
function setSprNodeMaxLen(sprNode, maxW, maxH) {
var sx = maxW / sprNode.width;
var sy = maxH / sprNode.height;
var s = Math.min(sx, sy);
sprNode.scale = Math.round(s * 1000) / 1000;
}
function localPosTolocalPos(baseNode, targetNode) {
var worldPos = targetNode.parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y));
var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
return localPos;
}
function worldPosToLocalPos(worldPos, baseNode) {
var localPos = baseNode.parent.convertToNodeSpaceAR(cc.v2(worldPos.x, worldPos.y));
return localPos;
}
function getScaleRateBy2Node(baseNode, targetNode, maxFlag) {
if (maxFlag === void 0) {
maxFlag = true;
}
var worldRect1 = targetNode.getBoundingBoxToWorld();
var worldRect2 = baseNode.getBoundingBoxToWorld();
var sx = worldRect1.width / worldRect2.width;
var sy = worldRect1.height / worldRect2.height;
if (maxFlag) {
return Math.max(sx, sy);
} else {
return Math.min(sx, sy);
}
}
function getDistance(start, end) {
var pos = cc.v2(start.x - end.x, start.y - end.y);
var dis = Math.sqrt(pos.x * pos.x + pos.y * pos.y);
return dis;
}
function playAudioByUrl(audio_url, cb) {
if (cb === void 0) {
cb = null;
}
if (audio_url) {
cc.assetManager.loadRemote(audio_url, function (err, audioClip) {
var audioId = cc.audioEngine.play(audioClip, false, 0.8);
if (cb) {
cc.audioEngine.setFinishCallback(audioId, function () {
cb();
});
}
});
}
}
function btnClickAnima(btn, time, rate) {
if (time === void 0) {
time = 0.15;
}
if (rate === void 0) {
rate = 1.05;
}
btn.tmpScale = btn.scale;
btn.on(cc.Node.EventType.TOUCH_START, function () {
cc.tween(btn).to(time / 2, {
scale: btn.scale * rate
}).start();
});
btn.on(cc.Node.EventType.TOUCH_CANCEL, function () {
cc.tween(btn).to(time / 2, {
scale: btn.tmpScale
}).start();
});
btn.on(cc.Node.EventType.TOUCH_END, function () {
cc.tween(btn).to(time / 2, {
scale: btn.tmpScale
}).start();
});
}
cc._RF.pop();
\ No newline at end of file
"use strict";
cc._RF.push(module, '9b844KF3tJMdKFPoUXrWdpo', 'DefaultData');
// OP13/script/DefaultData.js
"use strict";
exports.__esModule = true;
exports.DefaultData = void 0;
var DefaultData = {
"haveCover": false,
"coverType": "Image",
"coverImage": "",
"coverAudio": "",
"coverText": "",
"coverDragonBone": {
"skeJsonData": {
"url": ""
},
"texJsonData": {
"url": ""
},
"texPngData": {
"url": ""
}
},
"titleAudio": "",
"titleText": "",
"titleTextColor": "A",
"pageList": [{
"pageType": "Image",
"pageAudio": "https://staging-teach.cdn.ireadabc.com/0e67aa701df18cbb5581ffb81ffa7836.mp3",
"pageText": "",
"pageImage": "",
"textColor": "A",
"pageDragonBone": {
"skeJsonData": {
"url": "http://staging-teach.cdn.ireadabc.com/b4fbbfdb7228802154092f714e028c2c.json",
"name": "1_ske.json"
},
"texJsonData": {
"url": "http://staging-teach.cdn.ireadabc.com/0e419cc03b5ebedcf1a5c796a2c39437.json",
"name": "1_tex.json"
},
"texPngData": {
"url": "http://staging-teach.cdn.ireadabc.com/b69d4cccd46630d1d144ae1abfa66bdb.png",
"name": "1_tex.png"
}
}
}, {
"pageType": "Image",
"pageAudio": "https://staging-teach.cdn.ireadabc.com/4c0379bc0f3bd0722874b2e11fb35336.mp3",
"pageText": "",
"pageImage": "",
"textColor": "A",
"pageDragonBone": {
"skeJsonData": {
"url": "https://staging-teach.cdn.ireadabc.com/d4d848c9a32e3296cfa1bacb22753ea9.json",
"name": "OP_SB1_459612_U1L4_22(1)_ske.json"
},
"texJsonData": {
"url": "https://staging-teach.cdn.ireadabc.com/4c06cdcf08b155ecc47f2236ad6e7cc2.json",
"name": "OP_SB1_459612_U1L4_22(1)_tex.json"
},
"texPngData": {
"url": "https://staging-teach.cdn.ireadabc.com/d244e99b4376dc91e069a3f22b965051.png",
"name": "OP_SB1_459612_U1L4_22(1)_tex.png"
}
}
}, {
"pageType": "Image",
"pageAudio": "https://staging-teach.cdn.ireadabc.com/fe226bc303f03ea994cb9a93d1620284.mp3",
"pageText": "",
"pageImage": "",
"textColor": "A",
"pageDragonBone": {
"skeJsonData": {
"url": "https://staging-teach.cdn.ireadabc.com/727efd64e18fe99cdfc78b801c0c93b6.json",
"name": "OP_SB1_459612_U1L4_24(1)_ske.json"
},
"texJsonData": {
"url": "https://staging-teach.cdn.ireadabc.com/6997187f2b4a787a48fee73abb90e95d.json",
"name": "OP_SB1_459612_U1L4_24(1)_tex.json"
},
"texPngData": {
"url": "https://staging-teach.cdn.ireadabc.com/23eaa25a8c7d6a29c775f3ad6adddbf9.png",
"name": "OP_SB1_459612_U1L4_24(1)_tex.png"
}
}
}, {
"pageType": "Image",
"pageAudio": "https://staging-teach.cdn.ireadabc.com/2990d622ec2940841a0741d7b64a3c50.mp3",
"pageText": "",
"pageImage": "",
"textColor": "A",
"pageDragonBone": {
"skeJsonData": {
"url": "https://staging-teach.cdn.ireadabc.com/11afe1cee9c37fcfe26af6496ddfe21a.json",
"name": "OP_SB1_459612_U1L4_26(1)_ske.json"
},
"texJsonData": {
"url": "https://staging-teach.cdn.ireadabc.com/06d1ce99efc8268a582419bde11671b1.json",
"name": "OP_SB1_459612_U1L4_26(1)_tex.json"
},
"texPngData": {
"url": "https://staging-teach.cdn.ireadabc.com/e315f97f50ed6698dee354c6d5290da5.png",
"name": "OP_SB1_459612_U1L4_26(1)_tex.png"
}
}
}]
};
exports.DefaultData = DefaultData;
cc._RF.pop();
\ No newline at end of file
{"version":3,"sources":["assets\\OP13\\script\\DefaultData.js"],"names":["DefaultData"],"mappings":";;;;;;;;AAAO,IAAMA,WAAW,GAAG;AACzB,eAAa,KADY;AAEzB,eAAa,OAFY;AAGzB,gBAAc,EAHW;AAIzB,gBAAc,EAJW;AAKzB,eAAa,EALY;AAMzB,qBAAmB;AACjB,mBAAe;AACb,aAAO;AADM,KADE;AAIjB,mBAAe;AACb,aAAO;AADM,KAJE;AAOjB,kBAAc;AACZ,aAAO;AADK;AAPG,GANM;AAiBzB,gBAAc,EAjBW;AAkBzB,eAAa,EAlBY;AAmBzB,oBAAkB,GAnBO;AAoBzB,cAAY,CACV;AACE,gBAAY,OADd;AAEE,iBAAa,6EAFf;AAGE,gBAAY,EAHd;AAIE,iBAAa,EAJf;AAKE,iBAAa,GALf;AAME,sBAAkB;AAChB,qBAAe;AACb,eAAO,6EADM;AAEb,gBAAQ;AAFK,OADC;AAKhB,qBAAe;AACb,eAAO,6EADM;AAEb,gBAAQ;AAFK,OALC;AAShB,oBAAc;AACZ,eAAO,4EADK;AAEZ,gBAAQ;AAFI;AATE;AANpB,GADU,EAsBV;AACE,gBAAY,OADd;AAEE,iBAAa,6EAFf;AAGE,gBAAY,EAHd;AAIE,iBAAa,EAJf;AAKE,iBAAa,GALf;AAME,sBAAkB;AAChB,qBAAe;AACb,eAAO,8EADM;AAEb,gBAAQ;AAFK,OADC;AAKhB,qBAAe;AACb,eAAO,8EADM;AAEb,gBAAQ;AAFK,OALC;AAShB,oBAAc;AACZ,eAAO,6EADK;AAEZ,gBAAQ;AAFI;AATE;AANpB,GAtBU,EA2CV;AACE,gBAAY,OADd;AAEE,iBAAa,6EAFf;AAGE,gBAAY,EAHd;AAIE,iBAAa,EAJf;AAKE,iBAAa,GALf;AAME,sBAAkB;AAChB,qBAAe;AACb,eAAO,8EADM;AAEb,gBAAQ;AAFK,OADC;AAKhB,qBAAe;AACb,eAAO,8EADM;AAEb,gBAAQ;AAFK,OALC;AAShB,oBAAc;AACZ,eAAO,6EADK;AAEZ,gBAAQ;AAFI;AATE;AANpB,GA3CU,EAgEV;AACE,gBAAY,OADd;AAEE,iBAAa,6EAFf;AAGE,gBAAY,EAHd;AAIE,iBAAa,EAJf;AAKE,iBAAa,GALf;AAME,sBAAkB;AAChB,qBAAe;AACb,eAAO,8EADM;AAEb,gBAAQ;AAFK,OADC;AAKhB,qBAAe;AACb,eAAO,8EADM;AAEb,gBAAQ;AAFK,OALC;AAShB,oBAAc;AACZ,eAAO,6EADK;AAEZ,gBAAQ;AAFI;AATE;AANpB,GAhEU;AApBa,CAApB","sourceRoot":"/","sourcesContent":["export const DefaultData = {\r\n \"haveCover\": false,\r\n \"coverType\": \"Image\",\r\n \"coverImage\": \"\",\r\n \"coverAudio\": \"\",\r\n \"coverText\": \"\",\r\n \"coverDragonBone\": {\r\n \"skeJsonData\": {\r\n \"url\": \"\"\r\n },\r\n \"texJsonData\": {\r\n \"url\": \"\"\r\n },\r\n \"texPngData\": {\r\n \"url\": \"\"\r\n }\r\n },\r\n \"titleAudio\": \"\",\r\n \"titleText\": \"\",\r\n \"titleTextColor\": \"A\",\r\n \"pageList\": [\r\n {\r\n \"pageType\": \"Image\",\r\n \"pageAudio\": \"https://staging-teach.cdn.ireadabc.com/0e67aa701df18cbb5581ffb81ffa7836.mp3\",\r\n \"pageText\": \"\",\r\n \"pageImage\": \"\",\r\n \"textColor\": \"A\",\r\n \"pageDragonBone\": {\r\n \"skeJsonData\": {\r\n \"url\": \"http://staging-teach.cdn.ireadabc.com/b4fbbfdb7228802154092f714e028c2c.json\",\r\n \"name\": \"1_ske.json\"\r\n },\r\n \"texJsonData\": {\r\n \"url\": \"http://staging-teach.cdn.ireadabc.com/0e419cc03b5ebedcf1a5c796a2c39437.json\",\r\n \"name\": \"1_tex.json\"\r\n },\r\n \"texPngData\": {\r\n \"url\": \"http://staging-teach.cdn.ireadabc.com/b69d4cccd46630d1d144ae1abfa66bdb.png\",\r\n \"name\": \"1_tex.png\"\r\n }\r\n }\r\n },\r\n {\r\n \"pageType\": \"Image\",\r\n \"pageAudio\": \"https://staging-teach.cdn.ireadabc.com/4c0379bc0f3bd0722874b2e11fb35336.mp3\",\r\n \"pageText\": \"\",\r\n \"pageImage\": \"\",\r\n \"textColor\": \"A\",\r\n \"pageDragonBone\": {\r\n \"skeJsonData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/d4d848c9a32e3296cfa1bacb22753ea9.json\",\r\n \"name\": \"OP_SB1_459612_U1L4_22(1)_ske.json\"\r\n },\r\n \"texJsonData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/4c06cdcf08b155ecc47f2236ad6e7cc2.json\",\r\n \"name\": \"OP_SB1_459612_U1L4_22(1)_tex.json\"\r\n },\r\n \"texPngData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/d244e99b4376dc91e069a3f22b965051.png\",\r\n \"name\": \"OP_SB1_459612_U1L4_22(1)_tex.png\"\r\n }\r\n }\r\n },\r\n {\r\n \"pageType\": \"Image\",\r\n \"pageAudio\": \"https://staging-teach.cdn.ireadabc.com/fe226bc303f03ea994cb9a93d1620284.mp3\",\r\n \"pageText\": \"\",\r\n \"pageImage\": \"\",\r\n \"textColor\": \"A\",\r\n \"pageDragonBone\": {\r\n \"skeJsonData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/727efd64e18fe99cdfc78b801c0c93b6.json\",\r\n \"name\": \"OP_SB1_459612_U1L4_24(1)_ske.json\"\r\n },\r\n \"texJsonData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/6997187f2b4a787a48fee73abb90e95d.json\",\r\n \"name\": \"OP_SB1_459612_U1L4_24(1)_tex.json\"\r\n },\r\n \"texPngData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/23eaa25a8c7d6a29c775f3ad6adddbf9.png\",\r\n \"name\": \"OP_SB1_459612_U1L4_24(1)_tex.png\"\r\n }\r\n }\r\n },\r\n {\r\n \"pageType\": \"Image\",\r\n \"pageAudio\": \"https://staging-teach.cdn.ireadabc.com/2990d622ec2940841a0741d7b64a3c50.mp3\",\r\n \"pageText\": \"\",\r\n \"pageImage\": \"\",\r\n \"textColor\": \"A\",\r\n \"pageDragonBone\": {\r\n \"skeJsonData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/11afe1cee9c37fcfe26af6496ddfe21a.json\",\r\n \"name\": \"OP_SB1_459612_U1L4_26(1)_ske.json\"\r\n },\r\n \"texJsonData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/06d1ce99efc8268a582419bde11671b1.json\",\r\n \"name\": \"OP_SB1_459612_U1L4_26(1)_tex.json\"\r\n },\r\n \"texPngData\": {\r\n \"url\": \"https://staging-teach.cdn.ireadabc.com/e315f97f50ed6698dee354c6d5290da5.png\",\r\n \"name\": \"OP_SB1_459612_U1L4_26(1)_tex.png\"\r\n }\r\n }\r\n }\r\n ]\r\n}"]}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.Texture2D",
"content": "0,9729,9729,33071,33071,0,0,1"
}
\ No newline at end of file
{
"__type__": "cc.SpriteFrame",
"content": {
"name": "combined-shape-copy",
"texture": "165c8dde-15cb-4eaa-b101-dbb5dabca87d",
"atlas": "",
"rect": [
0,
0,
22,
28
],
"offset": [
0,
0
],
"originalSize": [
22,
28
],
"capInsets": [
0,
0,
0,
0
]
}
}
\ No newline at end of file
"use strict";
cc._RF.push(module, 'ad4bbohXptKULlxZpEyZSMZ', 'BaseUI');
// OP13/script/BaseUI.js
"use strict";
cc.Class({
"extends": cc.Component,
onLoad: function onLoad() {
this.nodeDict = {};
this.linkWidget(this.node);
},
// 遍历节点树,获取重要节点
// 节点名字以$开头的节点为重要节点,放进nodeDict中,可以直接拿到,不用拖拽绑定
// $btn为按钮类型,放进nodeDict,并且绑定按钮点击事件
// $ui为ui节点,放进nodeDict,并且上面绑定了BaseUI脚本,所以不继续遍历该节点的子节点
// $btnUI为按钮类型ui节点,放进nodeDict,并且上面绑定了BaseUI脚本,所以不继续遍历该节点的子节点,并且绑定按钮点击事件
linkWidget: function linkWidget(node) {
var children = node.children;
for (var i = 0; i < children.length; i++) {
var nodeName = children[i].name;
if (nodeName.substring(0, 1) !== "$") {
this.linkWidget(children[i]);
continue;
}
var realName = nodeName.substring(1);
if (this.nodeDict[realName]) {
cc.error("节点名字重复!" + realName);
this.linkWidget(children[i]);
continue;
}
var isUI = false;
this.nodeDict[realName] = children[i];
if (nodeName.substring(1, 6) === "btnUI") {
children[i].on('click', this.buttonListener, this);
isUI = true;
} else if (nodeName.substring(1, 4) === "btn") {
children[i].on('click', this.buttonListener, this);
isUI = false;
} else if (nodeName.substring(1, 3) === "ui") {
isUI = true;
}
children[i].name = realName;
this.nodeDict[realName] = children[i];
if (!isUI) {
this.linkWidget(children[i]);
}
}
},
getNodeByName: function getNodeByName(name) {
return this.nodeDict[name];
},
buttonListener: function buttonListener(button) {}
});
cc._RF.pop();
\ No newline at end of file
{"version":3,"sources":["assets\\OP13\\script\\BaseUI.js"],"names":["cc","Class","Component","onLoad","nodeDict","linkWidget","node","children","i","length","nodeName","name","substring","realName","error","isUI","on","buttonListener","getNodeByName","button"],"mappings":";;;;;;AAAAA,EAAE,CAACC,KAAH,CAAS;AACL,aAASD,EAAE,CAACE,SADP;AAGLC,EAAAA,MAHK,oBAGI;AACL,SAAKC,QAAL,GAAgB,EAAhB;AACA,SAAKC,UAAL,CAAgB,KAAKC,IAArB;AACH,GANI;AAQL;AACA;AACA;AACA;AACA;AACAD,EAAAA,UAbK,sBAaMC,IAbN,EAaY;AACb,QAAIC,QAAQ,GAAGD,IAAI,CAACC,QAApB;;AACA,SAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGD,QAAQ,CAACE,MAA7B,EAAqCD,CAAC,EAAtC,EAA0C;AACtC,UAAIE,QAAQ,GAAGH,QAAQ,CAACC,CAAD,CAAR,CAAYG,IAA3B;;AACA,UAAID,QAAQ,CAACE,SAAT,CAAmB,CAAnB,EAAsB,CAAtB,MAA6B,GAAjC,EAAsC;AAClC,aAAKP,UAAL,CAAgBE,QAAQ,CAACC,CAAD,CAAxB;AACA;AACH;;AAED,UAAIK,QAAQ,GAAGH,QAAQ,CAACE,SAAT,CAAmB,CAAnB,CAAf;;AACA,UAAI,KAAKR,QAAL,CAAcS,QAAd,CAAJ,EAA6B;AACzBb,QAAAA,EAAE,CAACc,KAAH,CAAS,YAAYD,QAArB;AACA,aAAKR,UAAL,CAAgBE,QAAQ,CAACC,CAAD,CAAxB;AACA;AACH;;AACD,UAAIO,IAAI,GAAG,KAAX;AACA,WAAKX,QAAL,CAAcS,QAAd,IAA0BN,QAAQ,CAACC,CAAD,CAAlC;;AACA,UAAIE,QAAQ,CAACE,SAAT,CAAmB,CAAnB,EAAsB,CAAtB,MAA6B,OAAjC,EAA0C;AACtCL,QAAAA,QAAQ,CAACC,CAAD,CAAR,CAAYQ,EAAZ,CAAe,OAAf,EAAwB,KAAKC,cAA7B,EAA6C,IAA7C;AACAF,QAAAA,IAAI,GAAG,IAAP;AACH,OAHD,MAGO,IAAIL,QAAQ,CAACE,SAAT,CAAmB,CAAnB,EAAsB,CAAtB,MAA6B,KAAjC,EAAwC;AAC3CL,QAAAA,QAAQ,CAACC,CAAD,CAAR,CAAYQ,EAAZ,CAAe,OAAf,EAAwB,KAAKC,cAA7B,EAA6C,IAA7C;AACAF,QAAAA,IAAI,GAAG,KAAP;AACH,OAHM,MAGA,IAAIL,QAAQ,CAACE,SAAT,CAAmB,CAAnB,EAAsB,CAAtB,MAA6B,IAAjC,EAAuC;AAC1CG,QAAAA,IAAI,GAAG,IAAP;AACH;;AACDR,MAAAA,QAAQ,CAACC,CAAD,CAAR,CAAYG,IAAZ,GAAmBE,QAAnB;AACA,WAAKT,QAAL,CAAcS,QAAd,IAA0BN,QAAQ,CAACC,CAAD,CAAlC;;AAEA,UAAI,CAACO,IAAL,EAAW;AACP,aAAKV,UAAL,CAAgBE,QAAQ,CAACC,CAAD,CAAxB;AACH;AACJ;AACJ,GA9CI;AAgDLU,EAAAA,aAhDK,yBAgDSP,IAhDT,EAgDe;AAChB,WAAO,KAAKP,QAAL,CAAcO,IAAd,CAAP;AACH,GAlDI;AAoDLM,EAAAA,cApDK,0BAoDUE,MApDV,EAoDkB,CAAG;AApDrB,CAAT","sourceRoot":"/","sourcesContent":["cc.Class({\r\n extends: cc.Component,\r\n \r\n onLoad() {\r\n this.nodeDict = {};\r\n this.linkWidget(this.node);\r\n },\r\n\r\n // 遍历节点树,获取重要节点\r\n // 节点名字以$开头的节点为重要节点,放进nodeDict中,可以直接拿到,不用拖拽绑定\r\n // $btn为按钮类型,放进nodeDict,并且绑定按钮点击事件\r\n // $ui为ui节点,放进nodeDict,并且上面绑定了BaseUI脚本,所以不继续遍历该节点的子节点\r\n // $btnUI为按钮类型ui节点,放进nodeDict,并且上面绑定了BaseUI脚本,所以不继续遍历该节点的子节点,并且绑定按钮点击事件\r\n linkWidget(node) {\r\n let children = node.children;\r\n for (let i = 0; i < children.length; i++) {\r\n let nodeName = children[i].name;\r\n if (nodeName.substring(0, 1) !== \"$\") {\r\n this.linkWidget(children[i]);\r\n continue;\r\n }\r\n\r\n let realName = nodeName.substring(1);\r\n if (this.nodeDict[realName]) {\r\n cc.error(\"节点名字重复!\" + realName);\r\n this.linkWidget(children[i]);\r\n continue;\r\n }\r\n let isUI = false;\r\n this.nodeDict[realName] = children[i];\r\n if (nodeName.substring(1, 6) === \"btnUI\") {\r\n children[i].on('click', this.buttonListener, this);\r\n isUI = true;\r\n } else if (nodeName.substring(1, 4) === \"btn\") {\r\n children[i].on('click', this.buttonListener, this);\r\n isUI = false;\r\n } else if (nodeName.substring(1, 3) === \"ui\") {\r\n isUI = true;\r\n }\r\n children[i].name = realName;\r\n this.nodeDict[realName] = children[i];\r\n\r\n if (!isUI) {\r\n this.linkWidget(children[i]);\r\n }\r\n }\r\n },\r\n\r\n getNodeByName(name) {\r\n return this.nodeDict[name];\r\n },\r\n\r\n buttonListener(button) { }\r\n});"]}
\ No newline at end of file
{
"__type__": "cc.SpriteAtlas",
"_name": "AutoAtlas"
}
\ No newline at end of file
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
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