cocos2d-iphone - Cocos2d平铺 map 添加 Sprite

标签 cocos2d-iphone z-order

在 cocos2d-iphone 的等距平铺 map z 排序示例中,他们使用平铺 map 中已有的对象作为玩家 Sprite ,该对象被渲染为在树木中移动。

有没有办法使用通过代码创建的随机 CCNode(不在 tmx 文件中,也不是 Sprite 表的一部分),并使其与图 block map 的 z 顺序正确? CCTMXLayer 不支持 addChild,并且在使用时会出现错误:'addChild: CCTMXLayer 不支持。而是使用 setTileGID:at:/tileAt:'

必须有一种方法可以使 CCNode(比方说一个简单的 CCSprite)与图 block map 的 z 顺序正确,可以使用 cocos2d 的 API,也可以使用某些 z -缓冲技术。有什么指点吗?

最佳答案

CCTMXLayer 不支持在运行时添加图 block ,因为它是在单个 spritesheet 上使用所有 sprite 实现的。由于此实现细节,您也无法在单个图 block 上调用 setTexture。

最简单的解决方案是在开头将要使用的 Sprite 放在 Sprite 表上。如果你不能这样做,因为它是在运行时生成的或其他什么,下一个最好的事情(不接触 cocos2d 代码)将是修改 spritesheet。

在用于 TMXLayer 的 spritesheet 中放置一个虚拟图 block ,然后,一旦获得要使用的图像,就使用 CCRenderTexture 或其他东西将其写入 spritesheet,并使用新生成的纹理作为 TMXLayer 的纹理。

您还可以修改 CCTMXLayer 以允许您的功能,但听起来您想避免这种情况。

关于cocos2d-iphone - Cocos2d平铺 map 添加 Sprite ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4394495/

相关文章:

iphone - 横向模式下 Cocos 2d 和 CGPoint 混淆

ios - Cocos2D Box2D 错误?

ios - 使用 glDrawArrays,iOS 损坏 OpenGL 纹理

math - Cocos2D/Math - 干净的角度转换

ios - 创建 Sprite 时无法在等距平铺 map 中找出正确的 vertexZ

ios - iOS CALayer.zPosition 是否不超越 View 层次结构?

Qt:修改两个非兄弟图形项之间的 z 顺序

android - 如何让 Sprite 对cocos2d android中的触摸使用react?

javascript - 动态加载的 flash 电影位于 jquery 对话框 : how to change zorder? 之上

JQuery 弹出窗口出现在某些 map 元素下