Isometric 게임개발 프레임웍인 as3libiso 의 좌표체계에 대해 알아보았다.
grid.cellSize를 통해 cell의 크기를 정해주면 그림과 같이 정해지게 된다.
화면상으로 보이는 cell의 width가 cellSize값의 2배가 되고, height가 cellSize값이 된다.
IsoView의 위치를 설정해주지않고 화면에 addChild하게 되면 가장 상단의 꼭지점 부분이 view.setSize함수에서 설정한 크기의 정 중앙에 오게 된다.
그래서 centerOnPt를 통하여 view의 위치를 조정한다.
(Pt클래스는 Point클래스를 확장하여 z좌표까지 제공하는 3D포인트 클래스이다.)
이미지와 같이 view의 위치가 조정되었다.
as3isolib는 좌상->우하 방향으로 x축, 우상->좌하 방향으로 y축이 된다.
즉, 기본 플래시 좌표체계에서 45도만큼 비틀어졌다고 보면 된다.
하지만 view.centerOnPt(new Pt(0, 200)); 라고 했으면 박스가 좌하방향으로 이동하여야 하는데(플래시는 y축이 양수가 아래, 음수가 위 방향이므로) 오히려 우상방향으로 이동했다.
이는 박스가 아닌 view를 좌하로 이동시켰기 때문에 박스가 우상방향으로 이동한 것처럼 보이는 것이다.
이제 view를 x축으로도 200px 이동시킨다.
view가 우측으로 이동하면서 grid가 화면 가운데로 오게 되었다.
이번엔 박스를 움직여본다.
grid.cellSize가 cell한칸의 크기라 생각하면 된다.
그러므로 cellSize * 3만큼 x축을 이동시키면 grid에선 3칸이 이동하고
cellSize * 2만큼 y축을 이동시키면 grid에선 2칸이 이동하므로
(3, 2)에 위치하게 된다.