Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift游戏崩溃OpenGL.h_Swift_Macos_Opengl Es_Sprite Kit_Tvos - Fatal编程技术网

Swift游戏崩溃OpenGL.h

Swift游戏崩溃OpenGL.h,swift,macos,opengl-es,sprite-kit,tvos,Swift,Macos,Opengl Es,Sprite Kit,Tvos,我正在做一个测试项目,为苹果电视制作一个游戏。我有几个精灵用圆圈表示,当它们移动时会留下一条路径。游戏正常运行了一段时间,但很快出现了以下错误: Assertion failed: (length + offset <= _length), function commit_data, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Jet_Sim/Jet-1.50/Jet/jet_types_OpenGL.h, line 863.

我正在做一个测试项目,为苹果电视制作一个游戏。我有几个精灵用圆圈表示,当它们移动时会留下一条路径。游戏正常运行了一段时间,但很快出现了以下错误:

Assertion failed: (length + offset <= _length), function commit_data, file /BuildRoot/Library/Caches/com.apple.xbs/Sources/Jet_Sim/Jet-1.50/Jet/jet_types_OpenGL.h, line 863.
我通过在每次update()函数调用中将精灵移动1点来创建精灵路径,并像这样记录它们的路径

CGPathAddLineToPoint(player.path, nil, player.sprite.position.x, player.sprite.position.y)
CGPathMoveToPoint(player.path, nil, player.sprite.position.x, player.sprite.position.y))
player.lineNode.path = player.path;
这发生在模拟器中,也发生在OSX应用程序构建中,我试图测试是否存在相同的问题。希望有人能帮忙

更新

我还注意到,如果我不在视图中添加行路径,它不会崩溃。不知道怎么了

//self.addChild(player.lineNode)
self.addChild(player.sprite)

检查内存消耗。这很可能是泄漏。@MaticOblak在xcode模拟器中运行,内存使用量没有超过100MB,检查泄漏也找不到任何东西。在苹果电视上,游戏开始在整个屏幕上画一些奇怪的条纹,就在崩溃之前。那个么你们是不是增加了太多的孩子?可能还需要更多关于你在做什么和如何做的信息。@MaticOblak这是多人游戏蛇,当玩家加入这两行时,就会执行(正如你在我的帖子更新下看到的)。这些是我添加的唯一的孩子(好吧,我还有两个菜单)。在我看来,没有其他孩子。更新时,我正在更改它们的位置,并使用CGPath添加图形路径(同样,代码在我上面的帖子中可见)。如果我不在视图中添加玩家行,一切都正常。如果我加上,游戏会在一段时间后崩溃。有没有其他方法可以画出孩子移动的路径?我看到只有2条线,但如果在每一帧上执行,每秒会产生120个孩子。。。报告失败的断言表明代码中的某个地方有一个行断言(长度+偏移量)
//self.addChild(player.lineNode)
self.addChild(player.sprite)