mirror of
https://github.com/overte-org/overte.git
synced 2025-08-08 09:57:26 +02:00
Android fly - Use new asset and screen position - missing cpp
This commit is contained in:
parent
ffb8b0a60e
commit
b61a436a84
1 changed files with 11 additions and 14 deletions
|
@ -57,8 +57,7 @@ void TouchscreenVirtualPadDevice::init() {
|
||||||
}
|
}
|
||||||
|
|
||||||
auto& virtualPadManager = VirtualPad::Manager::instance();
|
auto& virtualPadManager = VirtualPad::Manager::instance();
|
||||||
setupFixedCenter(virtualPadManager, true);
|
setupControlsPositions(virtualPadManager, true);
|
||||||
setupJumpButton(virtualPadManager);
|
|
||||||
|
|
||||||
if (_fixedPosition) {
|
if (_fixedPosition) {
|
||||||
virtualPadManager.getLeftVirtualPad()->setShown(virtualPadManager.isEnabled() && !virtualPadManager.isHidden()); // Show whenever it's enabled
|
virtualPadManager.getLeftVirtualPad()->setShown(virtualPadManager.isEnabled() && !virtualPadManager.isHidden()); // Show whenever it's enabled
|
||||||
|
@ -67,24 +66,22 @@ void TouchscreenVirtualPadDevice::init() {
|
||||||
KeyboardMouseDevice::enableTouch(false); // Touch for view controls is managed by this plugin
|
KeyboardMouseDevice::enableTouch(false); // Touch for view controls is managed by this plugin
|
||||||
}
|
}
|
||||||
|
|
||||||
void TouchscreenVirtualPadDevice::setupFixedCenter(VirtualPad::Manager& virtualPadManager, bool force) {
|
void TouchscreenVirtualPadDevice::setupControlsPositions(VirtualPad::Manager& virtualPadManager, bool force) {
|
||||||
if (!_fixedPosition) return;
|
|
||||||
|
|
||||||
if (_extraBottomMargin == virtualPadManager.extraBottomMargin() && !force) return; // Our only criteria to decide a center change is the bottom margin
|
if (_extraBottomMargin == virtualPadManager.extraBottomMargin() && !force) return; // Our only criteria to decide a center change is the bottom margin
|
||||||
|
|
||||||
_extraBottomMargin = virtualPadManager.extraBottomMargin();
|
|
||||||
float margin = _screenDPI * VirtualPad::Manager::BASE_MARGIN_PIXELS / VirtualPad::Manager::DPI;
|
|
||||||
QScreen* eventScreen = qApp->primaryScreen(); // do not call every time
|
QScreen* eventScreen = qApp->primaryScreen(); // do not call every time
|
||||||
_fixedCenterPosition = glm::vec2( _fixedRadius + margin, eventScreen->size().height() - margin - _fixedRadius - _extraBottomMargin);
|
_extraBottomMargin = virtualPadManager.extraBottomMargin();
|
||||||
|
|
||||||
|
// Movement stick
|
||||||
|
float margin = _screenDPI * VirtualPad::Manager::BASE_MARGIN_PIXELS / VirtualPad::Manager::DPI;
|
||||||
|
_fixedCenterPosition = glm::vec2( _fixedRadius + margin, eventScreen->size().height() - margin - _fixedRadius - _extraBottomMargin);
|
||||||
_moveRefTouchPoint = _fixedCenterPosition;
|
_moveRefTouchPoint = _fixedCenterPosition;
|
||||||
virtualPadManager.getLeftVirtualPad()->setFirstTouch(_moveRefTouchPoint);
|
virtualPadManager.getLeftVirtualPad()->setFirstTouch(_moveRefTouchPoint);
|
||||||
}
|
|
||||||
|
|
||||||
void TouchscreenVirtualPadDevice::setupJumpButton(VirtualPad::Manager& virtualPadManager) {
|
// Jump button
|
||||||
QScreen* screen = qApp->primaryScreen();
|
float leftMargin = _screenDPI * VirtualPad::Manager::JUMP_BTN_LEFT_MARGIN_PIXELS / VirtualPad::Manager::DPI;
|
||||||
float topMargin = _screenDPI * VirtualPad::Manager::JUMP_BTN_TOP_MARGIN_PIXELS / VirtualPad::Manager::DPI;
|
float bottomMargin = _screenDPI * VirtualPad::Manager::JUMP_BTN_BOTTOM_MARGIN_PIXELS/ VirtualPad::Manager::DPI;
|
||||||
_jumpButtonPosition = glm::vec2( screen->size().width() / 2 + _jumpButtonRadius/2, topMargin + _jumpButtonRadius);
|
_jumpButtonPosition = glm::vec2( _jumpButtonRadius + leftMargin, eventScreen->size().height() - bottomMargin - _jumpButtonRadius - _extraBottomMargin);
|
||||||
virtualPadManager.setJumpButtonPosition(_jumpButtonPosition);
|
virtualPadManager.setJumpButtonPosition(_jumpButtonPosition);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -165,7 +162,7 @@ void TouchscreenVirtualPadDevice::pluginUpdate(float deltaTime, const controller
|
||||||
});
|
});
|
||||||
|
|
||||||
auto& virtualPadManager = VirtualPad::Manager::instance();
|
auto& virtualPadManager = VirtualPad::Manager::instance();
|
||||||
setupFixedCenter(virtualPadManager);
|
setupControlsPositions(virtualPadManager);
|
||||||
|
|
||||||
if (_moveHasValidTouch) {
|
if (_moveHasValidTouch) {
|
||||||
processInputDeviceForMove(virtualPadManager);
|
processInputDeviceForMove(virtualPadManager);
|
||||||
|
|
Loading…
Reference in a new issue