C++ 我正在创建一系列精灵,它们应该随机出现,但它发生了吗?

C++ 我正在创建一系列精灵,它们应该随机出现,但它发生了吗?,c++,cocos2d-x,C++,Cocos2d X,我正在尝试创建数组精灵,其中包含5个精灵,分别为0.png、1.png、2.png、3.png、4.png 我希望它们随机出现在屏幕上 下面是我的代码,但它不工作,有帮助吗 std::vector <CCSprite*> _sprites; _sprites.reserve(10); int spritearray[5] = { 0.png,1.png,2.png,3.png,4.png }; // I AM GETTING ERROR HERE?

我正在尝试创建数组精灵,其中包含5个精灵,分别为0.png、1.png、2.png、3.png、4.png

我希望它们随机出现在屏幕上

下面是我的代码,但它不工作,有帮助吗

   std::vector <CCSprite*> _sprites;
   _sprites.reserve(10); 

    int spritearray[5] = { 0.png,1.png,2.png,3.png,4.png }; // I AM GETTING ERROR HERE?
     int i;
    for(i=0;i<5;i++)
    {
        CCSprite* foo = new cocos2d::CCSprite();
       int index = rand() % 5;
       // foo->initWithFile(index);
        foo->setPosition(ccp(60,50*i));
        _sprites.push_back(foo); //store our sprites to do other stuffs later
        this->addChild(foo,1);
    }

您的逻辑目前还不错,您遇到的问题是实现

如果您检查该函数,您会看到它将文件名作为字符串


因此,您需要创建一个包含文件名的字符串数组,而不是整数数组。然后将随机索引用作此文件名数组的索引,并将其作为参数传递给initWithFile函数。

好的,您使用的代码与我之前提供的代码相同:

 std::vector <CCSprite*> _sprites;
_sprites.reserve(10); 

std::vector<std::string> _spriteNames = {"0.png", "1.png", "2.png", "3.png", "4.png"};

for (int i=0;i < _spriteNames.size(); i++)
{
   CCSprite* foo = cocos2d::CCSprite::create(_spriteNames.at(i));

    int random = rand() % 5;

    foo->setPosition(CCPoint((60 * random), (50 * random)));

    _sprites.push_back(foo); // <- store your sprites to do stuff to them later.

   addChild(foo, 1); //<-- this is adding the child.
}

0.png不是一个int。你可能应该有一个字符串数组吗?不工作不是一个很好的问题描述-你得到了什么,你期望发生什么,你到目前为止尝试了什么?我想存储精灵数组,我希望它们随机出现在屏幕上。请让我知道逻辑