Warning, /education/gcompris/src/activities/balancebox/BalanceItem.qml is written in an unsupported language. File is not indexed.
0001 /* GCompris - BalanceItem.qml
0002 *
0003 * SPDX-FileCopyrightText: 2014-2015 Holger Kaelberer <holger.k@elberer.de>
0004 *
0005 * Authors:
0006 * Holger Kaelberer <holger.k@elberer.de>
0007 *
0008 * SPDX-License-Identifier: GPL-3.0-or-later
0009 */
0010 import QtQuick 2.12
0011 import Box2D 2.0
0012 import QtGraphicalEffects 1.0
0013
0014 import "../../core"
0015
0016 Item {
0017 id: item
0018
0019 z: 2 // above most
0020
0021 property alias world: itemBody.world
0022
0023 property alias imageSource: itemImage.source
0024
0025 property alias body: itemBody
0026 property alias bodyType: itemBody.bodyType
0027 property alias linearDamping: itemBody.linearDamping
0028
0029 property alias fixtures: itemBody.fixtures
0030 property alias sensor: itemFixture.sensor
0031 property alias categories: itemFixture.categories
0032 property alias collidesWith: itemFixture.collidesWith
0033 property alias density: itemFixture.density
0034 property alias friction: itemFixture.friction
0035 property alias restitution: itemFixture.restitution
0036
0037 property alias shadow: itemShadow.visible
0038 property alias shadowHorizontalOffset: itemShadow.horizontalOffset
0039 property alias shadowVerticalOffset: itemShadow.verticalOffset
0040 // for goal in the editor, use 1.1 scale
0041 property alias imageScale: itemImage.scale
0042
0043 signal beginContact(Item item, Item other)
0044 signal endContact(Item item, Item other)
0045
0046 Image {
0047 id: itemImage
0048 width: item.width
0049 height: item.height
0050 sourceSize.width: width
0051 sourceSize.height: height
0052 source: item.imageSource
0053 anchors.centerIn: parent
0054 scale: 1
0055 }
0056
0057 DropShadow {
0058 id: itemShadow
0059 anchors.fill: itemImage
0060 cached: true
0061 visible: false // note: dropping shadows for the walls is really expensive
0062 // in terms of CPU usage!
0063 radius: 0
0064 samples: 16
0065 color: "#80000000"
0066 source: itemImage
0067 }
0068
0069 Body {
0070 id: itemBody
0071
0072 target: item
0073 bodyType: Body.Static
0074 sleepingAllowed: false
0075 fixedRotation: true
0076 linearDamping: 0
0077
0078 fixtures: Circle {
0079 id: itemFixture
0080
0081 radius: itemImage.width / 2
0082
0083 onBeginContact: item.beginContact(getBody().target, other.getBody().target)
0084 onEndContact: item.endContact(getBody().target, other.getBody().target)
0085 }
0086 }
0087 }