Прежде всего, я не знаю, правильно ли это имя для вопроса. Я просто не мог найти лучшего, который не слишком длинный. Я пишу игру RPG в Java, и я только начал кодировать генератор случайного уровня. Моя идея - создать некоторые перечисленные типы (назовем их DungeonStyle), которые содержат всю информацию, необходимую генератору для создания уровня. Эта информация включает, например, плотность комнат и коридоров. Другая информация, которую я хочу сохранить в этом перечисленном типе, - это то, какие существа могут быть порождены плиткой Spawner внутри такого уровня. Я также должен сказать, что способ, которым я реализовал существ, заключался в создании класса для каждого конкретного существа, которое наследуется от класса Существо. Теперь я объясню проблему (которая применима для любых нестатических объектов, а не только для существ).Управление ресурсами в игре
Единственный способ найти это разделение возможных существ DungeonStyle в коде SpawnerTile. Я бы передал DungeonStyle в качестве аргумента для конструктора SpawnerTile и сделал бы различия внутри метода spawn(). Что-то вроде этого:
if (style == Style_A) {
level.add(new Creature_A());
}
if (style == Style_B) {
level.add(new Creature_B());
}
Это будет работать нормально, но, очевидно, не так, как я хотел. Информация о существе не внутри DungeonStyle. Он создается за его пределами. Я просто не могу найти способ сохранить возможные классы (of Creatures) внутри DungeonStyle, чтобы сделать их экземплярами. Я думаю, что мой вопрос несколько связан с «<>», когда мы создаем ArrayList< some_object>
.
Вы можете использовать 'newInstance' метод' Class' pbjects, но имейте в виду: http://stackoverflow.com/questions/195321/почему-это-класса newinstance зла – Sinkingpoint