Попытка сделать вещи в opengl кликабельными, но не похоже, чтобы координаты объектов соответствовали координатам кликов - PullRequest
0 голосов
/ 21 марта 2019

У меня есть этот код:

for (int house = 0; house < housePos.housePositionsX.length; house++) {
    float dX = housePos.housePositionsX[house] + translationX;
    float dY = housePos.housePositionsY[house] + translationY;
    Matrix.setIdentityM(mModelMatrix, 0);
    Matrix.translateM(mModelMatrix, 0, dX, dY, houseDepth);
    Matrix.scaleM(mModelMatrix, 0, houseScale, houseScale, 1.0f);
    drawHouse(dX, dY);
    housePos.housePosWithTranslationX[house] = dX;
    housePos.housePosWithTranslationY[house] = dY;
 }

В котором я рисую пару домов в нескольких местах, где dX и dY находятся между -1 и 1. Затем я использую код:

float posTouchedNDCX = (event.getX() / deviceWidth)*2 - 1;
float posTouchedNDCY = (event.getY() / deviceHeight)*(-2) + 1;

, чтобы получить координаты клика в том же диапазоне -1 и 1. Проблема в том, что эти координаты не совпадают, когда я нажимаю на любой из домов, и я просто не смог выяснить как правильно конвертировать клик.

...