void Mouse::update() { mouse.update(); mouse.getState(mouse.nextState).mouseWheelDelta = 0; Point prevPosition = mouse.getState(mouse.prevState).position; Point currPosition = getPosition(); Vector2 movement = Vector2((float)(currPosition.x - prevPosition.x), (float)(currPosition.y - prevPosition.y)); if (isVisible() && !isRightButtonDown()) movement = Vector2::zero; if (firstUpdate) { firstUpdate = false; } else { bufferIndex = (bufferIndex + 1) % buffer.size(); buffer[bufferIndex] = movement; } if (!isVisible()) setPosition(prevPosition); }
int ModifierKeys::getNumMouseButtonsDown() const noexcept { int num = 0; if (isLeftButtonDown()) ++num; if (isRightButtonDown()) ++num; if (isMiddleButtonDown()) ++num; return num; }