Warning, /games/kbreakout/src/qml/Gift.qml is written in an unsupported language. File is not indexed.
0001 /*
0002 SPDX-FileCopyrightText: 2012 Viranch Mehta <viranch.mehta@gmail.com>
0003
0004 SPDX-License-Identifier: GPL-2.0-or-later
0005 */
0006
0007 import QtQuick 2.3
0008 import org.kde.games.core 0.1 as KgCore
0009 import "globals.js" as Globals
0010
0011 CanvasItem {
0012 id: gift
0013
0014 property string type
0015 onTypeChanged: spriteKey = type;
0016
0017 width: m_scale * Globals.GIFT_WIDTH
0018 height: m_scale * Globals.GIFT_HEIGHT
0019
0020 property real posX
0021 property real posY
0022
0023 x: m_scale * posX
0024 y: m_scale * posY
0025
0026 property bool falling: false
0027 property real giftSpeed: 0
0028 property int speedFactor: random(Globals.MINIMUM_GIFT_SPEED, Globals.MAXIMUM_GIFT_SPEED)
0029
0030 function random(min, max) {
0031 return min + Math.floor(Math.random()*(max-min+1));
0032 }
0033
0034 function setPosition(x, y) {
0035 posX = x + (Globals.BRICK_WIDTH-Globals.GIFT_WIDTH)/2;
0036 posY = y;
0037 }
0038
0039 Timer {
0040 interval: gameTimer.interval
0041 running: gameTimer.running && falling
0042 repeat: true
0043 onTriggered: {
0044 var simpleSpeed = Math.sqrt(speed / interval);
0045 move(simpleSpeed, interval);
0046 }
0047 }
0048
0049 function move(speed, updateInterval) {
0050 for(var i=0; i<updateInterval; i++) {
0051 var linearIncreaseFactor = 0.00008 * speed;
0052 var exponentialIncreaseFactor = 0.002;
0053 giftSpeed += speedFactor * linearIncreaseFactor;
0054 giftSpeed += giftSpeed * exponentialIncreaseFactor;
0055 posY += giftSpeed;
0056 }
0057 }
0058 }