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 }