Commit ba4cbdee authored by Tt's avatar Tt

随机打乱

parent 1df43fae
...@@ -46,7 +46,7 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -46,7 +46,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
private list: Array<{ type, text, right, imgage, duration, content, audio }>; private list: Array<{ type, text, right, imgage, duration, content, audio }>;
private recordFlag: boolean;//录音模式 private recordFlag: boolean;//录音模式
// 单词列表 // 单词列表
private wordDataList: Array<object>; private wordDataList: Array<any>;
// 当前第几个 // 当前第几个
private curIndex: number = 0; private curIndex: number = 0;
initData() { initData() {
...@@ -58,11 +58,22 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -58,11 +58,22 @@ export default class SceneComponent extends MyCocosSceneComponent {
this.layers = []; this.layers = [];
this.wordDataList = data.questions.map(question => { this.wordDataList = data.questions.map(question => {
let arr = question.letterList.map((letter, i) => {
letter.group = i;
return letter;
})
return { return {
img: question.image, img: question.image,
audio: question.audio, audio: question.audio,
type: question.type,// img type: question.type,// img
answer: question.letterList.map(letter => letter.text) answerArr: arr,
answerRand: arr.concat().sort(() => Math.random() - 0.5)
.sort(() => Math.random() - 0.5).sort(() => Math.random() - 0.5).sort(() => Math.random() - 0.5)
.sort(() => Math.random() - 0.5).sort(() => Math.random() - 0.5)
.sort(() => Math.random() - 0.5).sort(() => Math.random() - 0.5)
.sort(() => Math.random() - 0.5).sort(() => Math.random() - 0.5)
.sort(() => Math.random() - 0.5).sort(() => Math.random() - 0.5)
.sort(() => Math.random() - 0.5)
} }
}) })
console.log(data); console.log(data);
...@@ -127,7 +138,7 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -127,7 +138,7 @@ export default class SceneComponent extends MyCocosSceneComponent {
pg.event.once('layer_right_show_excellent_end', () => { pg.event.once('layer_right_show_excellent_end', () => {
this.curIndex++; this.curIndex++;
if (!this.CurrentWord) { if (!this.CurrentWord) {
alert("游戏结束画面暂无") // alert("游戏结束画面暂无")
} else { } else {
this.showWord(); this.showWord();
} }
...@@ -173,17 +184,19 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -173,17 +184,19 @@ export default class SceneComponent extends MyCocosSceneComponent {
} }
} }
initWordBg() { initWordBg() {
let ansArr = this.CurrentWord.answer; let ansArr = this.CurrentWord.answerArr;
let count = -1; let count = -1;
ansArr.forEach((ans, i) => { ansArr.forEach((ansObj, i) => {
let ans = ansObj.text;
let group = ansObj.group;
// 长度大于一需要做拆分 // 长度大于一需要做拆分
let ansStrArr = ans.split(''); let ansStrArr = ans.split('');
ansStrArr.forEach((str, m) => { ansStrArr.forEach((str, m) => {
count++; count++;
let child = this.getWordBgNodeByStr(str); let child = this.getWordBgNodeByStr(str);
child.data = { count: count, group: i, index: m } child.data = { count: count, group: group, index: m }
this.successGroupIds[`${i}`] = false; this.successGroupIds[`${i}`] = false;
let pos = this.getWordBgPosByAns(ansArr, [str], child.data) let pos = this.getWordBgPosByAns(ansArr.map(ans => ans.text), [str], child.data)
child.x = pos.x; child.x = pos.x;
child.y = pos.y; child.y = pos.y;
this.wordBgList.push(child); this.wordBgList.push(child);
...@@ -192,15 +205,17 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -192,15 +205,17 @@ export default class SceneComponent extends MyCocosSceneComponent {
}); });
} }
initWord() { initWord() {
let ansArr = this.CurrentWord.answer; let ansArr = this.CurrentWord.answerRand;
let itemPrefab = pg.view.find(this.layer_word, 'item'); let itemPrefab = pg.view.find(this.layer_word, 'item');
let count = -1; let count = -1;
ansArr.forEach((ans, i) => { ansArr.forEach((ansObj) => {
let ans = ansObj.text;
let group = ansObj.group;
let ansStrArr = ans.split(''); let ansStrArr = ans.split('');
// 利用单一节点存储多字母 // 利用单一节点存储多字母
// 依据字符长度做不同的处理 // 依据字符长度做不同的处理
let itemClone = pg.view.clone(itemPrefab) let itemClone = pg.view.clone(itemPrefab)
let { pos, width } = this.getItemPosWidthByAns(ansArr, ansStrArr, count + 1); let { pos, width } = this.getItemPosWidthByAns(ansArr.map(ans => ans.text), ansStrArr, count + 1);
itemClone.x = pos.x; itemClone.x = pos.x;
itemClone.y = pos.y; itemClone.y = pos.y;
itemClone.orgPos = cc.v2(pos); itemClone.orgPos = cc.v2(pos);
...@@ -216,8 +231,8 @@ export default class SceneComponent extends MyCocosSceneComponent { ...@@ -216,8 +231,8 @@ export default class SceneComponent extends MyCocosSceneComponent {
ansStrArr.forEach((str, m) => { ansStrArr.forEach((str, m) => {
count++; count++;
let child = this.getWordNodeByStr(str); let child = this.getWordNodeByStr(str);
child.data = { group: i, index: m, count: count }; child.data = { group: group, index: m, count: count };
let pos = this.getWordPosByAns(ansArr, [str], child.data); let pos = this.getWordPosByAns(ansArr.map(ans => ans.text), [str], child.data);
child.x = pos.x; child.x = pos.x;
child.y = pos.y; child.y = pos.y;
this.wordList.push(child) this.wordList.push(child)
......
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