我如何连续10次在场景中拥有一个图像,而不必每次都为它创建一个精灵?

时间:2015-08-20 19:26:25

标签: c++ cocos2d-x

我正在尝试在cocos2d-x中开发游戏,并希望场景中的一个图像在一行中重复10次。可以在函数中执行它并使用setPosition再次调用它,无论我想要那个图像吗?

假设函数名称为point(),其中我有缺位:

auto sprite = Sprite::create("point.png"); 

和函数返回精灵。

所以我可以使用该函数在其中创建一个精灵,并将其称为

point()->setPosition(40, 40); 

2 个答案:

答案 0 :(得分:0)

Sprite* GenerateScene::point()
{
  auto sprite6 = Sprite::create("point.png");
  sprite6->setAnchorPoint(Vec2(0.0, 0.0));

  return sprite6;
}

bool GenerateScene::init()
{
  auto sprite = Sprite::create("bkgnd.png");
  sprite->setAnchorPoint(Vec2(0.0, 0.0));

  sprite->addChild(point());

  sprite->setPosition(0, 0);

  point()->setPosition(120, 480);
}

这段代码只在背景图像的(0,0)位置产生“point.png”,即左下角。它没有考虑

point()->setPosition(120, 480);

语句。

由于

答案 1 :(得分:0)

Sprite的目的是在屏幕上重复一个图像。

如果查看Sprite :: create源,您会看到使用相同的图像创建10个精灵不会创建并加载10个图像。相反,有SpriteFrameCache缓存实际图像。 10个Sprite中的每一个都只是对场景中该一个图像的实例的轻量级引用。