Java - Как читать пользовательский формат карты
Я пытаюсь создать собственный формат карты для своей маленькой 2D-RPG, поэтому мой вопрос скорее состоит в том, как мне правильно и гибко управлять чтением и созданием пользовательского формата карты. Прежде всего, я пишу свой код на Java. Идея заключалась в том, чтобы иметь класс под названием "TileMap". Этот класс определяет двумерный целочисленный массив, в котором хранятся все мои сущности (я использую систему сущностей для реализации своей игры). Я также хочу сохранить и проанализировать некоторую информацию о размере карты, прежде чем произойдет фактический процесс чтения. Файл карты должен выглядеть примерно так:
#This is a test map
width=4
height=3
layercount=1
tilesize=32
[1;0;0;0]
[23;1;0;0]
[5;0;1;0]
где layercount - количество слоев, которое предлагает z-измерение. и tileize - это размер каждой плитки в пикселях. Сущности определены в скобках. Шаблон идет: [entity_id;x_pos;y_pos;z_pos]. Я уже написал код для разбора файла, подобного этому, но он не очень гибкий, потому что вам просто нужно поместить один крошечный пробел перед квадратными скобками, и карта не может загрузиться. Мне просто нужно несколько полезных советов, чтобы сделать это гибким способом. Кто-нибудь может мне помочь?
1 ответ
Я думаю, что может быть 3 разных способа решить эту проблему:
Во-первых, вы можете использовать карту с картами: Map<Serializable,Map<String,Object>>
где Serializable - это ваш entity_id, а карта - это необходимые вам атрибуты, такие как ("width", 4), ("height", 3):
public static final String WIDTH = "WIDTH";
public static final String HEIGHT = "HEIGHT";
...
Map<String,Object> mapProperties = new HashMap<String,Object>();
mapProperties.put(WIDTH, 4);
mapProperties.put(HEIGHT, 3);
....
Map<Serializable,Map<String,Object>> map = new HashMap<Serializable,Map<String,Object>>();
map.put(myEntity.getId(), mapProperties);
Второй способ может быть таким: http://java.dzone.com/articles/hashmap-%E2%80%93-single-key-and
Третий способ может быть таким: Java Tuple без создания нескольких типов параметров