Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocos2d x 如何更改精灵宽度并导致更多纹理重复?_Cocos2d X_Cocos2d X 3.0 - Fatal编程技术网

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),这将起作用