简介

添加高性能的2D内容和流畅的动画到您的应用程序,或创建一个高水平的2D游戏工具集的游戏。

SpriteKit是一个通用框架,用于绘制二维形状、粒子、文本、图像和视频。它利用Metal实现了高性能的渲染,同时提供了一个简单的编程界面,可以轻松创建游戏和其他图形密集型应用程序。使用一组丰富的动画和物理行为,您可以快速地为您的视觉元素添加生命,并优雅地在屏幕之间转换。

SpriteKit支持iOS、macOS、tvOS和watchOS,并与GameplayKit和SceneKit等框架很好地集成。

使用

SKView: UIView

  • 默认都是 false,可以在 debug 模式下设置为 true,方便调试
/// 显示帧速率
open var showsFPS: Bool
/// 显示叠加层
open var showsDrawCount: Bool
/// 视图所包含的节点(SKNode)数量
open var showsNodeCount: Bool
/// @available(iOS 8.0, *) 渲染场景的矩形数量
open var showsQuadCount: Bool
/// @available(iOS 8.0, *) 物理相关的调试信息
open var showsPhysics: Bool
/// @available(iOS 8.0, *) 物理场的信息
open var showsFields: Bool
  • 属性,一般不用重新设置
/// 添加到场景上的 node 是否顺序添加,默认为 false,相同的 zPosition 节点会按照添加顺序展示到相应的场景上。在复杂场景中设置为 true 可能会大大提高性能,相同的 zPosition 节点,会随机的前后呈现到场景上面。
open var ignoresSiblingOrder: Bool
/// 指示视图的场景动画是否暂停。默认为 false。为 true 时,则场景内容固定在屏幕上。不执行任何动作,也不执行物理模拟。
open var isPaused: Bool
/// 视图里的内容是否异步呈现,默认为 true
open var isAsynchronous: Bool
/// @available(iOS 8.0, *) 切换视图是否允许透明呈现,默认为false
open var allowsTransparency: Bool
/// @available(iOS 8.0, *) 屏幕外的节点是否渲染显示,默认是 false
open var shouldCullNonVisibleNodes: Bool
/// @available(iOS 10.0, *) 帧速率,默认是60
open var preferredFramesPerSecond: Int
/// @available(iOS 10.0, *) 控制帧速率的代理
weak open var delegate: SKViewDelegate?
  • 常用方法
/// 跳转到某个场景,之前的场景会销毁
/// scene 新场景
/// transition 转场动画
open func presentScene(_ scene: SKScene, transition: SKTransition)
/// 通过节点的截图和指定的尺寸,返回一个纹理
open func texture(from node: SKNode, crop: CGRect) -> SKTexture?
/// 将点从场景坐标转换为视图坐标    
open func convert(_ point: CGPoint, to scene: SKScene) -> CGPoint
/// 将点从视图坐标转换为场景坐标
open func convert(_ point: CGPoint, from scene: SKScene) -> CGPoint

引用

https://developer.apple.com/documentation/spritekit

posted on 2022-08-04 14:40  xiao孛  阅读(99)  评论(0编辑  收藏  举报