Tag: 节点

用atlas文件和SpriteKit进行批处理绘图的问题

所以我遇到了一个我正在构build的游戏平台上滞后的问题。 所以我正在研究如何提高性能。 我正在尝试批量绘图,以便减less绘制调用。 我有问题,但。 因此,一个全新的项目: 我有4个英雄精灵,所有图像都存储在.atlas文件夹中。 所以在阿特拉斯文件夹中每个精灵都有一个1/2 / 3x的图片。 我将其拖放到xcassets文件夹中。 然后我去我的sks文件创build4个精灵,并相应地改变纹理。 默认情况下,它们都具有相同的混合模式。 我有默认规则设置为true忽略兄弟顺序。 所有的精灵都在默认的z 0层上。 我已经设置了显示绘制计数。 我期望看到1画,因为所有的图像都在同一个地图集文件,但我看到4。 有什么我失踪? 只是好奇我怎么得到这个正常工作。 谢谢你的帮助!!!

CCSprite:batched sprites应该使用与batchnode相同的纹理吗?

我不断得到一个崩溃,说: *** Terminating app due to uncaught exception 'NSInternalInconsistencyException', reason: 'CCSprite: Batched sprites should use the same texture as the batchnode' 我不太清楚这是什么意思。 我GOOGLE了崩溃,但没有结果。 而且这只有当我从我的游戏中的第二个场景回来后才回到我的第一个场景。 我再次检查我的代码,并确保我的精灵表中的所有图像都作为子节点添加到批处理节点。 我也确保在我的应用程序中不在我的精灵表中的图像作为一个孩子添加到我的图层而不是批处理节点。 无论如何是什么原因造成这次崩溃,我该如何解决? 谢谢! 编辑1 :这似乎是发生在我的应用程序的这一行: [self.spriteLeft setDisplayFrame:[[CCSpriteFrameCache sharedSpriteFrameCache] spriteFrameByName:imageName]]; 我NSLog imageName和它返回:MyImage.png,然后我看我的plist和pvr.ccz,我加载和MyImage.png 肯定在那里。 所以我不知道为什么当一切看起来正确时就崩溃了。 此外,我确保我不使用spriteWithFile在我加载我的精灵表中的图像。

SpriteKit / Swift – 当两个节点已经联系时如何检查两个节点的联系

在我的游戏中,当游戏开始时,一些节点已经联系,但是我没有find如何检测这些联系。 我只能成功地检测节点移动时发生的联系,并在游戏中使用函数didBeginContact进行联系。 任何人有一个想法,请如何检测这些联系人? 这里是我的didBeginContact如果需要的话: func didBeginContact(contact: SKPhysicsContact) { var firstBody: SKPhysicsBody var secondBody: SKPhysicsBody if contact.bodyA.categoryBitMask == contact.bodyB.categoryBitMask { firstBody = contact.bodyA secondBody = contact.bodyB contactsList.append([firstBody.node!,secondBody.node!]) } }