Commit 458d3c90 authored by LMZ's avatar LMZ

feat: 背景添加

parent ff1772f6
No preview for this file type
{
"ver": "1.1.2",
"uuid": "10154cf9-b9c1-41f6-a23c-d49e16c1ee57",
"uuid": "c35bb2f6-f24a-4850-ae44-643f2fdc7541",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "1.1.2",
"uuid": "75aa2c1b-1b9f-420f-a059-a50a0857fdf6",
"uuid": "cb9fa4ea-66ca-45af-ad31-e445c7b0ef32",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "2.0.1",
"uuid": "0af7f03b-039d-4ab2-b9a0-f4bd44320859",
"uuid": "e841eaf5-0736-459e-9465-e4a1ab4e2efe",
"downloadMode": 0,
"duration": 1.776327,
"duration": 0.862063,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "4bb574ab-d8a9-4a02-8081-cd22c8b5fb23",
"uuid": "4cf8a92e-9fba-4cc5-aeb1-078c1743bd8b",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "1.1.2",
"uuid": "af6afa75-6b41-4c9e-9238-bd69b56d3763",
"uuid": "67b982ae-9a5f-4e5f-a7ff-96589d81a7ce",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "2.0.1",
"uuid": "58f5e868-6053-4ff9-a177-146b47bbf6ba",
"uuid": "eae5e895-cf63-4a96-9cca-1783eefc9a68",
"downloadMode": 0,
"duration": 0.264,
"duration": 0.536,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "b5acb246-88ad-491b-acf4-3ad84f0bc84b",
"uuid": "bc79a512-ec6f-4e95-ab97-89cb0add47f9",
"downloadMode": 0,
"duration": 4.04898,
"duration": 0.704,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "edc9bb14-e27c-4fd3-a87d-d4ea7a01f3b8",
"uuid": "e77bc67e-b3f4-49ff-a974-bbf80505bc3d",
"downloadMode": 0,
"duration": 0.130612,
"duration": 0.704,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "ae679fe2-69b2-45fd-a5f9-1c51f38cf077",
"uuid": "6d3b37ce-3220-4048-a657-a779f1b82f8a",
"downloadMode": 0,
"duration": 2.220408,
"duration": 0.656,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "56531e58-a288-48ff-8782-40ae9c552ed1",
"downloadMode": 0,
"duration": 0.632,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "1544cfd5-3d8e-4bb1-b229-375a10d550a5",
"downloadMode": 0,
"duration": 0.512,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "d153a505-42b7-466c-9368-f94b4bcbd5c3",
"downloadMode": 0,
"duration": 0.752,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "ed2351b9-7630-460a-aedb-41790f7e4dd6",
"downloadMode": 0,
"duration": 0.632,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "6926d70b-071d-4036-bf2e-8ad525142623",
"downloadMode": 0,
"duration": 0.632,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "fbff6c9e-542a-4cb9-a477-43a4d3c65bf9",
"downloadMode": 0,
"duration": 0.752,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "79dedc0f-cfa3-45cf-ac8c-5633da4d4098",
"downloadMode": 0,
"duration": 0.656,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "36f7c8e1-0032-428e-af33-cbdc2cc40c9f",
"downloadMode": 0,
"duration": 0.536,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "86556d71-c537-4c6b-a736-439571e1beea",
"downloadMode": 0,
"duration": 0.584,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "3529c24d-829a-43fa-997a-fafda4f471e7",
"downloadMode": 0,
"duration": 0.584,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "c19c0ca4-60b4-4108-8317-ad4fdceaf1da",
"downloadMode": 0,
"duration": 0.512,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "eba8fedc-66c3-4a08-8fb8-d19f82205406",
"downloadMode": 0,
"duration": 0.632,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "3482a432-5067-44a5-a7f5-29a91a70ad32",
"downloadMode": 0,
"duration": 0.704,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "bd8e47a0-00f0-40e9-8cff-38bcbe08ee06",
"downloadMode": 0,
"duration": 0.68,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "001bfccd-7e23-4ecf-97d1-46fb87de60cb",
"downloadMode": 0,
"duration": 0.536,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "483ee9ac-a2f9-465b-a577-c5ec7971f4f8",
"downloadMode": 0,
"duration": 0.704,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "2dc06f28-e143-4a04-8dff-ce4f4b28c6c4",
"downloadMode": 0,
"duration": 0.824,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "3625d84b-4098-48a1-94dd-a595d0f1ff56",
"downloadMode": 0,
"duration": 0.776,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "75522d94-3fc6-4d70-89da-b5f49cb45408",
"downloadMode": 0,
"duration": 0.752,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "6eb1b954-340e-4d53-ae08-2e1694e1ebfb",
"downloadMode": 0,
"duration": 0.704,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "7aa526c4-3d16-4f03-8c46-1422bcbc2888",
"downloadMode": 0,
"duration": 0.752,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "cb397d24-1205-4fc0-8af8-e9903400b6c6",
"downloadMode": 0,
"duration": 0.776,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "78b1dcf0-f44d-446e-99b1-90885e97f081",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "5eadf706-d753-4290-8bc6-55db46c4c6f5",
"downloadMode": 0,
"duration": 0.375833,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "b130f378-a054-459d-b485-f6e32bfd8fe4",
"downloadMode": 0,
"duration": 0.532333,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "a91b09bb-59ce-4901-b79c-8cfbc9466b5a",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "86809fd1-6c9a-4914-ba89-11036023d192",
"downloadMode": 0,
"duration": 0.323667,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "5117482b-fe40-4dde-ae6d-fa2ef360aafc",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "c6d44872-05aa-401b-915d-8a680cf5eeca",
"downloadMode": 0,
"duration": 0.688833,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "83873ea5-707c-4534-8185-3aa27d3d2355",
"downloadMode": 0,
"duration": 0.297583,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "44e82998-f682-43b0-8aeb-8c34cc782967",
"downloadMode": 0,
"duration": 0.34975,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "3aee5a7a-b741-42c8-bfee-9ebb4c779d24",
"downloadMode": 0,
"duration": 0.323667,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "b5f3f87a-31a8-46a7-9ba7-43770e64a2cb",
"downloadMode": 0,
"duration": 0.454083,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "08654302-9616-4439-83da-3c340c9ed849",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "647cc6d9-9932-4490-8833-f55ef9fcd337",
"downloadMode": 0,
"duration": 0.50625,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "38aa2e04-7fae-42eb-9bfe-c227e283c20f",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "4b799099-4323-481b-83c1-896807b0f40c",
"downloadMode": 0,
"duration": 0.5845,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "cf907f80-bc93-4d51-9a13-c8a4477d5f00",
"downloadMode": 0,
"duration": 0.2715,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "54c599c1-e157-45c2-b1a8-0ef471e6d162",
"downloadMode": 0,
"duration": 0.2715,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "bc04f95c-7e7c-4440-9f03-e0f6dce3bde7",
"downloadMode": 0,
"duration": 0.34975,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "799b0ce1-fc1b-4b28-a5f0-8f9564f8986c",
"downloadMode": 0,
"duration": 0.5845,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "ad80f431-e330-4aae-972f-7926f47c5c3b",
"downloadMode": 0,
"duration": 0.688833,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "0975276a-6fab-44e9-a0c4-1f1fc6a8a0e3",
"downloadMode": 0,
"duration": 0.167167,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "29a8f147-ecae-4c4d-9a30-49599f722bd4",
"downloadMode": 0,
"duration": 0.375833,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "c7ea11a5-102e-4dcc-9b9f-40ebbd07ec0f",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "4a22b1ed-f48e-4d56-94db-08665a18131b",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "de134c1a-f214-4809-b7c0-9a7b1e729c67",
"downloadMode": 0,
"duration": 0.401917,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "4ec4261d-ee09-4989-bd21-74eb39048871",
"downloadMode": 0,
"duration": 0.34975,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "767ec4f7-5e48-4a79-977e-2f5626d07e6c",
"downloadMode": 0,
"duration": 0.428,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "5a3b64be-7289-4ebd-b1d7-475a5008f54a",
"downloadMode": 0,
"duration": 0.156735,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "0853721c-3f55-4eb2-873d-e3081cfadd4b",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "20185448-a1ca-4de2-8b37-7bf6cdfccbae",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.0",
"uuid": "f4ebd988-078f-4f85-b843-133e12c5774e",
"uuid": "44365e5e-81c4-445b-afd8-8f421f7625f2",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.0",
"uuid": "5fa1518c-b27d-446b-9748-dfd0ab92ff2b",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "f9ff87df-13c3-4529-838a-93336988cede",
"uuid": "e8bd16b0-3804-45a9-a8ca-f52c02224f55",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
{
"ver": "1.2.9",
"uuid": "5e0a03aa-9b9e-4076-b508-7dbf209bb115",
"ver": "1.2.7",
"uuid": "57ea7c61-9b8b-498a-b024-c98ee9124beb",
"asyncLoadAssets": false,
"autoReleaseAssets": true,
"subMetas": {}
......
import { defaultData } from '../script/defaultData';
import { asyncDelay, jelly } from '../script/utils';
import { letterData, letterWidthData } from '../script/letterPointData';
import BgManager from "../script/BgManager"
cc.Class({
extends: cc.Component,
properties: {
switchAudio: { default: null, type: cc.AudioClip },
titleAudio: { default: null, type: cc.AudioClip },
bigA: { default: null, type: cc.AudioClip },
bigB: { default: null, type: cc.AudioClip },
bigC: { default: null, type: cc.AudioClip },
bigD: { default: null, type: cc.AudioClip },
bigE: { default: null, type: cc.AudioClip },
bigF: { default: null, type: cc.AudioClip },
bigG: { default: null, type: cc.AudioClip },
bigH: { default: null, type: cc.AudioClip },
bigI: { default: null, type: cc.AudioClip },
bigJ: { default: null, type: cc.AudioClip },
bigK: { default: null, type: cc.AudioClip },
bigL: { default: null, type: cc.AudioClip },
bigM: { default: null, type: cc.AudioClip },
bigN: { default: null, type: cc.AudioClip },
bigO: { default: null, type: cc.AudioClip },
bigP: { default: null, type: cc.AudioClip },
bigQ: { default: null, type: cc.AudioClip },
bigR: { default: null, type: cc.AudioClip },
bigS: { default: null, type: cc.AudioClip },
bigT: { default: null, type: cc.AudioClip },
bigU: { default: null, type: cc.AudioClip },
bigV: { default: null, type: cc.AudioClip },
bigW: { default: null, type: cc.AudioClip },
bigX: { default: null, type: cc.AudioClip },
bigY: { default: null, type: cc.AudioClip },
bigZ: { default: null, type: cc.AudioClip },
smallA: { default: null, type: cc.AudioClip },
smallB: { default: null, type: cc.AudioClip },
smallC: { default: null, type: cc.AudioClip },
smallD: { default: null, type: cc.AudioClip },
smallE: { default: null, type: cc.AudioClip },
smallF: { default: null, type: cc.AudioClip },
smallG: { default: null, type: cc.AudioClip },
smallH: { default: null, type: cc.AudioClip },
smallI: { default: null, type: cc.AudioClip },
smallJ: { default: null, type: cc.AudioClip },
smallK: { default: null, type: cc.AudioClip },
smallL: { default: null, type: cc.AudioClip },
smallM: { default: null, type: cc.AudioClip },
smallN: { default: null, type: cc.AudioClip },
smallO: { default: null, type: cc.AudioClip },
smallP: { default: null, type: cc.AudioClip },
smallQ: { default: null, type: cc.AudioClip },
smallR: { default: null, type: cc.AudioClip },
smallS: { default: null, type: cc.AudioClip },
smallT: { default: null, type: cc.AudioClip },
smallU: { default: null, type: cc.AudioClip },
smallV: { default: null, type: cc.AudioClip },
smallW: { default: null, type: cc.AudioClip },
smallX: { default: null, type: cc.AudioClip },
smallY: { default: null, type: cc.AudioClip },
smallZ: { default: null, type: cc.AudioClip },
},
// 生命周期 onLoad
onLoad() {
this.initSceneData();
this.initSize();
},
_designSize: null,
_frameSize: null,
_mapScaleMin: null,
_mapScaleMax: null,
_cocosScale: null,
canvas: null,
initSize() {
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
let screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height
let design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height
let f = screen_size >= design_size
cc.Canvas.instance.fitHeight = f
cc.Canvas.instance.fitWidth = !f
const frameSize = cc.view.getFrameSize();
this._frameSize = frameSize;
this._designSize = cc.view.getDesignResolutionSize();
let sx = cc.winSize.width / frameSize.width;
let sy = cc.winSize.height / frameSize.height;
this._cocosScale = Math.min(sx, sy);
sx = frameSize.width / this._designSize.width;
sy = frameSize.height / this._designSize.height;
this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
this.canvas = cc.find('Canvas');
// cc.log('cc.Canvas: ', cc.Canvas);
},
_imageResList: null,
_audioResList: null,
_animaResList: null,
initSceneData() {
this._imageResList = [];
this._audioResList = [];
this._animaResList = [];
},
// 生命周期 start
start() {
let getData = this.getData.bind(this);
if (window && window.courseware) {
getData = window.courseware.getData;
}
getData((data) => {
console.log('data:', data);
this.data = data || this.getDefaultData();
this.data = JSON.parse(JSON.stringify(this.data))
this.preloadItem()
});
},
getData(cb) {
cb(this.getDefaultData());
},
getDefaultData() {
console.log('defaultData = ' + defaultData);
return defaultData;
},
preloadItem() {
this.addPreloadImage();
this.addPreloadAudio();
this.addPreloadAnima();
this.preload();
},
addPreloadImage() {
// this._imageResList.push({ url: this.data.pic_url });
},
addPreloadAudio() {
// this._audioResList.push({ url: this.data.audio_url });
},
addPreloadAnima() {
},
preload() {
const preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);
cc.assetManager.loadAny(preloadArr, null, null, (err, data) => {
this.loadEnd();
if (window && window["air"]) {
window["air"].hideAirClassLoading();
}
cc.debug.setDisplayStats(false);
});
},
loadEnd() {
this.initData();
this.initAudio();
this.initView();
this.initListener();
console.log('version: ET_07');
// this.showLetterAnimation();
this.startEditMode();
},
letterPosList: null,
initData() {
// this._writingIdx = 0;
// this.letterPosList = {};
// for (const key in letterData) {
// if (Object.hasOwnProperty.call(letterData, key)) {
// this.letterPosList[key] = letterData[key].map(pen => {
// return pen.map(pos => cc.v2(pos.x, pos.y));
// });
// }
// }
},
initAudio() {
},
debugMode: false,
letter: null,
initView() {
this.initBg();
// this.debugMode = this.data.debugMode;
// this.debugMode = true;
// this.setLetter(this.data.letter);
},
bgManager: null,
initBg() {
this.bgManager = new BgManager(this.canvas.width, this.canvas.height, this._mapScaleMin, this._mapScaleMax);
const bg = this.bgManager.getNext();
this.canvas.addChild(bg);
},
setLetter(letter) {
this.letter = letter;
this.updateLetterBtnLabel();
this.addDrawLetter(this.letter);
cc.find('Canvas').on('size-changed', () => {
this.onSizeChanged();
});
this.onSizeChanged();
},
onSizeChanged() {
this.node.getComponent(cc.Widget).updateAlignment();
const currentSize = { width: this.node.width, height: this.node.height };
console.log('currentSize = ' + JSON.stringify(currentSize));
const frameSize = cc.view.getFrameSize();
console.log('frameSize = ' + JSON.stringify(frameSize));
const designSize = cc.view.getDesignResolutionSize();
console.log('designSize = ' + JSON.stringify(designSize));
const letterBg = cc.find('Canvas/bg/Img_letter_bg');
const scale = (designSize.width / designSize.height) / (frameSize.width / frameSize.height);
letterBg.scale = Math.min(scale, 1);
},
updateLetterBtnLabel() {
const label1 = cc.find('Canvas/bg/BtnSmallLetter/Img_selected/label');
const label2 = cc.find('Canvas/bg/BtnSmallLetter/Img_normal/label');
const label3 = cc.find('Canvas/bg/BtnBigLetter/Img_selected/label');
const label4 = cc.find('Canvas/bg/BtnBigLetter/Img_normal/label');
label1.getComponent(cc.Label).string = this.letter.toLowerCase();
label2.getComponent(cc.Label).string = this.letter.toLowerCase();
label3.getComponent(cc.Label).string = this.letter.toUpperCase();
label4.getComponent(cc.Label).string = this.letter.toUpperCase();
},
interpolateLine(lineList, maxLength) {
let newposList = [];
for (const line of lineList) {
const distance = this.getDistance(line.startPos, line.endPos);
if (distance > maxLength) {
const middlePoint = this.getMiddlePoint(line.startPos, line.endPos);
newposList.push({ type: 'Line', startPos: line.startPos, endPos: middlePoint });
newposList.push({ type: 'Line', startPos: middlePoint, endPos: line.endPos });
} else {
newposList.push(line);
}
}
if (newposList.length > lineList.length) {
newposList = this.interpolateLine(newposList, maxLength);
}
return newposList;
},
interpolatePos(posList, maxLength) {
let newposList = [];
if (posList.length <= 1) {
return posList;
}
for (let i = 0; i < posList.length - 1; i++) {
const pos = posList[i];
const nextPos = posList[i + 1];
const distance = this.getDistance(pos, nextPos);
newposList.push(pos);
if (distance > maxLength) {
const middlePoint = this.getMiddlePoint(pos, nextPos);
newposList.push(middlePoint);
}
}
newposList.push(posList[posList.length - 1]);
if (newposList.length > posList.length) {
newposList = this.interpolatePos(newposList, maxLength);
}
return newposList;
},
getMiddlePoint(pos1, pos2) {
return cc.v2((pos1.x + pos2.x) / 2, (pos1.y + pos2.y) / 2);
},
getDistance(pos1, pos2) {
return pos1.sub(pos2).mag();
},
drawALineLast(drawNode, fromPos, toPos, color, drawIdx) {
if (drawIdx == this._writingIdx) {
this.drawALine(drawNode, fromPos, toPos, color);
}
},
drawALine(drawNode, fromPos, toPos, color) {
const graph = drawNode.getComponent(cc.Graphics);
if (color) {
graph.strokeColor = color;
}
if (letterWidthData[this.letter]) {
graph.lineWidth = letterWidthData[this.letter];
} else {
graph.lineWidth = 60;
}
graph.moveTo(fromPos.x, fromPos.y);
graph.lineTo(toPos.x, toPos.y);
graph.stroke();
},
drawBigCircle(drawNode, centerPos, color) {
const graph = drawNode.getComponent(cc.Graphics);
graph.lineWidth = 5;
graph.strokeColor = color;
graph.arc(centerPos.x, centerPos.y, 6, 0, Math.PI * 2, true);
graph.stroke();
graph.fillColor = cc.color(255, 255, 255);
graph.arc(centerPos.x, centerPos.y, 4, 0, Math.PI * 2, true);
graph.fill();
},
drawSmallDot(drawNode, centerPos, color) {
const graph = drawNode.getComponent(cc.Graphics);
graph.fillColor = color;
graph.arc(centerPos.x, centerPos.y, 3, 0, Math.PI * 2, true);
graph.fill();
},
addDrawLetter(letter) {
const letterBaseNode = cc.find('Canvas/bg/Img_letter_bg');
letterBaseNode.removeAllChildren();
const letterBg = cc.instantiate(cc.find(`Img_letter_bg`));
letterBg.x = 0;
letterBg.y = 0;
letterBg.parent = letterBaseNode;
letterBg.opacity = 255;
letterBg.name = `Img_letter_bg_${letter}`;
letterBg.addComponent(cc.Button);
letterBg.on('click', () => {
this.showLetterAnimation();
});
let letterName = '';
if (letter == letter.toLowerCase()) {
letterName = `small_${letter}`;
} else {
letterName = `big_${letter.toLowerCase()}`;
}
const letterNode = cc.find(`letters/Img_letter_${letterName}`);
const sf = letterNode.getComponent(cc.Sprite).spriteFrame;
const mask = cc.find('LetterMask', letterBg);
const maskComponent = mask.getComponent(cc.Mask);
maskComponent.spriteFrame = sf;
const bg = cc.find('LetterMask/bg', letterBg);
bg.active = true;
bg.opacity = 255;
return letterBg;
},
getDrawNodeList() {
return [];
},
initListener() {
console.log('initListener');
const title = cc.find('Canvas/bg/title');
title.addComponent(cc.Button);
title.on('click', () => {
cc.audioEngine.play(this.titleAudio, false, 0.8);
});
const BtnBigLetter = cc.find('Canvas/bg/BtnBigLetter');
const BtnSmallLetter = cc.find('Canvas/bg/BtnSmallLetter');
// const bgBtn = cc.find('Canvas/bg/Img_letter_bg');
// console.log('bgBtn = ' + bgBtn);
// bgBtn.on('click', () => {
// console.log('汪汪汪');
// this.showLetterAnimation();
// });
BtnBigLetter.on('click', () => {
BtnBigLetter.getChildByName('Img_normal').active = false;
BtnSmallLetter.getChildByName('Img_normal').active = true;
BtnBigLetter.getChildByName('Img_selected').active = true;
BtnSmallLetter.getChildByName('Img_selected').active = false;
jelly(BtnBigLetter);
cc.audioEngine.play(this.switchAudio, false, 0.8);
this.setLetter(this.letter.toUpperCase());
this._writingIdx++;
this.startEditMode();
});
BtnSmallLetter.on('click', () => {
BtnBigLetter.getChildByName('Img_normal').active = true;
BtnSmallLetter.getChildByName('Img_normal').active = false;
BtnBigLetter.getChildByName('Img_selected').active = false;
BtnSmallLetter.getChildByName('Img_selected').active = true;
jelly(BtnSmallLetter);
cc.audioEngine.play(this.switchAudio, false, 0.8);
this.setLetter(this.letter.toLowerCase());
this._writingIdx++;
this.startEditMode();
});
const btnBack = cc.find('Canvas/EditModeNode/BtnBack');
btnBack.on('click', () => {
const posList = this.letterPosList[this.letter];
const lastPen = posList[posList.length - 1];
if (lastPen && lastPen.length > 0) {
lastPen.pop();
} else {
if (posList.length > 0) {
posList.pop();
}
}
this.updateEditMode();
});
const btnNext = cc.find('Canvas/EditModeNode/BtnNext');
btnNext.on('click', () => {
const posList = this.letterPosList[this.letter];
posList.push([]);
this.updateEditMode();
});
const btnShow = cc.find('Canvas/EditModeNode/BtnShow');
btnShow.on('click', () => {
this.showLetterAnimation();
});
const btnSave = cc.find('Canvas/EditModeNode/BtnSave');
btnSave.on('click', () => {
const posList = this.letterPosList[this.letter];
console.log(JSON.stringify(posList));
});
},
_writingIdx: 0,
async showLetterAnimation() {
this._writingIdx++;
const writingIdx = this._writingIdx;
console.log('set writingIdx = ' + writingIdx);
cc.find(`Canvas/bg/Img_letter_bg/Img_letter_bg_${this.letter}/LetterMask/bg`).active = false;
const drawNode = cc.find(`Canvas/bg/Img_letter_bg/Img_letter_bg_${this.letter}/LetterMask/DrawNode`);
const graph = drawNode.getComponent(cc.Graphics);
graph.clear();
const posList = this.letterPosList[this.letter];
const lineList = this.getLineList(posList);
for (const pen of lineList) {
for (const line of pen) {
this.drawALineLast(drawNode, line.startPos, line.endPos, cc.color(181, 39, 48), writingIdx);
await asyncDelay(0.02);
}
await asyncDelay(0.1);
}
console.log('writingIdx = ' + writingIdx);
console.log('this._writingIdx = ' + this._writingIdx);
if (writingIdx == this._writingIdx) {
const audioClip = this[`small${this.letter.toUpperCase()}`];
cc.audioEngine.play(audioClip, false, 0.8);
// if (this.letter == this.letter.toUpperCase()) {
// const audioClip = this[`big${this.letter.toUpperCase()}`];
// cc.audioEngine.play(audioClip, false, 0.8);
// } else {
// const audioClip = this[`small${this.letter.toUpperCase()}`];
// cc.audioEngine.play(audioClip, false, 0.8);
// }
}
},
editMode: false,
startEditMode() {
if (!this.debugMode) {
return;
}
cc.find('Canvas/EditModeNode').active = true;
this.editMode = true;
cc.find(`Canvas/bg/Img_letter_bg/Img_letter_bg_${this.letter}/LetterMask/bg`).active = true;
const drawNode = cc.find(`Canvas/bg/Img_letter_bg/Img_letter_bg_${this.letter}/LetterMask/DrawNode`);
drawNode.addComponent(cc.Button);
drawNode.on('touchstart', (event) => {
const touchLocation = event.getLocation();
const pos = drawNode.convertToNodeSpaceAR(touchLocation);
const posList = this.letterPosList[this.letter];
if (posList.length == 0) {
posList.push([]);
}
posList[posList.length - 1].push(pos);
this.updateEditMode();
});
drawNode.on('touchmove', (event) => {
const touchLocation = event.getLocation();
const pos = drawNode.convertToNodeSpaceAR(touchLocation);
const posList = this.letterPosList[this.letter];
const lastPen = posList[posList.length - 1];
lastPen[lastPen.length - 1] = pos;
this.updateEditMode();
});
this.updateEditMode();
},
getLineList(posList) {
const lineList = [];
for (const pen of posList) {
const newPen = this.interpolatePos(pen, 10);
const newLine = [];
newPen.forEach((pos, idx) => {
if (idx < newPen.length - 1) {
newLine.push({
startPos: pos,
endPos: newPen[idx + 1]
});
}
});
if (pen.length == 1) {
newLine.push({
startPos: pen[0],
endPos: cc.v2(pen[0].x, pen[0].y + 0.001)
});
}
lineList.push(newLine);
}
return lineList;
},
updateEditMode() {
const drawNode = cc.find(`Canvas/bg/Img_letter_bg/Img_letter_bg_${this.letter}/LetterMask/DrawNode`);
const graph = drawNode.getComponent(cc.Graphics)
graph.clear();
const posList = this.letterPosList[this.letter];
const lineList = this.getLineList(posList);
for (const pen of lineList) {
for (const line of pen) {
this.drawALine(drawNode, line.startPos, line.endPos, cc.color(0, 0, 255));
}
}
posList.forEach((pen, i) => {
const newPen = this.interpolatePos(pen, 10);
for (const pos of newPen) {
let color = cc.color(50, 50, 50);
if (i == posList.length - 1) {
color = cc.color(255, 0, 0);
}
const idx = pen.findIndex(penPos => penPos.x == pos.x && penPos.y == pos.y);
if (idx == -1) {
this.drawSmallDot(drawNode, pos, color);
} else {
this.drawBigCircle(drawNode, pos, color);
}
}
});
}
});
{
"ver": "1.0.8",
"uuid": "40eb8e96-d0cf-4860-9228-b8975b9e2db5",
"uuid": "5d4a3e2d-ced4-4042-b52c-46a8773714b8",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
......
{
"ver": "1.1.2",
"uuid": "0bdf31a9-a3f4-41ec-aa7c-f93ebd2f6505",
"uuid": "b0c008bc-cf92-463b-8360-0984e13c2e4d",
"isBundle": false,
"bundleName": "",
"priority": 1,
......
import {getSprNode} from "./util"
cc.Class({
properties: {
bgArr: {
default: []
},
_bgWidth: 0,
_bgHeight: 0,
_mapScaleMin: 1,
_mapScaleMax: 1,
},
ctor(width, height, mapScaleMin, mapScaleMax) {
this._bgWidth = width;
this._bgHeight = height;
this._mapScaleMin = mapScaleMin;
this._mapScaleMax = mapScaleMax;
this.initAllBg();
},
initAllBg() {
for( let i=0; i<5; i++) {
const bg = this.initOneBg(i+1);
this.bgArr.push(bg);
}
},
initOneBg(id) {
const bg = getSprNode("bg/"+id+"/bg_"+id);
bg.scale = this._mapScaleMax;
const bgItemLayer = new cc.Node();
bgItemLayer.scale = 1 / bg.scale;
bg.addChild(bgItemLayer);
const itemTop = getSprNode("bg/"+id+"/bg_top"+id)
bgItemLayer.addChild(itemTop, 1);
itemTop.y = this._bgHeight / 2;
itemTop.anchorY = 1;
itemTop.scale = this._bgWidth / itemTop.width;
const itemBottom = getSprNode("bg/"+id+"/bg_bottom"+id)
bgItemLayer.addChild(itemBottom, 1);
itemBottom.y = -this._bgHeight / 2;
itemBottom.anchorY = 0;
itemBottom.scale = this._bgWidth / itemBottom.width;
const item = getSprNode("bg/"+id+"/bg_dian"+id)
bgItemLayer.addChild(item);
item.x = -this._bgWidth / 10 * 4;
item.y = -this._bgHeight / 6;
item.scale = this._mapScaleMin;
if (id == 4) {
itemTop.scale = this._mapScaleMin;
const itemLeft = getSprNode("bg/"+id+"/bg_left")
bgItemLayer.addChild(itemLeft);
itemLeft.x = -this._bgWidth / 2;
itemLeft.anchorX = 0;
itemLeft.scale = this._bgHeight / itemLeft.height;
const itemRight = getSprNode("bg/"+id+"/bg_right")
bgItemLayer.addChild(itemRight);
itemRight.x = this._bgWidth / 2;
itemRight.anchorX = 1;
itemRight.scale = this._bgHeight / itemRight.height;
}
return bg;
},
getNext () {
return this.bgArr[3];
}
})
\ No newline at end of file
{
"ver": "1.0.8",
"uuid": "8d7eb1f4-ff9f-4997-95b8-f9133549b61d",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
export const defaultData = { "letter": "Q", debugMode: false };
\ No newline at end of file
{
"ver": "1.0.8",
"uuid": "a15d1ed4-3120-48fc-88d3-496ee81d5027",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
export const letterData = {
A: [[{ "x": -7, "y": 183, "z": 0 }, { "x": -100, "y": -97, "z": 0 }], [{ "x": 6, "y": 179, "z": 0 }, { "x": 102, "y": -97, "z": 0 }], [{ "x": -65, "y": 19, "z": 0 }, { "x": 58, "y": 18, "z": 0 }]],
B: [[{ "x": -64, "y": 186, "z": 0 }, { "x": -63, "y": -98, "z": 0 }], [{ "x": -54, "y": 166, "z": 0 }, { "x": 21, "y": 167, "z": 0 }, { "x": 48, "y": 158, "z": 0 }, { "x": 61, "y": 143, "z": 0 }, { "x": 71, "y": 114, "z": 0 }, { "x": 77, "y": 98, "z": 0 }, { "x": 64, "y": 66, "z": 0 }, { "x": -48, "y": 65, "z": 0 }], [{ "x": -59, "y": 36, "z": 0 }, { "x": 51, "y": 38, "z": 0 }, { "x": 71, "y": 3, "z": 0 }, { "x": 72, "y": -24, "z": 0 }, { "x": 68, "y": -56, "z": 0 }, { "x": 45, "y": -75, "z": 0 }, { "x": 10, "y": -87, "z": 0 }, { "x": -21, "y": -86, "z": 0 }]],
C: [[{ "x": 100, "y": 81, "z": 0 }, { "x": 71, "y": 134, "z": 0 }, { "x": 37, "y": 157, "z": 0 }, { "x": 5, "y": 165, "z": 0 }, { "x": -37, "y": 160, "z": 0 }, { "x": -59, "y": 130, "z": 0 }, { "x": -78, "y": 91, "z": 0 }, { "x": -80, "y": 51, "z": 0 }, { "x": -79, "y": 8, "z": 0 }, { "x": -67, "y": -39, "z": 0 }, { "x": -39, "y": -69, "z": 0 }, { "x": -6, "y": -89, "z": 0 }, { "x": 31, "y": -85, "z": 0 }, { "x": 60, "y": -63, "z": 0 }, { "x": 81, "y": -32, "z": 0 }]],
D: [[{ "x": -74, "y": 192, "z": 0 }, { "x": -74, "y": -121, "z": 0 }], [{ "x": -72, "y": 161, "z": 0 }, { "x": 4, "y": 164, "z": 0 }, { "x": 39, "y": 151, "z": 0 }, { "x": 72, "y": 113, "z": 0 }, { "x": 80, "y": 52, "z": 0 }, { "x": 80, "y": 0, "z": 0 }, { "x": 62, "y": -54, "z": 0 }, { "x": 27, "y": -82, "z": 0 }, { "x": -21, "y": -88, "z": 0 }, { "x": -58, "y": -85, "z": 0 }]],
E: [[{ "x": -59, "y": 162, "z": 0 }, { "x": -60, "y": -97, "z": 0 }], [{ "x": -70, "y": -89, "z": 0 }, { "x": 78, "y": -89, "z": 0 }], [{ "x": -57, "y": 162, "z": 0 }, { "x": 83, "y": 162, "z": 0 }], [{ "x": -72, "y": 44, "z": 0 }, { "x": 48, "y": 43, "z": 0 }]],
F: [[{ "x": -59, "y": 209, "z": 0 }, { "x": -61, "y": -140, "z": 0 }], [{ "x": -61, "y": 166, "z": 0 }, { "x": 86, "y": 161, "z": 0 }], [{ "x": -46, "y": 50, "z": 0 }, { "x": 42, "y": 51, "z": 0 }]],
G: [[{ "x": 76, "y": 113, "z": 0 }, { "x": 59, "y": 136, "z": 0 }, { "x": 33, "y": 154, "z": 0 }, { "x": -7, "y": 167, "z": 0 }, { "x": -52, "y": 155, "z": 0 }, { "x": -74, "y": 120, "z": 0 }, { "x": -83, "y": 85, "z": 0 }, { "x": -85, "y": 48, "z": 0 }, { "x": -86, "y": 18, "z": 0 }, { "x": -79, "y": -17, "z": 0 }, { "x": -70, "y": -47, "z": 0 }, { "x": -43, "y": -69, "z": 0 }, { "x": -15, "y": -80, "z": 0 }, { "x": 21, "y": -84, "z": 0 }, { "x": 48, "y": -67, "z": 0 }, { "x": 66, "y": -45, "z": 0 }, { "x": 79, "y": -23, "z": 0 }, { "x": 89, "y": 1, "z": 0 }, { "x": 97, "y": 33, "z": 0 }], [{ "x": 12, "y": 39, "z": 0 }, { "x": 95, "y": 40, "z": 0 }]],
H: [[{ "x": -74, "y": 191, "z": 0 }, { "x": -76, "y": -117, "z": 0 }], [{ "x": 76, "y": 194, "z": 0 }, { "x": 76, "y": -139, "z": 0 }], [{ "x": -71, "y": 51, "z": 0 }, { "x": 74, "y": 50, "z": 0 }]],
I: [[{ "x": -79.5, "y": 141, "z": 0 }, { "x": -62.5, "y": 158, "z": 0 }, { "x": 51.5, "y": 158, "z": 0 }], [{ "x": -0.5, "y": 157, "z": 0 }, { "x": 0.5, "y": -80, "z": 0 }], [{ "x": -58.5, "y": -88, "z": 0 }, { "x": 47.5, "y": -88, "z": 0 }]],
J: [[{ "x": 1.5, "y": 175, "z": 0 }, { "x": 130.5, "y": 172, "z": 0 }], [{ "x": 57.5, "y": 169, "z": 0 }, { "x": 48.5, "y": -44, "z": 0 }, { "x": 24.5, "y": -71, "z": 0 }, { "x": -7.5, "y": -87, "z": 0 }, { "x": -41.5, "y": -82, "z": 0 }, { "x": -63.5, "y": -68, "z": 0 }, { "x": -81.5, "y": -45, "z": 0 }, { "x": -89.5, "y": -18, "z": 0 }]],
K: [[{ "x": -69.5, "y": 189, "z": 0 }, { "x": -67.5, "y": -120, "z": 0 }], [{ "x": 115.5, "y": 187, "z": 0 }, { "x": -83.5, "y": 7, "z": 0 }], [{ "x": -65.5, "y": 54, "z": 0 }, { "x": 95.5, "y": -94, "z": 0 }]],
L: [[{ "x": -55.5, "y": 197, "z": 0 }, { "x": -49.5, "y": -90, "z": 0 }, { "x": 86.5, "y": -89, "z": 0 }]],
M: [[{ "x": -117.5, "y": 201, "z": 0 }, { "x": -120.5, "y": -113, "z": 0 }], [{ "x": 99.5, "y": 199, "z": 0 }, { "x": 97.5, "y": -147, "z": 0 }], [{ "x": -124.5, "y": 163, "z": 0 }, { "x": 0.5, "y": -121, "z": 0 }], [{ "x": 90.5, "y": 164, "z": 0 }, { "x": -19.5, "y": -92, "z": 0 }]],
N: [[{ "x": -78.5, "y": 203, "z": 0 }, { "x": -82.5, "y": -92, "z": 0 }], [{ "x": 69.5, "y": 183, "z": 0 }, { "x": 70.5, "y": -96, "z": 0 }], [{ "x": -84.5, "y": 175, "z": 0 }, { "x": 69.5, "y": -84, "z": 0 }]],
O: [[{ "x": -21, "y": 169, "z": 0 }, { "x": -63, "y": 137, "z": 0 }, { "x": -73, "y": 107, "z": 0 }, { "x": -87, "y": 73, "z": 0 }, { "x": -91, "y": 38, "z": 0 }, { "x": -92, "y": 2, "z": 0 }, { "x": -82, "y": -29, "z": 0 }, { "x": -66, "y": -52, "z": 0 }, { "x": -46, "y": -67, "z": 0 }, { "x": -26, "y": -80, "z": 0 }, { "x": 16, "y": -82, "z": 0 }, { "x": 54, "y": -61, "z": 0 }, { "x": 75, "y": -18, "z": 0 }, { "x": 87, "y": 30, "z": 0 }, { "x": 80, "y": 82, "z": 0 }, { "x": 64, "y": 125, "z": 0 }, { "x": 37, "y": 157, "z": 0 }, { "x": 7, "y": 176, "z": 0 }, { "x": -4, "y": 174, "z": 0 }]],
P: [[{ "x": -61.5, "y": 204, "z": 0 }, { "x": -67.5, "y": -103, "z": 0 }], [{ "x": -53.5, "y": 165, "z": 0 }, { "x": 31.5, "y": 163, "z": 0 }, { "x": 73.5, "y": 112, "z": 0 }, { "x": 65.5, "y": 61, "z": 0 }, { "x": 34.5, "y": 36, "z": 0 }, { "x": -24.5, "y": 31, "z": 0 }, { "x": -42.5, "y": 33, "z": 0 }]],
Q: [[{ "x": 46.5, "y": 154, "z": 0 }, { "x": 29.5, "y": 165, "z": 0 }, { "x": 13.5, "y": 172, "z": 0 }, { "x": -5.5, "y": 172, "z": 0 }, { "x": -22.5, "y": 166, "z": 0 }, { "x": -45.5, "y": 153, "z": 0 }, { "x": -63.5, "y": 131, "z": 0 }, { "x": -79.5, "y": 99, "z": 0 }, { "x": -89.5, "y": 53, "z": 0 }, { "x": -86.5, "y": 9, "z": 0 }, { "x": -72.5, "y": -32, "z": 0 }, { "x": -58.5, "y": -54, "z": 0 }, { "x": -39.5, "y": -72, "z": 0 }, { "x": -9.5, "y": -85, "z": 0 }, { "x": 11.5, "y": -85, "z": 0 }, { "x": 41.5, "y": -73, "z": 0 }, { "x": 76.5, "y": -30, "z": 0 }, { "x": 82.5, "y": -13, "z": 0 }, { "x": 90.5, "y": 32, "z": 0 }, { "x": 89.5, "y": 67, "z": 0 }, { "x": 80.5, "y": 93, "z": 0 }, { "x": 68.5, "y": 121, "z": 0 }, { "x": 50.5, "y": 148, "z": 0 }, { "x": 45.5, "y": 159, "z": 0 }], [{ "x": 14.5, "y": 3, "z": 0 }, { "x": 93.5, "y": -96, "z": 0 }]],
R: [[{ "x": -65.5, "y": 180, "z": 0 }, { "x": -68.5, "y": -110, "z": 0 }], [{ "x": -62.5, "y": 164, "z": 0 }, { "x": 40.5, "y": 159, "z": 0 }, { "x": 74.5, "y": 116, "z": 0 }, { "x": 69.5, "y": 74, "z": 0 }, { "x": 50.5, "y": 48, "z": 0 }, { "x": -4.5, "y": 34, "z": 0 }, { "x": -40.5, "y": 32, "z": 0 }], [{ "x": 9.5, "y": 33, "z": 0 }, { "x": 79.5, "y": -91, "z": 0 }]],
S: [[{ "x": 75.5, "y": 80, "z": 0 }, { "x": 56.5, "y": 134, "z": 0 }, { "x": 16.5, "y": 170, "z": 0 }, { "x": -42.5, "y": 158, "z": 0 }, { "x": -74.5, "y": 137, "z": 0 }, { "x": -61.5, "y": 80, "z": 0 }, { "x": 51.5, "y": 21, "z": 0 }, { "x": 85.5, "y": -35, "z": 0 }, { "x": 38.5, "y": -82, "z": 0 }, { "x": -32.5, "y": -86, "z": 0 }, { "x": -69.5, "y": -45, "z": 0 }, { "x": -80.5, "y": -8, "z": 0 }]],
T: [[{ "x": -97.5, "y": 166, "z": 0 }, { "x": 103.5, "y": 166, "z": 0 }], [{ "x": 1.5, "y": 164, "z": 0 }, { "x": 2.5, "y": -100, "z": 0 }]],
U: [[{ "x": -80.5, "y": 209, "z": 0 }, { "x": -79.5, "y": -27, "z": 0 }, { "x": -49.5, "y": -73, "z": 0 }, { "x": 3.5, "y": -87, "z": 0 }, { "x": 55.5, "y": -66, "z": 0 }, { "x": 85.5, "y": -28, "z": 0 }, { "x": 82.5, "y": 188, "z": 0 }]],
V: [[{ "x": -104.5, "y": 202, "z": 0 }, { "x": 6.5, "y": -132, "z": 0 }], [{ "x": 106.5, "y": 208, "z": 0 }, { "x": -4.5, "y": -102, "z": 0 }]],
W: [[{ "x": -171, "y": 170, "z": 0 }, { "x": -84, "y": -104, "z": 0 }], [{ "x": -92, "y": -97, "z": 0 }, { "x": -6, "y": 178, "z": 0 }], [{ "x": -7, "y": 180, "z": 0 }, { "x": 77, "y": -109, "z": 0 }], [{ "x": 70, "y": -93, "z": 0 }, { "x": 162, "y": 178, "z": 0 }]],
X: [[{ "x": -90.5, "y": 181, "z": 0 }, { "x": 91.5, "y": -113, "z": 0 }], [{ "x": 93.5, "y": 186, "z": 0 }, { "x": -140.5, "y": -187, "z": 0 }]],
Y: [[{ "x": -88.5, "y": 185, "z": 0 }, { "x": 1.5, "y": 36, "z": 0 }], [{ "x": 89.5, "y": 192, "z": 0 }, { "x": 8.5, "y": 45, "z": 0 }], [{ "x": 1.5, "y": 35, "z": 0 }, { "x": 2.5, "y": -103, "z": 0 }]],
Z: [[{ "x": -98.5, "y": 162, "z": 0 }, { "x": 176.5, "y": 165, "z": 0 }], [{ "x": 66.5, "y": 163, "z": 0 }, { "x": -97.5, "y": -92, "z": 0 }], [{ "x": -124.5, "y": -93, "z": 0 }, { "x": 130.5, "y": -91, "z": 0 }]],
a: [[{ "x": 62, "y": -11, "z": 0 }, { "x": 60, "y": -11, "z": 0 }, { "x": 22, "y": 27, "z": 0 }, { "x": 3, "y": 38, "z": 0 }, { "x": -20, "y": 40, "z": 0 }, { "x": -36, "y": 37, "z": 0 }, { "x": -63, "y": 23, "z": 0 }, { "x": -76, "y": -2, "z": 0 }, { "x": -74, "y": -29, "z": 0 }, { "x": -66, "y": -54, "z": 0 }, { "x": -39, "y": -79, "z": 0 }, { "x": -7, "y": -88, "z": 0 }, { "x": 22, "y": -69, "z": 0 }, { "x": 39, "y": -58, "z": 0 }, { "x": 51, "y": -46, "z": 0 }, { "x": 58, "y": -32, "z": 0 }], [{ "x": 61, "y": 118, "z": 0 }, { "x": 62, "y": -113, "z": 0 }]],
b: [[{ "x": -65, "y": 204, "z": 0 }, { "x": -71, "y": -129, "z": 0 }], [{ "x": -62, "y": -20, "z": 0 }, { "x": -46, "y": 11, "z": 0 }, { "x": -25, "y": 30, "z": 0 }, { "x": 5, "y": 44, "z": 0 }, { "x": 40, "y": 36, "z": 0 }, { "x": 59, "y": 22, "z": 0 }, { "x": 71, "y": -6, "z": 0 }, { "x": 77, "y": -38, "z": 0 }, { "x": 60, "y": -62, "z": 0 }, { "x": 28, "y": -83, "z": 0 }, { "x": -11, "y": -80, "z": 0 }, { "x": -36, "y": -64, "z": 0 }, { "x": -60, "y": -46, "z": 0 }]],
c: [[{ "x": 86, "y": -14, "z": 0 }, { "x": 51, "y": 28, "z": 0 }, { "x": 23, "y": 43, "z": 0 }, { "x": -12, "y": 42, "z": 0 }, { "x": -43, "y": 26, "z": 0 }, { "x": -64, "y": 0, "z": 0 }, { "x": -57, "y": -34, "z": 0 }, { "x": -36, "y": -60, "z": 0 }, { "x": -16, "y": -87, "z": 0 }, { "x": 21, "y": -85, "z": 0 }, { "x": 48, "y": -77, "z": 0 }, { "x": 71, "y": -55, "z": 0 }]],
d: [[{ "x": 51, "y": -18, "z": 0 }, { "x": 39, "y": 4, "z": 0 }, { "x": 30, "y": 16, "z": 0 }, { "x": 20, "y": 28, "z": 0 }, { "x": 10, "y": 40, "z": 0 }, { "x": -3, "y": 47, "z": 0 }, { "x": -21, "y": 46, "z": 0 }, { "x": -42, "y": 36, "z": 0 }, { "x": -73, "y": 3, "z": 0 }, { "x": -82, "y": -27, "z": 0 }, { "x": -70, "y": -63, "z": 0 }, { "x": -34, "y": -86, "z": 0 }, { "x": 15, "y": -75, "z": 0 }, { "x": 39, "y": -53, "z": 0 }, { "x": 52, "y": -33, "z": 0 }], [{ "x": 61, "y": 206, "z": 0 }, { "x": 62, "y": -108, "z": 0 }]],
e: [[{ "x": 77, "y": -10, "z": 0 }, { "x": 71, "y": 19, "z": 0 }, { "x": 48, "y": 36, "z": 0 }, { "x": 22, "y": 39, "z": 0 }, { "x": -9, "y": 41, "z": 0 }, { "x": -32, "y": 36, "z": 0 }, { "x": -61, "y": 23, "z": 0 }, { "x": -68, "y": 9, "z": 0 }, { "x": -69, "y": -48, "z": 0 }, { "x": -57, "y": -68, "z": 0 }, { "x": -33, "y": -78, "z": 0 }, { "x": -1, "y": -83, "z": 0 }, { "x": 22, "y": -84, "z": 0 }, { "x": 40, "y": -77, "z": 0 }, { "x": 63, "y": -69, "z": 0 }], [{ "x": -71, "y": -24, "z": 0 }, { "x": 71, "y": -23, "z": 0 }]],
f: [[{ "x": 85, "y": 122, "z": 0 }, { "x": 67, "y": 138, "z": 0 }, { "x": 55, "y": 147, "z": 0 }, { "x": 38, "y": 155, "z": 0 }, { "x": 21, "y": 158, "z": 0 }, { "x": 8, "y": 158, "z": 0 }, { "x": -10, "y": 157, "z": 0 }, { "x": -20, "y": 152, "z": 0 }, { "x": -22, "y": 144, "z": 0 }, { "x": -24, "y": 135, "z": 0 }, { "x": -26, "y": 120, "z": 0 }, { "x": -26, "y": 103, "z": 0 }, { "x": -28, "y": 90, "z": 0 }, { "x": -27, "y": 74, "z": 0 }, { "x": -27, "y": -7, "z": 0 }, { "x": -25, "y": -102, "z": 0 }], [{ "x": -101, "y": 49, "z": 0 }, { "x": 112, "y": 47, "z": 0 }]],
g: [[{ "x": 52, "y": -3, "z": 0 }, { "x": 41, "y": 19, "z": 0 }, { "x": 6, "y": 43, "z": 0 }, { "x": -40, "y": 42, "z": 0 }, { "x": -75, "y": 13, "z": 0 }, { "x": -81, "y": -31, "z": 0 }, { "x": -66, "y": -69, "z": 0 }, { "x": -23, "y": -85, "z": 0 }, { "x": 22, "y": -71, "z": 0 }, { "x": 46, "y": -35, "z": 0 }, { "x": 54, "y": 11, "z": 0 }, { "x": 54, "y": 50, "z": 0 }, { "x": 54, "y": -106, "z": 0 }, { "x": 42, "y": -147, "z": 0 }, { "x": 11, "y": -164, "z": 0 }, { "x": -28, "y": -166, "z": 0 }, { "x": -60, "y": -157, "z": 0 }]],
h: [[{ "x": -55, "y": 170, "z": 0 }, { "x": -53, "y": -118, "z": 0 }], [{ "x": -52, "y": -24, "z": 0 }, { "x": -31, "y": 27, "z": 0 }, { "x": -2, "y": 36, "z": 0 }, { "x": 25, "y": 39, "z": 0 }, { "x": 45, "y": 32, "z": 0 }, { "x": 59, "y": 3, "z": 0 }, { "x": 66, "y": -27, "z": 0 }, { "x": 64, "y": -69, "z": 0 }, { "x": 70, "y": -96, "z": 0 }]],
i: [[{ "x": 8.5, "y": 92, "z": 0 }, { "x": 107.5, "y": 121, "z": 0 }, { "x": 107.5, "y": 121, "z": 0 }], [{ "x": 9.5, "y": 85, "z": 0 }, { "x": 9.5, "y": -110, "z": 0 }]],
j: [[{ "x": 21.5, "y": 94, "z": 0 }, { "x": 87.5, "y": 132, "z": 0 }], [{ "x": 20.5, "y": 92, "z": 0 }, { "x": 18.5, "y": -127, "z": 0 }, { "x": 4.5, "y": -145, "z": 0 }, { "x": -36.5, "y": -172, "z": 0 }]],
k: [[{ "x": -48.5, "y": 197, "z": 0 }, { "x": -59.5, "y": -129, "z": 0 }], [{ "x": 82.5, "y": 67, "z": 0 }, { "x": -44.5, "y": -20, "z": 0 }], [{ "x": -54.5, "y": 14, "z": 0 }, { "x": 60.5, "y": -98, "z": 0 }]],
l: [[{ "x": 8.5, "y": 192, "z": 0 }, { "x": 8.5, "y": -114, "z": 0 }]],
m: [[{ "x": -126.5, "y": 54, "z": 0 }, { "x": -114.5, "y": -96, "z": 0 }], [{ "x": -116.5, "y": -92, "z": 0 }, { "x": -104.5, "y": 30, "z": 0 }, { "x": -77.5, "y": 40, "z": 0 }, { "x": -49.5, "y": 40, "z": 0 }, { "x": -20.5, "y": 25, "z": 0 }, { "x": -20.5, "y": -106, "z": 0 }], [{ "x": 4.5, "y": -97, "z": 0 }, { "x": 17.5, "y": 20, "z": 0 }, { "x": 45.5, "y": 47, "z": 0 }, { "x": 81.5, "y": 41, "z": 0 }, { "x": 108.5, "y": 17, "z": 0 }, { "x": 111.5, "y": -34, "z": 0 }, { "x": 114.5, "y": -64, "z": 0 }, { "x": 114.5, "y": -85, "z": 0 }, { "x": 114.5, "y": -98, "z": 0 }]],
n: [[{ "x": -57.5, "y": 63, "z": 0 }, { "x": -62.5, "y": -136, "z": 0 }], [{ "x": -48.5, "y": -95, "z": 0 }, { "x": -30.5, "y": 24, "z": 0 }, { "x": 3.5, "y": 43, "z": 0 }, { "x": 38.5, "y": 35, "z": 0 }, { "x": 63.5, "y": 11, "z": 0 }, { "x": 63.5, "y": -17, "z": 0 }, { "x": 64.5, "y": -58, "z": 0 }, { "x": 64.5, "y": -85, "z": 0 }]],
o: [[{ "x": -17, "y": 49, "z": 0 }, { "x": -54, "y": 18, "z": 0 }, { "x": -65, "y": -9, "z": 0 }, { "x": -66, "y": -37, "z": 0 }, { "x": -45, "y": -70, "z": 0 }, { "x": -15, "y": -84, "z": 0 }, { "x": 17, "y": -84, "z": 0 }, { "x": 48, "y": -68, "z": 0 }, { "x": 65, "y": -37, "z": 0 }, { "x": 63, "y": -4, "z": 0 }, { "x": 47, "y": 24, "z": 0 }, { "x": -9, "y": 47, "z": 0 }]],
p: [[{ "x": -70.5, "y": 54, "z": 0 }, { "x": -67.5, "y": -192, "z": 0 }], [{ "x": -62.5, "y": -24, "z": 0 }, { "x": -33.5, "y": 27, "z": 0 }, { "x": 13.5, "y": 45, "z": 0 }, { "x": 55.5, "y": 26, "z": 0 }, { "x": 75.5, "y": -11, "z": 0 }, { "x": 65.5, "y": -48, "z": 0 }, { "x": 47.5, "y": -75, "z": 0 }, { "x": 8.5, "y": -84, "z": 0 }, { "x": -25.5, "y": -74, "z": 0 }, { "x": -39.5, "y": -50, "z": 0 }]],
q: [[{ "x": 37.5, "y": -24, "z": 0 }, { "x": 26.5, "y": 9, "z": 0 }, { "x": 14.5, "y": 32, "z": 0 }, { "x": -25.5, "y": 41, "z": 0 }, { "x": -49.5, "y": 32, "z": 0 }, { "x": -71.5, "y": 15, "z": 0 }, { "x": -83.5, "y": -17, "z": 0 }, { "x": -69.5, "y": -49, "z": 0 }, { "x": -44.5, "y": -80, "z": 0 }, { "x": -0.5, "y": -88, "z": 0 }, { "x": 19.5, "y": -68, "z": 0 }, { "x": 27.5, "y": -57, "z": 0 }, { "x": 37.5, "y": -36, "z": 0 }], [{ "x": 59.5, "y": 83, "z": 0 }, { "x": 56.5, "y": -177, "z": 0 }]],
r: [[{ "x": -30.5, "y": 83, "z": 0 }, { "x": -35.5, "y": -125, "z": 0 }], [{ "x": -16.5, "y": -105, "z": 0 }, { "x": -7.5, "y": 18, "z": 0 }, { "x": 54.5, "y": 48, "z": 0 }]],
s: [[{ "x": 62.5, "y": 18, "z": 0 }, { "x": 25.5, "y": 50, "z": 0 }, { "x": -30.5, "y": 46, "z": 0 }, { "x": -56.5, "y": 26, "z": 0 }, { "x": -44.5, "y": 8, "z": 0 }, { "x": -12.5, "y": -4, "z": 0 }, { "x": 49.5, "y": -32, "z": 0 }, { "x": 50.5, "y": -73, "z": 0 }, { "x": 9.5, "y": -90, "z": 0 }, { "x": -44.5, "y": -79, "z": 0 }, { "x": -63.5, "y": -48, "z": 0 }]],
t: [[{ "x": -0.5, "y": 103, "z": 0 }, { "x": -0.5, "y": -98, "z": 0 }], [{ "x": -75.5, "y": 41, "z": 0 }, { "x": 60.5, "y": 42, "z": 0 }]],
u: [[{ "x": -67.5, "y": 86, "z": 0 }, { "x": -56.5, "y": -66, "z": 0 }, { "x": -10.5, "y": -84, "z": 0 }, { "x": 8.5, "y": -71, "z": 0 }, { "x": 16.5, "y": -65, "z": 0 }, { "x": 16.5, "y": 81, "z": 0 }], [{ "x": 43.5, "y": 79, "z": 0 }, { "x": 47.5, "y": -99, "z": 0 }]],
v: [[{ "x": -84.5, "y": 74, "z": 0 }, { "x": -2.5, "y": -127, "z": 0 }], [{ "x": 62.5, "y": 68, "z": 0 }, { "x": -31.5, "y": -125, "z": 0 }]],
w: [[{ "x": -114, "y": 45, "z": 0 }, { "x": -60, "y": -100, "z": 0 }], [{ "x": -63, "y": -100, "z": 0 }, { "x": -9, "y": 57, "z": 0 }], [{ "x": -12, "y": 53, "z": 0 }, { "x": 54, "y": -118, "z": 0 }], [{ "x": 40, "y": -95, "z": 0 }, { "x": 110, "y": 79, "z": 0 }]],
x: [[{ "x": -61.5, "y": 55, "z": 0 }, { "x": 73.5, "y": -116, "z": 0 }], [{ "x": 71.5, "y": 66, "z": 0 }, { "x": -83.5, "y": -135, "z": 0 }]],
y: [[{ "x": -59.5, "y": 67, "z": 0 }, { "x": 11.5, "y": -78, "z": 0 }], [{ "x": 83.5, "y": 62, "z": 0 }, { "x": -52.5, "y": -247, "z": 0 }]],
z: [[{ "x": -87.5, "y": 42, "z": 0 }, { "x": 119.5, "y": 47, "z": 0 }], [{ "x": 41.5, "y": 41, "z": 0 }, { "x": -98.5, "y": -110, "z": 0 }], [{ "x": -80.5, "y": -88, "z": 0 }, { "x": 132.5, "y": -87, "z": 0 }]],
}
export const letterWidthData = {
f: 45,
I: 45,
Q: 45,
t: 45,
X: 45,
x: 45,
Y: 45,
y: 45,
}
\ No newline at end of file
{
"ver": "1.0.8",
"uuid": "25b797e9-bbd2-4061-8369-57cb2c511c1f",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
!(function (global) {
"use strict";
var Op = Object.prototype;
var hasOwn = Op.hasOwnProperty;
var undefined; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
var inModule = typeof module === "object";
var runtime = global.regeneratorRuntime;
if (runtime) {
if (inModule) {
// If regeneratorRuntime is defined globally and we're in a module,
// make the exports object identical to regeneratorRuntime.
module.exports = runtime;
}
// Don't bother evaluating the rest of this file if the runtime was
// already defined globally.
return;
}
// Define the runtime globally (as expected by generated code) as either
// module.exports (if we're in a module) or a new, empty object.
runtime = global.regeneratorRuntime = inModule ? module.exports : {};
function wrap(innerFn, outerFn, self, tryLocsList) {
// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke = makeInvokeMethod(innerFn, self, context);
return generator;
}
runtime.wrap = wrap;
// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn, obj, arg) {
try {
return { type: "normal", arg: fn.call(obj, arg) };
} catch (err) {
return { type: "throw", arg: err };
}
}
var GenStateSuspendedStart = "suspendedStart";
var GenStateSuspendedYield = "suspendedYield";
var GenStateExecuting = "executing";
var GenStateCompleted = "completed";
// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel = {};
// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator() { }
function GeneratorFunction() { }
function GeneratorFunctionPrototype() { }
// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype = {};
IteratorPrototype[iteratorSymbol] = function () {
return this;
};
var getProto = Object.getPrototypeOf;
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
if (NativeIteratorPrototype &&
NativeIteratorPrototype !== Op &&
hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype = NativeIteratorPrototype;
}
var Gp = GeneratorFunctionPrototype.prototype =
Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
GeneratorFunctionPrototype.constructor = GeneratorFunction;
GeneratorFunctionPrototype[toStringTagSymbol] =
GeneratorFunction.displayName = "GeneratorFunction";
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function (method) {
prototype[method] = function (arg) {
return this._invoke(method, arg);
};
});
}
runtime.isGeneratorFunction = function (genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor
? ctor === GeneratorFunction ||
// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName || ctor.name) === "GeneratorFunction"
: false;
};
runtime.mark = function (genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
genFun.__proto__ = GeneratorFunctionPrototype;
if (!(toStringTagSymbol in genFun)) {
genFun[toStringTagSymbol] = "GeneratorFunction";
}
}
genFun.prototype = Object.create(Gp);
return genFun;
};
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
runtime.awrap = function (arg) {
return { __await: arg };
};
function AsyncIterator(generator) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if (record.type === "throw") {
reject(record.arg);
} else {
var result = record.arg;
var value = result.value;
if (value &&
typeof value === "object" &&
hasOwn.call(value, "__await")) {
return Promise.resolve(value.__await).then(function (value) {
invoke("next", value, resolve, reject);
}, function (err) {
invoke("throw", err, resolve, reject);
});
}
return Promise.resolve(value).then(function (unwrapped) {
// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration. If the Promise is rejected, however, the
// result for this iteration will be rejected with the same
// reason. Note that rejections of yielded Promises are not
// thrown back into the generator function, as is the case
// when an awaited Promise is rejected. This difference in
// behavior between yield and await is important, because it
// allows the consumer to decide what to do with the yielded
// rejection (swallow it and continue, manually .throw it back
// into the generator, abandon iteration, whatever). With
// await, by contrast, there is no opportunity to examine the
// rejection reason outside the generator function, so the
// only option is to throw it from the await expression, and
// let the generator function handle the exception.
result.value = unwrapped;
resolve(result);
}, reject);
}
}
var previousPromise;
function enqueue(method, arg) {
function callInvokeWithMethodAndArg() {
return new Promise(function (resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise =
// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise ? previousPromise.then(
callInvokeWithMethodAndArg,
// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg
) : callInvokeWithMethodAndArg();
}
// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke = enqueue;
}
defineIteratorMethods(AsyncIterator.prototype);
AsyncIterator.prototype[asyncIteratorSymbol] = function () {
return this;
};
runtime.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
runtime.async = function (innerFn, outerFn, self, tryLocsList) {
var iter = new AsyncIterator(
wrap(innerFn, outerFn, self, tryLocsList)
);
return runtime.isGeneratorFunction(outerFn)
? iter // If outerFn is a generator, return the full iterator.
: iter.next().then(function (result) {
return result.done ? result.value : iter.next();
});
};
function makeInvokeMethod(innerFn, self, context) {
var state = GenStateSuspendedStart;
return function invoke(method, arg) {
if (state === GenStateExecuting) {
throw new Error("Generator is already running");
}
if (state === GenStateCompleted) {
if (method === "throw") {
throw arg;
}
// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();
}
context.method = method;
context.arg = arg;
while (true) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if (context.method === "next") {
// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent = context._sent = context.arg;
} else if (context.method === "throw") {
if (state === GenStateSuspendedStart) {
state = GenStateCompleted;
throw context.arg;
}
context.dispatchException(context.arg);
} else if (context.method === "return") {
context.abrupt("return", context.arg);
}
state = GenStateExecuting;
var record = tryCatch(innerFn, self, context);
if (record.type === "normal") {
// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state = context.done
? GenStateCompleted
: GenStateSuspendedYield;
if (record.arg === ContinueSentinel) {
continue;
}
return {
value: record.arg,
done: context.done
};
} else if (record.type === "throw") {
state = GenStateCompleted;
// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method = "throw";
context.arg = record.arg;
}
}
};
}
// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate, context) {
var method = delegate.iterator[context.method];
if (method === undefined) {
// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate = null;
if (context.method === "throw") {
if (delegate.iterator.return) {
// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method = "return";
context.arg = undefined;
maybeInvokeDelegate(delegate, context);
if (context.method === "throw") {
// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
return ContinueSentinel;
}
}
context.method = "throw";
context.arg = new TypeError(
"The iterator does not provide a 'throw' method");
}
return ContinueSentinel;
}
var record = tryCatch(method, delegate.iterator, context.arg);
if (record.type === "throw") {
context.method = "throw";
context.arg = record.arg;
context.delegate = null;
return ContinueSentinel;
}
var info = record.arg;
if (!info) {
context.method = "throw";
context.arg = new TypeError("iterator result is not an object");
context.delegate = null;
return ContinueSentinel;
}
if (info.done) {
// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName] = info.value;
// Resume execution at the desired location (see delegateYield).
context.next = delegate.nextLoc;
// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if (context.method !== "return") {
context.method = "next";
context.arg = undefined;
}
} else {
// Re-yield the result returned by the delegate method.
return info;
}
// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate = null;
return ContinueSentinel;
}
// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);
Gp[toStringTagSymbol] = "Generator";
// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
Gp[iteratorSymbol] = function () {
return this;
};
Gp.toString = function () {
return "[object Generator]";
};
function pushTryEntry(locs) {
var entry = { tryLoc: locs[0] };
if (1 in locs) {
entry.catchLoc = locs[1];
}
if (2 in locs) {
entry.finallyLoc = locs[2];
entry.afterLoc = locs[3];
}
this.tryEntries.push(entry);
}
function resetTryEntry(entry) {
var record = entry.completion || {};
record.type = "normal";
delete record.arg;
entry.completion = record;
}
function Context(tryLocsList) {
// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries = [{ tryLoc: "root" }];
tryLocsList.forEach(pushTryEntry, this);
this.reset(true);
}
runtime.keys = function (object) {
var keys = [];
for (var key in object) {
keys.push(key);
}
keys.reverse();
// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next() {
while (keys.length) {
var key = keys.pop();
if (key in object) {
next.value = key;
next.done = false;
return next;
}
}
// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done = true;
return next;
};
};
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) {
return iteratorMethod.call(iterable);
}
if (typeof iterable.next === "function") {
return iterable;
}
if (!isNaN(iterable.length)) {
var i = -1, next = function next() {
while (++i < iterable.length) {
if (hasOwn.call(iterable, i)) {
next.value = iterable[i];
next.done = false;
return next;
}
}
next.value = undefined;
next.done = true;
return next;
};
return next.next = next;
}
}
// Return an iterator with no values.
return { next: doneResult };
}
runtime.values = values;
function doneResult() {
return { value: undefined, done: true };
}
Context.prototype = {
constructor: Context,
reset: function (skipTempReset) {
this.prev = 0;
this.next = 0;
// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent = this._sent = undefined;
this.done = false;
this.delegate = null;
this.method = "next";
this.arg = undefined;
this.tryEntries.forEach(resetTryEntry);
if (!skipTempReset) {
for (var name in this) {
// Not sure about the optimal order of these conditions:
if (name.charAt(0) === "t" &&
hasOwn.call(this, name) &&
!isNaN(+name.slice(1))) {
this[name] = undefined;
}
}
}
},
stop: function () {
this.done = true;
var rootEntry = this.tryEntries[0];
var rootRecord = rootEntry.completion;
if (rootRecord.type === "throw") {
throw rootRecord.arg;
}
return this.rval;
},
dispatchException: function (exception) {
if (this.done) {
throw exception;
}
var context = this;
function handle(loc, caught) {
record.type = "throw";
record.arg = exception;
context.next = loc;
if (caught) {
// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method = "next";
context.arg = undefined;
}
return !!caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
var record = entry.completion;
if (entry.tryLoc === "root") {
// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");
}
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc");
var hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
} else if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else if (hasCatch) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
}
} else if (hasFinally) {
if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else {
throw new Error("try statement without catch or finally");
}
}
}
},
abrupt: function (type, arg) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc <= this.prev &&
hasOwn.call(entry, "finallyLoc") &&
this.prev < entry.finallyLoc) {
var finallyEntry = entry;
break;
}
}
if (finallyEntry &&
(type === "break" ||
type === "continue") &&
finallyEntry.tryLoc <= arg &&
arg <= finallyEntry.finallyLoc) {
// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry = null;
}
var record = finallyEntry ? finallyEntry.completion : {};
record.type = type;
record.arg = arg;
if (finallyEntry) {
this.method = "next";
this.next = finallyEntry.finallyLoc;
return ContinueSentinel;
}
return this.complete(record);
},
complete: function (record, afterLoc) {
if (record.type === "throw") {
throw record.arg;
}
if (record.type === "break" ||
record.type === "continue") {
this.next = record.arg;
} else if (record.type === "return") {
this.rval = this.arg = record.arg;
this.method = "return";
this.next = "end";
} else if (record.type === "normal" && afterLoc) {
this.next = afterLoc;
}
return ContinueSentinel;
},
finish: function (finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) {
this.complete(entry.completion, entry.afterLoc);
resetTryEntry(entry);
return ContinueSentinel;
}
}
},
"catch": function (tryLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc === tryLoc) {
var record = entry.completion;
if (record.type === "throw") {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");
},
delegateYield: function (iterable, resultName, nextLoc) {
this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
};
if (this.method === "next") {
// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg = undefined;
}
return ContinueSentinel;
}
};
})(
// In sloppy mode, unbound `this` refers to the global object, fallback to
// Function constructor if we're in global strict mode. That is sadly a form
// of indirect eval which violates Content Security Policy.
(function () { return this })() || Function("return this")()
);
{
"ver": "1.0.8",
"uuid": "e2e0dcb5-f556-4545-b84a-3e9fb09c0a68",
"uuid": "2481e54f-d652-43b9-98dc-534a4fe0427e",
"isPlugin": true,
"loadPluginInWeb": true,
"loadPluginInNative": true,
......
{
"ver": "1.0.8",
"uuid": "25ccf041-bdf3-4b6a-8683-c24e4c39fed4",
"uuid": "ade7af40-d56d-4087-bbc6-2888fef55353",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
......
export function getPosByAngle(angle, len) {
const radian = angle * Math.PI / 180;
const x = Math.sin(radian) * len;
const y = Math.cos(radian) * len;
return { x, y };
}
export function getAngleByPos(px, py, mx, my) {
const x = Math.abs(px - mx);
const y = Math.abs(py - my);
const z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
const cos = y / z;
const radina = Math.acos(cos); // 用反三角函数求弧度
let 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;
}
export function exchangeNodePos(baseNode, targetNode) {
return baseNode.convertToNodeSpaceAR(targetNode._parent.convertToWorldSpaceAR(cc.v2(targetNode.x, targetNode.y)));
}
export function RandomInt(a, b = 0) {
let max = Math.max(a, b);
let min = Math.min(a, b);
return Math.floor(Math.random() * (max - min) + min);
}
export function Between(a, b, c) {
return [a, b, c].sort((a, b) => a - b)[1];
}
export function randomSortByArr(arr) {
const newArr = [];
const tmpArr = arr.concat();
while (tmpArr.length > 0) {
const randomIndex = Math.floor(tmpArr.length * Math.random());
newArr.push(tmpArr[randomIndex]);
tmpArr.splice(randomIndex, 1);
}
return newArr;
}
export async function asyncTweenTo(node, duration, obj, ease = undefined) {
return new Promise((resolve, reject) => {
cc.tween(node)
.to(duration, obj, ease)
.call(() => {
resolve();
})
.start();
});
}
export async function asyncTweenBy(node, duration, obj, ease = undefined) {
return new Promise((resolve, reject) => {
cc.tween(node)
.by(duration, obj, ease)
.call(() => {
resolve();
})
.start();
});
}
export async function asyncPlayDragonBoneAnimation(node, animationName, time = 1, onFrameEvent) {
return new Promise((resolve, reject) => {
try {
node.getComponent(dragonBones.ArmatureDisplay)
.once(dragonBones.EventObject.COMPLETE, () => {
resolve();
});
node.getComponent(dragonBones.ArmatureDisplay)
.on(dragonBones.EventObject.FRAME_EVENT, ({ name }) => {
if (onFrameEvent && typeof (onFrameEvent) == 'function') {
onFrameEvent(name);
}
});
node.getComponent(dragonBones.ArmatureDisplay)
.playAnimation(animationName, time);
} catch (e) {
reject(e);
}
});
}
export async function asyncPlayEffectByUrl(url, loop = false) {
return new Promise((resolve, reject) => {
try {
cc.assetManager.loadRemote(url, (err, clip) => {
if (err) {
reject(err);
return;
}
console.log(clip);
cc.audioEngine.playEffect(clip, loop);
resolve();
});
} catch (e) {
reject(e);
}
});
}
export async function jelly(node) {
return new Promise((resolve, reject) => {
try {
cc.tween(node)
.to(0.1, { scaleX: 0.9, scaleY: 1.1 })
.to(0.1, { scaleX: 1.1, scaleY: 0.9 })
.to(0.1, { scaleX: 1, scaleY: 1 })
.call(resolve)
.start();
} catch (e) {
reject(e);
}
});
}
export async function asyncDelay(time) {
return new Promise((resolve, reject) => {
try {
setTimeout(() => {
resolve();
}, time * 1000);
} catch (e) {
reject(e);
}
})
}
export async function showFireworks(baseNode, nodeList, pos = cc.v2(0, 0), side = cc.v2(0, 100), range = 50, number = 100) {
new Array(number).fill(' ').forEach(async (_, i) => {
let rabbonNode = new cc.Node();
rabbonNode.parent = baseNode;
rabbonNode.x = pos.x;
rabbonNode.y = pos.y;
rabbonNode.angle = 60 * Math.random() - 30;
let node = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
node.parent = rabbonNode;
node.active = true;
node.x = 0;
node.y = 0;
node.angle = 0;
const rate = Math.random();
const angle = Math.PI * (Math.random() * 2 - 1);
await asyncTweenBy(rabbonNode, 0.3, {
x: side.x * rate + Math.cos(angle) * range * rate,
y: side.y * rate + Math.sin(angle) * range * rate
}, {
easing: 'quadIn'
});
cc.tween(rabbonNode)
.by(8, { y: -2000 })
.start();
rabbonFall(rabbonNode);
await asyncDelay(Math.random());
cc.tween(node)
.by(0.15, { x: -10, angle: -10 })
.by(0.3, { x: 20, angle: 20 })
.by(0.15, { x: -10, angle: -10 })
.union()
.repeatForever()
.start();
cc.tween(rabbonNode)
.delay(5)
.to(0.3, { opacity: 0 })
.call(() => {
node.stopAllActions();
node.active = false;
node.parent = null;
node = null;
})
.start();
});
}
async function rabbonFall(node) {
const time = 1 + Math.random();
const offsetX = RandomInt(-200, 200) * time;
await asyncTweenBy(node, time, { x: offsetX, angle: offsetX * 60 / 200 });
rabbonFall(node);
}
\ No newline at end of file
{
"ver": "1.0.8",
"uuid": "d545f402-231b-417e-99e6-3269412a5a2c",
"isPlugin": false,
"loadPluginInWeb": true,
"loadPluginInNative": true,
"loadPluginInEditor": false,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "8ba21262-178f-4fa5-afc9-2c1dd50ba3ab",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "76bd0106-0414-47b5-9650-d3f1a4b0b1fc",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 94,
"height": 94,
"platformSettings": {},
"subMetas": {
"Btn_switch_big": {
"ver": "1.0.4",
"uuid": "bfa35517-a297-4365-8592-668a446e4af6",
"rawTextureUuid": "76bd0106-0414-47b5-9650-d3f1a4b0b1fc",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 94,
"height": 94,
"rawWidth": 94,
"rawHeight": 94,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7c559c61-33e5-4aaa-a857-742510f020c3",
"uuid": "585133cc-b64e-4891-84fd-828339767929",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 307,
"height": 227,
"width": 60,
"height": 66,
"platformSettings": {},
"subMetas": {
"option_pic_bg_l": {
"Btn_switch_small": {
"ver": "1.0.4",
"uuid": "4521834b-37c2-41be-89fc-399039615867",
"rawTextureUuid": "7c559c61-33e5-4aaa-a857-742510f020c3",
"uuid": "b7c5c0c9-5f17-4b34-8b8f-74c41172f112",
"rawTextureUuid": "585133cc-b64e-4891-84fd-828339767929",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 307,
"height": 227,
"rawWidth": 307,
"rawHeight": 227,
"width": 60,
"height": 66,
"rawWidth": 60,
"rawHeight": 66,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "4a958be0-39e3-4b07-8ac4-009fe2bae8cf",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 720,
"platformSettings": {},
"subMetas": {
"Img_bg": {
"ver": "1.0.4",
"uuid": "8f73b88c-350d-453f-9518-1cd419495d9b",
"rawTextureUuid": "4a958be0-39e3-4b07-8ac4-009fe2bae8cf",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 720,
"rawWidth": 1280,
"rawHeight": 720,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a7fa6419-828d-43fc-bbe5-c47050e2ff2e",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 716,
"height": 561,
"platformSettings": {},
"subMetas": {
"Img_letter_bg": {
"ver": "1.0.4",
"uuid": "d09ea72f-2556-4afb-b787-e722a2ca1f2e",
"rawTextureUuid": "a7fa6419-828d-43fc-bbe5-c47050e2ff2e",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 716,
"height": 561,
"rawWidth": 716,
"rawHeight": 561,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "8fb93fcf-4b9d-4a8f-b575-f8e6232c01e6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 473,
"height": 109,
"platformSettings": {},
"subMetas": {
"Img_title": {
"ver": "1.0.4",
"uuid": "347b4481-5e24-4306-b1d1-34a0fcd7ad01",
"rawTextureUuid": "8fb93fcf-4b9d-4a8f-b575-f8e6232c01e6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 473,
"height": 109,
"rawWidth": 473,
"rawHeight": 109,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "f54980af-a6a4-4d16-8996-c7955e87192e",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "f5cf3ae5-4104-4aec-a789-c437d150a9c1",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d9e1514c-10d5-4e20-acb8-17e57fc3d1e5",
"uuid": "4b33daf6-8d78-422c-b07c-6df9413f7a34",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
......@@ -11,10 +11,10 @@
"height": 720,
"platformSettings": {},
"subMetas": {
"bg": {
"bg_1": {
"ver": "1.0.4",
"uuid": "8f91b960-a198-4876-9fe1-f956ecbd765b",
"rawTextureUuid": "d9e1514c-10d5-4e20-acb8-17e57fc3d1e5",
"uuid": "f142734c-6da5-416d-a6a4-c64dd8e4693b",
"rawTextureUuid": "4b33daf6-8d78-422c-b07c-6df9413f7a34",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......
{
"ver": "2.3.5",
"uuid": "376eaa01-9159-4252-ac0c-43c12b8e0d3a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1194,
"height": 106,
"platformSettings": {},
"subMetas": {
"bg_bottom1": {
"ver": "1.0.4",
"uuid": "814c1ea0-d331-49ee-bcac-7b78ef6d9bc8",
"rawTextureUuid": "376eaa01-9159-4252-ac0c-43c12b8e0d3a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1194,
"height": 106,
"rawWidth": 1194,
"rawHeight": 106,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a8a2e793-dab8-4f6c-85ad-9db4ea5cbe0f",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 126,
"height": 134,
"platformSettings": {},
"subMetas": {
"bg_dian1": {
"ver": "1.0.4",
"uuid": "bb2b23e4-2269-44ef-9191-efde148883ef",
"rawTextureUuid": "a8a2e793-dab8-4f6c-85ad-9db4ea5cbe0f",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 126,
"height": 134,
"rawWidth": 126,
"rawHeight": 134,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6ee1eb16-113b-47eb-b281-73597307fd14",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1202,
"height": 198,
"platformSettings": {},
"subMetas": {
"bg_top1": {
"ver": "1.0.4",
"uuid": "71f2430b-69be-4df2-a9e3-b188d041da5f",
"rawTextureUuid": "6ee1eb16-113b-47eb-b281-73597307fd14",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1202,
"height": 198,
"rawWidth": 1202,
"rawHeight": 198,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "e1ac4a8b-e855-4acf-8ccc-c90137a685d7",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "08b40084-2634-4cc3-818d-f396a15a951d",
"uuid": "e6081602-758e-4509-944a-09ce346445ca",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
......@@ -8,13 +8,13 @@
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 697,
"height": 720,
"platformSettings": {},
"subMetas": {
"bg_2": {
"ver": "1.0.4",
"uuid": "b5e75143-dbe8-4edd-b6bb-f60633fe052b",
"rawTextureUuid": "08b40084-2634-4cc3-818d-f396a15a951d",
"uuid": "50488e8f-cac9-4737-bc48-be20b789c1ce",
"rawTextureUuid": "e6081602-758e-4509-944a-09ce346445ca",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -23,9 +23,9 @@
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 697,
"height": 720,
"rawWidth": 1280,
"rawHeight": 697,
"rawHeight": 720,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "db28fad4-a597-494e-8557-fe6daaba0b2c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 163,
"platformSettings": {},
"subMetas": {
"bg_bottom2": {
"ver": "1.0.4",
"uuid": "05953648-3703-4b9e-9ab7-1788f8f9dcd1",
"rawTextureUuid": "db28fad4-a597-494e-8557-fe6daaba0b2c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 163,
"rawWidth": 1280,
"rawHeight": 163,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "50ccffd8-256a-459e-bfad-630fb1d54989",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 106,
"height": 105,
"platformSettings": {},
"subMetas": {
"bg_dian2": {
"ver": "1.0.4",
"uuid": "f034b983-5a22-451c-b79d-195c69cdb9a3",
"rawTextureUuid": "50ccffd8-256a-459e-bfad-630fb1d54989",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 106,
"height": 105,
"rawWidth": 106,
"rawHeight": 105,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "cb6a98b5-6958-4520-bec1-ce1056bc01ea",
"uuid": "58bc142c-6143-47f4-9608-e57151c70135",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 63,
"height": 68,
"width": 947,
"height": 87,
"platformSettings": {},
"subMetas": {
"btn_laba3": {
"bg_top2": {
"ver": "1.0.4",
"uuid": "0b0a7597-1a72-48f5-924e-ad2dbf733d25",
"rawTextureUuid": "cb6a98b5-6958-4520-bec1-ce1056bc01ea",
"uuid": "5a60990a-31ae-45e7-9d87-972928224dcc",
"rawTextureUuid": "58bc142c-6143-47f4-9608-e57151c70135",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 63,
"height": 68,
"rawWidth": 63,
"rawHeight": 68,
"width": 947,
"height": 87,
"rawWidth": 947,
"rawHeight": 87,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "1.1.2",
"uuid": "9536b4a5-b396-4f5b-a78a-87fce0d6c846",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2a467c38-7699-49f8-aad7-2213da46a3ba",
"uuid": "9cd28441-1ea2-4701-bf50-b981e2042a09",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 63,
"height": 68,
"width": 1280,
"height": 720,
"platformSettings": {},
"subMetas": {
"btn_laba4": {
"bg_3": {
"ver": "1.0.4",
"uuid": "79ca7f43-aacd-43c9-803b-111602421022",
"rawTextureUuid": "2a467c38-7699-49f8-aad7-2213da46a3ba",
"uuid": "db5f4cb0-b48f-47b5-9226-3b1492abf5f3",
"rawTextureUuid": "9cd28441-1ea2-4701-bf50-b981e2042a09",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 63,
"height": 68,
"rawWidth": 63,
"rawHeight": 68,
"width": 1280,
"height": 720,
"rawWidth": 1280,
"rawHeight": 720,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "586fc4ea-9d6d-4058-9c44-6887e82861d5",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 196,
"platformSettings": {},
"subMetas": {
"bg_bottom3": {
"ver": "1.0.4",
"uuid": "fccbdf01-22d7-44d1-bcde-bb0ea744dee5",
"rawTextureUuid": "586fc4ea-9d6d-4058-9c44-6887e82861d5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 196,
"rawWidth": 1280,
"rawHeight": 196,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "e434733f-38bc-46b2-b780-ac0a178129b4",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 102,
"height": 106,
"platformSettings": {},
"subMetas": {
"bg_dian3": {
"ver": "1.0.4",
"uuid": "45f4a059-9010-4611-9b0b-756bb7108948",
"rawTextureUuid": "e434733f-38bc-46b2-b780-ac0a178129b4",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 102,
"height": 106,
"rawWidth": 102,
"rawHeight": 106,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6b61de96-3e04-49bb-b89b-9c211eb87ef7",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1131,
"height": 106,
"platformSettings": {},
"subMetas": {
"bg_top3": {
"ver": "1.0.4",
"uuid": "eae3d30c-31ea-4815-ba90-53f031ff933d",
"rawTextureUuid": "6b61de96-3e04-49bb-b89b-9c211eb87ef7",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1131,
"height": 106,
"rawWidth": 1131,
"rawHeight": 106,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "2cb3d7be-c36d-4068-a16c-a65ec02a6254",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "fa4d888d-4425-40c0-83f7-f8c5cd892d0b",
"uuid": "2f4e2d83-c92e-4c41-8ae3-3f72adc3d7f4",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 63,
"height": 68,
"width": 1280,
"height": 720,
"platformSettings": {},
"subMetas": {
"btn_laba": {
"bg_4": {
"ver": "1.0.4",
"uuid": "07a58438-24ac-46ef-acad-275a36ecd8ab",
"rawTextureUuid": "fa4d888d-4425-40c0-83f7-f8c5cd892d0b",
"uuid": "29c7b1fc-e0e7-43ea-bb75-1b88d190ebbe",
"rawTextureUuid": "2f4e2d83-c92e-4c41-8ae3-3f72adc3d7f4",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 63,
"height": 68,
"rawWidth": 63,
"rawHeight": 68,
"width": 1280,
"height": 720,
"rawWidth": 1280,
"rawHeight": 720,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "7e0e99d6-7c23-4791-973a-632847f7aa75",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1102,
"height": 98,
"platformSettings": {},
"subMetas": {
"bg_bottom4": {
"ver": "1.0.4",
"uuid": "15c38b5c-d026-4eb1-b166-ad15619fa46a",
"rawTextureUuid": "7e0e99d6-7c23-4791-973a-632847f7aa75",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1102,
"height": 98,
"rawWidth": 1102,
"rawHeight": 98,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6ab1b2a6-944f-4388-ba57-705a23da0264",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 117,
"height": 144,
"platformSettings": {},
"subMetas": {
"bg_dian4": {
"ver": "1.0.4",
"uuid": "a03615f0-e385-48e9-a60d-acb733b93a00",
"rawTextureUuid": "6ab1b2a6-944f-4388-ba57-705a23da0264",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 117,
"height": 144,
"rawWidth": 117,
"rawHeight": 144,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6a393e12-9cdb-4be2-b261-24d0d0e9bcd6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 202,
"height": 647,
"platformSettings": {},
"subMetas": {
"bg_left": {
"ver": "1.0.4",
"uuid": "70cb7cf0-4b77-4f25-bcfa-2967794ae486",
"rawTextureUuid": "6a393e12-9cdb-4be2-b261-24d0d0e9bcd6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 202,
"height": 647,
"rawWidth": 202,
"rawHeight": 647,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "5773a0d2-1a11-4f71-82e6-9b736506542e",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 202,
"height": 647,
"platformSettings": {},
"subMetas": {
"bg_right": {
"ver": "1.0.4",
"uuid": "7c6d48db-456f-47f0-b4f3-4513b3a88be3",
"rawTextureUuid": "5773a0d2-1a11-4f71-82e6-9b736506542e",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 202,
"height": 647,
"rawWidth": 202,
"rawHeight": 647,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "71fd5385-83aa-4d73-baeb-460a8379c1cc",
"uuid": "44e563e1-0967-4534-8d97-42a8049df26f",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 63,
"height": 68,
"width": 938,
"height": 78,
"platformSettings": {},
"subMetas": {
"btn_laba2": {
"bg_top4": {
"ver": "1.0.4",
"uuid": "736831ca-2860-4e8f-b22e-417696a7093c",
"rawTextureUuid": "71fd5385-83aa-4d73-baeb-460a8379c1cc",
"uuid": "fbd1795f-32ce-40b7-981d-20fb67b42d80",
"rawTextureUuid": "44e563e1-0967-4534-8d97-42a8049df26f",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 63,
"height": 68,
"rawWidth": 63,
"rawHeight": 68,
"width": 938,
"height": 78,
"rawWidth": 938,
"rawHeight": 78,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "1.1.2",
"uuid": "b76dc9e9-3ccf-4a8a-8c78-4a2f544fa884",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a985a429-407a-4440-9c29-f25c05aec32f",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 720,
"platformSettings": {},
"subMetas": {
"bg_5": {
"ver": "1.0.4",
"uuid": "4016da19-c352-49fd-80c7-56860be2709c",
"rawTextureUuid": "a985a429-407a-4440-9c29-f25c05aec32f",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 720,
"rawWidth": 1280,
"rawHeight": 720,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ed69de7e-136e-4b53-bb7c-ca5137794686",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 893,
"height": 152,
"platformSettings": {},
"subMetas": {
"bg_bottom5": {
"ver": "1.0.4",
"uuid": "2c368f2b-0127-4f55-9155-70a879f364f1",
"rawTextureUuid": "ed69de7e-136e-4b53-bb7c-ca5137794686",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 893,
"height": 152,
"rawWidth": 893,
"rawHeight": 152,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "5624a60d-df0d-48f5-9a29-2e7924ff02e5",
"uuid": "9e5b9cdf-e9b4-4cfa-8936-74e5f67cfd25",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 36,
"height": 24,
"width": 120,
"height": 124,
"platformSettings": {},
"subMetas": {
"bg_sahua": {
"bg_dian5": {
"ver": "1.0.4",
"uuid": "0290c32f-9b41-4ec2-ab60-4e07ac969a63",
"rawTextureUuid": "5624a60d-df0d-48f5-9a29-2e7924ff02e5",
"uuid": "0b7417d3-6c0f-4685-b810-1d20c449988d",
"rawTextureUuid": "9e5b9cdf-e9b4-4cfa-8936-74e5f67cfd25",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
......@@ -22,10 +22,10 @@
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 36,
"height": 24,
"rawWidth": 36,
"rawHeight": 24,
"width": 120,
"height": 124,
"rawWidth": 120,
"rawHeight": 124,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "562670d1-3248-4b9a-9e66-234ac8b6dcc0",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 1280,
"height": 92,
"platformSettings": {},
"subMetas": {
"bg_top5": {
"ver": "1.0.4",
"uuid": "6bd256df-03da-41fc-b1cc-38ad93dfddd3",
"rawTextureUuid": "562670d1-3248-4b9a-9e66-234ac8b6dcc0",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 1280,
"height": 92,
"rawWidth": 1280,
"rawHeight": 92,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "79668f32-a757-4c42-8aa7-8d91ab54f284",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "db6d7215-fa78-4661-b7da-aad7d6cafff4",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "58927bf9-b7f5-4468-b389-ab9e9b3de80c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_a": {
"ver": "1.0.4",
"uuid": "447aec26-5b28-464e-9ea1-4296c825f018",
"rawTextureUuid": "58927bf9-b7f5-4468-b389-ab9e9b3de80c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 39.5,
"trimX": 71,
"trimY": 83,
"width": 227,
"height": 296,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "8978ff39-946f-4102-ba79-c13529121adc",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_b": {
"ver": "1.0.4",
"uuid": "f200deec-d5b5-4e78-ad79-bae89f8413ce",
"rawTextureUuid": "8978ff39-946f-4102-ba79-c13529121adc",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 9,
"offsetY": 37,
"trimX": 103,
"trimY": 88,
"width": 181,
"height": 291,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "73b697dc-233e-493b-92f8-90e7cd0b3467",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_c": {
"ver": "1.0.4",
"uuid": "bbefc14c-ff9c-497a-8377-6a7114f75e39",
"rawTextureUuid": "73b697dc-233e-493b-92f8-90e7cd0b3467",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 41,
"trimX": 80,
"trimY": 80,
"width": 209,
"height": 299,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d1a546ca-73f2-4f5e-9653-e96bf22b933c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_d": {
"ver": "1.0.4",
"uuid": "a9561b27-ae86-4bcb-9fbd-b16e68643132",
"rawTextureUuid": "d1a546ca-73f2-4f5e-9653-e96bf22b933c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10.5,
"offsetY": 36.5,
"trimX": 97,
"trimY": 88,
"width": 196,
"height": 292,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "394792bc-36b9-4a3d-931c-f5485336fc4b",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_e": {
"ver": "1.0.4",
"uuid": "d1fc4261-7615-42e4-8811-ebc8ede0c697",
"rawTextureUuid": "394792bc-36b9-4a3d-931c-f5485336fc4b",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 11,
"offsetY": 36.5,
"trimX": 111,
"trimY": 90,
"width": 169,
"height": 288,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "0e41589e-2cb6-4d87-9f0e-12b8011842b4",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_f": {
"ver": "1.0.4",
"uuid": "a16fed7d-15ac-4dbc-bdb0-db7901444d76",
"rawTextureUuid": "0e41589e-2cb6-4d87-9f0e-12b8011842b4",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10,
"offsetY": 37.5,
"trimX": 110,
"trimY": 88,
"width": 169,
"height": 290,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "f612576c-502f-4157-9675-ac6ca7295613",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_g": {
"ver": "1.0.4",
"uuid": "c6768f37-9c84-408c-80e9-367ec817f6e0",
"rawTextureUuid": "f612576c-502f-4157-9675-ac6ca7295613",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 41,
"trimX": 73,
"trimY": 80,
"width": 223,
"height": 299,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "081a0c97-b219-49d2-ad3c-50445ff68a72",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_h": {
"ver": "1.0.4",
"uuid": "1d81add3-71d7-4a4d-bb07-0733357344d9",
"rawTextureUuid": "081a0c97-b219-49d2-ad3c-50445ff68a72",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 38.5,
"trimX": 95,
"trimY": 86,
"width": 179,
"height": 292,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "87283d04-dad0-470b-b8f6-4872a7d2b89a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_i": {
"ver": "1.0.4",
"uuid": "79c41423-e366-4919-8d39-1e15ffef7992",
"rawTextureUuid": "87283d04-dad0-470b-b8f6-4872a7d2b89a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 34.5,
"trimX": 138,
"trimY": 94,
"width": 94,
"height": 284,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "81d88e37-db01-480e-a5ad-78c6382c7379",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_j": {
"ver": "1.0.4",
"uuid": "26db11ff-c495-4bed-8f10-566196c572cd",
"rawTextureUuid": "81d88e37-db01-480e-a5ad-78c6382c7379",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 38,
"trimX": 73,
"trimY": 87,
"width": 224,
"height": 291,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "936aa108-3147-4785-8b89-a84ce7eb5b3c",
"uuid": "cf8d2159-80d6-4463-bbde-97edb3e38587",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 407,
"height": 303,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"op_pic_bg_big": {
"Img_letter_big_k": {
"ver": "1.0.4",
"uuid": "c7896147-2816-4fcc-a13d-d9a5c5ed48e6",
"rawTextureUuid": "936aa108-3147-4785-8b89-a84ce7eb5b3c",
"uuid": "d8769aca-c007-4cd8-a47d-11d492feb070",
"rawTextureUuid": "cf8d2159-80d6-4463-bbde-97edb3e38587",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 9,
"trimY": 9,
"width": 389,
"offsetX": 11.5,
"offsetY": 35,
"trimX": 102,
"trimY": 93,
"width": 188,
"height": 285,
"rawWidth": 407,
"rawHeight": 303,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
......
{
"ver": "2.3.5",
"uuid": "b17302b0-4295-412e-8511-8748acd0af1d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_l": {
"ver": "1.0.4",
"uuid": "64d37f99-fcd5-4c6b-98a7-6a49697b4a29",
"rawTextureUuid": "b17302b0-4295-412e-8511-8748acd0af1d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10.5,
"offsetY": 36.5,
"trimX": 110,
"trimY": 89,
"width": 170,
"height": 290,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "aef786f1-f295-4dac-9861-2c76ae6f04ee",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_m": {
"ver": "1.0.4",
"uuid": "d53a49d2-2b7a-4768-8833-1e4e3960d62a",
"rawTextureUuid": "aef786f1-f295-4dac-9861-2c76ae6f04ee",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -9.5,
"offsetY": 38,
"trimX": 53,
"trimY": 87,
"width": 244,
"height": 291,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "565eda8f-08eb-4514-be83-6afb4e053166",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_n": {
"ver": "1.0.4",
"uuid": "fc9e803b-46d3-4b42-af5d-78f3822d1c95",
"rawTextureUuid": "565eda8f-08eb-4514-be83-6afb4e053166",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -6,
"offsetY": 39,
"trimX": 89,
"trimY": 85,
"width": 179,
"height": 293,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ffda894e-750d-4d4a-86d2-fa8c23ef1cba",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_o": {
"ver": "1.0.4",
"uuid": "64e6b917-ac6e-4c65-8005-7e3817252622",
"rawTextureUuid": "ffda894e-750d-4d4a-86d2-fa8c23ef1cba",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 41.5,
"trimX": 73,
"trimY": 80,
"width": 223,
"height": 298,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "60b730c5-a612-4694-a2fa-23fefa68543f",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_p": {
"ver": "1.0.4",
"uuid": "ebcb2edf-4bf0-4901-ba28-6bd76657de5f",
"rawTextureUuid": "60b730c5-a612-4694-a2fa-23fefa68543f",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 9.5,
"offsetY": 38.5,
"trimX": 105,
"trimY": 86,
"width": 178,
"height": 292,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a2b16f7b-6868-4bdf-9abc-66bf10acb434",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_q": {
"ver": "1.0.4",
"uuid": "9b3bb3d3-8cdb-4de7-b3be-053b55f9572d",
"rawTextureUuid": "a2b16f7b-6868-4bdf-9abc-66bf10acb434",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 43,
"trimX": 73,
"trimY": 78,
"width": 224,
"height": 299,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "550e40a9-ce78-4198-a2cf-d6ceca0af8a7",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_r": {
"ver": "1.0.4",
"uuid": "38cdfee3-2451-41e4-8223-ac3a337ce00f",
"rawTextureUuid": "550e40a9-ce78-4198-a2cf-d6ceca0af8a7",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10.5,
"offsetY": 37,
"trimX": 104,
"trimY": 89,
"width": 182,
"height": 289,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2f7b19b0-8e54-43ee-8b85-4e7862a48fcc",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_s": {
"ver": "1.0.4",
"uuid": "5fdaa9ad-ed5c-47a8-8081-161e93ede953",
"rawTextureUuid": "2f7b19b0-8e54-43ee-8b85-4e7862a48fcc",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 42,
"trimX": 87,
"trimY": 79,
"width": 195,
"height": 299,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "674383e6-69b4-4f4a-817d-334462bd3b83",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_t": {
"ver": "1.0.4",
"uuid": "7b30cf7b-49cf-4b7a-a314-6fd1df351dad",
"rawTextureUuid": "674383e6-69b4-4f4a-817d-334462bd3b83",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 36,
"trimX": 91,
"trimY": 91,
"width": 188,
"height": 287,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "9690c68c-12ca-4716-8205-1927a58096fa",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_u": {
"ver": "1.0.4",
"uuid": "0ca32e24-7c54-4856-8ad9-3c303b5b7f20",
"rawTextureUuid": "9690c68c-12ca-4716-8205-1927a58096fa",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 40,
"trimX": 84,
"trimY": 83,
"width": 202,
"height": 295,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "68e01067-c2c5-4762-a000-9309f4b5a974",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_v": {
"ver": "1.0.4",
"uuid": "7e5e83ce-a193-4136-aa4e-ef287f025025",
"rawTextureUuid": "68e01067-c2c5-4762-a000-9309f4b5a974",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 41.5,
"trimX": 71,
"trimY": 80,
"width": 228,
"height": 298,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "bd83ae55-3226-46bb-9bfd-ef264c9b0ca0",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_w": {
"ver": "1.0.4",
"uuid": "d4ce5896-f4df-431b-ae8f-105cf9427134",
"rawTextureUuid": "bd83ae55-3226-46bb-9bfd-ef264c9b0ca0",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -0.5,
"offsetY": 41.5,
"trimX": 2,
"trimY": 80,
"width": 364,
"height": 298,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d539b449-001f-4599-981f-3c78fe400fe9",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_x": {
"ver": "1.0.4",
"uuid": "bc5ee694-404f-4183-8cce-bd6acb5788b7",
"rawTextureUuid": "d539b449-001f-4599-981f-3c78fe400fe9",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -1,
"offsetY": 37,
"trimX": 85,
"trimY": 89,
"width": 197,
"height": 289,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "02389351-4f23-445e-a3d5-3f1c163583b0",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_y": {
"ver": "1.0.4",
"uuid": "4565e0ff-44ef-4dea-874f-2192417b2f41",
"rawTextureUuid": "02389351-4f23-445e-a3d5-3f1c163583b0",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 38,
"trimX": 88,
"trimY": 87,
"width": 194,
"height": 291,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "f0025ec3-8532-4453-a169-97d4a6c6f588",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_big_z": {
"ver": "1.0.4",
"uuid": "960839e5-bd01-4879-a284-e1daa105984e",
"rawTextureUuid": "f0025ec3-8532-4453-a169-97d4a6c6f588",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -8,
"offsetY": 33.5,
"trimX": 78,
"trimY": 95,
"width": 197,
"height": 284,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "4c1afad7-cdc6-4cc5-b753-e7f9a4c22c78",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "94c1b11b-c088-4401-b79d-b41c8f0b811e",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_a": {
"ver": "1.0.4",
"uuid": "de1f6da9-bdbd-44db-b67e-98d5fc1433f0",
"rawTextureUuid": "94c1b11b-c088-4401-b79d-b41c8f0b811e",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -9.5,
"offsetY": -21.5,
"trimX": 84,
"trimY": 205,
"width": 182,
"height": 174,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7f54bb68-1452-4dd9-9bc9-d60a329688da",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_b": {
"ver": "1.0.4",
"uuid": "42646452-cdb8-42fe-857a-fec82bbe63b9",
"rawTextureUuid": "7f54bb68-1452-4dd9-9bc9-d60a329688da",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 9.5,
"offsetY": 36.5,
"trimX": 103,
"trimY": 89,
"width": 182,
"height": 290,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "9fcc2f38-1410-49a4-a2cb-fbd3d88b4298",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_c": {
"ver": "1.0.4",
"uuid": "adc83b10-0d63-4d06-90a9-fae83c221437",
"rawTextureUuid": "9fcc2f38-1410-49a4-a2cb-fbd3d88b4298",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -20.5,
"trimX": 101,
"trimY": 204,
"width": 167,
"height": 174,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "0c81fb19-0565-4bd5-8789-7a30a55f7746",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_d": {
"ver": "1.0.4",
"uuid": "ecc5dfc0-0db6-4488-8f4f-52bf2022d610",
"rawTextureUuid": "0c81fb19-0565-4bd5-8789-7a30a55f7746",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -10.5,
"offsetY": 36.5,
"trimX": 83,
"trimY": 89,
"width": 182,
"height": 290,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "f5e03952-2bd4-42a3-ba9d-b643c513173c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_e": {
"ver": "1.0.4",
"uuid": "04c0a613-7501-4cea-bb60-486090f5a78f",
"rawTextureUuid": "f5e03952-2bd4-42a3-ba9d-b643c513173c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 2,
"offsetY": -20.5,
"trimX": 97,
"trimY": 204,
"width": 179,
"height": 174,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6e2a0da2-57e8-4a74-a289-2c60cf850dd7",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_f": {
"ver": "1.0.4",
"uuid": "d769cf6d-403a-4b8e-9f82-ee1595a53e14",
"rawTextureUuid": "6e2a0da2-57e8-4a74-a289-2c60cf850dd7",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 36,
"trimX": 100,
"trimY": 91,
"width": 169,
"height": 287,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "083b0a57-9beb-43b6-9ff8-a3a20174a736",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_g": {
"ver": "1.0.4",
"uuid": "70ff63f6-25a6-44d0-a46b-e0f43b7824ac",
"rawTextureUuid": "083b0a57-9beb-43b6-9ff8-a3a20174a736",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -15,
"offsetY": -60,
"trimX": 80,
"trimY": 205,
"width": 179,
"height": 251,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c6f27eb5-2a50-4d84-8dda-f12524d27a00",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_h": {
"ver": "1.0.4",
"uuid": "03df7ed5-d9c1-44f8-9c6d-4f8e7e7f0528",
"rawTextureUuid": "c6f27eb5-2a50-4d84-8dda-f12524d27a00",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10.5,
"offsetY": 35.5,
"trimX": 117,
"trimY": 92,
"width": 156,
"height": 286,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "b72bd12c-054e-4673-900f-1a251802571a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_i": {
"ver": "1.0.4",
"uuid": "e4b66aa5-d66a-4e06-842e-e3d08c219c05",
"rawTextureUuid": "b72bd12c-054e-4673-900f-1a251802571a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 9,
"offsetY": 1,
"trimX": 169,
"trimY": 160,
"width": 49,
"height": 219,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "baddad49-da7b-47de-9d60-51578cf128c0",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_j": {
"ver": "1.0.4",
"uuid": "4fabf208-f2cf-4fc5-9c93-4bf7ce7d5102",
"rawTextureUuid": "baddad49-da7b-47de-9d60-51578cf128c0",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": -36.5,
"trimX": 140,
"trimY": 158,
"width": 90,
"height": 298,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "94287b61-f9f5-4d94-bb0f-a367cef7dec4",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_k": {
"ver": "1.0.4",
"uuid": "374242f4-e176-4ab2-9f27-3944484eb3ba",
"rawTextureUuid": "94287b61-f9f5-4d94-bb0f-a367cef7dec4",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": 34.5,
"trimX": 114,
"trimY": 93,
"width": 142,
"height": 286,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ec959e8c-1c28-4049-8349-aa3c8befcb44",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_l": {
"ver": "1.0.4",
"uuid": "9f85489c-e53e-4121-b907-5b1e74f35b1e",
"rawTextureUuid": "ec959e8c-1c28-4049-8349-aa3c8befcb44",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10.5,
"offsetY": 33.5,
"trimX": 174,
"trimY": 94,
"width": 42,
"height": 286,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4b1b76ba-15ce-4f93-884e-734cf407f1d9",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_m": {
"ver": "1.0.4",
"uuid": "a0d0891d-11f4-4abc-8b10-41bc5ca8cefb",
"rawTextureUuid": "4b1b76ba-15ce-4f93-884e-734cf407f1d9",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": -22,
"trimX": 50,
"trimY": 207,
"width": 270,
"height": 171,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "55ca0ec7-4ea5-47e8-b00c-8a10759f455c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_n": {
"ver": "1.0.4",
"uuid": "0484bfe4-9f89-45a7-a5ec-e5354edf7e24",
"rawTextureUuid": "55ca0ec7-4ea5-47e8-b00c-8a10759f455c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 8.5,
"offsetY": -22,
"trimX": 115,
"trimY": 207,
"width": 156,
"height": 171,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "fde32b44-3262-442a-b00b-ea6af9c48b05",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_o": {
"ver": "1.0.4",
"uuid": "acd037f7-d4b2-410f-a1c0-70e0ae21b048",
"rawTextureUuid": "fde32b44-3262-442a-b00b-ea6af9c48b05",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": -20.5,
"trimX": 96,
"trimY": 204,
"width": 178,
"height": 174,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "42b3651a-7ace-46fb-891c-4d418838ad29",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_p": {
"ver": "1.0.4",
"uuid": "272f4c5f-bed6-46f5-98b5-550a9a65240e",
"rawTextureUuid": "42b3651a-7ace-46fb-891c-4d418838ad29",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 9.5,
"offsetY": -59,
"trimX": 103,
"trimY": 204,
"width": 182,
"height": 251,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "a79c317e-9d2d-49d5-bb29-fa95e7460c30",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_q": {
"ver": "1.0.4",
"uuid": "71d41640-163a-4e81-ae24-296fb703a81c",
"rawTextureUuid": "a79c317e-9d2d-49d5-bb29-fa95e7460c30",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -12.5,
"offsetY": -60.5,
"trimX": 81,
"trimY": 205,
"width": 182,
"height": 252,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d9a49c68-e1c0-40a8-8986-03ee670f9c4f",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_r": {
"ver": "1.0.4",
"uuid": "128b7344-f34f-4dc7-aaa4-b87008aa670a",
"rawTextureUuid": "d9a49c68-e1c0-40a8-8986-03ee670f9c4f",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 10,
"offsetY": -23.5,
"trimX": 143,
"trimY": 210,
"width": 103,
"height": 168,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "bbfd74ab-9961-4084-8444-81c147bca3d0",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_s": {
"ver": "1.0.4",
"uuid": "6b48ab50-38a5-470c-be5e-dac3695f8ae4",
"rawTextureUuid": "bbfd74ab-9961-4084-8444-81c147bca3d0",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0.5,
"offsetY": -22,
"trimX": 107,
"trimY": 206,
"width": 156,
"height": 173,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "131d0619-2f7d-41fd-ba8b-b2e6f5534350",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_t": {
"ver": "1.0.4",
"uuid": "4ce419c9-2e83-45d9-9f7c-2a740627e8fa",
"rawTextureUuid": "131d0619-2f7d-41fd-ba8b-b2e6f5534350",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 3.5,
"trimX": 123,
"trimY": 157,
"width": 123,
"height": 220,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "d9e86a2c-c9e1-433f-8b87-33bd6b92941e",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_u": {
"ver": "1.0.4",
"uuid": "a3fe3320-e9aa-44e3-8a5a-f4101b7c6667",
"rawTextureUuid": "d9e86a2c-c9e1-433f-8b87-33bd6b92941e",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -10.5,
"offsetY": -21,
"trimX": 96,
"trimY": 206,
"width": 156,
"height": 171,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2c520286-4cbc-4824-9325-fa20ea8e6e60",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_v": {
"ver": "1.0.4",
"uuid": "55bd5d2b-951b-4c45-b9a4-3ad4eaf8ab39",
"rawTextureUuid": "2c520286-4cbc-4824-9325-fa20ea8e6e60",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -10.5,
"offsetY": -20.5,
"trimX": 96,
"trimY": 205,
"width": 156,
"height": 172,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6bc3fb00-2670-4e43-b4db-7fcd25fa117d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_w": {
"ver": "1.0.4",
"uuid": "f74fbaad-3f7f-45d4-9d35-24211d207e4c",
"rawTextureUuid": "6bc3fb00-2670-4e43-b4db-7fcd25fa117d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -1.5,
"offsetY": -22,
"trimX": 56,
"trimY": 207,
"width": 254,
"height": 171,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c2eb780d-810f-41ea-a57f-25b44bad4ffc",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_x": {
"ver": "1.0.4",
"uuid": "187d0bb0-0afe-46d5-96a9-fa8493e64434",
"rawTextureUuid": "c2eb780d-810f-41ea-a57f-25b44bad4ffc",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": -24,
"trimX": 114,
"trimY": 210,
"width": 141,
"height": 169,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "3ed1d440-63e5-493a-b898-7f7ad5c60e0c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_y": {
"ver": "1.0.4",
"uuid": "5cc70aa2-9305-4c15-bc5c-573b754de87b",
"rawTextureUuid": "3ed1d440-63e5-493a-b898-7f7ad5c60e0c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 15,
"offsetY": -65,
"trimX": 120,
"trimY": 210,
"width": 159,
"height": 251,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "91386116-6075-4cc5-9b6d-82113340adfe",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 369,
"height": 541,
"platformSettings": {},
"subMetas": {
"Img_letter_small_z": {
"ver": "1.0.4",
"uuid": "5ff0addd-35fd-4ac7-9b32-761c5bcb0f69",
"rawTextureUuid": "91386116-6075-4cc5-9b6d-82113340adfe",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": -10.5,
"offsetY": -26,
"trimX": 97,
"trimY": 217,
"width": 154,
"height": 159,
"rawWidth": 369,
"rawHeight": 541,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "e976091a-1c92-4be8-bdef-e61b8d23d13d",
"isBundle": true,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {
"ios": true,
"android": true
},
"subMetas": {}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "laba",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "07a58438-24ac-46ef-acad-275a36ecd8ab"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "736831ca-2860-4e8f-b22e-417696a7093c"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "0b0a7597-1a72-48f5-924e-ad2dbf733d25"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "79ca7f43-aacd-43c9-803b-111602421022"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "07a58438-24ac-46ef-acad-275a36ecd8ab"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "e01464cd-bf75-4d4a-8243-a4604d675fec",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "899a2db7-60b0-4ca7-a07e-777edaef98ab",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 150,
"height": 121,
"platformSettings": {},
"subMetas": {
"btn_audio0": {
"ver": "1.0.4",
"uuid": "1c70d9eb-1034-4997-a6fb-aea058d39beb",
"rawTextureUuid": "899a2db7-60b0-4ca7-a07e-777edaef98ab",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 150,
"height": 121,
"rawWidth": 150,
"rawHeight": 121,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7fe0cda8-17b1-492a-b87c-14a682d1f838",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 150,
"height": 121,
"platformSettings": {},
"subMetas": {
"btn_audio1": {
"ver": "1.0.4",
"uuid": "69eb205c-4901-452f-b4c8-989c1227830e",
"rawTextureUuid": "7fe0cda8-17b1-492a-b87c-14a682d1f838",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 14.5,
"offsetY": 0,
"trimX": 29,
"trimY": 0,
"width": 121,
"height": 121,
"rawWidth": 150,
"rawHeight": 121,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "cabcdd1a-b71e-4382-9ffd-8a474bcc2129",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 150,
"height": 121,
"platformSettings": {},
"subMetas": {
"btn_audio2": {
"ver": "1.0.4",
"uuid": "7b2bd629-77ac-4fc8-9ee7-569ed0ed3a59",
"rawTextureUuid": "cabcdd1a-b71e-4382-9ffd-8a474bcc2129",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 14.5,
"offsetY": 0,
"trimX": 29,
"trimY": 0,
"width": 121,
"height": 121,
"rawWidth": 150,
"rawHeight": 121,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "op_audio",
"_objFlags": 0,
"_native": "",
"_duration": 0.26666666666666666,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "1c70d9eb-1034-4997-a6fb-aea058d39beb"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "69eb205c-4901-452f-b4c8-989c1227830e"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "7b2bd629-77ac-4fc8-9ee7-569ed0ed3a59"
}
},
{
"frame": 0.21666666666666667,
"value": {
"__uuid__": "1c70d9eb-1034-4997-a6fb-aea058d39beb"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "1c70d9eb-1034-4997-a6fb-aea058d39beb"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "990c93ef-ffbd-4d38-8e32-a403d2f4ff97",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2303c16e-22bf-4edd-ae0d-44869fd75df0",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"btn_1": {
"ver": "1.0.4",
"uuid": "0bf14665-ae47-49d9-8b19-1a0f3b38036e",
"rawTextureUuid": "2303c16e-22bf-4edd-ae0d-44869fd75df0",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ad2bfb68-de98-4902-b035-3b40f23ebf2a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"btn_2": {
"ver": "1.0.4",
"uuid": "64df225a-c5d8-417e-b93a-06034a128796",
"rawTextureUuid": "ad2bfb68-de98-4902-b035-3b40f23ebf2a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "58fe3a70-083e-4c83-892e-7685eba8c82b",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"btn_3": {
"ver": "1.0.4",
"uuid": "e8ffef6e-2426-4de5-b185-2bd4ec3556a8",
"rawTextureUuid": "58fe3a70-083e-4c83-892e-7685eba8c82b",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "f94c6c62-0fb0-4d41-9fad-4b58136853ae",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"btn_4": {
"ver": "1.0.4",
"uuid": "cad38fe3-a460-40bf-9b80-d57ee36ce2d6",
"rawTextureUuid": "f94c6c62-0fb0-4d41-9fad-4b58136853ae",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "ques_audio",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "0bf14665-ae47-49d9-8b19-1a0f3b38036e"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "64df225a-c5d8-417e-b93a-06034a128796"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "e8ffef6e-2426-4de5-b185-2bd4ec3556a8"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "cad38fe3-a460-40bf-9b80-d57ee36ce2d6"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "0bf14665-ae47-49d9-8b19-1a0f3b38036e"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "802d460c-c4c2-4976-bbf0-14feb3750881",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "a7bae982-984d-487c-b12a-d53623796005",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"__type__": "cc.AnimationClip",
"_name": "audio_big",
"_objFlags": 0,
"_native": "",
"_duration": 0.35,
"sample": 60,
"speed": 1,
"wrapMode": 2,
"curveData": {
"comps": {
"cc.Sprite": {
"spriteFrame": [
{
"frame": 0,
"value": {
"__uuid__": "62f365b3-09fd-40b6-8227-f0cc48d2ca4a"
}
},
{
"frame": 0.08333333333333333,
"value": {
"__uuid__": "bec42e56-98de-4cf2-afa0-20d383ba4758"
}
},
{
"frame": 0.16666666666666666,
"value": {
"__uuid__": "2e26f95f-430d-4f06-8124-9da0e739a9e0"
}
},
{
"frame": 0.25,
"value": {
"__uuid__": "47bfa6e9-d33a-4d8a-a261-6189176ee7b8"
}
},
{
"frame": 0.3333333333333333,
"value": {
"__uuid__": "62f365b3-09fd-40b6-8227-f0cc48d2ca4a"
}
}
]
}
}
},
"events": []
}
\ No newline at end of file
{
"ver": "2.1.0",
"uuid": "0dab7b62-6bff-451d-bce3-55f0509129f9",
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "0c89dc58-eab0-43d4-92ee-c3affb960f50",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 162,
"height": 167,
"platformSettings": {},
"subMetas": {
"btn_tigan": {
"ver": "1.0.4",
"uuid": "62f365b3-09fd-40b6-8227-f0cc48d2ca4a",
"rawTextureUuid": "0c89dc58-eab0-43d4-92ee-c3affb960f50",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 162,
"height": 167,
"rawWidth": 162,
"rawHeight": 167,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "5efc281d-c4f4-44fc-b0df-8c28d0047928",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 162,
"height": 167,
"platformSettings": {},
"subMetas": {
"btn_tigan2": {
"ver": "1.0.4",
"uuid": "bec42e56-98de-4cf2-afa0-20d383ba4758",
"rawTextureUuid": "5efc281d-c4f4-44fc-b0df-8c28d0047928",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 162,
"height": 167,
"rawWidth": 162,
"rawHeight": 167,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "e3034287-f01f-418e-8a3b-eca9e25e065a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 162,
"height": 167,
"platformSettings": {},
"subMetas": {
"btn_tigan3": {
"ver": "1.0.4",
"uuid": "2e26f95f-430d-4f06-8124-9da0e739a9e0",
"rawTextureUuid": "e3034287-f01f-418e-8a3b-eca9e25e065a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 162,
"height": 167,
"rawWidth": 162,
"rawHeight": 167,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ddc293a8-9092-41af-978e-4f49fc801159",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 162,
"height": 167,
"platformSettings": {},
"subMetas": {
"btn_tigan4": {
"ver": "1.0.4",
"uuid": "47bfa6e9-d33a-4d8a-a261-6189176ee7b8",
"rawTextureUuid": "ddc293a8-9092-41af-978e-4f49fc801159",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 162,
"height": 167,
"rawWidth": 162,
"rawHeight": 167,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "1.1.2",
"uuid": "892ff52a-178d-4a9e-874c-b17a22eae615",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "4fa481d7-28d6-461c-919b-2d3c6a521dce",
"downloadMode": 0,
"duration": 0.173333,
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.0.1",
"uuid": "a262fe60-ad0a-4177-8075-70541510bdfd",
"downloadMode": 0,
"duration": 2.115917,
"subMetas": {}
}
\ No newline at end of file
// Learn cc.Class:
// - https://docs.cocos.com/creator/manual/en/scripting/class.html
// Learn Attribute:
// - https://docs.cocos.com/creator/manual/en/scripting/reference/attributes.html
// Learn life-cycle callbacks:
// - https://docs.cocos.com/creator/manual/en/scripting/life-cycle-callbacks.html
// import { getSprNode } from "./util";
import { getSprNode, playAudioByUrl, showBtnAnima, getScaleRateBy2Node, localPosTolocalPos, randomSortByArr, loadDragonBones, playAudio, showTrebleFirework, getSprNodeByUrl, setSprNodeMaxLen, delayCall, asyncDelay, RandomInt, exchangeNodePos, onHomeworkFinish} from "./util";
cc.Class({
extends: cc.Component,
properties: {
baseWidth: {
default: 1280,
type: cc.Integer
},
baseHeight: {
default: 720,
type: cc.Integer
}
},
onLoad() {
cc.debug.setDisplayStats(false);
this.initSceneData();
this.initSize();
},
initSceneData() {
this._imageResList = [];
this._audioResList = [];
this._animaResList = [];
},
_designSize: null,
_frameSize: null,
_mapScaleMin: null,
_mapScaleMax: null,
_cocosScale: null,
canvas: null,
initSize() {
// 注意cc.winSize只有在适配后(修改fitHeight/fitWidth后)才能获取到正确的值,因此使用cc.getFrameSize()来获取初始的屏幕大小
let screen_size = cc.view.getFrameSize().width / cc.view.getFrameSize().height
let design_size = cc.Canvas.instance.designResolution.width / cc.Canvas.instance.designResolution.height
let f = screen_size >= design_size
cc.Canvas.instance.fitHeight = f
cc.Canvas.instance.fitWidth = !f
const frameSize = cc.view.getFrameSize();
this._frameSize = frameSize;
this._designSize = cc.view.getDesignResolutionSize();
let sx = cc.winSize.width / frameSize.width;
let sy = cc.winSize.height / frameSize.height;
this._cocosScale = Math.min(sx, sy);
sx = frameSize.width / this._designSize.width;
sy = frameSize.height / this._designSize.height;
this._mapScaleMin = Math.min(sx, sy) * this._cocosScale;
this._mapScaleMax = Math.max(sx, sy) * this._cocosScale;
this.canvas = cc.find('Canvas');
// cc.log('cc.Canvas: ', cc.Canvas);
},
start() {
let getData = this.getData.bind(this);
if (window && window.courseware) {
getData = window.courseware.getData;
}
getData((data) => {
console.log('data:', data);
this.data = data || this.getDefaultData();
this.preloadItem()
})
},
_imageResList: null,
_audioResList: null,
_animaResList: null,
preloadItem() {
this.addPreloadImage();
this.addPreloadAudio();
this.addPreloadAnima();
this.preload();
},
getData(func) {
if (window && window.courseware) {
window.courseware.getData(func, 'dfzx_cocos_dqq');
return;
}
const middleLayer = cc.find('middleLayer');
if (middleLayer) {
const middleLayerComponent = middleLayer.getComponent('middleLayer');
middleLayerComponent.getData(func);
return;
}
func(this.getDefaultData());
},
getDefaultData() {
const dataJson = '{"groupArr":[{"questionArr":[{"questionType":"pic","answerType":"text","answerArr":[{"text":"11111","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/fbe2f23b9eb191a9330f99800e0d54d5.mp3"},{"text":"22222","pic_url":"","answerRight":"1"},{"text":"33 33333 ","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/cf5077b8cbcaa1dc664df569d4af6043.mp3"},{"text":"444444","pic_url":"","answerRight":"0"}],"pic_url":"http://staging-teach.cdn.ireadabc.com/9d114554c4760ff35f1ff5479504a531.jpg","audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3"}]},{"questionArr":[{"questionType":"text","answerType":"pic","answerArr":[{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/fe229e6b32f385fb8fe5eb9ec5843c66.jpg","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/b39dfb2221c22175d3e8ac972923a82b.mp3"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/9c5fa50efd7a004f24ea7fcbcf81080e.jpg","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/4293d4b1deb0389036434a1101a35178.mp3"}],"text":"a a aaaaaa aa a aaaa a a aaaaaaa aaaaa aaa aaaaaa.","audio_url":"http://staging-teach.cdn.ireadabc.com/0ee754beb094936dcbbc64ad6ee5c71c.mp3"},{"questionType":"video","answerType":"audio","answerArr":[{"text":"","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/81c827cd941d1c5e4557569aa8153be7.mp3"},{"text":"","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/3501f776900fe1e1a3b5f6302e156dd6.mp3"}],"video_url":"http://staging-teach.cdn.ireadabc.com/f309f8dd44d59c65e44f375f818871e1.mp4"}]},{"questionArr":[{"questionType":"audio","answerType":"text","answerArr":[{"text":"2222","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/263d9cbaef7fbf251f9e3703130fb763.mp3"},{"text":"33333","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/4edd6cd36d36dd5a16348db81044bda7.mp3"},{"text":"4444","pic_url":"","answerRight":"0"},{"text":"2324 234","pic_url":"","answerRight":"1"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/e02d24c775a3f77c6967869435b11f7c.mp3"},{"questionType":"audio","answerType":"pic","answerArr":[{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/9d114554c4760ff35f1ff5479504a531.jpg","answerRight":"1"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/bf26f92e4f0557ad70ac27006855dae9.jpg","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/be8ec5cee7a3074440478b00a4a84f5e.png","answerRight":"0"},{"text":"","pic_url":"http://staging-teach.cdn.ireadabc.com/bd82aae5df96886a246106562015e496.png","answerRight":"0"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/5de85e459a5e5df4823896d38e1066b9.mp3"},{"questionType":"audio","answerType":"audio","answerArr":[{"text":"","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/28a42e3e77e023c8118624bb8351e7b2.mp3"},{"text":"","pic_url":"","answerRight":"1","audio_url":"http://staging-teach.cdn.ireadabc.com/4edd6cd36d36dd5a16348db81044bda7.mp3"},{"text":"","pic_url":"","answerRight":"0","audio_url":"http://staging-teach.cdn.ireadabc.com/263d9cbaef7fbf251f9e3703130fb763.mp3"}],"audio_url":"http://staging-teach.cdn.ireadabc.com/f51e3fedc88aa69a99f6ef579f7de047.mp3"}]}]}';
const data1 = JSON.parse(dataJson);
return data1;
const data = {
bgItem: {
rect: {
height: 380,
width: 675.56,
x: 160.72,
y: 0
},
// url: "http://staging-teach.cdn.ireadabc.com/b31c5881ea5f607c1d3540029a7d29c7.png"
url: "http://staging-teach.cdn.ireadabc.com/756b0a8de4cb84ed70e70d60f87a5901.jpg"
},
hotZoneItemArr: [
{
id: 1595919608244,
imgScale: 1,
index: 0,
itemType: "rect",
mapScale: 0.903125,
rect: {
height: 120.84,
width: 115.99,
x: 378.68,
y: 191.3
},
skeJsonData: {
name: "finish1_ske.json",
url: "http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json"
},
texJsonData: {
name: "finish1_tex.json",
url: "http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json"
},
texPngData: {
name: "finish1_tex.png",
url: "http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png"
}
}
],
picArr: [
{
audio_url: "http://staging-teach.cdn.ireadabc.com/0128a59057e63c4c6b4b96556d077a98.mp3",
pic_url: "http://staging-teach.cdn.ireadabc.com/18f2a029e02d679da8d42746daea228f.png",
text: "1111",
}
]
}
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
data.picArr = data.picArr.concat(data.picArr);
return data;
},
preload() {
const preloadArr = this._imageResList.concat(this._audioResList).concat(this._animaResList);
cc.assetManager.loadAny(preloadArr, null, null, (err, data) => {
// console.log(' preload data, ', data);
this.loadEnd();
if (window && window["air"]) {
window["air"].hideAirClassLoading();
}
});
},
addPreloadImage() {
if (this.data.pic_url) {
this._imageResList.push({ url: this.data.pic_url });
}
if (this.data.bgItem) {
this._imageResList.push({ url: this.data.bgItem.url });
}
if (!this.data.hotZoneItemArr) {
return;
}
this.data.hotZoneItemArr.forEach((item) => {
if (item.pic_url) {
this._imageResList.push({ url: item.pic_url });
}
})
},
addPreloadAudio() {
if (this.data.questionArr) {
const arr = this.data.questionArr;
for (let i=0 ;i<arr.length; i++) {
this._audioResList.push({url: arr[i].audio_url || ''});
this._audioResList.push({url: arr[i].video_url || ''});
}
}
},
addPreloadAnima() {
if (!this.data.hotZoneItemArr) {
return;
}
this.data.hotZoneItemArr.forEach((item) => {
if (item.skeJsonData) {
this._animaResList.push({ url: item.skeJsonData.url || '' });
this._animaResList.push({ url: item.texJsonData.url || ''});
this._animaResList.push({ url: item.texPngData.url || ''});
}
})
},
loadEnd() {
this.initData();
this.initView();
// this.initMusic();
},
initMusic() {
cc.assetManager.loadRemote(this.data.bg_audio_url, (err, clip) => {
cc.audioEngine.setMusicVolume(0.3);
const audioID = cc.audioEngine.playMusic(clip, true);
});
},
curGroupIndex: null,
curQuestionIndex: null,
curQuestionData: null,
initData() {
this.curGroupIndex = 0;
this.curQuestionIndex = 0;
this.setCurGroupAndQuestion()
console.log('this.curQuestionData', this.curQuestionData)
this.initAudioEffect();
},
curGroup: null,
setCurGroupAndQuestion() {
this.curGroup = this.data.groupArr[this.curGroupIndex];
if (!this.curGroup) {
this.gameEnd();
} else {
this.curQuestionIndex = 0;
this.setCurQuestionData();
}
},
setCurQuestionData() {
this.curQuestionData = this.curGroup.questionArr[this.curQuestionIndex];
if (!this.curQuestionData) {
this.hideVideo();
this.showBigStar();
}
},
hideVideo() {
this.videoNode.active = false;
this.videoNode.player.pause();
this.videoNode.pauseBtn.active = false;
this.videoNode.playBtn.active = true;
},
rightClip: null,
wrongClip: null,
bigStarClip: null,
btnClip: null,
finishClip: null,
selectClip: null,
starCountClip: null,
initAudioEffect() {
this.rightClip = cc.find('Canvas/res/audio/right').getComponent(cc.AudioSource).clip;
this.wrongClip = cc.find('Canvas/res/audio/wrong').getComponent(cc.AudioSource).clip;
this.bigStarClip = cc.find('Canvas/res/audio/big_star').getComponent(cc.AudioSource).clip;
this.btnClip = cc.find('Canvas/res/audio/btn').getComponent(cc.AudioSource).clip;
this.finishClip = cc.find('Canvas/res/audio/finish').getComponent(cc.AudioSource).clip;
this.selectClip = cc.find('Canvas/res/audio/select').getComponent(cc.AudioSource).clip;
this.starCountClip = cc.find('Canvas/res/audio/star_count').getComponent(cc.AudioSource).clip;
},
initView() {
this.initQuestion();
this.initOption();
this.initBtn();
this.initIcon();
this.initMask();
this.setCurQuestion();
this.setCurOption();
this.initStar();
},
bigStarArr: null,
initStar() {
const gArr = this.data.groupArr;
if (gArr.length <= 1) {
return;
}
this.cleanStar();
this.bigStarArr = [];
let baseX = this.canvas.width / 2 - 80 * this._mapScaleMin;
let baseY = this.canvas.height / 2 - 80 * this._mapScaleMin;
let disH = 80 * this._mapScaleMin;
let disScale = 1;
if (gArr.length > 5) {
disH = (400 / gArr.length) * this._mapScaleMin;
disScale = 5 / gArr.length;
}
for (let i = 0; i < gArr.length; i++) {
const starBg = getSprNode('star_bg');
this.canvas.addChild(starBg, 10);
starBg.x = baseX;
starBg.y = baseY - i * disH;
starBg.scale = disScale;
const starTop = getSprNode('star');
starBg.addChild(starTop);
starTop.active = false;
starBg.star = starTop;
const starBig = getSprNode('icon_bigstar');
starTop.addChild(starBig);
starBig.angle = -90;
starBg.starBig = starBig;
this.bigStarArr.push(starBg);
}
console.log("bigStarArr: ", this.bigStarArr);
},
cleanStar() {
if (this.bigStarArr && this.bigStarArr.length > 0) {
for (let i=0; i<this.bigStarArr.length; i++) {
this.bigStarArr[i].removeFromParent();
}
}
},
showBigStar() {
if (!this.bigStarArr || this.bigStarArr.length <= 0) {
this.checkGameEnd();
return;
}
const bigStarBg = this.bigStarArr[this.curGroupIndex];
const starBig = bigStarBg.starBig;
starBig.scale = 1;
const star = bigStarBg.star;
star.active = true;
star.scaleX = 0.7 / bigStarBg.scale;
star.scaleY = 1 / bigStarBg.scale;
star.angle = 90;
const canvas = cc.find('Canvas');
const startPos = exchangeNodePos(star.parent, canvas, cc.v2(0, -canvas.height / 2));
const middlePos = exchangeNodePos(star.parent, canvas, cc.v2(0, -canvas.height / 4));
star.x = startPos.x;
star.y = startPos.y - starBig.height;
console.log('middlePos = ' + JSON.stringify(middlePos));
const time = 1;
cc.tween(star)
.to(0.3, { y: middlePos.y + 80 }, { easing: 'quadOut' })
.to(0.1, { y: middlePos.y + 40, scaleX: 1.2 / bigStarBg.scale, scaleY: 0.8 / bigStarBg.scale }, { easing: 'quadOut' })
.to(0.1, { y: middlePos.y, scaleX: 1 / bigStarBg.scale, scaleY: 1 / bigStarBg.scale }, { easing: 'quadOut' })
.delay(0.1)
.to(0.8, { angle: -720, scale: 1 })
.start();
cc.tween(star)
.delay(0.6)
.to(0.8, { x: 0 }, { easing: 'quadIn' })
.start();
cc.tween(star)
.delay(0.6)
.to(0.8, { y: 0 }, { easing: 'quadOut' })
.start();
cc.tween(starBig)
.delay(0.6)
.to(0.8, { scale: 0 }, { easing: 'quadOut' })
.call(() => {
this.checkGameEnd();
playAudio(this.starCountClip);
})
.start();
playAudio(this.bigStarClip);
},
checkGameEnd() {
this.curGroupIndex ++;
this.setCurGroupAndQuestion();
if (!this.curQuestionData) {
// this.gameEnd();
return;
}
this.showChangeQuesAnim();
},
checkBtn: null,
initBtn() {
const checkBtn = getSprNode("btn_check");
checkBtn.scale = this._mapScaleMin;
this.canvas.addChild(checkBtn);
checkBtn.x = -500 * this._mapScaleMin;
checkBtn.y = -35 * this._mapScaleMin;
checkBtn.baseX = checkBtn.x;
checkBtn.baseY = checkBtn.y;
checkBtn.opacity = 0;
this.checkBtn = checkBtn;
checkBtn.on(cc.Node.EventType.TOUCH_START, () => {
if (checkBtn.opacity == 0) {
return;
}
showBtnAnima(checkBtn);
this.checkBtnClick();
})
},
refreshCheckBtn() {
this.checkBtn.opacity = 0;
const arr = this.curOptionArr;
for (let i=0; i<arr.length; i++) {
if (arr[i].light.opacity > 254) {
this.checkBtn.opacity = 255;
return;
}
}
},
tryagain: null,
initIcon() {
const icon = getSprNode("try_again");
icon.opacity = 0;
icon.scale = this._mapScaleMin;
this.canvas.addChild(icon);
this.tryagain = icon;
},
showTryAgain() {
const time = 0.3;
cc.tween(this.tryagain)
.to(time, {opacity: 255}, {easing: "cubicOut"})
.delay(0.3)
.to(time, {opacity: 0}, {easing: "cubicIn"})
.start();
},
initQuestion() {
this.initPicQuestion();
this.initTextQuestion();
this.initVideoQuestion();
this.initAudioQuestion();
},
quesPicBg: null,
initPicQuestion() {
const picBg = getSprNode("ques_pic_bg");
this.canvas.addChild(picBg);
picBg.scale = this._mapScaleMin;
picBg.y = 130 * this._mapScaleMin
this.quesPicBg = picBg;
picBg.active = false;
this.addQuesAudio(picBg)
},
quesTextBg: null,
initTextQuestion() {
const picBg = getSprNode("ques_pic_bg");
this.canvas.addChild(picBg);
picBg.scale = this._mapScaleMin;
picBg.y = 130 * this._mapScaleMin
this.quesTextBg = picBg;
const labelNode = new cc.Node();
labelNode.parent = picBg;
const label = labelNode.addComponent(cc.RichText);
const size = 80
label.font = cc.find('Canvas/res/font/Berlin-Sans-FB').getComponent(cc.Label).font;
// label.string = `<outline color=#a83c13 width=2><size=${size}><color=#ffffff>${this.data.title || " " }</color></size></outline>`
// label.string = `<size=${size}><color=#751e00>${this.curGroup.title }</color></size>`
label.lineHeight = size;
label.horizontalAlign = cc.macro.TextAlignment.CENTER
label.maxWidth = 648;
picBg.label = label;
picBg.active = false;
this.addQuesAudio(picBg)
},
quesVideoBg: null,
videoNode: null,
initVideoQuestion() {
const picBg = getSprNode("ques_pic_bg");
this.canvas.addChild(picBg);
picBg.scale = this._mapScaleMin;
picBg.y = 130 * this._mapScaleMin
this.quesVideoBg = picBg;
const videoNode = new cc.Node();
const vPlayer = videoNode.addComponent(cc.VideoPlayer);
picBg.addChild(videoNode);
videoNode.width = 678;
videoNode.height = 396;
this.videoNode = videoNode;
picBg.video = vPlayer;
const btnNode = new cc.Node();
picBg.addChild(btnNode);
btnNode.x = picBg.width / 2 + 50;
const playBtn = getSprNode("video_play");
btnNode.addChild(playBtn);
const pauseBtn = getSprNode("video_pause");
btnNode.addChild(pauseBtn);
pauseBtn.active = false;
videoNode.player = vPlayer;
videoNode.playBtn = playBtn;
videoNode.pauseBtn = pauseBtn;
playBtn.on(cc.Node.EventType.TOUCH_START, () => {
vPlayer.play();
playBtn.active = false;
pauseBtn.active = true;
})
pauseBtn.on(cc.Node.EventType.TOUCH_START, () => {
vPlayer.pause();
pauseBtn.active = false;
playBtn.active = true;
})
videoNode.on('completed', () => {
pauseBtn.active = false;
playBtn.active = true;
})
picBg.active = false;
},
quesAudioBg: null,
initAudioQuestion() {
const audioNode = new cc.Node();
audioNode.active = false;
this.canvas.addChild(audioNode);
audioNode.x = 440 * this._mapScaleMin;
audioNode.y = -60 * this._mapScaleMin;
this.quesAudioBg = audioNode;
const audioAnimNode = cc.instantiate(cc.find("Canvas/res/anim/audio_big"));
audioNode.addChild(audioAnimNode);
const iconTop = getSprNode('audio_big')
audioNode.addChild(iconTop);
iconTop.opacity = 255;
iconTop.addComponent(cc.BlockInputEvents);
iconTop.on(cc.Node.EventType.TOUCH_START, () => {
if (iconTop.opacity == 0) {
return;
}
if (!audioNode.audioClip) {
return;
}
const anim = audioAnimNode.getComponent(cc.Animation);
anim.play('audio_big');
iconTop.opacity = 0;
audioAnimNode.opacity = 255;
if (audioNode.audioClip) {
playAudio(audioNode.audioClip, () => {
iconTop.opacity = 255;
audioAnimNode.opacity = 0;
anim.stop();
});
}
})
},
addQuesAudio(bg) {
const audioNode = new cc.Node();
bg.addChild(audioNode);
audioNode.x = bg.width / 2 + 50;
const audioAnimNode = cc.instantiate(cc.find("Canvas/res/anim/ques_audio"));
audioNode.addChild(audioAnimNode);
const iconTop = getSprNode('ques_audio')
audioNode.addChild(iconTop);
iconTop.opacity = 255;
iconTop.addComponent(cc.BlockInputEvents);
iconTop.on(cc.Node.EventType.TOUCH_START, () => {
if (iconTop.opacity == 0) {
return;
}
const anim = audioAnimNode.getComponent(cc.Animation);
anim.play('ques_audio');
iconTop.opacity = 0;
audioAnimNode.opacity = 255;
if (audioNode.audioClip) {
playAudio(audioNode.audioClip, () => {
iconTop.opacity = 255;
audioAnimNode.opacity = 0;
anim.stop();
});
}
})
bg.audioNode = audioNode;
},
initOption() {
this.initPicOption();
this.initAudioOption();
this.initTextOption();
this.initPicOptionBig();
this.initAudioOptionBig();
this.initTextOptionBig();
},
optionPicBgArr: null,
initPicOption() {
// console.log('this.data: ', this.data);
this.optionPicBgArr = [];
for (let i=0; i<4; i++) {
const pic = this.getOnePicOption();
this.canvas.addChild(pic);
pic.scale = this._mapScaleMin;
pic.y = -235 * this._mapScaleMin;
this.optionPicBgArr.push(pic);
}
},
optionPicBgBigArr: null,
initPicOptionBig() {
this.optionPicBgBigArr = [];
const baseX = -380 * this._mapScaleMin;
const disW = 440 * this._mapScaleMin;
let baseY = 170 * this._mapScaleMin;
const disH = 350 * this._mapScaleMin;
let count = 0;
for (let i=0; i<4; i++) {
if (i==2) {
count = 0;
baseY -= disH;
}
const pic = this.getOnePicOption(true);
this.canvas.addChild(pic);
pic.scale = this._mapScaleMin;
pic.x = baseX + count * disW;
pic.y = baseY;
this.optionPicBgBigArr.push(pic);
count ++;
}
},
getOnePicOption(isBig = false) {
const picBgParent = new cc.Node();
let lightResName = "option_pic_bg_l";
let bgResName = "option_pic_bg";
if (isBig) {
lightResName = "op_pic_bg_big_l";
bgResName = "op_pic_bg_big";
}
const light = getSprNode(lightResName);
picBgParent.addChild(light);
light.opacity = 0;
picBgParent.light = light;
const picBg = getSprNode(bgResName);
picBgParent.addChild(picBg);
picBgParent.picBg = picBg;
picBgParent.width = picBg.width;
picBgParent.height = picBg.height;
const soundNode = new cc.Node();
picBgParent.addChild(soundNode);
picBgParent.soundIcon = soundNode;
const soundIconAnim = cc.instantiate(cc.find("Canvas/res/anim/laba"))
soundNode.addChild(soundIconAnim);
soundIconAnim.opacity = 0;
const soundIconTop = getSprNode('btn_laba')
soundNode.addChild(soundIconTop);
soundIconTop.opacity = 255;
soundNode.x = picBgParent.width / 2 - soundIconTop.width / 2;
soundNode.y = picBgParent.height / 2 //- soundIconTop.height / 2;
soundNode.active = false;
picBgParent.active = false;
picBgParent.on(cc.Node.EventType.TOUCH_START, () => {
if( light.opacity == 0 ) {
light.opacity = 255;
playAudio(this.selectClip);
} else {
light.opacity = 0;
}
this.refreshCheckBtn();
})
soundIconTop.addComponent(cc.BlockInputEvents);
soundIconTop.on(cc.Node.EventType.TOUCH_START, () => {
const anim = soundIconAnim.getComponent(cc.Animation);
anim.play('laba');
soundIconTop.opacity = 0;
soundIconAnim.opacity = 255;
if (soundNode.audioClip) {
playAudio(soundNode.audioClip, () => {
soundIconTop.opacity = 255;
soundIconAnim.opacity = 0;
anim.stop();
});
}
})
return picBgParent;
},
addIconRight(bg) {
const px = bg.width / 2;
const py = -bg.height / 2 ;
const worldPos = bg.convertToWorldSpaceAR(cc.v2(px, py));
const localPos = this.canvas.convertToNodeSpaceAR(worldPos);
const iconRight = getSprNode('icon_right');
iconRight.scale = this._mapScaleMin;
this.canvas.addChild(iconRight, 1);
iconRight.x = localPos.x;
iconRight.y = localPos.y + 50 * this._mapScaleMin;
bg.iconRight = iconRight;
this.showOneFirework(cc.v2(0, -bg.height / 3), bg, cc.find('paperBase').children, 200, 300, 20, 1);
},
optionAudioBgArr: null,
initAudioOption() {
this.optionAudioBgArr = [];
for (let i=0; i<4; i++) {
const audio = this.getOneAudioOption();
this.canvas.addChild(audio);
audio.scale = this._mapScaleMin;
audio.y = -235 * this._mapScaleMin;
this.optionAudioBgArr.push(audio);
}
},
optionAudioBgBigArr: null,
initAudioOptionBig() {
this.optionAudioBgBigArr = [];
const baseX = -380 * this._mapScaleMin;
const disW = 440 * this._mapScaleMin;
let baseY = 170 * this._mapScaleMin;
const disH = 350 * this._mapScaleMin;
let count = 0;
for (let i=0; i<4; i++) {
if (i==2) {
count = 0;
baseY -= disH;
}
const audio = this.getOneAudioOption(true);
this.canvas.addChild(audio);
audio.scale = this._mapScaleMin;
audio.x = baseX + count * disW;
audio.y = baseY;
this.optionAudioBgBigArr.push(audio);
count ++;
}
},
optionTextBgArr: null,
initTextOption() {
this.optionTextBgArr = [];
for (let i=0; i<4; i++) {
const textOption = this.getOneTextOption();
this.canvas.addChild(textOption);
textOption.scale = this._mapScaleMin;
// textOption.y = -235 * this._mapScaleMin;
this.optionTextBgArr.push(textOption);
}
},
optionTextBgBigArr: null,
initTextOptionBig() {
const baseX = -180 * this._mapScaleMin;
const disW = 100 * this._mapScaleMin;
let baseY = 220 * this._mapScaleMin;
const disH = 150 * this._mapScaleMin;
this.optionTextBgBigArr = [];
for (let i=0; i<4; i++) {
const textOption = this.getOneTextOption(true);
this.canvas.addChild(textOption);
textOption.scale = this._mapScaleMin;
textOption.x = baseX;
textOption.y = baseY - i * disH;
this.optionTextBgBigArr.push(textOption);
}
},
getOneAudioOption(isBig=false) {
let lightResName = "option_pic_bg_l";
let bgResName = "option_pic_bg";
if (isBig) {
lightResName = "op_pic_bg_big_l";
bgResName = "op_pic_bg_big";
}
const audioBgNode = new cc.Node();
const light = getSprNode(lightResName);
audioBgNode.addChild(light);
light.opacity = 0;
audioBgNode.light = light;
const picBg = getSprNode(bgResName);
audioBgNode.addChild(picBg);
audioBgNode.picBg = picBg;
audioBgNode.width = picBg.width;
audioBgNode.height = picBg.height;
const animNode = cc.instantiate(cc.find("Canvas/res/anim/op_audio"))
audioBgNode.addChild(animNode);
animNode.anchorX = 0.6;
const animTop = getSprNode('op_audio');
audioBgNode.addChild(animTop);
animTop.anchorX = 0.6;
const anim = animNode.getComponent(cc.Animation);
animNode.opacity = 0;
audioBgNode.anim = anim;
audioBgNode.animNode = animNode;
audioBgNode.animTop = animTop;
audioBgNode.showAnim = () => {
this.playItemAnim(audioBgNode);
cc.audioEngine.stop(audioBgNode.audioId);
}
audioBgNode.stopAnim = () => {
cc.audioEngine.stop(audioBgNode.audioId);
this.stopItemAnim(audioBgNode);
}
audioBgNode.on(cc.Node.EventType.TOUCH_START, () => {
if( light.opacity == 0 ) {
light.opacity = 255;
playAudio(this.selectClip);
audioBgNode.showAnim();
if (audioBgNode.audioClip) {
audioBgNode.audioId = playAudio(audioBgNode.audioClip, () => {
this.stopItemAnim(audioBgNode);
});
}
} else {
light.opacity = 0;
audioBgNode.stopAnim();
}
this.refreshCheckBtn();
});
audioBgNode.active = false;
return audioBgNode;
},
getOneTextOption(isBig=false) {
let lightResName = "option_text_bg_l";
let bgResName = "option_text_bg";
if (isBig) {
lightResName = "op_text_bg_big_l";
bgResName = "op_text_bg_big";
}
const textBgParent = new cc.Node();
textBgParent.active = false;
const light = getSprNode(lightResName);
textBgParent.addChild(light);
light.opacity = 0;
textBgParent.light = light;
const textBg = getSprNode(bgResName);
textBgParent.addChild(textBg);
textBgParent.textBg = textBg;
textBgParent.width = textBg.width;
textBgParent.height = textBg.height;
const labelNode = new cc.Node();
labelNode.parent = textBgParent;
const label = labelNode.addComponent(cc.Label);
label.fontSize = 56;
label.lineHeight = 56;
if (isBig) {
label.fontSize = 64;
label.lineHeight = 64;
}
label.font = cc.find('Canvas/res/font/Berlin-Sans-FB').getComponent(cc.Label).font;
textBgParent.label = label;
const color = new cc.Color();
cc.Color.fromHEX(color, '#023659' );
labelNode.color = color;
const soundNode = new cc.Node();
textBgParent.addChild(soundNode);
textBgParent.soundIcon = soundNode;
const soundIconAnim = cc.instantiate(cc.find("Canvas/res/anim/laba"))
soundNode.addChild(soundIconAnim);
soundIconAnim.opacity = 0;
const soundIconTop = getSprNode('btn_laba')
soundNode.addChild(soundIconTop);
soundIconTop.opacity = 255;
soundNode.x = textBgParent.width / 2 - 15; // - soundIconTop.width / 2;
soundNode.y = textBgParent.height / 2 - 15; //- soundIconTop.height / 2;
soundNode.active = false;
textBgParent.on(cc.Node.EventType.TOUCH_START, () => {
if( light.opacity == 0 ) {
light.opacity = 255;
playAudio(this.selectClip);
} else {
light.opacity = 0;
}
this.refreshCheckBtn();
})
soundIconTop.addComponent(cc.BlockInputEvents);
soundIconTop.on(cc.Node.EventType.TOUCH_START, () => {
const anim = soundIconAnim.getComponent(cc.Animation);
anim.play('laba');
soundIconTop.opacity = 0;
soundIconAnim.opacity = 255;
if (soundNode.audioClip) {
playAudio(soundNode.audioClip, () => {
soundIconTop.opacity = 255;
soundIconAnim.opacity = 0;
anim.stop();
});
}
})
return textBgParent;
},
playItemAnim(item) {
item.anim.play();
item.animNode.opacity = 255;
item.animTop.opacity = 0;
},
stopItemAnim(item) {
item.animNode.opacity = 0;
item.animTop.opacity = 255;
},
setCurQuestion() {
switch(this.curQuestionData.questionType) {
case "pic":
this.setQuestionPic();
break;
case "text":
this.setQuestionText();
break;
case "video":
this.setQuestionVideo();
break;
case "audio":
this.setQuestionAudio();
break;
}
this.refreshCheckBtnPos();
},
refreshCheckBtnPos() {
if (this.curQuestionData.questionType == 'audio') {
this.checkBtn.x = 440 * this._mapScaleMin;
this.checkBtn.y = -240 * this._mapScaleMin;
} else {
this.checkBtn.x = this.checkBtn.baseX;
this.checkBtn.y = this.checkBtn.baseY;
}
},
curQuesBg: null,
setQuestionPic() {
this.curQuesBg = this.quesPicBg;
this.curQuesBg.active = true;
if (this.quesPicBg.pic) {
this.quesPicBg.pic.removeFromParent();
this.quesPicBg.pic = null;
}
if (this.curQuestionData.pic_url) {
getSprNodeByUrl(this.curQuestionData.pic_url, (spr) => {
const sprNode = spr.node;
setSprNodeMaxLen(sprNode, 678, 396);
this.quesPicBg.addChild(sprNode)
this.quesPicBg.pic = sprNode;
})
}
const audioNode = this.quesPicBg.audioNode;
audioNode.active = false;
audioNode.audioClip = null;
if (this.curQuestionData.audio_url) {
cc.assetManager.loadRemote(this.curQuestionData.audio_url, (err, audioClip) => {
audioNode.audioClip = audioClip;
});
audioNode.active = true;
}
},
setQuestionText() {
this.curQuesBg = this.quesTextBg;
this.curQuesBg.active = true;
const label = this.curQuesBg.label;
const size = 80;
label.string = `<size=${size}><color=#fff4b6>${this.curQuestionData.text}</color></size>`
const audioNode = this.curQuesBg.audioNode;
audioNode.active = false;
audioNode.audioClip = null;
if (this.curQuestionData.audio_url) {
cc.assetManager.loadRemote(this.curQuestionData.audio_url, (err, audioClip) => {
audioNode.audioClip = audioClip;
});
audioNode.active = true;
}
},
setQuestionVideo() {
this.curQuesBg = this.quesVideoBg;
this.curQuesBg.active = true;
this.videoNode.active = true;
if (this.curQuestionData.video_url) {
this.curQuesBg.video.remoteURL = this.curQuestionData.video_url;
}
},
setQuestionAudio() {
this.curQuesBg = this.quesAudioBg;
this.curQuesBg.active = true;
this.curQuesBg.audioClip = null;
if (this.curQuestionData.audio_url) {
cc.assetManager.loadRemote(this.curQuestionData.audio_url, (err, audioClip) => {
this.curQuesBg.audioClip = audioClip;
});
}
},
setCurOption() {
const arr = this.curQuestionData.answerArr;
const isBig = this.curQuestionData.questionType == 'audio';
switch(this.curQuestionData.answerType) {
case "pic":
this.setOptionPic(arr, isBig);
break;
case "audio":
this.setOptionAudio(arr, isBig);
break;
case "text":
this.setOptionText(arr, isBig);
break;
}
},
curOptionArr: null,
setOptionPic(arr, isBig=false) {
let opItemArr = this.optionPicBgArr;
if (isBig) {
opItemArr = this.optionPicBgBigArr;
}
this.curOptionArr = [];
const disW = 158 * this._mapScaleMin;
const baseX = -(arr.length - 1) * disW;
for (let i=0; i<arr.length; i++) {
opItemArr[i].active = true;
if (!isBig) {
opItemArr[i].x = baseX + i * disW * 2;
}
const picBg = opItemArr[i].picBg;
picBg.removeAllChildren();
const data = arr[i];
if (data.pic_url) {
getSprNodeByUrl, getSprNodeByUrl(data.pic_url, (spr) => {
let maxW = 280;
let maxH = 190;
if (isBig) {
maxW = 366;
maxH = 248;
}
setSprNodeMaxLen(spr.node, maxW, maxH);
console.log('spr: ', spr);
picBg.addChild(spr.node);
})
}
const soundIcon = opItemArr[i].soundIcon;
soundIcon.active = false;
soundIcon.audioClip = null;
opItemArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
soundIcon.audioClip = audioClip;
opItemArr[i].audioClip = audioClip;
});
soundIcon.active = true;
}
opItemArr[i].data = data;
this.curOptionArr.push(opItemArr[i]);
}
},
setOptionAudio(arr, isBig=false) {
let opItemArr = this.optionAudioBgArr;
if (isBig) {
opItemArr = this.optionAudioBgBigArr;
}
this.curOptionArr = [];
const disW = 158 * this._mapScaleMin;
const baseX = -(arr.length - 1) * disW;
for (let i=0; i<arr.length; i++) {
opItemArr[i].active = true;
if(!isBig) {
opItemArr[i].x = baseX + i * disW * 2;
}
const data = arr[i];
opItemArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
opItemArr[i].audioClip = audioClip;
});
}
opItemArr[i].data = data;
this.curOptionArr.push(opItemArr[i]);
}
},
setOptionAudioBig(arr) {
this.curOptionArr = [];
for (let i=0; i<arr.length; i++) {
this.optionAudioBgArr[i].active = true;
const data = arr[i];
this.optionAudioBgArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
this.optionAudioBgArr[i].audioClip = audioClip;
});
}
this.optionAudioBgArr[i].data = data;
this.curOptionArr.push(this.optionAudioBgArr[i]);
}
},
setOptionText(options, isBig=false) {
console.log(' in setOptionText, isBig: ', isBig);
let opItemArr = this.optionTextBgArr;
if (isBig) {
opItemArr = this.optionTextBgBigArr
}
this.curOptionArr = [];
const disW = 315 * this._mapScaleMin;
const disH = 120 * this._mapScaleMin;
const baseX = - disW ;
let baseY = -235 * this._mapScaleMin;
if (options.length > 2) {
baseY = -170 * this._mapScaleMin;
}
let count = 0;
for (let i=0; i<options.length; i++) {
if ( i == 2 ) {
baseY -= disH;
count = 0;
}
opItemArr[i].active = true;
if (!isBig) {
opItemArr[i].x = baseX + count * disW * 2;
opItemArr[i].y = baseY;
}
const data = options[i];
opItemArr[i].label.string = data.text;
opItemArr[i].label["_forceUpdateRenderData"](true);
if (opItemArr[i].label.node.width > opItemArr[i].width * 0.9) {
opItemArr[i].label.node.scale = opItemArr[i].width * 0.9 / opItemArr[i].label.node.width;
} else {
opItemArr[i].label.node.scale = 1;
}
const soundIcon = opItemArr[i].soundIcon;
soundIcon.active = false;
soundIcon.audioClip = null;
opItemArr[i].audioClip = null;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
soundIcon.audioClip = audioClip;
opItemArr[i].audioClip = audioClip;
});
soundIcon.active = true;
}
opItemArr[i].data = data;
this.curOptionArr.push(opItemArr[i]);
count++;
}
},
shakeArr: null,
wrongArr: null,
checkBtnClick() {
this.shakeArr = [];
this.wrongArr = [];
this.checkItemWrong();
if (this.wrongArr.length > 0) {
//有选错的
this.itemShake();
this.hideLight();
playAudio(this.wrongClip);
return;
}
const isRightAll = this.checkItemRightCount();
if (!isRightAll) {
// 有漏选的
this.itemShake();
this.hideLight();
playAudio(this.wrongClip);
return;
}
this.showAllRight();
this.showMask();
playAudio(this.rightClip, () => {
this.playAnswerAudio(0);
})
},
playAnswerAudio(index) {
const arr = this.curOptionArr;
if (!arr[index]) {
// delayCall(0.5, () => {
this.changeNextQuestion();
// })
} else {
if ( arr[index].light.opacity > 254 && arr[index].audioClip ) {
playAudio(arr[index].audioClip, () => {
this.playAnswerAudio(index + 1);
})
} else {
this.playAnswerAudio(index + 1);
}
}
},
checkItemWrong() {
const arr = this.curOptionArr;
console.log('arr: ', arr);
for (let i=0; i<arr.length; i++) {
const itemBg = arr[i];
if (itemBg.light.opacity >= 254) {
this.shakeArr.push(itemBg);
console.log('aaa', itemBg.data);;
if (itemBg.data.answerRight == '0') {
this.wrongArr.push(itemBg);
}
}
}
},
checkItemRightCount() {
let rightTotalCount = 0;
const answerArr = this.curQuestionData.answerArr;
for (let i=0; i<answerArr.length; i++) {
if (answerArr[i].answerRight == '1') {
rightTotalCount ++;
}
}
let curRightCount = 0;
const curOptionArr = this.curOptionArr;
for (let i=0; i<curOptionArr.length; i++) {
if (curOptionArr[i].light.opacity > 254) {
curRightCount ++;
}
}
return rightTotalCount == curRightCount;
},
itemShake() {
let rate = 1;
if (this.curQuestionData.answerType == 'text') {
rate = 0.5;
}
const arr = this.shakeArr;
for (let i=0; i<arr.length; i++) {
this.rotateShake(arr[i], rate);
if (arr[i].stopAnim) {
arr[i].stopAnim();
}
}
this.showTryAgain();
},
hideLight() {
const arr = this.curOptionArr;
for (let i=0; i<arr.length; i++) {
arr[i].light.opacity = 0;
}
this.checkBtn.opacity = 0;
},
rotateShake(item, rate = 1) {
const time = 0.9;
cc.tween(item)
.to(time / 6 / 2, {angle: -20 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 12 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: -7 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 4 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: -2 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 1 * rate}, {easing: 'sineInOut'})
.to(time / 6, {angle: 0 * rate}, {easing: 'sineInOut'})
.start();
},
showAllRight() {
const curOptionArr = this.curOptionArr;
for (let i=0; i<curOptionArr.length; i++) {
if (curOptionArr[i].light.opacity > 254) {
this.addIconRight(curOptionArr[i]);
}
}
},
changeNextQuestion() {
console.log(' in changeNextQuestion')
this.curQuestionIndex ++ ;
this.setCurQuestionData();
if (!this.curQuestionData) {
// this.gameEnd();
return;
}
this.showChangeQuesAnim();
},
showChangeQuesAnim() {
this.hideLight();
this.hideCurOptionAnim(() => {
this.setCurOption();
this.showCurOptionAnim();
this.hideMask();
});
this.hideCurQuestion(() => {
this.setCurQuestion();
this.showCurQuestionAnim();
});
},
maskLayer: null,
initMask() {
const maskLayer = new cc.Node();
maskLayer.width = this.canvas.width;
maskLayer.height = this.canvas.height;
this.canvas.addChild(maskLayer, 20);
maskLayer.addComponent(cc.BlockInputEvents);
this.maskLayer = maskLayer;
this.maskLayer.active = false;
},
showMask() {
this.maskLayer.active = true;
},
hideMask() {
this.maskLayer.active = false;
},
hideCurOptionAnim(cb) {
const arr = this.curOptionArr;
const time = 0.5;
for (let i=0; i<arr.length; i++) {
if (arr[i].iconRight) {
arr[i].iconRight.removeFromParent();
arr[i].iconRight = null;
}
cc.tween(arr[i])
.to(time, {opacity: 0}, {easing: "cubicOut"})
.call(() => {
arr[i].active = false;
})
.start();
}
delayCall(time, () => {
cb();
})
},
showCurOptionAnim(cb=null) {
const arr = this.curOptionArr;
const time = 0.5;
for (let i=0; i<arr.length; i++) {
arr[i].opacity = 0;
cc.tween(arr[i])
.to(time, {opacity: 255}, {easing: "cubicIn"})
.start();
}
if (cb) {
delayCall(time, () => {
cb();
})
}
},
hideCurQuestion(cb) {
const time = 0.5;
cc.tween(this.curQuesBg)
.to(time, {opacity: 0}, {easing: "cubicOut"})
.call(() => {
this.curQuesBg.active = false;
cb();
})
.start();
},
showCurQuestionAnim() {
this.curQuesBg.active = true;
this.curQuesBg.opacity = 0;
const time = 0.5;
cc.tween(this.curQuesBg)
.to(time, {opacity: 255}, {easing: "cubicIn"})
.start();
},
gameEnd() {
console.log('game end !')
this.showRestart();
// this.showOneFirework(cc.v2(0, -this.canvas.height / 2), this.canvas, cc.find('paperBase').children, this.canvas.width / 2.5, this.canvas.height * 2, 100, 1);
playAudio(this.finishClip);
const camera = cc.find('Canvas/Main Camera');
camera.zIndex = 100;
showTrebleFirework(camera, cc.find('RibbonNodeBase').children);
onHomeworkFinish();
},
showRestart() {
const btn = getSprNode("btn_restart");
btn.scale = this._mapScaleMin;
btn.baseS = btn.scale;
this.canvas.addChild(btn, 21);
btn.on(cc.Node.EventType.TOUCH_START, () => {
btn.removeFromParent();
this.initData();
this.initStar();
this.showChangeQuesAnim();
playAudio(this.btnClip);
})
const time = 1;
btn.scale = 0;
cc.tween(btn)
.delay(1)
.to(time, {scale: btn.baseS}, {easing: "elasticOut"})
.start();
},
async showOneFirework(pos, parentNode, nodeList, w, h, n, timeRate=1) {
for (let i = 0; i < 3; i++) {
this.showFirework(pos, parentNode, nodeList, w, h, n, timeRate);
await asyncDelay(0.1);
}
},
showFirework(pos, parentNode, nodeList, width = 200, height = 500, number = 30, timeRate=1) {
const subTime = 1;
for (let i = 0; i < number; i++) {
const quad = this.createQuads(pos, parentNode, nodeList);
const targetX = RandomInt(width / 2, -width / 2);
const targetY = RandomInt(height);
cc.tween(quad)
.by(0.5 * timeRate, { x: targetX })
.by((2 + subTime * Math.random()) * timeRate, { x: targetX * 2 })
.start();
cc.tween(quad)
.by(0.5 * timeRate, { y: targetY }, { easing: 'quadOut' })
.to((3 + subTime * Math.random()) * timeRate, { y: -parentNode.height * 2 }, { easing: 'quadIn' })
.removeSelf()
.start();
cc.tween(quad)
.delay(1 * timeRate)
.to((0.5 + subTime * Math.random()) * timeRate , { opacity: 0 })
.start();
}
},
createQuads(pos, parentNode, nodeList) {
const quadBase = cc.instantiate(nodeList[RandomInt(nodeList.length)]);
quadBase.x = pos.x;
quadBase.y = pos.y;
quadBase.z = pos.z;
quadBase.angle = RandomInt(180);
quadBase.parent = parentNode;
const quad = quadBase.getChildByName('quad');
quad.x = 0;
quad.y = 0;
quad.angle = RandomInt(180);
const paper = quad.getChildByName('paper');
paper.scaleX = Math.random() * 0.8 + 0.2;
paper.scaleY = Math.random() * 0.8 + 0.2;
quadBase.scaleX = Math.random();
cc.tween(quadBase)
.to((1 - quadBase.scaleX) * 0.3, { scaleX: 1 })
.call(() => {
const time = Math.random() * 0.2;
cc.tween(quadBase)
.to(0.1 + time, { scaleX: -1 })
.to(0.1 + time, { scaleX: 1 })
.union()
.repeatForever()
.start();
})
.start();
return quadBase;
},
restart() {
},
initTitle() {
const offX = 96;
const offY = 11;
const title = getSprNode('title_bg');
title.parent = this.canvas;
title.scale = this._mapScaleMin;
title.zIndex = 10;
title.x = -this.canvas.width / 2 + title.width / 2 * title.scale + offX;
title.y = this.canvas.height / 2 - title.height / 2 * title.scale - offY;
// console.log('this.data: ', this.data);
title.addComponent(cc.Button)
title.on('click', () => {
if (this.data.title_audio_url) {
playAudioByUrl(this.data.title_audio_url);
}
})
const labelNode = new cc.Node();
labelNode.parent = title;
const label = labelNode.addComponent(cc.RichText);
const size = 42
label.font = cc.find('Canvas/res/font/aharoni').getComponent(cc.Label).font;
label.string = `<outline color=#a83c13 width=2><size=${size}><color=#ffffff>${this.data.title || " " }</color></size></outline>`
// label.string = `<size=${size}><color=#751e00>${this.curGroup.title }</color></size>`
label.lineHeight = size;
label.horizontalAlign = cc.macro.TextAlignment.LEFT
labelNode.anchorX = 0;
labelNode.anchorY = 1
labelNode.x = -title.width / 2 + 90;
const maxLen = 305;
if (labelNode.width > maxLen) {
labelNode.scale = maxLen / labelNode.width;
}
labelNode.y = labelNode.height / 2 * labelNode.scale + 15;
},
initBg() {
// if (!this.data.pic_url) {
// return;
// }
// getSprNodeByUrl, setSprNodeMaxLen(this.data.pic_url, (spr) => {
// this.canvas.addChild(spr.node);
// spr.node.scale = this._mapScaleMax;
// });
},
initHotZone() {
this.initHotZoneBg();
},
hotZoneBg: null,
initHotZoneBg() {
this.hotZoneBg = new cc.Node();
this.hotZoneBg.name = 'hotZoneBg';
this.hotZoneBg.parent = cc.find('Canvas');
this.hotZoneBg.zIndex = 4;
if (!this.data.bgItem) {
return;
}
cc.loader.load({url: this.data.bgItem.url}, (err, img) => {
// this.addMask(this.hotZoneBg);
this.hotZoneBg.width = img.width;
this.hotZoneBg.height = img.height;
const sprNode = new cc.Node();
sprNode.name = 'bgItemSpr'
var sf = new cc.SpriteFrame(img);
// const spr = this.hotZoneBg.addComponent(cc.Sprite);
const spr = sprNode.addComponent(cc.Sprite);
spr.spriteFrame = sf
sprNode.width = this.hotZoneBg.width;
sprNode.height = this.hotZoneBg.height;
sprNode.parent = this.hotZoneBg;
window['bg'] =sprNode
const sx = this.canvas.width / this.hotZoneBg.width;
const sy = (this.canvas.height) / this.hotZoneBg.height;
const s = Math.min(sx, sy);
this.hotZoneBg.scale = s;
// this.data.bgItem.isShowDebugLine = true;
this.initHotZoneItem();
});
},
initHotZoneItem() {
this.data.hotZoneItemArr.forEach((item) => {
// console.log('item.gIdx: ', item.gIdx);
switch (item.gIdx) {
case "0":
this.setOneDragPic(item);
break;
case "1":
this.setOneDragAction(item);
break;
case "2":
this.setOneRect(item);
break;
default:
break;
}
});
},
addMask(node) {
const mask = node.addComponent(cc.Mask);
mask.type = cc.Mask.Type.RECT;
},
setOneDragAction(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY ;
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
const {x, y, width, height} = rectNode;
// rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(-rectNode.width / 2, -rectNode.height / 2, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
rectNode.x += rectNode.width / 2;
rectNode.y += rectNode.height / 2;
rectNode.baseX = rectNode.x;
rectNode.baseY = rectNode.y;
rectNode.targetOff();
rectNode.on(cc.Node.EventType.TOUCH_START, () => {
if (rectNode.isDragEnd) {
if (rectNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
}
return;
}
this._curShowItem = rectNode;
})
const realRate = this.hotZoneBg.width / this.data.bgItem.rect.width;
rectNode.targetPx = -this.hotZoneBg.width / 2 + ( data.dragDot.x - this.data.bgItem.rect.x ) * realRate;
rectNode.targetPy = this.hotZoneBg.height / 2 - (data.dragDot.y - this.data.bgItem.rect.y) * realRate;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
console.log('setOneAction ~~ data: ', data)
const actionData = data['actionData_' + data.gIdx];
if (!actionData) {
return;
}
if (actionData.type == 'text') {
const label = this.setOneActionText(rectNode, actionData);
label.node.scale = scale * data.fontScale;
label.node.targetOff();
// label.overflow = cc.Label.Overflow.NONE;
// label.node.setContentSize(new cc.Size(0, lineHeight));
label["_forceUpdateRenderData"](true);
} else if (actionData.type == 'pic') {
const pic = this.setOneActionPic(rectNode, actionData);
} else if (actionData.type == 'anima') {
const anima = this.setOneActionAnima(rectNode, actionData);
}
},
setOneAction(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY ;
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
const {x, y, width, height} = rectNode;
rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(0, 0, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
console.log('setOneAction ~~ data: ', data)
const actionData = data['actionData_' + data.gIdx];
if (!actionData) {
return;
}
if (actionData.type == 'text') {
const label = this.setOneActionText(rectNode, actionData);
label.node.scale = scale * data.fontScale;
// label.overflow = cc.Label.Overflow.NONE;
// label.node.setContentSize(new cc.Size(0, lineHeight));
label["_forceUpdateRenderData"](true);
} else if (actionData.type == 'pic') {
const pic = this.setOneActionPic(rectNode, actionData);
} else if (actionData.type == 'anima') {
const anima = this.setOneActionAnima(rectNode, actionData);
}
},
setOneActionText(rectNode, actionData) {
const labelNode = new cc.Node();
labelNode.parent = rectNode;
const label = labelNode.addComponent(cc.Label);
label.font = cc.find('Canvas/res/font/ahronbd-1').getComponent(cc.Label).font;
label.string = actionData.text;
// label.string = `<size=${size}><color=#751e00>${this.curGroup.title }</color></size>`
// label.lineHeight = size;
// label.horizontalAlign = cc.macro.TextAlignment.LEFT
// labelNode.anchorX = 0;
// labelNode.anchorY = 1
labelNode.color = cc.Color.BLACK;
const opArr = actionData.changeOption
// console.log('opArr', opArr);
const tweenArr = [];
for (let i = 0; i < opArr.length; i++ ) {
const opData = opArr[i];
console.log('opArr[0]', opArr[i])
if (opData[0] == 'fontColor') {
const color = new cc.Color();
cc.Color.fromHEX(color, opData[1] );
labelNode.color = color;
} else if (opData[0] == 'opacity') {
// console.log('opData: ', opData)
labelNode.opacity = Number( opData[1] / 100 * 255 ) + 0.1;
// console.log(labelNode.opacity);
tweenArr.push({item: labelNode , option: `{"${opData[0]}" : ${opData[2] / 100 * 255}}`, optionName: opData[0]},)
} else {
label[opData[0]] = opData[1];
tweenArr.push({item: label, option: `{"${opData[0]}" : ${opData[2]}}`, optionName: opData[0]})
}
}
// if (actionData.audio_url) {
// cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
// labelNode.audioClip = audioClip;
// });
// }
label.lineHeight = label.fontSize;
// labelNode.y += rectNode.height / 2;
// labelNode.x += rectNode.width / 2;
// rectNode.addComponent(cc.Button);
// rectNode.on('click', () => {
// if (labelNode.audioClip) {
// cc.audioEngine.stopAllEffects();
// cc.audioEngine.playEffect(labelNode.audioClip, false, 0.8);
// }
// if (labelNode.isClicked) {
// // return;
// }
// labelNode.isClicked = true;
// for (let i=0; i<tweenArr.length; i++) {
// const tweenData = tweenArr[i];
// if (tweenData.optionName == 'opacity') {
// console.log('~~~ ', tweenData.item[tweenData.optionName] );
// cc.tween(tweenData.item)
// .to(actionData.changeTime, JSON.parse(tweenData.option) )
// .start();
// }
// }
// });
return label;
},
setOneActionPic(rectNode, actionData) {
console.log('setOneActionPic actionData: ', actionData)
const picNode = new cc.Node();
rectNode.addChild(picNode);
cc.loader.load({url: actionData.pic_url}, (err, img) => {
const spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img)
picNode.y += rectNode.height / 2;
picNode.x += rectNode.width / 2;
picNode.scaleX = rectNode.width / picNode.width;
picNode.scaleY = rectNode.height / picNode.height;
const opArr = actionData.changeOption
const tweenArr = [];
for (let i = 0; i < opArr.length; i++ ) {
const opData = opArr[i];
console.log('opData: ~~~ ', opData);
if (opData[0] == 'opacity') {
picNode.opacity = Number( opData[1] / 100 * 255 ) + 0.1;
console.log(picNode.opacity);
tweenArr.push({item: picNode , option: `{"${opData[0]}" : ${opData[2] / 100 * 255}}`, optionName: opData[0]},)
} else {
// picNode[opData[0]] = Number(opData[1]);
// tweenArr.push({item: picNode, option: `{"${opData[0]}" : ${opData[2]}}`, optionName: opData[0]})
}
if (actionData.audio_url) {
cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
rectNode.addComponent(cc.Button);
rectNode.on('click', () => {
if (rectNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
}
if (rectNode.isClicked) {
// return;
}
rectNode.isClicked = true;
for (let i=0; i<tweenArr.length; i++) {
const tweenData = tweenArr[i];
if (tweenData.optionName == 'opacity') {
cc.tween(tweenData.item)
.to(actionData.changeTime, JSON.parse(tweenData.option) )
.start();
}
}
});
}
});
},
setOneActionAnima(rectNode, actionData) {
const animaNode = new cc.Node();
rectNode.addChild(animaNode);
if (actionData.audio_url) {
cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
const data = actionData;
const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
if (!data.texPngData) {
return
}
const image = data.texPngData.url//"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png";
const ske = data.skeJsonData.url//"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json";
const atlas = data.texJsonData.url//"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json";
cc.loader.load(image, (error, texture) => {
cc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {
cc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {
const atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = atlasJson;
atlas.texture = texture;
const asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = dragonBonesJson;
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
let json = JSON.parse(asset.dragonBonesJson);
let armatures = json["armature"];
let armatureNames = [];
for (let i = 0; i < armatures.length; i++) {
armatureNames.push(armatures[i].name);
}
// console.log('armatureNames: ', armatureNames);
let animationNames = [];
if (armatureNames.length > 0) {
let defaultArmatureName = armatureNames[0];
dragonDisplay.armatureName = defaultArmatureName;
// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);
let defaultArmature = armatures[0];
let animations = defaultArmature.animation;
for (let i = 0; i < animations.length; i++) {
animationNames.push(animations[i].name);
}
// rectNode.addComponent(cc.Button);
// rectNode.on('click', () => {
// if (rectNode.isClicked) {
// // return;
// }
// rectNode.isClicked = true;
// console.log('clicked');
// if (rectNode.audioClip) {
// cc.audioEngine.stopAllEffects();
// cc.director.emit('STOP_ALL_AUDIO')
// cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
// }
// if (animationNames.length > 0) {
// dragonDisplay.playAnimation(animationNames[0], 1);
// }
// });
}
// animaNode.x = rectNode.x + rectNode.width / 2;
// animaNode.y = rectNode.y + rectNode.height / 2;
// const sx = rectNode.width / animaNode.width;
// const sy = rectNode.height / animaNode.height;
// const scale = Math.min(sx, sy);
// animaNode.scale = scale;
animaNode.y += rectNode.height / 2;
animaNode.x += rectNode.width / 2;
animaNode.scaleX = rectNode.width / animaNode.width;
animaNode.scaleY = rectNode.height / animaNode.height;
const opArr = actionData.changeOption
const tweenArr = [];
for (let i = 0; i < opArr.length; i++ ) {
const opData = opArr[i];
console.log('opData: ~~~ ', opData);
if (opData[0] == 'opacity') {
animaNode.opacity = Number( opData[1] / 100 * 255 ) + 0.1;
console.log(animaNode.opacity);
tweenArr.push({item: animaNode , option: `{"${opData[0]}" : ${opData[2] / 100 * 255}}`, optionName: opData[2] == null ? '' : opData[0]},)
} else {
// animaNode[opData[0]] = Number(opData[1]);
// tweenArr.push({item: animaNode, option: `{"${opData[0]}" : ${opData[2]}}`, optionName: opData[2] == null ? '' : opData[0]})
}
if (actionData.audio_url) {
cc.assetManager.loadRemote(actionData.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
rectNode.addComponent(cc.Button);
rectNode.on('click', () => {
if (rectNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
}
if (rectNode.isClicked) {
// return;
}
rectNode.isClicked = true;
for (let j=0; j<tweenArr.length; j++) {
const tweenData = tweenArr[j];
console.log('tweenData: ', tweenData);
if (tweenData.optionName) {
cc.tween(tweenData.item)
.to(actionData.changeTime, JSON.parse(tweenData.option))
.start();
}
}
if (animationNames.length > 0) {
dragonDisplay.playAnimation(animationNames[0], 1);
}
});
}
});
});
});
},
setOneAnimaSmall(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY;
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(0, 0, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
const animaNode = new cc.Node();
animaNode.name = 'anima_' + data.index;
this.hotZoneBg.addChild(animaNode);
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
animaNode.audioClip = audioClip;
});
}
const dragonDisplay = animaNode.addComponent(dragonBones.ArmatureDisplay);
if (!data.texPngData) {
return
}
const image = data.texPngData.url//"http://staging-teach.cdn.ireadabc.com/5a0c5af3e952acd0ac83a6e5c6f03ff1.png";
const ske = data.skeJsonData.url//"http://staging-teach.cdn.ireadabc.com/bd825dcceea298d1146be8067ae3d17f.json";
const atlas = data.texJsonData.url//"http://staging-teach.cdn.ireadabc.com/246f8991b729fa3e5a7f4802de828efa.json";
cc.loader.load(image, (error, texture) => {
cc.loader.load({url: atlas, type: 'txt'}, (error, atlasJson) => {
cc.loader.load({url: ske, type: 'txt'}, (error, dragonBonesJson) => {
const atlas = new dragonBones.DragonBonesAtlasAsset();
atlas.atlasJson = atlasJson;
atlas.texture = texture;
const asset = new dragonBones.DragonBonesAsset();
asset.dragonBonesJson = dragonBonesJson;
dragonDisplay.dragonAtlasAsset = atlas;
dragonDisplay.dragonAsset = asset;
let json = JSON.parse(asset.dragonBonesJson);
let armatures = json["armature"];
// console.log('armatures: ', armatures);
let armatureNames = [];
for (let i = 0; i < armatures.length; i++) {
armatureNames.push(armatures[i].name);
}
// console.log('armatureNames: ', armatureNames);
if (armatureNames.length > 0) {
let defaultArmatureName = armatureNames[0];
dragonDisplay.armatureName = defaultArmatureName;
// let animationNames = dragonDisplay.getAnimationNames(defaultArmatureName);
let defaultArmature = armatures[0];
let animations = defaultArmature.animation;
let animationNames = [];
for (let i = 0; i < animations.length; i++) {
animationNames.push(animations[i].name);
}
rectNode.addComponent(cc.Button);
rectNode.on('click', () => {
if (rectNode.isClicked) {
// return;
}
rectNode.isClicked = true;
console.log('clicked');
if (animaNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.director.emit('STOP_ALL_AUDIO')
cc.audioEngine.playEffect(animaNode.audioClip, false, 0.8);
}
if (animationNames.length > 0) {
dragonDisplay.playAnimation(animationNames[0], 1);
}
});
}
animaNode.x = rectNode.x + rectNode.width / 2;
animaNode.y = rectNode.y + rectNode.height / 2;
const sx = rectNode.width / animaNode.width;
const sy = rectNode.height / animaNode.height;
const scale = Math.min(sx, sy);
animaNode.scale = scale;
});
});
});
},
setOneDragPic(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const picNode = new cc.Node();
picNode.name= 'pic' + data.index;
picNode.data = data;
this.hotZoneBg.addChild(picNode);
cc.loader.load({url: data.pic_url}, (err, img) => {
const spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img)
const scale = rate / this.hotZoneBg.scaleY;
picNode.width = data.rect.width * scale;
picNode.height = data.rect.height * scale;
picNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
picNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
picNode.x += picNode.width / 2 * picNode.scaleX;
picNode.y += picNode.height / 2 * picNode.scaleX;
// picNode.anchorX = picNode.anchorY = 0;
// if (data.audio_url) {
// this.addPicAudio(picNode);
// }
this.addDragPoint(picNode, data)
});
},
addDragPoint(picNode, data) {
picNode.baseX = picNode.x;
picNode.baseY = picNode.y;
const realRate = this.hotZoneBg.width / this.data.bgItem.rect.width;
picNode.targetPx = -this.hotZoneBg.width / 2 + ( data.dragDot.x - this.data.bgItem.rect.x ) * realRate;
picNode.targetPy = this.hotZoneBg.height / 2 - (data.dragDot.y - this.data.bgItem.rect.y) * realRate;
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
picNode.audioClip = audioClip;
});
}
picNode.on(cc.Node.EventType.TOUCH_START, () => {
if (picNode.isDragEnd) {
if (picNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(picNode.audioClip, false, 0.8);
}
return;
}
this._curShowItem = picNode;
// picNode.x = -this.hotZoneBg.width / 2 + ( data.dragDot.x - this.data.bgItem.rect.x ) * realRate;
// picNode.y = this.hotZoneBg.height / 2 - (data.dragDot.y - this.data.bgItem.rect.y) * realRate;
})
},
setOnePic(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const picNode = new cc.Node();
picNode.name= 'pic' + data.index;
picNode.data = data;
this.hotZoneBg.addChild(picNode);
cc.loader.load({url: data.pic_url}, (err, img) => {
const spr = picNode.addComponent(cc.Sprite);
spr.spriteFrame = new cc.SpriteFrame(img)
const scale = rate / this.hotZoneBg.scaleY;
picNode.width = data.rect.width * scale;
picNode.height = data.rect.height * scale;
picNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
picNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
picNode.anchorX = picNode.anchorY = 0;
if (data.audio_url) {
this.addPicAudio(picNode);
}
});
},
setOneRect(data) {
const rate = (this.hotZoneBg.scale * this.hotZoneBg.width) / this.data.bgItem.rect.width;
const rectNode = new cc.Node();
rectNode.name = 'rect' + data.index;
this.hotZoneBg.addChild(rectNode);
const ctx = rectNode.addComponent(cc.Graphics);
// 红色矩形
ctx.lineWidth = 4;
ctx.strokeColor = cc.Color.BLACK;
ctx.fillColor = cc.Color.WHITE.setA(100);
const scale = rate / this.hotZoneBg.scaleY;
// console.log('scale: ', scale);
// console.log('scale2: ', scale / data.mapScale);
rectNode.width = data.rect.width * scale;
rectNode.height = data.rect.height * scale;
rectNode.x = -this.hotZoneBg.width / 2 + data.rect.x * scale;
rectNode.y = this.hotZoneBg.height / 2 - data.rect.height * scale - data.rect.y * scale;
// rectNode.scale = 1 / data.mapScale;
rectNode.anchorX = rectNode.anchorY = 0;
if (this.data.bgItem.isShowDebugLine) {
ctx.rect(0, 0, rectNode.width, rectNode.height);
}
ctx.stroke();
ctx.fill();
// console.log('```data: ', data)
this.dragEndRectArr.push(rectNode);
if (data.audio_url) {
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
rectNode.audioClip = audioClip;
});
}
// rectNode.addComponent(cc.Button);
// rectNode.on('click', () => {
// if (rectNode.isClicked) {
// // return;
// }
// rectNode.isClicked = true;
// console.log('clicked');
// if (rectNode.audioClip) {
// cc.audioEngine.stopAllEffects();
// cc.audioEngine.playEffect(rectNode.audioClip, false, 0.8);
// }
// });
},
addPicAudio(picNode) {
const data = picNode.data;
cc.assetManager.loadRemote(data.audio_url, (err, audioClip) => {
picNode.audioClip = audioClip;
});
picNode.addComponent(cc.Button);
picNode.on('click', () => {
if (picNode.audioClip) {
cc.audioEngine.stopAllEffects();
cc.audioEngine.playEffect(picNode.audioClip, false, 0.8);
}
});
},
initListener() {
const canvas = cc.find('Canvas');
let downFlag = false;
const touchMove = (e) => {
this.canvasTouchMove(e);
if (canvas.hasEventListener(cc.Node.EventType.MOUSE_MOVE)) {
canvas.off(cc.Node.EventType.MOUSE_MOVE, mouseMove)
}
}
const mouseMove = (e) => {
if (!downFlag) {
return;
}
this.canvasTouchMove(e);
if (canvas.hasEventListener(cc.Node.EventType.TOUCH_MOVE)) {
canvas.off(cc.Node.EventType.TOUCH_MOVE, touchMove)
this.removeHtmlCanvasListener('touchmove');
}
}
const touchEnd = (e) => {
downFlag = false;
this.canvasTouchEnd(e);
if (canvas.hasEventListener(cc.Node.EventType.MOUSE_UP)) {
canvas.off(cc.Node.EventType.MOUSE_UP, mouseUp)
}
if (canvas.hasEventListener(cc.Node.EventType.MOUSE_LEAVE)) {
canvas.off(cc.Node.EventType.MOUSE_LEAVE, mouseUp)
}
this.removeHtmlTouchEnd();
}
const mouseUp = (e) => {
downFlag = false;
this.canvasTouchEnd(e);
if (canvas.hasEventListener(cc.Node.EventType.TOUCH_END)) {
canvas.off(cc.Node.EventType.TOUCH_END, touchEnd)
}
if (canvas.hasEventListener(cc.Node.EventType.TOUCH_CANCEL)) {
canvas.off(cc.Node.EventType.TOUCH_CANCEL, touchEnd)
}
}
canvas.on(cc.Node.EventType.TOUCH_MOVE, touchMove)
canvas.on(cc.Node.EventType.MOUSE_MOVE, mouseMove)
canvas.on(cc.Node.EventType.TOUCH_END, touchEnd)
canvas.on(cc.Node.EventType.TOUCH_CANCEL, touchEnd)
canvas.on(cc.Node.EventType.MOUSE_UP, mouseUp)
},
removeHtmlCanvasListener(type) {
const canvasHtml = document.querySelector('canvas');
canvasHtml.addEventListener(type, (e) => {})
},
removeHtmlTouchEnd() {
const canvasHtml = document.querySelector('canvas');
canvasHtml.removeEventListener('touchend', this.htmlCanvasTouchendFunc, this);
},
canvasTouchMove(e) {
if (!this._curShowItem) {
return;
}
const pos = e.getLocation();
this._curShowItem.x = pos.x - e.currentTarget.width / 2;
this._curShowItem.y = pos.y - e.currentTarget.height / 2;
// console.log('pos: ', pos.x);
},
canvasTouchEnd(e) {
if (!this._curShowItem) {
return;
}
this.checkOnDragEndRect();
this._curShowItem = null;
},
checkOnDragEndRect() {
console.log('emptyGroupArr: ', this.emptyGroupArr);
for (let i = 0; i < this.dragEndRectArr.length; i++) {
const rect = this.dragEndRectArr[i];
const worldPos = this._curShowItem.parent.convertToWorldSpaceAR(cc.v2(this._curShowItem.x, this._curShowItem.y));
const worldRect = rect.getBoundingBoxToWorld();
if (worldRect.contains(worldPos)) {
console.log('rect in ')
this.checkIsDragEndTarget(rect);
// removeItemFromArr(this.emptyGroupArr, letterGroup);
// this.showLetterSuccess(letterGroup);
// this.checkGroupEnd();
return;
}
}
this.itemBack();
},
itemBack() {
cc.audioEngine.playEffect(this.wrongClip, false, 0.8);
cc.tween(this._curShowItem)
.to(0.5, {x: this._curShowItem.baseX, y: this._curShowItem.baseY}, {easing: "elasticOut"})
.start();
},
checkIsDragEndTarget(rect) {
const worldPos = this._curShowItem.parent.convertToWorldSpaceAR(cc.v2(this._curShowItem.targetPx, this._curShowItem.targetPy));
const worldRect = rect.getBoundingBoxToWorld();
if (worldRect.contains(worldPos)) {
this._curShowItem.x = this._curShowItem.targetPx;
this._curShowItem.y = this._curShowItem.targetPy;
this._curShowItem.isDragEnd = true;
cc.audioEngine.playEffect(this.rightClip, false, 0.8);
} else {
this.itemBack();
}
},
});
/**
* Copyright (c) 2014-present, Facebook, Inc.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
*/
!(function (global) {
"use strict";
var Op = Object.prototype;
var hasOwn = Op.hasOwnProperty;
var undefined; // More compressible than void 0.
var $Symbol = typeof Symbol === "function" ? Symbol : {};
var iteratorSymbol = $Symbol.iterator || "@@iterator";
var asyncIteratorSymbol = $Symbol.asyncIterator || "@@asyncIterator";
var toStringTagSymbol = $Symbol.toStringTag || "@@toStringTag";
var inModule = typeof module === "object";
var runtime = global.regeneratorRuntime;
if (runtime) {
if (inModule) {
// If regeneratorRuntime is defined globally and we're in a module,
// make the exports object identical to regeneratorRuntime.
module.exports = runtime;
}
// Don't bother evaluating the rest of this file if the runtime was
// already defined globally.
return;
}
// Define the runtime globally (as expected by generated code) as either
// module.exports (if we're in a module) or a new, empty object.
runtime = global.regeneratorRuntime = inModule ? module.exports : {};
function wrap(innerFn, outerFn, self, tryLocsList) {
// If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.
var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;
var generator = Object.create(protoGenerator.prototype);
var context = new Context(tryLocsList || []);
// The ._invoke method unifies the implementations of the .next,
// .throw, and .return methods.
generator._invoke = makeInvokeMethod(innerFn, self, context);
return generator;
}
runtime.wrap = wrap;
// Try/catch helper to minimize deoptimizations. Returns a completion
// record like context.tryEntries[i].completion. This interface could
// have been (and was previously) designed to take a closure to be
// invoked without arguments, but in all the cases we care about we
// already have an existing method we want to call, so there's no need
// to create a new function object. We can even get away with assuming
// the method takes exactly one argument, since that happens to be true
// in every case, so we don't have to touch the arguments object. The
// only additional allocation required is the completion record, which
// has a stable shape and so hopefully should be cheap to allocate.
function tryCatch(fn, obj, arg) {
try {
return { type: "normal", arg: fn.call(obj, arg) };
} catch (err) {
return { type: "throw", arg: err };
}
}
var GenStateSuspendedStart = "suspendedStart";
var GenStateSuspendedYield = "suspendedYield";
var GenStateExecuting = "executing";
var GenStateCompleted = "completed";
// Returning this object from the innerFn has the same effect as
// breaking out of the dispatch switch statement.
var ContinueSentinel = {};
// Dummy constructor functions that we use as the .constructor and
// .constructor.prototype properties for functions that return Generator
// objects. For full spec compliance, you may wish to configure your
// minifier not to mangle the names of these two functions.
function Generator() { }
function GeneratorFunction() { }
function GeneratorFunctionPrototype() { }
// This is a polyfill for %IteratorPrototype% for environments that
// don't natively support it.
var IteratorPrototype = {};
IteratorPrototype[iteratorSymbol] = function () {
return this;
};
var getProto = Object.getPrototypeOf;
var NativeIteratorPrototype = getProto && getProto(getProto(values([])));
if (NativeIteratorPrototype &&
NativeIteratorPrototype !== Op &&
hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {
// This environment has a native %IteratorPrototype%; use it instead
// of the polyfill.
IteratorPrototype = NativeIteratorPrototype;
}
var Gp = GeneratorFunctionPrototype.prototype =
Generator.prototype = Object.create(IteratorPrototype);
GeneratorFunction.prototype = Gp.constructor = GeneratorFunctionPrototype;
GeneratorFunctionPrototype.constructor = GeneratorFunction;
GeneratorFunctionPrototype[toStringTagSymbol] =
GeneratorFunction.displayName = "GeneratorFunction";
// Helper for defining the .next, .throw, and .return methods of the
// Iterator interface in terms of a single ._invoke method.
function defineIteratorMethods(prototype) {
["next", "throw", "return"].forEach(function (method) {
prototype[method] = function (arg) {
return this._invoke(method, arg);
};
});
}
runtime.isGeneratorFunction = function (genFun) {
var ctor = typeof genFun === "function" && genFun.constructor;
return ctor
? ctor === GeneratorFunction ||
// For the native GeneratorFunction constructor, the best we can
// do is to check its .name property.
(ctor.displayName || ctor.name) === "GeneratorFunction"
: false;
};
runtime.mark = function (genFun) {
if (Object.setPrototypeOf) {
Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);
} else {
genFun.__proto__ = GeneratorFunctionPrototype;
if (!(toStringTagSymbol in genFun)) {
genFun[toStringTagSymbol] = "GeneratorFunction";
}
}
genFun.prototype = Object.create(Gp);
return genFun;
};
// Within the body of any async function, `await x` is transformed to
// `yield regeneratorRuntime.awrap(x)`, so that the runtime can test
// `hasOwn.call(value, "__await")` to determine if the yielded value is
// meant to be awaited.
runtime.awrap = function (arg) {
return { __await: arg };
};
function AsyncIterator(generator) {
function invoke(method, arg, resolve, reject) {
var record = tryCatch(generator[method], generator, arg);
if (record.type === "throw") {
reject(record.arg);
} else {
var result = record.arg;
var value = result.value;
if (value &&
typeof value === "object" &&
hasOwn.call(value, "__await")) {
return Promise.resolve(value.__await).then(function (value) {
invoke("next", value, resolve, reject);
}, function (err) {
invoke("throw", err, resolve, reject);
});
}
return Promise.resolve(value).then(function (unwrapped) {
// When a yielded Promise is resolved, its final value becomes
// the .value of the Promise<{value,done}> result for the
// current iteration. If the Promise is rejected, however, the
// result for this iteration will be rejected with the same
// reason. Note that rejections of yielded Promises are not
// thrown back into the generator function, as is the case
// when an awaited Promise is rejected. This difference in
// behavior between yield and await is important, because it
// allows the consumer to decide what to do with the yielded
// rejection (swallow it and continue, manually .throw it back
// into the generator, abandon iteration, whatever). With
// await, by contrast, there is no opportunity to examine the
// rejection reason outside the generator function, so the
// only option is to throw it from the await expression, and
// let the generator function handle the exception.
result.value = unwrapped;
resolve(result);
}, reject);
}
}
var previousPromise;
function enqueue(method, arg) {
function callInvokeWithMethodAndArg() {
return new Promise(function (resolve, reject) {
invoke(method, arg, resolve, reject);
});
}
return previousPromise =
// If enqueue has been called before, then we want to wait until
// all previous Promises have been resolved before calling invoke,
// so that results are always delivered in the correct order. If
// enqueue has not been called before, then it is important to
// call invoke immediately, without waiting on a callback to fire,
// so that the async generator function has the opportunity to do
// any necessary setup in a predictable way. This predictability
// is why the Promise constructor synchronously invokes its
// executor callback, and why async functions synchronously
// execute code before the first await. Since we implement simple
// async functions in terms of async generators, it is especially
// important to get this right, even though it requires care.
previousPromise ? previousPromise.then(
callInvokeWithMethodAndArg,
// Avoid propagating failures to Promises returned by later
// invocations of the iterator.
callInvokeWithMethodAndArg
) : callInvokeWithMethodAndArg();
}
// Define the unified helper method that is used to implement .next,
// .throw, and .return (see defineIteratorMethods).
this._invoke = enqueue;
}
defineIteratorMethods(AsyncIterator.prototype);
AsyncIterator.prototype[asyncIteratorSymbol] = function () {
return this;
};
runtime.AsyncIterator = AsyncIterator;
// Note that simple async functions are implemented on top of
// AsyncIterator objects; they just return a Promise for the value of
// the final result produced by the iterator.
runtime.async = function (innerFn, outerFn, self, tryLocsList) {
var iter = new AsyncIterator(
wrap(innerFn, outerFn, self, tryLocsList)
);
return runtime.isGeneratorFunction(outerFn)
? iter // If outerFn is a generator, return the full iterator.
: iter.next().then(function (result) {
return result.done ? result.value : iter.next();
});
};
function makeInvokeMethod(innerFn, self, context) {
var state = GenStateSuspendedStart;
return function invoke(method, arg) {
if (state === GenStateExecuting) {
throw new Error("Generator is already running");
}
if (state === GenStateCompleted) {
if (method === "throw") {
throw arg;
}
// Be forgiving, per 25.3.3.3.3 of the spec:
// https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume
return doneResult();
}
context.method = method;
context.arg = arg;
while (true) {
var delegate = context.delegate;
if (delegate) {
var delegateResult = maybeInvokeDelegate(delegate, context);
if (delegateResult) {
if (delegateResult === ContinueSentinel) continue;
return delegateResult;
}
}
if (context.method === "next") {
// Setting context._sent for legacy support of Babel's
// function.sent implementation.
context.sent = context._sent = context.arg;
} else if (context.method === "throw") {
if (state === GenStateSuspendedStart) {
state = GenStateCompleted;
throw context.arg;
}
context.dispatchException(context.arg);
} else if (context.method === "return") {
context.abrupt("return", context.arg);
}
state = GenStateExecuting;
var record = tryCatch(innerFn, self, context);
if (record.type === "normal") {
// If an exception is thrown from innerFn, we leave state ===
// GenStateExecuting and loop back for another invocation.
state = context.done
? GenStateCompleted
: GenStateSuspendedYield;
if (record.arg === ContinueSentinel) {
continue;
}
return {
value: record.arg,
done: context.done
};
} else if (record.type === "throw") {
state = GenStateCompleted;
// Dispatch the exception by looping back around to the
// context.dispatchException(context.arg) call above.
context.method = "throw";
context.arg = record.arg;
}
}
};
}
// Call delegate.iterator[context.method](context.arg) and handle the
// result, either by returning a { value, done } result from the
// delegate iterator, or by modifying context.method and context.arg,
// setting context.delegate to null, and returning the ContinueSentinel.
function maybeInvokeDelegate(delegate, context) {
var method = delegate.iterator[context.method];
if (method === undefined) {
// A .throw or .return when the delegate iterator has no .throw
// method always terminates the yield* loop.
context.delegate = null;
if (context.method === "throw") {
if (delegate.iterator.return) {
// If the delegate iterator has a return method, give it a
// chance to clean up.
context.method = "return";
context.arg = undefined;
maybeInvokeDelegate(delegate, context);
if (context.method === "throw") {
// If maybeInvokeDelegate(context) changed context.method from
// "return" to "throw", let that override the TypeError below.
return ContinueSentinel;
}
}
context.method = "throw";
context.arg = new TypeError(
"The iterator does not provide a 'throw' method");
}
return ContinueSentinel;
}
var record = tryCatch(method, delegate.iterator, context.arg);
if (record.type === "throw") {
context.method = "throw";
context.arg = record.arg;
context.delegate = null;
return ContinueSentinel;
}
var info = record.arg;
if (!info) {
context.method = "throw";
context.arg = new TypeError("iterator result is not an object");
context.delegate = null;
return ContinueSentinel;
}
if (info.done) {
// Assign the result of the finished delegate to the temporary
// variable specified by delegate.resultName (see delegateYield).
context[delegate.resultName] = info.value;
// Resume execution at the desired location (see delegateYield).
context.next = delegate.nextLoc;
// If context.method was "throw" but the delegate handled the
// exception, let the outer generator proceed normally. If
// context.method was "next", forget context.arg since it has been
// "consumed" by the delegate iterator. If context.method was
// "return", allow the original .return call to continue in the
// outer generator.
if (context.method !== "return") {
context.method = "next";
context.arg = undefined;
}
} else {
// Re-yield the result returned by the delegate method.
return info;
}
// The delegate iterator is finished, so forget it and continue with
// the outer generator.
context.delegate = null;
return ContinueSentinel;
}
// Define Generator.prototype.{next,throw,return} in terms of the
// unified ._invoke helper method.
defineIteratorMethods(Gp);
Gp[toStringTagSymbol] = "Generator";
// A Generator should always return itself as the iterator object when the
// @@iterator function is called on it. Some browsers' implementations of the
// iterator prototype chain incorrectly implement this, causing the Generator
// object to not be returned from this call. This ensures that doesn't happen.
// See https://github.com/facebook/regenerator/issues/274 for more details.
Gp[iteratorSymbol] = function () {
return this;
};
Gp.toString = function () {
return "[object Generator]";
};
function pushTryEntry(locs) {
var entry = { tryLoc: locs[0] };
if (1 in locs) {
entry.catchLoc = locs[1];
}
if (2 in locs) {
entry.finallyLoc = locs[2];
entry.afterLoc = locs[3];
}
this.tryEntries.push(entry);
}
function resetTryEntry(entry) {
var record = entry.completion || {};
record.type = "normal";
delete record.arg;
entry.completion = record;
}
function Context(tryLocsList) {
// The root entry object (effectively a try statement without a catch
// or a finally block) gives us a place to store values thrown from
// locations where there is no enclosing try statement.
this.tryEntries = [{ tryLoc: "root" }];
tryLocsList.forEach(pushTryEntry, this);
this.reset(true);
}
runtime.keys = function (object) {
var keys = [];
for (var key in object) {
keys.push(key);
}
keys.reverse();
// Rather than returning an object with a next method, we keep
// things simple and return the next function itself.
return function next() {
while (keys.length) {
var key = keys.pop();
if (key in object) {
next.value = key;
next.done = false;
return next;
}
}
// To avoid creating an additional object, we just hang the .value
// and .done properties off the next function object itself. This
// also ensures that the minifier will not anonymize the function.
next.done = true;
return next;
};
};
function values(iterable) {
if (iterable) {
var iteratorMethod = iterable[iteratorSymbol];
if (iteratorMethod) {
return iteratorMethod.call(iterable);
}
if (typeof iterable.next === "function") {
return iterable;
}
if (!isNaN(iterable.length)) {
var i = -1, next = function next() {
while (++i < iterable.length) {
if (hasOwn.call(iterable, i)) {
next.value = iterable[i];
next.done = false;
return next;
}
}
next.value = undefined;
next.done = true;
return next;
};
return next.next = next;
}
}
// Return an iterator with no values.
return { next: doneResult };
}
runtime.values = values;
function doneResult() {
return { value: undefined, done: true };
}
Context.prototype = {
constructor: Context,
reset: function (skipTempReset) {
this.prev = 0;
this.next = 0;
// Resetting context._sent for legacy support of Babel's
// function.sent implementation.
this.sent = this._sent = undefined;
this.done = false;
this.delegate = null;
this.method = "next";
this.arg = undefined;
this.tryEntries.forEach(resetTryEntry);
if (!skipTempReset) {
for (var name in this) {
// Not sure about the optimal order of these conditions:
if (name.charAt(0) === "t" &&
hasOwn.call(this, name) &&
!isNaN(+name.slice(1))) {
this[name] = undefined;
}
}
}
},
stop: function () {
this.done = true;
var rootEntry = this.tryEntries[0];
var rootRecord = rootEntry.completion;
if (rootRecord.type === "throw") {
throw rootRecord.arg;
}
return this.rval;
},
dispatchException: function (exception) {
if (this.done) {
throw exception;
}
var context = this;
function handle(loc, caught) {
record.type = "throw";
record.arg = exception;
context.next = loc;
if (caught) {
// If the dispatched exception was caught by a catch block,
// then let that catch block handle the exception normally.
context.method = "next";
context.arg = undefined;
}
return !!caught;
}
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
var record = entry.completion;
if (entry.tryLoc === "root") {
// Exception thrown outside of any try block that could handle
// it, so set the completion value of the entire function to
// throw the exception.
return handle("end");
}
if (entry.tryLoc <= this.prev) {
var hasCatch = hasOwn.call(entry, "catchLoc");
var hasFinally = hasOwn.call(entry, "finallyLoc");
if (hasCatch && hasFinally) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
} else if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else if (hasCatch) {
if (this.prev < entry.catchLoc) {
return handle(entry.catchLoc, true);
}
} else if (hasFinally) {
if (this.prev < entry.finallyLoc) {
return handle(entry.finallyLoc);
}
} else {
throw new Error("try statement without catch or finally");
}
}
}
},
abrupt: function (type, arg) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc <= this.prev &&
hasOwn.call(entry, "finallyLoc") &&
this.prev < entry.finallyLoc) {
var finallyEntry = entry;
break;
}
}
if (finallyEntry &&
(type === "break" ||
type === "continue") &&
finallyEntry.tryLoc <= arg &&
arg <= finallyEntry.finallyLoc) {
// Ignore the finally entry if control is not jumping to a
// location outside the try/catch block.
finallyEntry = null;
}
var record = finallyEntry ? finallyEntry.completion : {};
record.type = type;
record.arg = arg;
if (finallyEntry) {
this.method = "next";
this.next = finallyEntry.finallyLoc;
return ContinueSentinel;
}
return this.complete(record);
},
complete: function (record, afterLoc) {
if (record.type === "throw") {
throw record.arg;
}
if (record.type === "break" ||
record.type === "continue") {
this.next = record.arg;
} else if (record.type === "return") {
this.rval = this.arg = record.arg;
this.method = "return";
this.next = "end";
} else if (record.type === "normal" && afterLoc) {
this.next = afterLoc;
}
return ContinueSentinel;
},
finish: function (finallyLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.finallyLoc === finallyLoc) {
this.complete(entry.completion, entry.afterLoc);
resetTryEntry(entry);
return ContinueSentinel;
}
}
},
"catch": function (tryLoc) {
for (var i = this.tryEntries.length - 1; i >= 0; --i) {
var entry = this.tryEntries[i];
if (entry.tryLoc === tryLoc) {
var record = entry.completion;
if (record.type === "throw") {
var thrown = record.arg;
resetTryEntry(entry);
}
return thrown;
}
}
// The context.catch method must only be called with a location
// argument that corresponds to a known catch block.
throw new Error("illegal catch attempt");
},
delegateYield: function (iterable, resultName, nextLoc) {
this.delegate = {
iterator: values(iterable),
resultName: resultName,
nextLoc: nextLoc
};
if (this.method === "next") {
// Deliberately forget the last sent value so that we don't
// accidentally pass it on to the delegate.
this.arg = undefined;
}
return ContinueSentinel;
}
};
})(
// In sloppy mode, unbound `this` refers to the global object, fallback to
// Function constructor if we're in global strict mode. That is sadly a form
// of indirect eval which violates Content Security Policy.
(function () { return this })() || Function("return this")()
);
{
"ver": "1.1.2",
"uuid": "2582562a-54bb-483a-8483-727d57c6c974",
"isBundle": false,
"bundleName": "",
"priority": 1,
"compressionType": {},
"optimizeHotUpdate": {},
"inlineSpriteFrames": {},
"isRemoteBundle": {},
"subMetas": {}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "835caf90-a4a3-49b7-891c-8b9628c6c1a3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 29,
"height": 29,
"platformSettings": {},
"subMetas": {
"Img_paper": {
"ver": "1.0.4",
"uuid": "b4eaff45-6718-4047-9d8f-5ecea01f08ae",
"rawTextureUuid": "835caf90-a4a3-49b7-891c-8b9628c6c1a3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 29,
"height": 29,
"rawWidth": 29,
"rawHeight": 29,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "249674f2-ae69-4209-a8f4-901abe8a860b",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 454,
"height": 113,
"platformSettings": {},
"subMetas": {
"bg_tryagain": {
"ver": "1.0.4",
"uuid": "80e29b22-f373-485c-8211-8b57da727698",
"rawTextureUuid": "249674f2-ae69-4209-a8f4-901abe8a860b",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 454,
"height": 113,
"rawWidth": 454,
"rawHeight": 113,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "dc8809fe-b291-4bcd-a0ed-cebff8dcfeb5",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 201,
"height": 89,
"platformSettings": {},
"subMetas": {
"btn_check": {
"ver": "1.0.4",
"uuid": "650c7ec5-6cd8-4a7e-91db-a0b1343086d6",
"rawTextureUuid": "dc8809fe-b291-4bcd-a0ed-cebff8dcfeb5",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 201,
"height": 89,
"rawWidth": 201,
"rawHeight": 89,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "7a7f137e-d523-4454-9232-f93a2a475acf",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 384,
"height": 151,
"platformSettings": {},
"subMetas": {
"btn_restart": {
"ver": "1.0.4",
"uuid": "bf3b1fe2-41ed-4842-9db3-29f3d7304593",
"rawTextureUuid": "7a7f137e-d523-4454-9232-f93a2a475acf",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 384,
"height": 151,
"rawWidth": 384,
"rawHeight": 151,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "6b03a6fc-96d5-49a3-817e-368e7ed68e06",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 278,
"height": 275,
"platformSettings": {},
"subMetas": {
"icon_bigstar": {
"ver": "1.0.4",
"uuid": "13ba294e-e1ed-4529-adb4-fde4d01710d6",
"rawTextureUuid": "6b03a6fc-96d5-49a3-817e-368e7ed68e06",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 278,
"height": 275,
"rawWidth": 278,
"rawHeight": 275,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "b93b9aee-483b-45e1-89d6-b3d5e482b4ee",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 122,
"height": 95,
"platformSettings": {},
"subMetas": {
"icon_right": {
"ver": "1.0.4",
"uuid": "661ccc57-af7c-4bb8-b740-6b7f29f84b7a",
"rawTextureUuid": "b93b9aee-483b-45e1-89d6-b3d5e482b4ee",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 122,
"height": 95,
"rawWidth": 122,
"rawHeight": 95,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "c3650da3-110a-4680-b9aa-b474f5f6afc6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 407,
"height": 303,
"platformSettings": {},
"subMetas": {
"op_pic_bg_big_l": {
"ver": "1.0.4",
"uuid": "7ab8b8ad-24a7-49d9-b6e4-0732819ca9d5",
"rawTextureUuid": "c3650da3-110a-4680-b9aa-b474f5f6afc6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 407,
"height": 303,
"rawWidth": 407,
"rawHeight": 303,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "1e7f443e-a48b-4e9a-b0b7-9626067e2e73",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 693,
"height": 129,
"platformSettings": {},
"subMetas": {
"op_text_bg_big": {
"ver": "1.0.4",
"uuid": "3a8d36c2-5da6-4db3-a12f-9ecf09eae275",
"rawTextureUuid": "1e7f443e-a48b-4e9a-b0b7-9626067e2e73",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 9,
"trimY": 9,
"width": 675,
"height": 111,
"rawWidth": 693,
"rawHeight": 129,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "eb5e00c5-a7d1-4229-b7ff-6ef298d1e341",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 693,
"height": 129,
"platformSettings": {},
"subMetas": {
"op_text_bg_big_l": {
"ver": "1.0.4",
"uuid": "60266da8-c9d2-4a4e-b071-3377c5bb7678",
"rawTextureUuid": "eb5e00c5-a7d1-4229-b7ff-6ef298d1e341",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 693,
"height": 129,
"rawWidth": 693,
"rawHeight": 129,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4013e8e6-89b6-4009-ae14-82d8c0d4c206",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 307,
"height": 227,
"platformSettings": {},
"subMetas": {
"option_pic_bg": {
"ver": "1.0.4",
"uuid": "880dfb40-3c9e-47b9-8dc8-89f461cf77fd",
"rawTextureUuid": "4013e8e6-89b6-4009-ae14-82d8c0d4c206",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 5,
"trimY": 5,
"width": 297,
"height": 217,
"rawWidth": 307,
"rawHeight": 227,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "2ab96811-4682-4ee2-b37d-24367dc50c57",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 604,
"height": 108,
"platformSettings": {},
"subMetas": {
"option_text_bg": {
"ver": "1.0.4",
"uuid": "1ae2b508-0ca6-41ab-b0cf-a8057c827641",
"rawTextureUuid": "2ab96811-4682-4ee2-b37d-24367dc50c57",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 5,
"trimY": 5,
"width": 594,
"height": 98,
"rawWidth": 604,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4be747a4-bfcc-4fe8-9042-2a530b3dfa1d",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 604,
"height": 108,
"platformSettings": {},
"subMetas": {
"option_text_bg_l": {
"ver": "1.0.4",
"uuid": "f347f17e-d969-416c-940c-d0c308f1b04b",
"rawTextureUuid": "4be747a4-bfcc-4fe8-9042-2a530b3dfa1d",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 604,
"height": 108,
"rawWidth": 604,
"rawHeight": 108,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ceb1f68c-c977-4d96-9684-c93c92fcb78a",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 702,
"height": 418,
"platformSettings": {},
"subMetas": {
"ques_pic_bg": {
"ver": "1.0.4",
"uuid": "7d246caa-ac10-4456-bec3-e9c951aaa187",
"rawTextureUuid": "ceb1f68c-c977-4d96-9684-c93c92fcb78a",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 702,
"height": 418,
"rawWidth": 702,
"rawHeight": 418,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "ebf0021f-1714-474e-bc59-31f96370f55c",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 62,
"height": 69,
"platformSettings": {},
"subMetas": {
"star": {
"ver": "1.0.4",
"uuid": "7fe7a583-8be5-4f05-8f51-1ca529a0437e",
"rawTextureUuid": "ebf0021f-1714-474e-bc59-31f96370f55c",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 62,
"height": 69,
"rawWidth": 62,
"rawHeight": 69,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "4a570528-225e-4eb9-8a5c-ea566d8056f6",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 62,
"height": 69,
"platformSettings": {},
"subMetas": {
"star_bg": {
"ver": "1.0.4",
"uuid": "292fce96-423a-4bb1-b1cc-6f3a61e85600",
"rawTextureUuid": "4a570528-225e-4eb9-8a5c-ea566d8056f6",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 1.5,
"trimX": 0,
"trimY": 0,
"width": 62,
"height": 66,
"rawWidth": 62,
"rawHeight": 69,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "85e63127-58d8-450d-958d-31b5051eacd3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 454,
"height": 113,
"platformSettings": {},
"subMetas": {
"try_again": {
"ver": "1.0.4",
"uuid": "f1e0a458-e66d-4117-a0af-71eb95828ab0",
"rawTextureUuid": "85e63127-58d8-450d-958d-31b5051eacd3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 454,
"height": 113,
"rawWidth": 454,
"rawHeight": 113,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "40cbfffa-0736-4622-9f69-3d6b0a8be067",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"video_pause": {
"ver": "1.0.4",
"uuid": "711e8b24-ba5d-4ed4-a59e-8e131229934d",
"rawTextureUuid": "40cbfffa-0736-4622-9f69-3d6b0a8be067",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
{
"ver": "2.3.5",
"uuid": "f2cdf783-a046-4d26-89c3-a928fcbcd7f3",
"type": "sprite",
"wrapMode": "clamp",
"filterMode": "bilinear",
"premultiplyAlpha": false,
"genMipmaps": false,
"packable": true,
"width": 105,
"height": 126,
"platformSettings": {},
"subMetas": {
"video_play": {
"ver": "1.0.4",
"uuid": "c68e0cd3-7e00-4478-8a33-923a7da0c85d",
"rawTextureUuid": "f2cdf783-a046-4d26-89c3-a928fcbcd7f3",
"trimType": "auto",
"trimThreshold": 1,
"rotated": false,
"offsetX": 0,
"offsetY": 0,
"trimX": 0,
"trimY": 0,
"width": 105,
"height": 126,
"rawWidth": 105,
"rawHeight": 126,
"borderTop": 0,
"borderBottom": 0,
"borderLeft": 0,
"borderRight": 0,
"subMetas": {}
}
}
}
\ No newline at end of file
......@@ -3,6 +3,6 @@
"packages": "packages",
"name": "play",
"id": "9af72fd2-44a6-4131-8ea3-3e1b3fa22231",
"version": "2.4.4",
"version": "2.4.0",
"isNew": false
}
\ No newline at end of file
{
"title": "play",
"packageName": "org.cocos2d.demo",
"startScene": "5e0a03aa-9b9e-4076-b508-7dbf209bb115",
"startScene": "57ea7c61-9b8b-498a-b024-c98ee9124beb",
"excludeScenes": [],
"includeSDKBox": false,
"orientation": {
......@@ -28,7 +28,6 @@
},
"ios": {
"REMOTE_SERVER_ROOT": "",
"ios_enable_jit": true,
"packageName": "org.cocos2d.demo"
},
"mac": {
......@@ -51,6 +50,5 @@
"scheme": "https",
"skipRecord": false
},
"appBundle": false,
"agreements": {}
"appBundle": false
}
{
"last-module-event-record-time": 1600677246969,
"migrate-history": [
"cloud-function"
]
"last-module-event-record-time": 1600677246969
}
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