У меня небольшая проблема с тем, чтобы что-то выяснить (очевидно, ).
Я создаю 2D mmorpg с видом сверху вниз, и в этой игре я хочу, чтобы игрок перемещался по мозаичной карте, как в игре Pokemon, если кто-либо когда-либо играл в нее.
Если у вас нет, представьте себе это: мне нужно загрузить различные области, построив их из плиток, содержащих изображение, местоположение (x, y) и объекты (игроки, предметы), но игрок может видеть только часть это за один раз, а именно область размером 20 на 15 плиток, которая может составлять 100 плиток в высоту / ширину. Я хочу, чтобы «камера» следовала за игроком, удерживая его в центре, пока игрок не достигнет края загруженной области.
Мне не обязательно нужен код, просто план дизайна. Я понятия не имею, как поступать с такими вещами.
Я думал о том, чтобы, возможно, разделить всю загруженную область на кусочки плитки размером 10x10, названные «Блоками», и загрузить их, но я все еще не уверен, как загружать фрагменты за пределы экрана и показывать их только тогда, когда игрок находится в пределах досягаемости. .
Картинка должна описать это:
Есть идеи?
Мое решение: Я решил эту проблему с помощью чудесного мира JScrollPanes и JPanels.
Я добавил блок JPanels 3x3 внутри JScrollPane, добавил пару методов прокрутки и «goto» для центрирования / перемещения JScrollPane, и вуаля, у меня была камера.
В то время как ответ, который я выбрал, был немного более общим для людей, желающих делать вещи с 2D-камерой, способ, которым я это делал, на самом деле помог мне визуализировать то, что я делаю, немного лучше, поскольку у меня на самом деле была физическая «камера» (JScrollPane) перемещаться по моему "миру" (3x3 Grid of JPanels)
Просто подумал, что я отправлю это здесь, на случай, если кто-то будет искать ответ в Google, и это придет. :)