我有重复纹理的精灵,我想经常更改精灵的宽度,但是这样会导致纹理重复多次,而不是保持相同数量的缩放重复。 这是我用
更改宽度时发生的情况setScaleX(factor) ;
我还尝试getContentSize()
并更改宽度和setContentSize(newContentSize);
但它没有帮助,只是造成奇怪的行为。如何更改精灵宽度并导致更多纹理重复?这有可能吗?
(我可以删除当前的精灵并重新创建新的但它看起来像btute force解决方案,我正在寻找更优雅的东西)
答案 0 :(得分:0)
使用TexParams,例如
Texture2D* tex = Director::getInstance()->getTextureCache()->addImage("CloseNormal.png");
Texture2D::TexParams param = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
tex->setTexParameters(param);
auto size = tex->getContentSize();
auto s = Sprite::createWithTexture(tex, Rect(0,0,size.width * 2, size.height * 2));
s->setPosition(Point(300,300));
this->addChild(s);
或喜欢
auto s = Sprite::create("CloseSelected1.png");
auto size = s->getContentSize();
Texture2D::TexParams param = {GL_LINEAR, GL_LINEAR, GL_REPEAT, GL_REPEAT};
s->getTexture()->setTexParameters(param);
s->setTextureRect(Rect(0, 0, size.width * 2, size.height * 2));
s->setPosition(Point(200,200));
this->addChild(s);