0
나는 내 타일 블링 엔진을 사용하고 있습니다.이 타일은 6 각형 타일을 사용하고 있습니다.하지만 일반 타일과 많이 다르지 않다고 생각합니다.스케일링 타일 그리드
거대한 x, y 배열의 타일이 있고 캔버스에 렌더링 할 x, y 좌표가 있습니다. 현재 카메라 위치에서 캔바스에 표시되어야하는 것들만 반복합니다.
그래서 나는 스케일링에 걸리고 내 자신으로 이것을 해결할 수 없습니다. 이것은 좋은 빠르게 작동하지만 유일한 문제는 그것이 (일반 규모 일 것 같은) 왼쪽 상단 모서리에서 타일
저울입니다
public function draw():Void{
clearCanvas(); //Clear canvas (bitmapData)
var _m:Matrix;
iterateTiles(function(_tile:HexTile):Void{ // loop every tile that is visible on screen
_m = new Matrix();
_m.translate(_tile.x + cameraPoint.x,_tile.y + cameraPoint.y);//Get pre calculated tile x,y and add camera x,y
_m.scale(matrixScale, matrixScale);
drawToCanvas(_tile,_m);//Send to draw tile on canvas using Matrix
},true);
}
: 다음은 캔버스에 타일 그리기 내 코드입니다
제 질문은 타일을 항상 중심에서부터 확장하는 방법입니다. 따라서 타일 10:10이 스케일링 전에 화면의 중앙에 있다면, 스케일링 후에 을 유지해야합니다.
예,하지만 이것은 모든 타일의 위치를 너비와 높이의 절반으로 변경합니다. 이것이 스케일링에 어떻게 도움이됩니까? – notmyrealname
타일 위치를 왼쪽/위쪽으로 조정 된 너비/높이의 절반만큼 이동하면 각 타일의 중심이 타일 크기 조정시에도 항상 _tile.x, _tile.y에있게됩니다. 그것이 당신이 목표로하는 것입니까, 아니면 제가 그 질문을 오해 한 것입니까? – bwroga
그것은 뭔가 다른 것입니다. 모든 타일을 함께 크기를 조정하고 비율을 조정 한 후 센터에서 10:10 (또는 그 시점에서 캔버스의 중심에있는 모든 타일)을 유지하려면 함께 오프셋해야합니다. 나는 단지 축소하기 때문에 센터에서 10:10을 + x + y 값으로 오프셋하는 것이 좋습니다.이 값은 "캔버스"와 눈금의 크기와 관련되어야한다고 생각합니다. – notmyrealname