- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我尝试设计一个具有广阔世界的cocos2d游戏。世界平铺 map 非常大,可能有 20 个 iPad 屏幕大小。我想知道如何将 CCTMXTiledMap 加载到屏幕中?如果我直接将它添加到屏幕上,它会占用太多内存吗?如果是这样,有没有办法解决这个问题?
最佳答案
tilemap 的内存使用量取决于 tiles 的大小以及有多少 tiles 需要转换为 sprite,例如,如果你想运行它们的动画。
假设您的图 block 大小为 32x32 像素。 20 倍 iPad 尺寸意味着 20.480x15.360 点。除以 32 得到 640x480 个图 block 的 map 图 block 大小,或总共 307.200 个图 block 。假设每个图 block 使用 64 字节内存(在较旧的 cocos2d 版本中它小于 64 字节),您的 map 最终使用将近 19 MB 的内存。这还不算纹理。
现在,对于您通过 CCSprite 接口(interface)处理的每个图 block ,例如通过更改其中一个 Sprite 属性或在其上运行操作,cocos2d 会将那个图 block 转换为常规的 CCSprite。我上次检查时,每个 CCSprite 对象使用大约 420 字节。因此,如果您要更改每个图 block 的颜色属性,从而将所有图 block 转换为 CCSprite 对象,则图 block map 将消耗 123 MB 的内存。同样,不包括纹理。
你可以试试 Tilemap renderer in KoboldTouch .它可以处理非常大的图 block map (数百万个图 block ,即 4000x4000 个图 block )并以 60 fps 的速度进行渲染。
关于ios - 如何在cocos2d中加载大尺寸的CCTMXTiledMap?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10846316/
我正在开发一个需要能够平均三个数字的 Facebook 应用程序。但是,它总是返回 0 作为答案。这是我的代码: $y = 100; $n = 250; $m = 300; $number = ($y
我只是无法弄清楚这一点,也找不到任何对我来说有意义的类似问题。我的问题:我从数据库中提取记录,并在我的网页上以每个面板 12 条的倍数显示它们。因此,我需要知道有多少个面板可以使用 JavaScrip
我是一名优秀的程序员,十分优秀!