Я использую Windows, работаю с SFML на C++, и когда я увеличиваю или уменьшаю масштаб, он не щелкает ячейку под мышью.C++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Я использую Windows, работаю с SFML на C++, и когда я увеличиваю или уменьшаю масштаб, он не щелкает ячейку под мышью.

Сообщение Anonymous »

Это игра в жизнь с сеткой квадратов. Я сделал так, чтобы мы могли рисовать на сетке, щелкнув ячейку (щелкнув левой кнопкой мыши). Также (с видом) вы можете перемещаться из стороны в сторону, щелкая правой кнопкой мыши, и увеличивать и уменьшать масштаб. Я нашел, как решить проблему с положением при скольжении, изменив координаты мыши на разницу расстояний, но не могу найти, как решить эту проблему для прокрутки.
Система скольжения и масштабирования сама по себе работает отлично. хотя. Неправильно только положение под курсором мыши.
Я пытался сделать то же самое для скольжения, но у нас нет разницы в расстоянии, с которой можно было бы работать. Сначала я думал, что мне не нужно вносить изменения в координаты, а просто конвертировать их в режиме экрана или просмотра, но это не работает.
И я много чего искал и пробовал, но так и не нашел, как это сделать. сделайте это.
case sf::Event::MouseWheelMoved:
movingView.zoom(1.f + event.mouseWheel.delta * 0.1f);

mouse = sf::Mouse::getPosition(window);
viewMouse = window.mapPixelToCoords(mouse);

if (event.mouseButton.button == sf::Mouse::Right)
{
lastMouse = mouse;
center += moveDiff;
rightClickPressed = true;
}

if (rightClickPressed)
{
moveDiff = (sf::Vector2f)(lastMouse - mouse);
movingView.setCenter(sf::Vector2f(center + moveDiff));
}
if (leftClickPressed)
{
viewMouse += movingView.getCenter() - movingView.getSize() / 2.f;
gameOfLife.clickCell(viewMouse, E_pressed);
}


Подробнее здесь: https://stackoverflow.com/questions/785 ... -it-doesnt
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»