Я привык кодировать на PHP, но я не очень хорошо разбираюсь в Java, и это было проблемой в течение некоторого времени. Я ожидаю, что это будет довольно простое решение, однако я не могу найти хороший пример кода, каким бы я его ни искал, поэтому вот:
Я программирую игру, действие которой происходит в двухмерном случайно сгенерированном бесконечном мире на карте, основанной на тайлах (придирка: я знаю, что это не будет по-настоящему бесконечно. Я просто ожидаю, что мир будет довольно большим). Обычный подход многомерного массива map[x][y] начинался как основная идея, но поскольку Java не предоставляет возможности для нецелочисленных (то есть отрицательных) ключей массива, как это делает PHP, я не могу должным образом иметь (- x,+x,-y,+y) система координат с ключами массива.
Мне нужно иметь возможность находить объекты на плитке с определенной координатой x, y, а также находить «соседние плитки» определенной плитки. (Тривиально, если я могу получитьObjectAt(x,y), я могу получить(x+1,y) и так далее)
Я читал о четырехъядерных деревьях, R-деревьях и тому подобном. Концепция захватывающая, однако я не видел ни одного хорошего и простого примера реализации на Java. И, кроме того, я не совсем уверен, что это именно то, что мне нужно.
Любые советы приветствуются
Спасибо