File indexing completed on 2024-04-28 15:07:57

0001 /* GCompris - mosaic.js
0002  *
0003  * SPDX-FileCopyrightText: 2014 Bruno Coudoin
0004  *
0005  * Authors:
0006  *   Clement coudoin <clement.coudoin@free.fr> (GTK+ version)
0007  *   Bruno.coudoin <bruno.coudoin@gcompris.net> (Qt Quick port)
0008  *
0009  *   SPDX-License-Identifier: GPL-3.0-or-later
0010  */
0011 .pragma library
0012 .import QtQuick 2.12 as Quick
0013 .import "qrc:/gcompris/src/core/core.js" as Core
0014 
0015 var questionModel
0016 var answerModel
0017 var selectorModel
0018 
0019 var url = "qrc:/gcompris/src/activities/mosaic/resource/"
0020 
0021 var numberOfLevel
0022 var items
0023 
0024 function start(items_) {
0025     items = items_
0026     numberOfLevel = items.levels.length
0027     items.currentLevel = Core.getInitialLevel(numberOfLevel)
0028     initLevel()
0029 }
0030 
0031 function stop() {
0032 }
0033 
0034 function initLevel() {
0035     items.background.areaWithKeyboardFocus = items.selector
0036     items.selectedItem = ""
0037     items.nbItems = items.levels[items.currentLevel].nbOfCells
0038     items.questionLayoutColumns = items.levels[items.currentLevel].layout[0][0]
0039     items.questionLayoutRows = items.levels[items.currentLevel].layout[0][1]
0040     items.modelDisplayLayout = items.levels[items.currentLevel].modelDisplayLayout
0041     selectorModel = items.levels[items.currentLevel].images
0042 
0043     items.selector.model = selectorModel
0044     questionModel = Core.shuffle(selectorModel)
0045     items.question.model = questionModel
0046 
0047     answerModel = new Array()
0048     for(var i=0; i < questionModel.length; i++)
0049         answerModel.push("dice_0.svg")
0050     items.answer.model = answerModel
0051 
0052 }
0053 
0054 function nextLevel() {
0055     items.currentLevel = Core.getNextLevel(items.currentLevel, numberOfLevel)
0056     initLevel();
0057 }
0058 
0059 function previousLevel() {
0060     items.currentLevel = Core.getPreviousLevel(items.currentLevel, numberOfLevel);
0061     initLevel();
0062 }
0063 
0064 function answerSelected(index) {
0065     if(!items.selectedItem)
0066         return
0067 
0068     items.audioEffects.play("qrc:/gcompris/src/activities/redraw/resource/brush.wav")
0069     answerModel[index] = items.selectedItem
0070     items.answer.model = answerModel
0071 
0072     if(answerModel.toString() === questionModel.toString()) {
0073         items.bonus.good("flower")
0074     }
0075 }