2015-07-05 4 views
0

В слове игре я использую Matrix для определения смещения прокрутки и масштабирования изображения, представляющий настольную игру:Выполнение Matrix.mapPoints() в обоих направлениях

app screenshot

Когда я играю письмо плитки в настольная игра, я конвертировать из координат экрана (палец сенсорных координат в onTouchEvent) к координатам игровой доски (чтобы знать, куда положить плитку) следующему способом:

public PointF screenToBoard(PointF screenPoint) { 
    float[] point = new float[] {screenPoint.x, screenPoint.y}; 
    Matrix inverse = new Matrix(); 
    mMatrix.invert(inverse); 
    inverse.mapPoints(point); 
    float boardX = point[0]; 
    float boardY = point[1]; 
    return new PointF(boardX, boardY); 
} 

Мой вопрос: как сделать обратное преобразование?

I.e. когда я перемещаю буквы с игрового поля на синюю полосу в нижней части экрана (например, при отмене моего хода) - как я могу преобразовать обратно из координат игровой панели в координаты экрана?

Документ Android по методу mapPointsочень скудный.

ответ

0

Хорошо, нашел решение:

public PointF boardToScreen(PointF boardPoint) { 
    float[] point = new float[] {boardPoint.x, boardPoint.y}; 
    mMatrix.mapPoints(point); 
    float screenX = point[0]; 
    float screenY = point[1]; 
    return new PointF(screenX, screenY); 
} 
Смежные вопросы