Commit ba4cbdee authored by Tt's avatar Tt

随机打乱

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