Прежде всего, функция, о которой идет речь.Определение строки из другой строки, int и строковый литерал
bool Animation::loadFrames()
{
sf::Texture frame[frameCount];
std::string pathToFrame;
for(int i = 1; i < frameCount; i++)
{
pathToFrame = pathToAnimation + i + ".jpg";
if(!frame[i].loadFromFile(pathToFrame)) return false;
}
return true;
}
Линия, которая дает мне неприятности является
pathToFrame = pathToAnimation + i + ".jpg";
pathToAnimation еще один станд :: строка, FrameCount является внутр. Я хочу как-то создать одну строку, которая выглядит так: «./Assets/Sprites/Player/Stand/1.jpg»
Я знаю, почему мой код не работает, я просто не знаю, какой правильный код было бы.
Я не говорю, что есть только один способ сделать это, но часто время анимации спрайтов загружаются с одного листа спрайтов. http://ken-soft.com/2009/01/02/sprite-class-in-c-using-sdl/ –
Так, например, 'spriteWidth = imageWidth/frames;', то вы просто blit текущего кадра (анимация). –
Причина, по которой я не использую лист спрайтов, - это изометрические спрайты и поэтому имеет 8 направлений для каждого кадра каждой анимации для спрайта. Полученные листы будут огромными, и поэтому их проще организовать в файлы и папки, а затем загрузить их отдельно. –