标签: iOS Swift Sprite
SpriteKit 体系结构(重要的几个类)
SpriteKit.framework 结构
SpriteKit 在 iOS7 OSX10.9 中引入。专为为创建游戏时设计,针对二维图形的渲染和动画制作进行了大幅优化。
性能高于 UIKit 除了图形图像功能外,内置的二维图像引擎还负责碰撞检测、碰撞解决和刚体模拟等。
SKView
负责呈现SPriteKit的内容。呈现 SKScence。继续自 UIView。SKScence
节点树(noteTree)和精灵(Sprites)以及的其他内容的根节点。SKNote
节点基类SKSpriteNote
SKNote 的子类节点包含在一个 Spritekit 视图中
节点可以作为其他节点的子节点
节点将图形渲染为试图(取决于类型)
节点都是SKNote 的实例或是子类。
SKSpriteNode 表示一副图像或者一个彩色的矩形
SKShapNode 绘制一条贝塞尔曲线
SKEffetNode 负责像其他节点或其他一些子类应用诸如模糊或色调之类的图像特效
使用时添加 Spritekit.framework 到项目中SKTexture
可重复使用的图片材质贴图SKAction
当节点内容改变后进行相应的行为控制SKPhysicBody
为对象附加物理属性
使用 SPriteSkit 场景
SPriteKit 游戏由场景(SKSence)组成。每个场景包含了构成游戏的组成部分的所有的图形元素。可以认为等同于 ViewController。
SKScence 由 SKView 呈现
let sence = SKScene(size: self.view.bounds.size)
sence.backgroundColor = UIColor.greenColor()
let skView = self.view as! SKView
skView.presentScene(sence)
场景之间的切换使用过度来完成(第一个场景一般不需要过渡)
过渡使用 SKtransition 类的实例进行过渡。
SKTransition 类型枚举
enum SKTransitionDirection : Int {
case Up
case Down
case Right
case Left
}
过渡风格举例
class func crossFadeWithDuration(sec: NSTimeInterval) -> SKTransition
class func fadeWithDuration(sec: NSTimeInterval) -> SKTransition
class func fadeWithColor(color: UIColor, duration sec: NSTimeInterval) -> SKTransition
class func flipHorizontalWithDuration(sec: NSTimeInterval) -> SKTransition
class func flipVerticalWithDuration(sec: NSTimeInterval) -> SKTransition
遵循协议
SKPhysicsContactDelegate
- didBeginContact: 当两个物体开始接触(碰撞)回调此方法
- didEndContact: 当两个物体完成接触(碰撞)回调此方法
SKSceneDelegate
- update:forScene:
- didEvaluateActionsForScene:
- didSimulatePhysicsForScene:
- didApplyConstraintsForScene:
- didFinishUpdateForScene: