File indexing completed on 2024-04-28 15:07:54
0001 /* GCompris - leftright.js 0002 * 0003 * SPDX-FileCopyrightText: 2014 Bruno Coudoin 0004 * 0005 * Authors: 0006 * Pascal Georges <pascal.georges1@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 .import QtQuick 2.12 as Quick 0012 .import "qrc:/gcompris/src/core/core.js" as Core 0013 0014 var currentHands = [] 0015 var levels = [ 0016 { "images": [ 0017 "main_droite_dessus_0.webp", 0018 "main_droite_paume_0.webp" , 0019 "main_gauche_dessus_0.webp", 0020 "main_gauche_paume_0.webp" ], 0021 "rotations": [-90] 0022 }, 0023 { "images": [ 0024 "main_droite_dessus_0.webp", 0025 "main_droite_paume_0.webp", 0026 "main_gauche_dessus_0.webp", 0027 "main_gauche_paume_0.webp" ], 0028 "rotations": [0, 180] 0029 }, 0030 { "images": [ 0031 "main_droite_dessus_0.webp", 0032 "main_droite_paume_0.webp", 0033 "main_gauche_dessus_0.webp", 0034 "main_gauche_paume_0.webp" ], 0035 "rotations": [90] 0036 }, 0037 { "images": [ 0038 "poing_droit_dessus_0.webp", 0039 "poing_droit_paume_0.webp", 0040 "poing_gauche_dessus_0.webp", 0041 "poing_gauche_paume_0.webp" ], 0042 "rotations": [-90] 0043 }, 0044 { "images": [ 0045 "poing_droit_dessus_0.webp", 0046 "poing_droit_paume_0.webp", 0047 "poing_gauche_dessus_0.webp", 0048 "poing_gauche_paume_0.webp" ], 0049 "rotations": [0, 180] 0050 }, 0051 { "images": [ 0052 "poing_droit_dessus_0.webp", 0053 "poing_droit_paume_0.webp", 0054 "poing_gauche_dessus_0.webp", 0055 "poing_gauche_paume_0.webp" ], 0056 "rotations": [90] 0057 }, 0058 ] 0059 0060 0061 var items 0062 0063 function start(items_) { 0064 items = items_ 0065 items.currentLevel = Core.getInitialLevel(levels.length) 0066 initLevel() 0067 } 0068 0069 function stop() { 0070 0071 } 0072 0073 function initLevel() { 0074 items.score.currentSubLevel = 0 0075 currentHands = new Array() 0076 var level = levels[items.currentLevel] 0077 var counter = 0 0078 for (var i = 0 ; i < level.images.length ; i++) { 0079 for (var r = 0 ; r < level.rotations.length ; r++) { 0080 currentHands[counter++] = { 0081 'image': level.images[i], 0082 'rotation': level.rotations[r] } 0083 } 0084 } 0085 0086 items.score.numberOfSubLevels = level.images.length * level.rotations.length 0087 0088 currentHands = Core.shuffle(currentHands) 0089 displayHand() 0090 } 0091 0092 function nextLevel() { 0093 items.score.stopWinAnimation() 0094 items.currentLevel = Core.getNextLevel(items.currentLevel, levels.length); 0095 initLevel(); 0096 } 0097 0098 function previousLevel() { 0099 items.score.stopWinAnimation() 0100 items.currentLevel = Core.getPreviousLevel(items.currentLevel, levels.length); 0101 initLevel(); 0102 } 0103 0104 function displayHand() { 0105 items.leftButton.isCorrectAnswer = isLeft() 0106 items.rightButton.isCorrectAnswer = isRight() 0107 items.imageAnimOff.start() 0108 items.buttonsBlocked = false 0109 } 0110 0111 function getCurrentHandImage() { 0112 return "qrc:/gcompris/src/activities/leftright/resource/" + 0113 currentHands[items.score.currentSubLevel].image 0114 } 0115 0116 function getCurrentHandRotation() { 0117 return currentHands[items.score.currentSubLevel].rotation 0118 } 0119 0120 function displayNextHand() { 0121 if(items.score.currentSubLevel >= items.score.numberOfSubLevels) { 0122 items.bonus.good("flower") 0123 return 0124 } 0125 displayHand() 0126 } 0127 0128 function isLeft() { 0129 return (currentHands[items.score.currentSubLevel].image.indexOf("gauche") !== -1) ? true : false 0130 } 0131 0132 0133 function isRight() { 0134 return (currentHands[items.score.currentSubLevel].image.indexOf("droit") !== -1) ? true : false 0135 } 0136 0137 0138 function goodAnswerPressed() { 0139 items.score.currentSubLevel++; 0140 items.score.playWinAnimation(); 0141 } 0142 0143 function leftClickPressed() { 0144 items.leftButton.pressed() 0145 } 0146 0147 function rightClickPressed() { 0148 items.rightButton.pressed() 0149 }