Esempio n. 1
0
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;
}