问题标签 [ccspritebatchnode]
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 - 如何从文档目录加载 CCSpriteBatchNode?
在调用此方法之前,我在文档目录中有一个文件,我验证该文件确实存在:
报告的错误是:
使用 Cocos2d 2.0
ios - CCSpriteBatchNode addChild?
是否可以将一个子节点添加到本身作为批处理节点的子节点添加的 CCSpriteBatchNode 中?当我为它执行 CCAction 时,我几乎可以说 spriteA 我想在 spriteB 的相对位置。spriteB 被添加为批处理节点的子节点。现在我可以将 spriteA 添加为 spriteB 的子项吗?
编辑:似乎我遇到了这个崩溃,因为 spriteA 与 spriteB 的纹理不同。那么,即使 spriteB 具有不同的纹理,我如何将 spriteB 作为孩子添加到 spriteA 中呢?
现在我正在尝试这个,我遇到了 EXC_BAD_ACCESS 崩溃:
这可能吗?我总是希望 spriteA 与 spriteB 处于相对位置,即使它在屏幕上移动也是如此。这可能吗?
谢谢!
cocos2d-iphone - 如何更新 CCSpriteBatchNode 中所有精灵的位置?
我有一个CCSpriteBatchNode
包含 30 个精灵。我想将所有的精灵移动一些 deltaX。我怎样才能做到这一点?
这是我到目前为止所尝试的:
虽然这可行,但我想知道是否有更有效的方法可能不涉及显式访问批处理节点中的每个节点。请注意,我不想移动批处理节点本身。
iphone - 当你的精灵表变得太大时该怎么办?
我刚刚为我的游戏填充了精灵表,所以我不得不将最大宽度从 2048 增加到 4096。现在精灵表不会在我的 iphone 4 上加载,尽管它在我的 iphone 5 上加载正常,导致我认为这是硬件问题或 iOS 版本问题,因为 4 仍在 iOS 5.1 上。
在这种情况下我能做什么?我已经在精灵表中包含了我的游戏的背景,这占据了大部分空间。我应该将它从精灵表中删除并将其添加为自己的文件吗?我最好开始第二张精灵表吗?就性能而言,最佳解决方案是什么?有没有办法让更大的精灵表在旧设备上工作?
cocos2d-iphone - ccSpriteBatchNode 子边界框变换
我正在使用 cocos2d 1.0.1。
我创建了一个 CCSpriteBatchNode,它包括一个 CCSprite(我们将其命名为 parentLayer),其中包括一些 X 个子节点(CCSprites)。
问题是 - 当我旋转 parentLayer 时,所有精灵(子)都正确显示,但是边界框在同一个地方(旋转前它们所在的位置),所以这些精灵的世界坐标不会改变。
当然,如果没有 CCSpriteBatchNode,以上所有方法都可以很好地工作。但是,由于涉及的精灵数量,我想使用批处理节点。
问题是,有没有办法相应地更新边界框和子位置?
ios - 了解 Cocos2d 中的 CCBatchNode
我听说在 Cocos2d 中使用 CCBatchNode 性能更好。我很难理解它是如何工作的。我有几个 CCSprite 的子类,它们代表我游戏中的对象。到目前为止,我使用该spriteWithFile:
方法初始化它们。
我现在有一个包含我所有精灵的精灵表(连同它的 plist 文件)。我应该如何使用它才能受益于“单个 openGL 绘图调用”?
如果我通过在 CCBatchNode 中取回一个帧来初始化我的精灵,它会起作用吗?
无论如何,我对CCBatchNode的理解很糟糕,一些帮助会很棒!
问候
iphone - CCSpriteBatchNode 和 CCArray,查找非活动对象
对于一个简单的游戏,我有 4 个不同的平台(都在一个 spritesheet 上)。我最初将每个添加 5 个到 CCSpriteBatchNode,并将它们全部设置为不可见。当我设置我的平台时,我想从我的 CCSpriteBatchNode 中获取一个特定类型的平台并更改它以使其可见并定位它。
我无法找到不可见的特定类型的平台。或相反亦然?
我知道你可以使用 [batchnode getchildbytag:tag] 但据我所知,它只返回一个精灵。有什么方法可以将指向特定类型的每个平台的指针放入数组中,以便我可以遍历数组并找到所有不可见的精灵?
谢谢!
cocos2d-iphone - 将精灵添加到 Cocos2d CCSpriteBatchNode 似乎忽略了位置
作为测试,我向批处理节点添加了一些精灵。它们都在 0,0 处绘制,它似乎忽略了精灵的位置,我认为它现在是相对于批处理节点的。我错过了什么?
cocos2d-iphone - 如何使用 2 个(或更多)CCSpriteBatchNode 的实例
我决定对 BatchNodes 进行一些练习,但我被困在这里是一些代码:
如何正确设置纹理?
animation - Cocos2d CCSprite 动画加载失败
我遇到了一个奇怪的 Cocos2d 动画问题。
如果我的 createAndRunAnimationonSprite 方法被调用,则在初始化时效果很好。
但是,如果我等待并使用方法 showSprite 将其分配给按钮,则精灵永远不会出现。我不知道为什么会发生这种行为。我没有其他方法或类。
HelloWorldLayer.h
HelloWorldLayer.m