Commit a318d934 authored by Tt's avatar Tt

OP15

parent d5665d78
class Ani { class Ani {
//抖动效果 //抖动效果
static shake(item) { static shake(item) {
// alert("抖动效果"); // alert("抖动效果");
let tween = cc.tween(item); let tween = cc.tween(item);
tween.to(0.06, { angle: 10 }) tween.to(0.06, { angle: 10 })
.to(0.06, { angle: 0 }) .to(0.06, { angle: 0 })
.to(0.06, { angle: -10 }) .to(0.06, { angle: -10 })
.to(0.06, { angle: 0 }); .to(0.06, { angle: 0 });
tween.repeat(4); tween.repeat(4);
tween.start(); tween.start();
} }
static scaleOut(item) { static scaleOut(item) {
return new Promise((resolve) => { return new Promise((resolve) => {
let tween = cc.tween(item); let tween = cc.tween(item);
tween.to(0.2, { scaleX: 0, scaleY: 0 }) tween.to(0.2, { scaleX: 0, scaleY: 0 })
.call(() => { resolve() }); .call(() => { resolve() });
tween.start(); tween.start();
}) })
} }
static scaleIn(item) { static scaleIn(item) {
return new Promise((resolve) => { return new Promise((resolve) => {
item.scaleX = 0; item.scaleX = 0;
item.scaleY = 0; item.scaleY = 0;
let tween = cc.tween(item); let tween = cc.tween(item);
tween.to(0.2, { scaleX: 1, scaleY: 1 }) tween.to(0.2, { scaleX: 1, scaleY: 1 })
.call(() => { resolve() }); .call(() => { resolve() });
tween.start(); tween.start();
}) })
} }
} }
export default Ani; export default Ani;
\ No newline at end of file
class Card { class Card {
constructor(picItem, cardId) { constructor(picItem, cardId) {
this.cardId = cardId; this.cardId = cardId;
this.type = CardManager.TYPE_IMG; this.type = CardManager.TYPE_IMG;
this.right = picItem.radioValue == "1"; this.right = picItem.radioValue == "1";
this.img = picItem.pic_url; this.img = picItem.pic_url;
this.audio = picItem.audio_url; this.audio = picItem.audio_url;
} }
} }
class CardManager { class CardManager {
static TYPE_NULL = 0; static TYPE_NULL = 0;
static TYPE_TXT = 1; static TYPE_TXT = 1;
static TYPE_IMG = 2; static TYPE_IMG = 2;
static TYPE_MP3 = 3; static TYPE_MP3 = 3;
static instance; static instance;
static getIns() { static getIns() {
if (!CardManager.instance) CardManager.instance = new CardManager(); if (!CardManager.instance) CardManager.instance = new CardManager();
return CardManager.instance; return CardManager.instance;
} }
_cardArray;//所有卡片的组 _cardArray;//所有卡片的组
testletId;//组id testletId;//组id
pageId;//页id pageId;//页id
constructor() { constructor() {
this._cardArray = [];//组 页 this._cardArray = [];//组 页
this._audio_url = ""; this._audio_url = "";
this.testletId = 0; this.testletId = 0;
this.pageId = 0; this.pageId = 0;
} }
initCards(obj) { initCards(obj) {
console.log(obj); console.log(obj);
let picArr = obj.contentObj.picArr; let picArr = obj.contentObj.picArr;
let id = 0; let id = 0;
this._cardArray = picArr.list.map(cd => { this._cardArray = picArr.list.map(cd => {
return new Card(cd, id++); return new Card(cd, id++);
}); });
this._audio_url = picArr.audio_url this._audio_url = picArr.audio_url
} }
getTestlet() { getTestlet() {
return this._cardArray.length - 1; return this._cardArray.length - 1;
} }
getPage() { getPage() {
return this._cardArray; return this._cardArray;
} }
getAudio() { getAudio() {
return this._audio_url; return this._audio_url;
} }
allRightNum() { allRightNum() {
return this._cardArray.filter(c => c.right).length; return this._cardArray.filter(c => c.right).length;
} }
addPageNum() { addPageNum() {
this.pageId++; this.pageId++;
if (!this.getPage()) { if (!this.getPage()) {
this.pageId = 0; this.pageId = 0;
this.testletId++; this.testletId++;
if (!this.getPage()) { if (!this.getPage()) {
return 2;//游戏结束 return 2;//游戏结束
} }
return 1;//组结束 return 1;//组结束
} else { } else {
return 0;//页结束 return 0;//页结束
} }
} }
resetPageNum() { resetPageNum() {
this.testletId = 0; this.testletId = 0;
this.pageId = 0; this.pageId = 0;
} }
randomPageCards() { randomPageCards() {
//页面内部数字要打乱 0 1 2 3 4 5 6 7 8 每次动态取出一个值 然后动态处理 //页面内部数字要打乱 0 1 2 3 4 5 6 7 8 每次动态取出一个值 然后动态处理
let arr = []; let arr = [];
while (this._cardArray.length > 0) { while (this._cardArray.length > 0) {
let rand = Math.floor(Math.random() * this._cardArray.length); let rand = Math.floor(Math.random() * this._cardArray.length);
arr.push(this._cardArray[rand]); arr.push(this._cardArray[rand]);
this._cardArray.splice(rand, 1); this._cardArray.splice(rand, 1);
} }
this._cardArray = arr; this._cardArray = arr;
} }
} }
export default CardManager; export default CardManager;
\ No newline at end of file
export const itemData = { export const itemData = {
"contentObj": { "picArr": { "list": [{ "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/81f008a708cafed9caf1234e0af0d982.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/b8860997e5801c5410cf23fb7d44ea6f.mp3" }, { "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/f2a7d2c7df70548ca49cdd802656aeb4.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/bdc09d9eb89b73e67357b502ae2158dd.mp3" }, { "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/12c164fe8bd626872e2a8f7ba6d88f7e.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3" }, { "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/94a3ead8d0972651c5d49d8aa25ac8b5.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/301ec5c708d22928ccf2162215f429fe.mp3" }, { "cardId": "", "radioValue": "0", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/b1baffd430e9f5feefde0b1053b7a7e2.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/2db9fa7c28a11fdbcecfa6a5b5e62319.mp3" }, { "cardId": "", "radioValue": "0", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/d1c6cedd0ea8ba9a6a8ca8ad3886df49.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/c3db5ac421ef039cf540edfa5116c831.mp3" }], "audio_url": "http://staging-teach.cdn.ireadabc.com/9bc9518c426d0e9a5e4a6b0614ddd195.mp3" } } "contentObj": { "picArr": { "list": [{ "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/81f008a708cafed9caf1234e0af0d982.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/b8860997e5801c5410cf23fb7d44ea6f.mp3" }, { "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/f2a7d2c7df70548ca49cdd802656aeb4.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/bdc09d9eb89b73e67357b502ae2158dd.mp3" }, { "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/12c164fe8bd626872e2a8f7ba6d88f7e.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/aaeb274c49f400c26b05583d481aca09.mp3" }, { "cardId": "", "radioValue": "1", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/94a3ead8d0972651c5d49d8aa25ac8b5.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/301ec5c708d22928ccf2162215f429fe.mp3" }, { "cardId": "", "radioValue": "0", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/b1baffd430e9f5feefde0b1053b7a7e2.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/2db9fa7c28a11fdbcecfa6a5b5e62319.mp3" }, { "cardId": "", "radioValue": "0", "title": "", "pic_url": "http://staging-teach.cdn.ireadabc.com/d1c6cedd0ea8ba9a6a8ca8ad3886df49.png", "audio_url": "http://staging-teach.cdn.ireadabc.com/c3db5ac421ef039cf540edfa5116c831.mp3" }], "audio_url": "http://staging-teach.cdn.ireadabc.com/9bc9518c426d0e9a5e4a6b0614ddd195.mp3" } }
} }
class HYLoader { class HYLoader {
getSprNode(resName) { getSprNode(resName) {
const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame; const sf = cc.find('Canvas/res/img/' + resName).getComponent(cc.Sprite).spriteFrame;
const node = new cc.Node(); const node = new cc.Node();
node.addComponent(cc.Sprite).spriteFrame = sf; node.addComponent(cc.Sprite).spriteFrame = sf;
return node; return node;
} }
getSpriteFrimeByUrl(url, cb) { getSpriteFrimeByUrl(url, cb) {
cc.loader.load({ url }, (err, img) => { cc.loader.load({ url }, (err, img) => {
const spriteFrame = new cc.SpriteFrame(img) const spriteFrame = new cc.SpriteFrame(img)
if (cb) { if (cb) {
cb(spriteFrame); cb(spriteFrame);
} }
}) })
} }
getSprNodeByUrl(url, cb) { getSprNodeByUrl(url, cb) {
const node = new cc.Node(); const node = new cc.Node();
const spr = node.addComponent(cc.Sprite); const spr = node.addComponent(cc.Sprite);
this.getSpriteFrimeByUrl(url, (sf) => { this.getSpriteFrimeByUrl(url, (sf) => {
spr.spriteFrame = sf; spr.spriteFrame = sf;
if (cb) { if (cb) {
cb(node); cb(node);
} }
}) })
} }
playAudioByUrl(audio_url, cb = null) { playAudioByUrl(audio_url, cb = null) {
if (audio_url) { if (audio_url) {
cc.assetManager.loadRemote(audio_url, (err, audioClip) => { cc.assetManager.loadRemote(audio_url, (err, audioClip) => {
const audioId = cc.audioEngine.play(audioClip, false, 0.8); const audioId = cc.audioEngine.play(audioClip, false, 0.8);
if (cb) { if (cb) {
cc.audioEngine.setFinishCallback(audioId, () => { cc.audioEngine.setFinishCallback(audioId, () => {
cb(); cb();
}); });
} }
}); });
} }
} }
} }
export const hyLoader = new HYLoader(); export const hyLoader = new HYLoader();
\ No newline at end of file
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