Перемещение камеры в мировых координатах и перемещение вашего персонажа по всему миру - это самый простой способ решения этой проблемы. Работа в мировых координатах означает, что вам не нужно делать никаких дополнительных вычислений, когда она сводится ко всем другим системам, которые должны работать на Относительная система координат, а также понять, где они находятся в мировых координатах.
Поскольку вы работаете в 2D, другой хороший совет - сделать пространственное разбиение, проще всего было бы создать систему сетки виртуального мира, это позволит вам управлять каждой плиткой индивидуально, связывая спрайты и другие ресурсы для каждой плитки, поэтому по сути процесс будет:
создайте некоторый класс плиток, который может содержать граничные координаты для плитки и любые ресурсы, которые могут понадобиться конкретной плитке (спрайты, враги и т. д.).
определитесь с размером вашего мира и создайте двумерный массив (вы можете использовать одно измерение и получить к нему доступ как 2D) плиток, каждая из которых представляет часть вашего мира со всеми связанными с ней ресурсами.
только вытягивайте ресурсы из тайла, в котором находится игрок и его соседи.
С помощью сетки вы можете легко определить, в каком тайле находится игрок, основываясь на его положении относительно начала сетки.
Чтобы обойти упомянутую выше проблему с камерой, необходимо сделать плеер и камеру двумя независимыми системами, в которых камера не будет перемещаться дальше, чем центр краевых плиток, поэтому, когда игрок движется к этой плитке, он все еще может перемещаться по всей вся плитка, поскольку он связан мировыми координатами (т.е. больше не центрирован на экране), но камера заблокирована.