mirror of
https://github.com/barry-ran/QtScrcpy.git
synced 2025-08-02 05:48:38 +00:00
fix: drag delay timer too big bug
This commit is contained in:
parent
1373b0b84f
commit
b75edaae04
2 changed files with 13 additions and 12 deletions
|
@ -246,9 +246,9 @@ int InputConvertGame::getTouchID(int key)
|
||||||
// -------- steer wheel event --------
|
// -------- steer wheel event --------
|
||||||
|
|
||||||
void InputConvertGame::getDelayQueue(const QPointF& start, const QPointF& end,
|
void InputConvertGame::getDelayQueue(const QPointF& start, const QPointF& end,
|
||||||
const double& distanceStep, const double& posStepconst, const double& timerStep,
|
const double& distanceStep, const double& posStepconst,
|
||||||
QQueue<QPointF>& queuePos, QQueue<double>& queueTimer) {
|
quint32 lowestTimer, quint32 highestTimer,
|
||||||
double timerBase = 5.0f; // ms
|
QQueue<QPointF>& queuePos, QQueue<quint32>& queueTimer) {
|
||||||
double x1 = start.x();
|
double x1 = start.x();
|
||||||
double y1 = start.y();
|
double y1 = start.y();
|
||||||
double x2 = end.x();
|
double x2 = end.x();
|
||||||
|
@ -262,11 +262,11 @@ void InputConvertGame::getDelayQueue(const QPointF& start, const QPointF& end,
|
||||||
dy/=e;
|
dy/=e;
|
||||||
|
|
||||||
QQueue<QPointF> queue;
|
QQueue<QPointF> queue;
|
||||||
QQueue<double> queue2;
|
QQueue<quint32> queue2;
|
||||||
for(int i=1;i<=e;i++) {
|
for(int i=1;i<=e;i++) {
|
||||||
QPointF pos(x1+(QRandomGenerator::global()->bounded(posStepconst*2)-posStepconst), y1+(QRandomGenerator::global()->bounded(posStepconst*2)-posStepconst));
|
QPointF pos(x1+(QRandomGenerator::global()->bounded(posStepconst*2)-posStepconst), y1+(QRandomGenerator::global()->bounded(posStepconst*2)-posStepconst));
|
||||||
queue.enqueue(pos);
|
queue.enqueue(pos);
|
||||||
queue2.enqueue(QRandomGenerator::global()->bounded(timerStep*2)-timerStep + timerBase);
|
queue2.enqueue(QRandomGenerator::global()->bounded(lowestTimer, highestTimer));
|
||||||
x1+=dx;
|
x1+=dx;
|
||||||
y1+=dy;
|
y1+=dy;
|
||||||
}
|
}
|
||||||
|
@ -355,12 +355,12 @@ void InputConvertGame::processSteerWheel(const KeyMap::KeyMapNode &node, const Q
|
||||||
sendTouchDownEvent(id, node.data.steerWheel.centerPos);
|
sendTouchDownEvent(id, node.data.steerWheel.centerPos);
|
||||||
|
|
||||||
getDelayQueue(node.data.steerWheel.centerPos, node.data.steerWheel.centerPos+offset,
|
getDelayQueue(node.data.steerWheel.centerPos, node.data.steerWheel.centerPos+offset,
|
||||||
0.01f, 0.002f, 3.0f,
|
0.01f, 0.002f, 2, 8,
|
||||||
m_ctrlSteerWheel.delayData.queuePos,
|
m_ctrlSteerWheel.delayData.queuePos,
|
||||||
m_ctrlSteerWheel.delayData.queueTimer);
|
m_ctrlSteerWheel.delayData.queueTimer);
|
||||||
} else {
|
} else {
|
||||||
getDelayQueue(m_ctrlSteerWheel.delayData.currentPos, node.data.steerWheel.centerPos+offset,
|
getDelayQueue(m_ctrlSteerWheel.delayData.currentPos, node.data.steerWheel.centerPos+offset,
|
||||||
0.01f, 0.002f, 3.0f,
|
0.01f, 0.002f, 2, 8,
|
||||||
m_ctrlSteerWheel.delayData.queuePos,
|
m_ctrlSteerWheel.delayData.queuePos,
|
||||||
m_ctrlSteerWheel.delayData.queueTimer);
|
m_ctrlSteerWheel.delayData.queueTimer);
|
||||||
}
|
}
|
||||||
|
@ -477,7 +477,7 @@ void InputConvertGame::processKeyDrag(const QPointF &startPos, QPointF endPos, c
|
||||||
m_dragDelayData.queuePos.clear();
|
m_dragDelayData.queuePos.clear();
|
||||||
m_dragDelayData.queueTimer.clear();
|
m_dragDelayData.queueTimer.clear();
|
||||||
getDelayQueue(startPos, endPos,
|
getDelayQueue(startPos, endPos,
|
||||||
0.01f, 0.002f, 2.0f,
|
0.01f, 0.002f, 0, 2,
|
||||||
m_dragDelayData.queuePos,
|
m_dragDelayData.queuePos,
|
||||||
m_dragDelayData.queueTimer);
|
m_dragDelayData.queueTimer);
|
||||||
m_dragDelayData.timer->start();
|
m_dragDelayData.timer->start();
|
||||||
|
|
|
@ -62,8 +62,9 @@ protected:
|
||||||
void hideMouseCursor(bool hide);
|
void hideMouseCursor(bool hide);
|
||||||
|
|
||||||
void getDelayQueue(const QPointF& start, const QPointF& end,
|
void getDelayQueue(const QPointF& start, const QPointF& end,
|
||||||
const double& distanceStep, const double& posStepconst, const double& timerStep,
|
const double& distanceStep, const double& posStepconst,
|
||||||
QQueue<QPointF>& queuePos, QQueue<double>& queueTimer);
|
quint32 lowestTimer, quint32 highestTimer,
|
||||||
|
QQueue<QPointF>& queuePos, QQueue<quint32>& queueTimer);
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void timerEvent(QTimerEvent *event);
|
void timerEvent(QTimerEvent *event);
|
||||||
|
@ -97,7 +98,7 @@ private:
|
||||||
QPointF currentPos;
|
QPointF currentPos;
|
||||||
QTimer* timer = nullptr;
|
QTimer* timer = nullptr;
|
||||||
QQueue<QPointF> queuePos;
|
QQueue<QPointF> queuePos;
|
||||||
QQueue<double> queueTimer;
|
QQueue<quint32> queueTimer;
|
||||||
int pressedNum = 0;
|
int pressedNum = 0;
|
||||||
} delayData;
|
} delayData;
|
||||||
} m_ctrlSteerWheel;
|
} m_ctrlSteerWheel;
|
||||||
|
@ -117,7 +118,7 @@ private:
|
||||||
QPointF currentPos;
|
QPointF currentPos;
|
||||||
QTimer* timer = nullptr;
|
QTimer* timer = nullptr;
|
||||||
QQueue<QPointF> queuePos;
|
QQueue<QPointF> queuePos;
|
||||||
QQueue<double> queueTimer;
|
QQueue<quint32> queueTimer;
|
||||||
int pressKey = 0;
|
int pressKey = 0;
|
||||||
} m_dragDelayData;
|
} m_dragDelayData;
|
||||||
};
|
};
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue