easy.math.qsp v. 3.1.0
Работа с координатной сеткой
em.map.cell.getCoords
Определяет координаты ячейки по текущему номеру ячейки. Эта функция пригодится при организации двумерного массива, через одномерный, или при отрисовке игровых полей заданной ширины.
args[0
]
- текущий номер ячейки или блока N
;
args[1
]
- ширина поля W
;
$args[2
]
- управление:
[x]
- координата по оси X;[y]
- координата по оси Y;- пустое значение,
[xy]
или[x][y]
- обе координаты возвращаются в виде кортежа.
Пример таблицы:
y/x | 0 1 2 3
--- -|---------------- N = x + y * W
0| 0 1 2 3 N - номер ячейки
| x - координата по горизонтали
1| 4 5 6 7 y - координата по вертикали
| W - ширина прямоугольника =Xmax+1
2| 8 9 10 11
| y = N/W
3| 12 13 14 15 x = N - Y * W
--- -|---------------- N = x + y * W
0| 0 1 2 3 N - номер ячейки
| x - координата по горизонтали
1| 4 5 6 7 y - координата по вертикали
| W - ширина прямоугольника =Xmax+1
2| 8 9 10 11
| y = N/W
3| 12 13 14 15 x = N - Y * W
Результат работы функции:
@em.map.cell.getCoords(10,3+1,'[x]') & !@ 2
@em.map.cell.getCoords(10,3+1,'[y]') & !@ 2
@em.map.cell.getCoords(10,3+1) & !@ кортеж (2,2)
@em.map.cell.getCoords(10,4,'[x][y]') & !@ кортеж (2,2)
@em.map.cell.getCoords(10,3+1,'[y]') & !@ 2
@em.map.cell.getCoords(10,3+1) & !@ кортеж (2,2)
@em.map.cell.getCoords(10,4,'[x][y]') & !@ кортеж (2,2)
Aleks Versus'Easy Libraries'2013-2025
Aleks Versus'Game Adventure Making'Really Unimaginable Stories'2013-2025