Как породить огромное количество спрайтов в минимальных строках кода - PullRequest
0 голосов
/ 20 июня 2011

Привет, я работал над своей игрой в понг и нашел довольно утомительным создание нового спрайт-мяча каждый раз, когда я хотел создать один из них, в итоге я очень повторял:) функция не работает, потому что мне нужно создавать новое имя для экземпляра спрайта каждый новый спрайт (например, box, box1, box2 и т. д.).Как я могу создать функцию, которая каким-то образом случайным образом формулирует имя для другого шара, который я хочу создать?

1 Ответ

2 голосов
/ 20 июня 2011

Вы не можете случайным образом генерировать имена переменных. Как бы вы указали их в своем коде?

Почему бы вам просто не использовать vector для хранения ваших изображений и ящиков, а затем использовать цикл для вызова спрайтов:

std::vector<mySprite> boxes;

std::vector<Parameters> parameters;

for(std::vector<Parameters>::iterator it = parameters.begin(); 
    it != parameters.end(); ++it) {
    sf::Image img;
    img.Create(it->param1, it->param2, it->color);
    mySprite box(img, it->vector1, it->vector2, it->param3, it->param4, 
                 it->param5);
    box.SetCenter(it->center);
    boxes.push_back(box);
}

Это предполагает, что у вас есть структура данных Parameters, которая может содержать все параметры, которые вам требуются (с более хорошими именами, чем в моем примере). Затем вы перебираете все имеющиеся у вас наборы параметров и создаете спрайт для каждого из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...