Я занимаюсь разработкой игры для холста на JavaScript.
Я решил создать игру без ограничений по сетке мирового размера.Поэтому, если они хотят играть с размером сетки N, логика сгенерирует его.
Я работал с определением границ и начал программировать функцию, которая изменит расположение ячейки в сетке, еслипользователь решает выйти за пределы экрана.
Для простоты я сократил размер сетки до N = 9, чтобы вы могли это визуализировать.Сетка выглядит так:
[0][1][2]
[3][4][5]
[6][7][8]
Если пользователь должен отойти от ячейки со значением -x [0], они появятся в крайнем правом положении ячейки x [2].это представляется как SQRT (N).Итак, я знаю, что самый правый угол - это SQRT (N).Я также знаю, что N - нижняя правая ячейка [8].
С учетом сказанного ниже приведен пример ячеек и идентификаторов их уравнений.
[0][1][SQRT(N)]
[3][4][5]
[N - SQRT(N)][7][N]
На приведенной выше сетке показаны формулы оси x для 4 углов, но важно, чтобы япо крайней мере, попытайтесь ответить на уравнения внутренних ячеек, прежде чем использовать статические условные обозначения переключающего регистра магического числа.
Вот код JavaScript, показывающий то, что я объясняю:
if (player.X < 0 - 10) {
player.X = SCREEN_WIDTH;
if (gameQuadrent == 0) {
gameQuadrent = Math.floor(Math.sqrt(WORLD_SIZE));
} else if (gameQuadrent == (WORLD_SIZE - Math.floor(Math.sqrt(WORLD_SIZE)))) {
gameQuadrent = WORLD_SIZE;
} else {
gameQuadrent--;
}
}
Любые более эффективные способыделая это?Я пытаюсь решить эту проблему, не переходя к фиксированному размеру мира.
Очень ценится.