【发布时间】:2014-02-24 06:18:49
【问题描述】:
我有这种情况 我有我迭代的地图: 整数计数器 = 1;
bool ReelGameObj::setInitWithSpriteFrameName(std::map<std::string,std::string> imageComponentMap)
{
int counter = 1;
for (auto keyvalue : imageComponentMap ) {
std::string pngName = keyvalue.second ;
SET_SPRITE(counter,pngName);
counter++;
}
}
在我的标题中:
private:
Sprite* reel_1;
Sprite* reel_2;
Sprite* reel_3;
Sprite* reel_4;
Sprite* reel_5;
我正在考虑使用 MACRO 动态设置指针以避免 if/else 并做一些更通用但不缺乏的事情 这个宏失败了
#define SET_SPRITE(__NUMBER__,spriteFrameName) this->reel_##__NUMBER__ = Sprite::createWithSpriteFrameName(spriteFrameName);
有没有更好的办法?
【问题讨论】:
-
你为什么不直接使用
Sprite*的数组呢?它将被声明为Sprite *sprites[5];作为旁注,当你不需要副作用时,我喜欢使用 pre-increment(或 decrement)。 -
连续编号的变量名称通常表明您需要一个数组或向量,尤其是如果您需要通过索引访问它们。
-
谢谢,只是想确定一下