Я делаю простой графический движок на C ++, используя Visual C ++ и DirectX, и я тестирую различные макеты карт.
В настоящее время я создаю «карты», просто создав исходный файл C ++ и начинаю писать:
SHADOWENGINE ShadowEngine(&settings);
SPRITE_SETTINGS sset;
MODEL_SETTINGS mset;
sset.Name = "Sprite1";
sset.Pivot = TOPLEFT;
sset.Source = "sprite1.png";
sset.Type = STATIC;
sset.Movable = true;
sset.SoundSet = "sprite1.wav"
ShadowEngine->Sprites->Load(sset);
sset.Name = "Sprite2"
sset.Source = "sprite2.png";
sset.Parent = "Sprite1";
sset.Type = ANIMATED;
sset.Frames = 16;
sset.Interval = 1000;
sset.Position = D3DXVECTOR(0.0f, (ShadowEngine->Resolution->Height/2), 0.0f);
ShadowEngine->Sprites->Load(sset);
mset.Source = "character.sx";
mset.Collision = false;
mset.Type = DYNAMIC;
ShadowEngine->Models->Load(mset);
//Etc..
Я хотел бы иметь возможность создавать файлы карт, которые вместо этого загружаются в движок, без необходимости записывать их в исполняемый файл. Таким образом, я могу вносить изменения в карты без необходимости перекомпилировать каждую чертову разу.
SHADOWENGINE ShadowEngine(&settings);
ShadowEngine->InitializeMap("Map1.sm");
Единственный способ, которым я могу придумать, - это заставить его читать файл как текст, а затем просто анализировать информацию, но это звучит как такая неприятность.
Я не так думаю?
Что мне делать?
Не против объяснения того, как это делают другие, например, Warcraft III, Starcraft, Age of Empires, Герои Меча и Магии ...
Будет ли действительно признателен за помощь в этом вопросе.