我正在开发一个测试项目,为Apple 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.
我正在创建这样的精灵:
sprite = SKSpriteNode(imageNamed:colorName)
CGPathMoveToPoint(path, nil, sprite.position.x, sprite.position.y)
lineNode.path = path;
我通过在每个update()函数调用中将它们移动1个点来创建sprite路径,并且还记录它们的路径
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)