Warning, file /education/gcompris/src/activities/scalesboard/scalesboard.js was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).
0001 /* GCompris - scalesboard.js 0002 * 0003 * SPDX-FileCopyrightText: 2014 Bruno Coudoin 0004 * 0005 * Authors: 0006 * miguel DE IZARRA <miguel2i@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 url = "qrc:/gcompris/src/activities/scalesboard/resource/" 0016 0017 var numberOfLevel 0018 var items 0019 var currentTargets = [] 0020 var initCompleted = false 0021 0022 function start(items_) { 0023 items = items_ 0024 numberOfLevel = items.levels.length 0025 items.currentLevel = Core.getInitialLevel(numberOfLevel) 0026 initLevel() 0027 } 0028 0029 function stop() { 0030 } 0031 0032 function initLevel() { 0033 items.errorRectangle.resetState() 0034 currentTargets = Core.shuffle(items.levels[items.currentLevel].targets) 0035 items.score.currentSubLevel = 0 0036 items.score.numberOfSubLevels = currentTargets.length 0037 items.rightDrop = items.levels[items.currentLevel].rightDrop 0038 items.question.text = items.levels[items.currentLevel].question != undefined ? items.levels[items.currentLevel].question : "" 0039 displayLevel() 0040 } 0041 0042 function displayLevel() 0043 { 0044 0045 initCompleted = false 0046 items.numpad.answer = "" 0047 items.masseAreaLeft.init() 0048 items.masseAreaRight.init() 0049 items.masseAreaCenter.init() 0050 var data = items.levels[items.currentLevel] 0051 for(var i=0; i < data.masses.length; i++) 0052 items.masseAreaCenter.addMasse("masse" + (i % 5 + 1) + ".svg", 0053 data.masses[i][0], 0054 data.masses[i][1], 0055 i, 0056 /* dragEnabled */ true) 0057 0058 items.giftWeight = currentTargets[items.score.currentSubLevel][0] 0059 items.masseAreaRight.addMasse("gift.svg", 0060 currentTargets[items.score.currentSubLevel][0], 0061 data.question ? "" : currentTargets[items.score.currentSubLevel][1], 0062 0, 0063 /* dragEnabled */ false) 0064 0065 initCompleted = true 0066 items.buttonsBlocked = false 0067 } 0068 0069 function checkAnswer() { 0070 items.buttonsBlocked = true 0071 if((initCompleted && items.scaleHeight == 0 && !items.question.visible) 0072 || (items.question.userEntry == items.question.answer)) { 0073 items.score.currentSubLevel++; 0074 items.score.playWinAnimation(); 0075 items.audioEffects.play("qrc:/gcompris/src/core/resource/sounds/completetask.wav"); 0076 } 0077 else { 0078 items.errorRectangle.startAnimation(); 0079 items.audioEffects.play("qrc:/gcompris/src/core/resource/sounds/crash.wav"); 0080 } 0081 } 0082 0083 function nextSubLevel() { 0084 if(items.score.currentSubLevel >= items.score.numberOfSubLevels) { 0085 items.bonus.good("flower") 0086 } else { 0087 displayLevel() 0088 } 0089 } 0090 0091 function nextLevel() { 0092 items.score.stopWinAnimation(); 0093 items.currentLevel = Core.getNextLevel(items.currentLevel, numberOfLevel); 0094 initLevel(); 0095 } 0096 0097 function previousLevel() { 0098 items.score.stopWinAnimation(); 0099 items.currentLevel = Core.getPreviousLevel(items.currentLevel, numberOfLevel); 0100 initLevel(); 0101 }