GamePlayKit GKObstacleGraph 保存和加载
GamePlayKit GKObstacleGraph save and load
可以将 GKObstacleGraph 保存到文件并从那里加载吗?
我在这上面找不到任何东西。
我很乐意为我的关卡保存和加载预先计算好的图表。
到目前为止我已经试过了
NSArray * obstacles = [SKNode obstaclesFromNodePhysicsBodies:arrayOfBodies];
_graph = [GKObstacleGraph graphWithObstacles:obstacles bufferRadius:[(BaseUnit *)[_units firstObject] size].width/2];
[NSKeyedArchiver archiveRootObject:_graph toFile:@"/Users/roma/Desktop/myGraph.graph"];
但这就是我得到的:
-[GKObstacleGraph encodeWithCoder:]: unrecognized selector sent to instance 0x6180000432d0
GKObstacleGraph
是 GKGraph
, which (as of macOS 10.12, iOS 10, and tvOS 10) declares conformance to the NSCoding
protocol. That means you can serialize one to data or a file (and deserialize to create an instance from a file) using NSKeyedArchiver
(and NSKeyedUnarchiver 的子 class) 就像您可以为支持 NSCoding
.
的任何其他对象一样
有关存档的一般信息(适用于任何 NSCoding
兼容 class),请参阅 Apple 的 Archives and Serializations Programming Guide。
此外,在Xcode 8(部署到macOS 10.12、iOS 10或tvOS 10时),您可以创建GKGraph
s 在可视化编辑器中与您的 SpriteKit 场景一起使用。当你这样做时,你使用 GKScene class 从 .sks
文件 Xcode 写入。
在旧的 OS 版本中,GKGraph
系列不支持 NSCoding
。但是,重建 GKObstacleGraph
所需的所有信息都可以公开访问。因此,您可以通过读取图形的缓冲区半径和障碍列表,以及读取每个障碍的顶点列表来实现自己的序列化。随心所欲地将该信息写入文件...然后当您想要重建图形时,从您保存的顶点创建 GKPolygonObstacle
,并从这些障碍和您保存的缓冲区创建一个新的 GKObstacleGraph
半径.
可以将 GKObstacleGraph 保存到文件并从那里加载吗? 我在这上面找不到任何东西。
我很乐意为我的关卡保存和加载预先计算好的图表。
到目前为止我已经试过了
NSArray * obstacles = [SKNode obstaclesFromNodePhysicsBodies:arrayOfBodies];
_graph = [GKObstacleGraph graphWithObstacles:obstacles bufferRadius:[(BaseUnit *)[_units firstObject] size].width/2];
[NSKeyedArchiver archiveRootObject:_graph toFile:@"/Users/roma/Desktop/myGraph.graph"];
但这就是我得到的:
-[GKObstacleGraph encodeWithCoder:]: unrecognized selector sent to instance 0x6180000432d0
GKObstacleGraph
是 GKGraph
, which (as of macOS 10.12, iOS 10, and tvOS 10) declares conformance to the NSCoding
protocol. That means you can serialize one to data or a file (and deserialize to create an instance from a file) using NSKeyedArchiver
(and NSKeyedUnarchiver 的子 class) 就像您可以为支持 NSCoding
.
有关存档的一般信息(适用于任何 NSCoding
兼容 class),请参阅 Apple 的 Archives and Serializations Programming Guide。
此外,在Xcode 8(部署到macOS 10.12、iOS 10或tvOS 10时),您可以创建GKGraph
s 在可视化编辑器中与您的 SpriteKit 场景一起使用。当你这样做时,你使用 GKScene class 从 .sks
文件 Xcode 写入。
在旧的 OS 版本中,GKGraph
系列不支持 NSCoding
。但是,重建 GKObstacleGraph
所需的所有信息都可以公开访问。因此,您可以通过读取图形的缓冲区半径和障碍列表,以及读取每个障碍的顶点列表来实现自己的序列化。随心所欲地将该信息写入文件...然后当您想要重建图形时,从您保存的顶点创建 GKPolygonObstacle
,并从这些障碍和您保存的缓冲区创建一个新的 GKObstacleGraph
半径.