Commit 5df57226 authored by 范雪寒's avatar 范雪寒

feat: 选项尺寸调整;猫猫语音可配置

parent a2fea002
...@@ -5,6 +5,26 @@ ...@@ -5,6 +5,26 @@
答对所有题或答题满<input style="width: 50px;" type="number" nz-input [(ngModel)]="item.maxWrongNumber" (blur)="save()">次自动结束游戏 答对所有题或答题满<input style="width: 50px;" type="number" nz-input [(ngModel)]="item.maxWrongNumber" (blur)="save()">次自动结束游戏
</div> </div>
</div> </div>
<div style="padding: 10px;">
<div style="width: 500px; margin-top: 20px; border: 1px solid #ccc; border-radius: 5px; padding: 15px;">
猫咪开头音频:
<app-audio-recorder
style="margin-left: 10px; "
[audioUrl]="item.startAudio"
(audioUploaded)="onAudioUploadSuccess($event, 'startAudio', item)"
></app-audio-recorder>
</div>
<div style="width: 500px; margin-top: 20px; border: 1px solid #ccc; border-radius: 5px; padding: 15px;">
猫咪结束音频:
<app-audio-recorder
style="margin-left: 10px; "
[audioUrl]="item.endAudio"
(audioUploaded)="onAudioUploadSuccess($event, 'endAudio', item)"
></app-audio-recorder>
</div>
</div>
<div style="padding: 10px;"> <div style="padding: 10px;">
......
...@@ -24,6 +24,8 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy { ...@@ -24,6 +24,8 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
this.item = { this.item = {
maxWrongNumber: 4, maxWrongNumber: 4,
startAudio: '',
endAudio: '',
question_arr: [] question_arr: []
}; };
......
...@@ -104,6 +104,8 @@ cc.Class({ ...@@ -104,6 +104,8 @@ cc.Class({
}, },
addPreloadAudio() { addPreloadAudio() {
this._audioResList.push(this.data.startAudio);
this._audioResList.push(this.data.endAudio);
this._audioResList.push(...this.data.question_arr.map(question => { this._audioResList.push(...this.data.question_arr.map(question => {
return question.option_arr.map(option => { return question.option_arr.map(option => {
return { url: option.audio_url }; return { url: option.audio_url };
...@@ -172,19 +174,19 @@ cc.Class({ ...@@ -172,19 +174,19 @@ cc.Class({
const canvasHeight = cc.find('Canvas').height; const canvasHeight = cc.find('Canvas').height;
const optionNum = this.data.question_arr[questionIdx].option_arr.length; const optionNum = this.data.question_arr[questionIdx].option_arr.length;
const maxOptionHeight = 500; const maxOptionHeight = 500;
const maxOptionWidth = (canvasWidth - 20) / optionNum; const maxOptionWidth = (canvasWidth * 0.95) / optionNum;
const arr = randomSortByArr(this.data.question_arr[questionIdx].option_arr); const arr = randomSortByArr(this.data.question_arr[questionIdx].option_arr);
arr.forEach(async (option, idx) => { arr.forEach(async (option, idx) => {
const optionNode = await this.createOption(option); const optionNode = await this.createOption(option);
optionNode.name = `option_${idx}`; optionNode.name = `option_${idx}`;
optionNode.x = (maxOptionWidth) * (idx + 0.5) - canvasWidth / 2 - box.x; optionNode.x = (idx - (arr.length - 1) / 2) * maxOptionWidth - box.x;
optionNode.y = canvasHeight / 2 - box.y - 300; optionNode.y = canvasHeight / 2 - box.y - 300;
optionNode.scale = 0; optionNode.scale = 0;
optionNode.parent = box; optionNode.parent = box;
cc.tween(optionNode) cc.tween(optionNode)
.to(0.1, { scale: Math.min(1, (maxOptionWidth - 10) / optionNode.width, maxOptionHeight / optionNode.height) }) .to(0.1, { scale: Math.min(1, (maxOptionWidth * 0.85) / optionNode.width, maxOptionHeight / optionNode.height) })
.start(); .start();
}); });
}, },
...@@ -386,7 +388,7 @@ cc.Class({ ...@@ -386,7 +388,7 @@ cc.Class({
coolCatSpeakRight(cb) { coolCatSpeakRight(cb) {
const cat = cc.find('Canvas/bg/catFrame/CoolCat'); const cat = cc.find('Canvas/bg/catFrame/CoolCat');
playDragonBoneAnimation(cat, 'right', -1); playDragonBoneAnimation(cat, 'right', -1);
this.playEffect('CoolCatRight', () => { this.playAudioByUrl(this.data.startAudio, () => {
playDragonBoneAnimation(cat, 'normal', -1); playDragonBoneAnimation(cat, 'normal', -1);
cb(); cb();
}); });
...@@ -395,7 +397,7 @@ cc.Class({ ...@@ -395,7 +397,7 @@ cc.Class({
coolCatSpeakWrong(cb) { coolCatSpeakWrong(cb) {
const cat = cc.find('Canvas/bg/catFrame/CoolCat'); const cat = cc.find('Canvas/bg/catFrame/CoolCat');
playDragonBoneAnimation(cat, 'wrong', -1); playDragonBoneAnimation(cat, 'wrong', -1);
this.playEffect('CoolCatWrong', () => { this.playAudioByUrl(this.data.endAudio, () => {
playDragonBoneAnimation(cat, 'normal', -1); playDragonBoneAnimation(cat, 'normal', -1);
cb(); cb();
}); });
......
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