PIOSpriteKit 是 Apple 的 SpriteKit 的实用库。其目标是消除一些样板代码并添加一些有用的组件。
只需将 PIOSpriteKit/Classes 目录中的文件添加到项目中。同时,您还需要将项目与 SpriteKit.framework 框架进行链接。
如果您使用 CocoaPods,只需在 Podfile 中包含以下行:
pod 'PIOSpriteKit'
PIOScrollSceneViewController 允许您滚动和缩放场景。它由两个主要类组成:PIOScrollScene
和 PIOScrollSceneViewController
。设置非常简单
首先设置您的场景
确保您的场景继承自 PIOScrollViewScene
@interface ExampleScrollScene : PIOScrollScene
使用您希望平移和缩放的 SKSpriteNode
初始化场景的 rootNode
属性。[PIOScrollScene rootNode]
是场景的主要节点。
- (instancetype)initWithSize:(CGSize)size {
if([super initWithSize:size] != nil) {
self.rootNode.texture = [SKTexture textureWithImageNamed:@"sample_image.jpg"];
self.rootNode.size = self.rootNode.texture.size;
}
return self;
}
重写让您指定最小、最大和初始缩放比例的 PIOScrollScene
属性(默认值为 1)
- (CGFloat)minimumZoomScale {
return 0.5;
}
- (CGFloat)maximumZoomScale {
return 1.0;
}
- (CGFloat)initialZoomScale {
return 0.5;
}
设置视图控制器
确保您的视图控制器继承自 PIOScrollSceneViewController
@interface ExampleScrollViewController : PIOScrollSceneViewController
使用 presentScene
方法呈现场景。
- (void)viewWillLayoutSubviews {
[super viewWillLayoutSubviews];
if (self.sampleScene == nil) {
//[PIOScrollSceneViewController spriteKitView] is an IBOutlet so you can hook it up to your SKView in the storyboard)
self.sampleScene = [[ExampleScrollScene alloc] initWithSize:self.spriteKitView.frame.size];
[self presentScene:self.sampleScene];
}
}
PIOTiledNode 允许您创建由几个瓦片组成的节点。
设置瓦片节点
确保您的节点继承自 PIOTiledNode
@interface ExampleTiledNode : PIOTiledNode
重写让您指定节点组成的行的 PIOTiledNode
属性
- (uint)rowsCount {
return 1;
}
- (uint)columnsCount {
return 2;
}
重写 imageFileNameForRow:column
方法,该方法返回给定行和列的瓦片文件名
- (NSString *)imageFileNameForRow:(NSUInteger)row column:(NSUInteger)column {
return [NSString stringWithFormat:@"sample_image_%lu%lu.jpg", (unsigned long) row, (unsigned long) column];
}
使用您的瓦片节点
调用 [PIOTiledNode load]
方法来加载您的瓦片节点
SKSpriteNode *sampleNode;
sampleNode = [[[ExampleTiledNode alloc] init] load];
像其他任何节点一样使用它
您可以在 Examples 文件夹中找到可工作的示例应用程序。祝你享受!
PIOSpriteKit 采用 MIT 许可证