File indexing completed on 2024-04-28 15:07:47
0001 /* GCompris - findit.js 0002 * 0003 * SPDX-FileCopyrightText: 2015 Bruno Coudoin 0004 * 0005 * SPDX-License-Identifier: GPL-3.0-or-later 0006 */ 0007 0008 .pragma library 0009 .import QtQuick 2.12 as Quick 0010 .import "qrc:/gcompris/src/core/core.js" as Core 0011 0012 var url = "qrc:/gcompris/src/activities/colors/resource/" 0013 0014 var numberOfLevel 0015 var items 0016 var dataset 0017 0018 var currentQuestion 0019 0020 var hasWon 0021 0022 var tempModel = [] 0023 0024 function start(items_, dataset_, mode_) { 0025 if (mode_ === "Colors") 0026 Core.checkForVoices(items_.activityPage); 0027 items = items_ 0028 dataset = dataset_.get() 0029 numberOfLevel = dataset.length 0030 items.currentLevel = Core.getInitialLevel(numberOfLevel) 0031 items.firstQuestion = true 0032 items.audioOk = false 0033 items.score.currentSubLevel = 0 0034 initLevel() 0035 } 0036 0037 function stop() { 0038 } 0039 0040 function initLevel() { 0041 items.modelCopied = false 0042 tempModel = [] 0043 items.containerModel.clear() 0044 currentQuestion = 0 0045 items.objectCount = dataset[items.currentLevel].length 0046 dataset[items.currentLevel] = Core.shuffle(dataset[items.currentLevel]) 0047 0048 for(var i = 0; i < dataset[items.currentLevel].length; ++i) { 0049 tempModel.push(dataset[items.currentLevel][i]) 0050 } 0051 0052 items.score.numberOfSubLevels = dataset[items.currentLevel].length 0053 0054 // Shuffle again not to ask the question in the model order 0055 dataset[items.currentLevel] = Core.shuffle(dataset[items.currentLevel]) 0056 hasWon = false 0057 items.initAnim.restart() 0058 items.objectSelected = false 0059 } 0060 0061 function tempModelToContainer() { 0062 for(var i = 0; i < tempModel.length; ++i) { 0063 items.containerModel.append(tempModel[i]) 0064 } 0065 items.modelCopied = true 0066 } 0067 0068 function nextQuestion() { 0069 if(dataset[items.currentLevel].length <= currentQuestion + 1) { 0070 items.fadeOutAnim.restart() 0071 items.bonus.good("flower") 0072 hasWon = true 0073 } else { 0074 currentQuestion++ 0075 items.nextAnim.restart() 0076 } 0077 } 0078 0079 function nextLevel() { 0080 items.score.stopWinAnimation() 0081 items.score.currentSubLevel = 0 0082 items.currentLevel = Core.getNextLevel(items.currentLevel, numberOfLevel); 0083 initLevel(); 0084 } 0085 0086 function previousLevel() { 0087 items.score.stopWinAnimation() 0088 items.score.currentSubLevel = 0 0089 items.currentLevel = Core.getPreviousLevel(items.currentLevel, numberOfLevel); 0090 initLevel(); 0091 } 0092 0093 function getCurrentTextQuestion() { 0094 return dataset[items.currentLevel][currentQuestion].text 0095 } 0096 0097 function getCurrentAudioQuestion() { 0098 return dataset[items.currentLevel][currentQuestion].audio 0099 }