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 }