From 4e99e4030babe4eed18ba084ea4d2ba769f95ece Mon Sep 17 00:00:00 2001 From: zhenyan121 <3367366583@qq.com> Date: Sun, 7 Dec 2025 15:53:34 +0800 Subject: [PATCH] use CoordinateTools --- src/graphics/CoordinateConverter.cpp | 14 ++------------ 1 file changed, 2 insertions(+), 12 deletions(-) diff --git a/src/graphics/CoordinateConverter.cpp b/src/graphics/CoordinateConverter.cpp index a0170cb..3d0e79a 100644 --- a/src/graphics/CoordinateConverter.cpp +++ b/src/graphics/CoordinateConverter.cpp @@ -1,5 +1,5 @@ #include "CoordinateConverter.h" - +#include "utils/CoordinateTools.h" CoordinateConverter::CoordinateConverter(SDL_Renderer* renderer) : m_renderer(renderer) { } @@ -9,17 +9,7 @@ CoordinateConverter::~CoordinateConverter() { } std::optional> CoordinateConverter::ScreenToBoard(float screenX, float screenY, BoardArea area) { - // 将窗口坐标转为逻辑坐标 - float logicalX, logicalY; - SDL_RenderCoordinatesFromWindow( - m_renderer, - static_cast(screenX), - static_cast(screenY), - &logicalX, - &logicalY - ); - int mouseX = static_cast(logicalX); - int mouseY = static_cast(logicalY); + auto [mouseX, mouseY] = physicalToLogical(screenX, screenY, m_renderer); // 判断是否点击在棋盘区域内 if (mouseX < area.x || mouseX >= area.x + area.cellSize * area.cols || mouseY < area.y || mouseY >= area.y + area.cellSize * area.rows) {