Вот функция, которая у меня есть, «Спрайт» — это объект в программе, а «GetSpriteAtPosition» просто возвращает указатель на правильный спрайт по координатам.
Моя проблема в том, что я храню букву в каждом спрайте в виде целого числа. 0 — это a, а 25 — это z, и все, что между ними, соответственно. Мне нужно, чтобы моя функция возвращала char*, который дает мне буквы ряда спрайтов, поэтому, если в программе спрайты написаны по буквам «abcdefgh», то это то, что мне нужно, чтобы эта функция распечатала. Есть сетка спрайтов 8x8, и я правильно получаю координаты, но получаю сообщение об ошибке, что я не могу преобразовать int в char* в отмеченной строке. Что я могу сделать, чтобы заставить это работать?
Заранее спасибо!
char* RowLetters(int row)
{
char* pointer;
for( int i = 0; i < 8; i++)
{
Sprite* selectedSprite = SpriteAtPosition(row*50, i * 50);
if(selectedSprite != NULL)
{
char* temp = (char)(selectedSprite->Frame() + 97); //error here
pointer = strcat(pointer, temp);
}
else
{
pointer = strcat(pointer, "test");
}
}
return pointer;
}
std::stringи избавьте себя от горя. - person Paul R   schedule 28.11.2012charвместоint. Во-вторых, сохраните нужный символ,'a','b'и т. д. Таким образом, вам не придется выполнять непереносимое преобразование добавления 97. - person Pete Becker   schedule 28.11.2012