问题标签 [cctexturecache]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
cocos2d-iphone - 使用 spritesheet 动画 CCTexture2D
我在 Zwoptex 制作了 spritesheet,我知道 TexturePacker 比这更好,但我刚开始使用 cocos2d iphone,所以还没有购买。
我使用以下代码制作了 CCTexture2D。
我使用这个 CCtexture2D 对象在软体周围绘制纹理。使用以下代码。
现在我想动画软体的纹理。我知道如何使用 spritesheet 为精灵设置动画。但是现在我很困惑如何使用 spritesheet 制作 CCTexture2D 以及如何使用不同的图像制作纹理动画,就像我们在 sprite 动画中所做的那样?
谁能给我解决这个问题的任何方向?
c++ - Cocos2d-x TMX 地图与游戏精灵共享纹理图像文件?
我正在使用 cocos2d-x 2.1.4 并想使用相同的图像文件,例如 spritesheet.png
- 使用 Tiled Map Editor 构建的 tmx 地图上的图块;
- 游戏内精灵,我通常使用 TexturePacker 制作精灵表。
合并的原因是为了减少绘制调用的数量,因为有足够的纹理空间供精灵和图块在一张图像上共享。如果我将 TexturePacker 与 Tiled 一起使用,我认为每次 TexturePacker 重新排列平铺图像时都必须重新分配平铺位置,因此这不是一个好方法。
我知道我可以从 CCSpriteframe 中获取 CCTexture2D*,我想尝试将其插入 CCTextureCache,以便 CCTMXLayer 可以拾取纹理(实际上来自 spritesheet)。但是,没有办法这样做。
在 cocos2d-x 中处理瓦片和精灵的组合精灵表的常用技术是什么?
ios - Cocos2d。为什么异步加载纹理会保留它?
我发现了一件奇怪的事情——CCTexture2D
对象在异步加载时被保留,无论是使用addImageAsync:(NSString*)path withBlock:(void(^)(CCTexture2D *tex))block
还是-(void) addImageAsync: (NSString*)path target:(id)target selector:(SEL)selector
。
为了验证这一点,我创建了一个非常简单的项目。其实这是cocos2d
模板。我有两个按钮,一个 png 文件mytexture.png
和一个以兆字节为单位打印内存消耗的函数。这是功能:
虽然什么也没发生,只cocos2d
显示图层,但内存大约为 8 mb(在 iPad 上)。让我们点击第一个按钮:
现在内存大约是 24 MB。好的。让我们点击第二个:
并且内存仍然是 24 mb!!!为什么???唯一引用纹理的对象是缓存,但它已将其删除。为什么还在记忆中?引用什么?如果我使用addImage:
方法添加纹理,它会像我期望的那样被删除。那么如何解决呢?如何从内存中卸载它?
如果您认为内存检查功能可以提供虚假数据,那么我想说我已经使用 Instruments 分析了该应用程序并且它显示了相同的结果。
memory - Cocos2D CCTextureCache 留在内存中
对于滚动条,我使用 addImageAsync 以异步方式加载图像。
我开始分析,发现一些内存问题,图像留在内存中。
然后我决定比较 addImageAsync 与 spriteWithFile,加载和直接卸载图像。完成所有加载后, addImageAsync 将使用更多内存。
在加载许多图像的循环中,如果我使用
我最终得到 72.4MB
如果我使用:
我最终得到 108.7MB
这里有问题,还是我做错了什么?
(使用 Cocos2d V2)