Это игра в жизнь с сеткой квадратов. Я сделал так, чтобы мы могли рисовать на сетке, щелкнув ячейку (щелкнув левой кнопкой мыши). Также (с видом) вы можете перемещаться из стороны в сторону, щелкая правой кнопкой мыши, и увеличивать и уменьшать масштаб. Я нашел, как решить проблему с положением при скольжении, изменив координаты мыши на разницу расстояний, но не могу найти, как решить эту проблему для прокрутки.
Система скольжения и масштабирования сама по себе работает отлично. хотя. Неправильно только положение под курсором мыши.
Я пытался сделать то же самое для скольжения, но у нас нет разницы в расстоянии, с которой можно было бы работать. Сначала я думал, что мне не нужно вносить изменения в координаты, а просто конвертировать их в режиме экрана или просмотра, но это не работает.
И я много чего искал и пробовал, но так и не нашел, как это сделать. сделайте это.
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
Я использую Windows, работаю с SFML на C++, и когда я увеличиваю или уменьшаю масштаб, он не щелкает ячейку под мышью. ⇐ C++
Программы на C++. Форум разработчиков
1716843321
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);
}
Подробнее здесь: [url]https://stackoverflow.com/questions/78541031/im-on-windows-working-with-sfml-in-c-and-when-i-zoom-in-or-out-it-doesnt[/url]
Ответить
1 сообщение
• Страница 1 из 1
Перейти
- Кемерово-IT
- ↳ Javascript
- ↳ C#
- ↳ JAVA
- ↳ Elasticsearch aggregation
- ↳ Python
- ↳ Php
- ↳ Android
- ↳ Html
- ↳ Jquery
- ↳ C++
- ↳ IOS
- ↳ CSS
- ↳ Excel
- ↳ Linux
- ↳ Apache
- ↳ MySql
- Детский мир
- Для души
- ↳ Музыкальные инструменты даром
- ↳ Печатная продукция даром
- Внешняя красота и здоровье
- ↳ Одежда и обувь для взрослых даром
- ↳ Товары для здоровья
- ↳ Физкультура и спорт
- Техника - даром!
- ↳ Автомобилистам
- ↳ Компьютерная техника
- ↳ Плиты: газовые и электрические
- ↳ Холодильники
- ↳ Стиральные машины
- ↳ Телевизоры
- ↳ Телефоны, смартфоны, плашеты
- ↳ Швейные машинки
- ↳ Прочая электроника и техника
- ↳ Фототехника
- Ремонт и интерьер
- ↳ Стройматериалы, инструмент
- ↳ Мебель и предметы интерьера даром
- ↳ Cантехника
- Другие темы
- ↳ Разное даром
- ↳ Давай меняться!
- ↳ Отдам\возьму за копеечку
- ↳ Работа и подработка в Кемерове
- ↳ Давай с тобой поговорим...
Мобильная версия