问题标签 [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-x - cocos2d,对不同批次节点中的子项重新排序
我正在创建一个格斗游戏。我有一个英雄的精灵表和一个怪物的精灵表。由于两者都可以进行多次攻击,因此我想避免将它们合并到一个 spritesheet 中。我打算创造更多的角色。
现在我为每个 spritesheet 创建一个 SpriteBatchNode 并将它们添加到图层。
现在我有一个 sprite incharacterHeroBatchNode
和多个 in characterMonsterBatchNode
。
如何根据 PositionY 属性对怪物和英雄 z-Order 重新排序。
例如>
我想要英雄背后的怪物1。还有monster2背后的英雄。
objective-c - 切换 CCSpriteBatchNode 的执行方式是什么?
我需要从 CCSpriteBatch 节点切换纹理图集。我选择的方法是,在可玩角色到达特定 X 轴 (700) 后,游戏会改变它。
它在视觉上工作正常,但问题是,它在更改屏幕时冻结了 2-3 秒,并且我在控制台中收到内存警告。
我不认为我是唯一一个这样做过的人,这让我想知道切换 CCSpriteBatchNode 的正确(最轻)方式是什么。
请参见下面的当前切换代码:
谢谢
cocos2d-iphone - 了解何时使用 CCSpriteBatchNodes?
我在几个地方看到过,包括 CCSpriteBatchNode 的源代码,添加/删除子节点是“昂贵的”。我的理解是,使用批处理节点的全部目的是防止在将来自同一个精灵表的许多精灵添加到同一个容器时反复发生昂贵的 OpenGL 调用。
我想知道的是1)向精灵批处理节点添加/删除子节点有多“昂贵”,以及2)何时认为使用一个合适?
例如,我有一个创建十个精灵的激光对象......当它在屏幕上移动时,它会显示/隐藏给定屏幕位置的当前精灵。当它到达屏幕的最右边缘时,激光对象被丢弃,十个精灵也被丢弃。所以,我想知道,这是不是一个精灵批处理节点不适合使用的情况,因为它只有 10 个精灵,而且它发生得如此之快——移动动画是 0.2 秒,所以如果玩家要快速开火,这意味着一遍又一遍地向批处理节点添加/删除 10 个精灵......
在其他情况下,我已经为各种对象设置了一个 SpriteBatchNode,偶尔我会遇到需要添加的一次性精灵,它恰好是同一个精灵表的一部分,所以我很想添加它到那个批处理节点,因为它在那里,并且它已经指定给那个特定的精灵表......无论如何,我很想对这个主题进行一些澄清。
cocos2d-x - 如何在 cocos2d-x 中调整动画精灵的大小
我想更改正在动画的 Sprite 的大小。我怎样才能做到这一点 ?我试图通过使用 setScale 属性来改变它的大小,但它在这里不起作用。我在哪里做错了?
cocos2d-iphone - 添加一个普通的 CCSprite 到 CCSpriteBatchNode 崩溃
我在日志中收到此异常
我想要做的是将普通的“myfile.png”文件添加到SpriteBatchNode
**批处理节点的声明
** 用法
这条线完美无缺
但是,当我使用直接 *.png 文件添加到批处理节点时,它会崩溃
在线崩溃
在进一步调试中,我发现:
断言失败在文件中CCSpriteBatchNode.m
内部方法-(void) addChild:(CCSprite*)child z:(NSInteger)z tag:(NSInteger) aTag
在线NSAssert( child.texture.name == textureAtlas_.texture.name, @"CCSprite is not using the same texture id");
PS:“正常”是指不是取自 *.plist 文件
cocos2d-x - 如何将 alpha 纹理绑定到 SpriteBatchNode?
有人可以告诉我如何将 alpha 纹理绑定到 SpriteBatchNode。我有同时使用纹理 alpha 和 origin 的着色器。我扩展了 Sprite 并将 alpha 纹理绑定到它,它工作正常。但我不明白如何在 cocos2d-x v3 中将纹理绑定到 SpriteBatchNode。请帮我。谢谢
在 SpriteBatchNode 中,他们使用具有 init 和 execute 方法的 BatchCommand。在执行方法中,他们绑定主纹理这个源你可以在 CCBatchCommand.cpp 中找到。出于我的原因,我有自己的 ExtBatchNode,它继承自 SpriteBatchNode。
在我的 ExtBatchNode 的绘制方法中,我尝试以不同的方式绑定 myAlpha 纹理