Как сделать так, чтобы «Камера» показывала только часть загруженной области

У меня небольшая проблема с тем, чтобы что-то выяснить (очевидно, ).

Я создаю 2D mmorpg с видом сверху вниз, и в этой игре я хочу, чтобы игрок перемещался по мозаичной карте, как в игре Pokemon, если кто-либо когда-либо играл в нее.

Если у вас нет, представьте себе это: мне нужно загрузить различные области, построив их из плиток, содержащих изображение, местоположение (x, y) и объекты (игроки, предметы), но игрок может видеть только часть это за один раз, а именно область размером 20 на 15 плиток, которая может составлять 100 плиток в высоту / ширину. Я хочу, чтобы «камера» следовала за игроком, удерживая его в центре, пока игрок не достигнет края загруженной области.

Мне не обязательно нужен код, просто план дизайна. Я понятия не имею, как поступать с такими вещами.

Я думал о том, чтобы, возможно, разделить всю загруженную область на кусочки плитки размером 10x10, названные «Блоками», и загрузить их, но я все еще не уверен, как загружать фрагменты за пределы экрана и показывать их только тогда, когда игрок находится в пределах досягаемости. .

Картинка должна описать это: enter image description here

Есть идеи?


Мое решение: Я решил эту проблему с помощью чудесного мира JScrollPanes и JPanels.

Я добавил блок JPanels 3x3 внутри JScrollPane, добавил пару методов прокрутки и «goto» для центрирования / перемещения JScrollPane, и вуаля, у меня была камера.

В то время как ответ, который я выбрал, был немного более общим для людей, желающих делать вещи с 2D-камерой, способ, которым я это делал, на самом деле помог мне визуализировать то, что я делаю, немного лучше, поскольку у меня на самом деле была физическая «камера» (JScrollPane) перемещаться по моему "миру" (3x3 Grid of JPanels)

Просто подумал, что я отправлю это здесь, на случай, если кто-то будет искать ответ в Google, и это придет. :)

5
задан Luke Dowell 10 November 2011 в 07:44
поделиться