2D 사각형 격자 시스템에서 이동을 수행하는 가장 좋은 방법은 무엇입니까? 나는이 작품을 가지고 있지만 잘못되었거나 추악한 것 같습니다 (아래 참조). 예를 들어2D 타일지도에서 게임 타일 이동
x x x x x x x
x x x x x x x
x x x O x x x
x x x U x x x
x x x x x x x
x x x x x x x
x x x x x x x
는 U 내가 이동하려는 단위이며, O는 다른 장치 나 산 같은 지나갈 개체입니다. U가 3 개의 타일을 움직일 수 있다면, 나는 움직일 수있는 영역 (M)을 이와 같이 보길 원합니다.
x x x x x x x
x x M x M x x
x M M O M M x
M M M U M M M
x x M M M M x
x x M M M x x
x x x M x x x
여기 내 코드입니다 :
public function possibleMoves(range:uint, cords:Array):void {
var X:uint = cords[0];
var Y:uint = cords[1];
if (range > 0) {
try {
theGrid[X + 1][Y].moveable = true;
if (theGrid[X + 1][Y].getOccupied == false) {
possibleMoves(range - 1, [X + 1, Y], flag, mtype);
}
} catch (err:Error) { }
try {
theGrid[X - 1][Y].moveable = true;
if (theGrid[X - 1][Y].getOccupied == false) {
possibleMoves(range - 1, [X - 1, Y], flag, mtype);
}
} catch (err:Error) { }
try {
theGrid[X][Y + 1].moveable = true;
if (theGrid[X][Y + 1].getOccupied == false) {
possibleMoves(range - 1, [X, Y + 1], flag, mtype);
}
} catch (err:Error) { }
try {
theGrid[X][Y - 1].moveable = true;
if (theGrid[X][Y - 1].getOccupied == false) {
possibleMoves(range - 1, [X, Y - 1], flag, mtype);
}
} catch (err:Error) { }
}
왜 시도/catch 문에서 모든 코드는? 안전한쪽에있는 것이 좋지만, 이것은 약간 극단적입니다. – grapefrukt