Sprite kit SpriteKit-场景“;“爆炸”;在一定条件下

Sprite kit SpriteKit-场景“;“爆炸”;在一定条件下,sprite-kit,Sprite Kit,我有一个奇怪的。我正在做一个涉及堆叠的游戏。玩家触摸屏幕来放下物体,它们需要堆叠起来。我的场景的容器视图在两个维度上都比屏幕大10倍 一只啄木鸟周期性地从左边飞进来,撞到烟囱上,威胁要把它打翻。我通过在堆栈中的一个对象(它接触的第一个对象)上添加一个固定关节,使啄木鸟粘在堆栈上 事情是这样的:这出戏在一段时间内进展顺利。当播放器堆叠对象时,我向下滚动容器,使其看起来像是向上平移,以跟随堆栈顶部。当堆栈偏移大约1500点时,奇怪的事情开始发生。当啄木鸟撞到烟囱的左侧时,突然整个东西爆炸了!堆叠中的

我有一个奇怪的。我正在做一个涉及堆叠的游戏。玩家触摸屏幕来放下物体,它们需要堆叠起来。我的场景的容器视图在两个维度上都比屏幕大10倍

一只啄木鸟周期性地从左边飞进来,撞到烟囱上,威胁要把它打翻。我通过在堆栈中的一个对象(它接触的第一个对象)上添加一个固定关节,使啄木鸟粘在堆栈上

事情是这样的:这出戏在一段时间内进展顺利。当播放器堆叠对象时,我向下滚动容器,使其看起来像是向上平移,以跟随堆栈顶部。当堆栈偏移大约1500点时,奇怪的事情开始发生。当啄木鸟撞到烟囱的左侧时,突然整个东西爆炸了!堆叠中的物品和啄木鸟似乎被棒球棒击中。它们突然以难以置信的速度飞走了。据我所知,我的代码中没有任何东西可以让它这样做,关于1500的偏移量也没有什么特别的地方

我已经记录了啄木鸟和堆叠物品的X和Y位置以及旋转。在其中一次“爆炸”后,我看到几个精灵在非常高的数字位置(abs值),比如数十万个,他们疯狂地旋转(好像他们被爆炸击中了!)

这可以持续几次爆炸,然后,最终1到3个精灵的X和Y位置变成“nan”。这与大幅降低的帧速率相关,比如降低到0.1

有太多的代码要包含,这个问题太奇怪了,我不知道哪些代码片段是最相关的。如果有人知道如何进行调试,我们将不胜感激。或者,如果需要,请告诉我您希望查看哪些代码位


我试着把固定的接头拆下来。当没有固定接头时,问题就不会发生。同样值得注意的是,啄木鸟对重力没有反应,但堆叠的物品却有反应。我也尝试过改变这一点,但同样的问题

联合创建代码将很有帮助。我对这个问题一点也不感到惊讶,如果你给一个物体加上一个限制,当这个物体与其他物体重叠或碰撞时,强大的力量就会积累起来。如果可能的话,你可以试着降低关节的“强度”。听起来你在创造大量的势能,当关节断裂时,势能转化为动能。你可以通过让啄木鸟成为它所接触的街区的一个孩子来避免这种情况,而不是用物理接头来连接它们。谢谢你的回答。关于接头强度,令人惊讶的是,SKPhysicsJointFixed或其超类中没有此类属性。奇怪的是,有时关节会断裂,但没有明显的方法来设置其强度。也许SK太新了。我试着让这只鸟成为一个街区的孩子。它变得很小,然后不想处理框架计算,所以我只是改变了我的计划。我要让它颠簸着飞走,而不是呆在那里。只是回避问题。再一次,它太新了;这可能是一个bug,但很难报告,因为我没有充分隔离它。