在文字游戏中,我使用Matrix来定义代表游戏板的图像的滚动偏移和缩放:
当我在游戏板上玩字母拼贴时,我会通过以下方法将屏幕坐标(onTouchEvent
中的手指触摸坐标)转换为游戏板坐标(知道放置图块的位置): / p>
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);
}
我的问题是:如何进行相反的转换?
即。当我将字母拼贴从游戏板移动到屏幕底部的蓝色条(例如取消轮到我的时候)时 - 我怎样才能从游戏板坐标转换回屏幕坐标?
mapPoints
方法上的Android文档非常稀缺。
答案 0 :(得分: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);
}