Cocos2d x 如何更改精灵宽度并导致更多纹理重复?
我有重复纹理的雪碧,我想经常改变雪碧的宽度,但这样会导致纹理重复更多次,而不是保持相同的缩放重复次数。 这就是当我使用更改宽度时发生的情况Cocos2d x 如何更改精灵宽度并导致更多纹理重复?,cocos2d-x,cocos2d-x-3.0,Cocos2d X,Cocos2d X 3.0,我有重复纹理的雪碧,我想经常改变雪碧的宽度,但这样会导致纹理重复更多次,而不是保持相同的缩放重复次数。 这就是当我使用更改宽度时发生的情况 setScaleX(factor) ; 我还尝试getContentSize()并更改宽度和setContentSize(newContentSize) 但这没用,只会导致奇怪的行为。如何更改精灵宽度并导致更多纹理重复?这可能吗? (我可以删除当前的精灵并重新创建新的精灵,但它看起来像是btute force解决方案,我正在寻找更优雅的东西)使用TexPa
setScaleX(factor) ;
我还尝试getContentSize()
并更改宽度和setContentSize(newContentSize)代码>
但这没用,只会导致奇怪的行为。如何更改精灵宽度并导致更多纹理重复?这可能吗?
(我可以删除当前的精灵并重新创建新的精灵,但它看起来像是btute force解决方案,我正在寻找更优雅的东西)使用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);
问题是,同一个精灵我必须在更新循环中更改大小/宽度,在一秒钟内更改几次,所以如果我不调整精灵的大小(在您的情况下是s),这将起作用