Warning, /education/gcompris/src/activities/gnumch-equality/Monster.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - Monster.qml 0002 * 0003 * SPDX-FileCopyrightText: 2014 Manuel Tondeur <manueltondeur@gmail.com> 0004 * 0005 * Authors: 0006 * Joe Neeman (spuzzzzzzz@gmail.com) (GTK+ version) 0007 * Manuel Tondeur <manueltondeur@gmail.com> (Qt Quick port) 0008 * 0009 * SPDX-License-Identifier: GPL-3.0-or-later 0010 */ 0011 import QtQuick 2.12 0012 0013 import "gnumch-equality.js" as Activity 0014 0015 Creature { 0016 id: monster 0017 0018 property int direction 0019 property var player 0020 0021 signal stop 0022 0023 Component.onCompleted: { 0024 activity.stop.connect(stop); 0025 } 0026 0027 onStop: { 0028 timerMove.stop(); 0029 } 0030 0031 function checkCell() { 0032 if (index === player.index && player.movable) { 0033 player.getCaught(-1) 0034 eating = true 0035 } 0036 0037 if (monsters.checkOtherMonster(index)) { 0038 eating = true 0039 } 0040 } 0041 0042 opacity: 0 0043 0044 onMovingOnChanged: { 0045 if (movingOn == false) { 0046 checkCell() 0047 } 0048 } 0049 0050 onOpacityChanged: { 0051 if (opacity == 1) { 0052 checkCell() 0053 } 0054 } 0055 0056 Timer { 0057 id: timerMove 0058 interval: 2000 0059 running: true 0060 repeat: true 0061 0062 onTriggered: { 0063 if (!moveTo(direction)) { 0064 var vertical = Math.floor(direction/2) 0065 var sign = Math.pow(-1,(direction)) 0066 y = y + sign * grid.cellHeight * vertical 0067 x = x - sign * grid.cellWidth * (vertical - 1) 0068 opacity = 0 0069 } 0070 0071 } 0072 } 0073 0074 Behavior on opacity { 0075 NumberAnimation { 0076 id: animationEnd 0077 duration: 500 0078 0079 onRunningChanged: { 0080 if (!animationEnd.running && monster.opacity == 0) { 0081 monster.destroy() 0082 } 0083 } 0084 } 0085 } 0086 }