Обработка сенсорных событий в игре QML
Часть моей игры включает в себя table
в котором вращается шар. Есть также два прямоугольника, как racket
с, что игрок может использовать для игры. Сначала я использовал простой прямоугольник с областью мыши, заполняющей ракетку, и некоторые drag
свойства. Было несколько хорошо, когда я запустил программу на своем рабочем столе, но на устройствах Android прикосновение (например, пальцем) к ракеткам:
- трудно сделать игру неприятной, а также влияет на перемещение ракетки
- движение мяча!
Поэтому я искал в Интернете и столкнулся с MultiPointTouchArea. Поэтому я попытался использовать его в обеих ракетках, надеясь, что это решит проблемы.
Я использовал этот код:
import QtQuick 2.9
Rectangle {
id: root
width: 15; height: 65
property int oldY: y
property bool yUwards: false
property bool yDwards: false
onYChanged: {
if(y > oldY) yDwards = true
else if (y < oldY) yUwards = true
oldY = y
}
MultiPointTouchArea {
anchors.fill: root
mouseEnabled: true
minimumTouchPoints: 1
maximumTouchPoints: 1
touchPoints: [
TouchPoint { id: root }
]
drag.target: root
drag.axis: Drag.YAxis
drag.minimumY: table.y
drag.maximumY: table.height - height - 10
}
}
Но есть ошибки, такие как:
qrc: /Racket.qml: 22 id не уникален
Я имею в виду, как правильно использовать этот метод для ракеток, пожалуйста?