gpt4 book ai didi

ios - CCSprite 贴图大小

转载 作者:行者123 更新时间:2023-11-28 19:17:23 25 4
gpt4 key购买 nike

我对更改 CCSprite 的纹理有点困惑。

我有:

aTexture[NUM_WALLS+11] = [[CCTexture2D alloc]initWithImage:[UIImage imageNamed:@"shop1.png"]];
[aSprite setTexture:aTexture[NUM_WALLS+11]];

aTexture[NUM_WALLS+9] = [[CCTexture2D alloc]initWithImage:[UIImage imageNamed:@"bush2.png"]];
[aSprite setTexture:aTexture[NUM_WALLS+9]];

这两张图片有两种不同的尺寸。但是,当我更改纹理时, Sprite 不会改变大小。相反,图像会缩放到 Sprite 的大小。我认为 Sprite 应该改变大小。

有人可以澄清一下吗?

最佳答案

图像文件可能有不同的大小,但纹理可能使用相同的大小,因为它们通常会放大到下一个最接近的 2 的幂(在 cocos2d 中默认禁用 NPOT 纹理支持)。

含义:如果一张图片为 150x150,另一张为 250x250,则它们的纹理都将具有 256x256 尺寸。如果您从图像文件加载 Sprite ,cocos2d 会调整实际绘制的纹理部分以适应图像的大小 (contentSize)。如果您更改纹理,cocos2d 将只使用纹理的大小,而不管存储在纹理中的图像的大小 - 因为在创建纹理后该信息会丢失。

在这种情况下,您将不得不手动调用 setTextureRect: 在 Sprite 上以仅绘制纹理中实际图像的区域。

更好的解决方案是create a texture atlas使用两种纹理,然后只需更改 Sprite 显示的 Sprite 帧。它更容易,也节省内存。

关于ios - CCSprite 贴图大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11270769/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com