One Logo Pool Ball
Graphics and Games · IOS API REFERENCE

GameplayKit

Architect and organize your game logic. Incorporate common gameplay behaviors such as random number generation, artificial intelligence, pathfinding, and agent behavior.

70 types

416 callable entries

44 skipped

90% entry coverage

Generated from iOS SDK 27.1. Availability is shown on each declaration; permissions and entitlements still apply.

Types

GKAgent

class · iOS 9.0+

GKAgent2D

class · iOS 9.0+

GKAgent3D

class · iOS 9.0+

GKAgentDelegate

protocol

GKARC4RandomSource

class · iOS 9.0+

GKBehavior

class · iOS 9.0+

GKBillowNoiseSource

class · iOS 10.0+

GKBox

struct

GKCheckerboardNoiseSource

class · iOS 10.0+

GKCircleObstacle

class · iOS 9.0+

GKCoherentNoiseSource

class · iOS 10.0+

GKComponent

class · iOS 9.0+

GKComponentSystem

class · iOS 9.0+

GKCompositeBehavior

class

GKConstantNoiseSource

class · iOS 10.0+

GKCylindersNoiseSource

class · iOS 10.0+

GKDecisionNode

class · iOS 10.0+

GKDecisionTree

class · iOS 10.0+

GKEntity

class · iOS 9.0+

GKGameModel

protocol

GKGameModelPlayer

protocol

GKGameModelUpdate

protocol

GKGaussianDistribution

class · iOS 9.0+

GKGoal

class · iOS 9.0+

GKGraph

class · iOS 9.0+

GKGraphNode

class · iOS 9.0+

GKGraphNode2D

class · iOS 9.0+

GKGraphNode3D

class · iOS 10.0+

GKGridGraph

class · iOS 9.0+

GKGridGraphNode

class · iOS 9.0+

GKLinearCongruentialRandomSource

class · iOS 9.0+

GKMersenneTwisterRandomSource

class · iOS 9.0+

GKMeshGraph

class · iOS 10.0+

GKMeshGraphTriangulationMode

struct

GKMinmaxStrategist

class · iOS 9.0+

GKMonteCarloStrategist

class · iOS 10.0+

GKNoise

class · iOS 10.0+

GKNoiseMap

class · iOS 10.0+

GKNoiseSource

class · iOS 10.0+

GKNSPredicateRule

class · iOS 9.0+

GKObstacle

class · iOS 9.0+

GKObstacleGraph

class · iOS 9.0+

GKOctree

class · iOS 10.0+

GKOctreeNode

class · iOS 10.0+

GKPath

class · iOS 9.0+

GKPerlinNoiseSource

class · iOS 10.0+

GKPolygonObstacle

class · iOS 9.0+

GKQuad

struct

GKQuadtree

class · iOS 10.0+

GKQuadtreeNode

class · iOS 10.0+

GKRandom

protocol

GKRandomDistribution

class · iOS 9.0+

GKRandomSource

class · iOS 9.0+

GKRidgedNoiseSource

class · iOS 10.0+

GKRTree

class · iOS 10.0+

GKRTreeSplitStrategy

enum

GKRule

class · iOS 9.0+

GKRuleSystem

class · iOS 9.0+

GKScene

class · iOS 10.0+

GKSceneRootNodeType

protocol

GKSCNNodeComponent

class · iOS 11.0+

GKShuffledDistribution

class · iOS 9.0+

GKSKNodeComponent

class · iOS 10.0+

GKSphereObstacle

class · iOS 10.0+

GKSpheresNoiseSource

class · iOS 10.0+

GKState

class · iOS 9.0+

GKStateMachine

class · iOS 9.0+

GKStrategist

protocol

GKTriangle

struct

GKVoronoiNoiseSource

class · iOS 10.0+

Functions and constants

get

GKGameModelMaxScore

TypeScript
const GKGameModelMaxScore: number
Swift declaration
var GKGameModelMaxScore: Int { get }
get

GKGameModelMinScore

TypeScript
const GKGameModelMinScore: number
Swift declaration
var GKGameModelMinScore: Int { get }
get

GK_VERSION

TypeScript
const GK_VERSION: number
Swift declaration
var GK_VERSION: Int32 { get }
method · iOS 9.0+

addComponent

TypeScript
addComponent(component: GKComponent): void
Swift declaration
func addComponent(_ component: ComponentType)
method · iOS 9.0+

addComponent

TypeScript
addComponentFoundIn(entity: GKEntity): void
Swift declaration
func addComponent(foundIn entity: GKEntity)
method · iOS 9.0+

classForGenericArgument

TypeScript
classForGenericArgument(index: number): string
Swift declaration
func classForGenericArgument(at index: Int) -> AnyClass
init · iOS 9.0+

init

TypeScript
static init(cls: string): GKComponentSystem<GKComponent>
Swift declaration
init(componentClass cls: AnyClass)
subscript · iOS 9.0+

subscript

TypeScript
subscript(idx: number): GKComponent
Swift declaration
subscript(idx: Int) -> ComponentType { get }
method · iOS 9.0+

removeComponent

TypeScript
removeComponent(component: GKComponent): void
Swift declaration
func removeComponent(_ component: ComponentType)
method · iOS 9.0+

removeComponent

TypeScript
removeComponentFoundIn(entity: GKEntity): void
Swift declaration
func removeComponent(foundIn entity: GKEntity)
method · iOS 9.0+

update

TypeScript
update(seconds: number): void
Swift declaration
func update(deltaTime seconds: TimeInterval)
get · iOS 9.0+

componentClass

TypeScript
get componentClass(): string
Swift declaration
var componentClass: AnyClass { get }
get · iOS 9.0+

components

TypeScript
get components(): Array<GKComponent>
Swift declaration
var components: [ComponentType] { get }
method · iOS 9.0+

classForGenericArgument

TypeScript
classForGenericArgument(index: number): string
Swift declaration
func classForGenericArgument(at index: Int) -> AnyClass
method · iOS 9.0+

connectToAdjacentNodes

TypeScript
connectToAdjacentNodes(node: GKGridGraphNode): void
Swift declaration
func connectToAdjacentNodes(node: GKGridGraphNode)
init · iOS 9.0+

init

TypeScript
static initFromGridStartingAtWidthHeightDiagonalsAllowed(position: SDKHandle, width: number, height: number, diagonalsAllowed: boolean): GKGridGraph<GKGridGraphNode>
Swift declaration
init(fromGridStartingAt position: vector_int2, width: Int32, height: Int32, diagonalsAllowed: Bool)
init · iOS 9.0+

init

TypeScript
static initFromGridStartingAtWidthHeightDiagonalsAllowedNodeClass(position: SDKHandle, width: number, height: number, diagonalsAllowed: boolean, nodeClass: string): GKGridGraph<GKGridGraphNode>
Swift declaration
init(fromGridStartingAt position: vector_int2, width: Int32, height: Int32, diagonalsAllowed: Bool, nodeClass: AnyClass)
method · iOS 9.0+

node

TypeScript
node(position: SDKHandle): (GKGridGraphNode) | null
Swift declaration
func node(atGridPosition position: vector_int2) -> NodeType?
get · iOS 9.0+

diagonalsAllowed

TypeScript
get diagonalsAllowed(): boolean
Swift declaration
var diagonalsAllowed: Bool { get }
get · iOS 9.0+

gridHeight

TypeScript
get gridHeight(): number
Swift declaration
var gridHeight: Int { get }
get · iOS 9.0+

gridOrigin

TypeScript
get gridOrigin(): SDKHandle
Swift declaration
var gridOrigin: vector_int2 { get }
get · iOS 9.0+

gridWidth

TypeScript
get gridWidth(): number
Swift declaration
var gridWidth: Int { get }
method · iOS 10.0+

addObstacles

TypeScript
addObstacles(obstacles: Array<GKPolygonObstacle>): void
Swift declaration
func addObstacles(_ obstacles: [GKPolygonObstacle])
method · iOS 10.0+

classForGenericArgument

TypeScript
classForGenericArgument(index: number): string
Swift declaration
func classForGenericArgument(at index: Int) -> AnyClass
method · iOS 10.0+

connectUsingObstacles

TypeScript
connectUsingObstacles(node: GKGraphNode2D): void
Swift declaration
func connectUsingObstacles(node: NodeType)
init · iOS 10.0+

init

TypeScript
static initBufferRadiusMinCoordinateMaxCoordinate(bufferRadius: number, min: SDKHandle, max: SDKHandle): GKMeshGraph<GKGraphNode2D>
Swift declaration
init(bufferRadius: Float, minCoordinate min: vector_float2, maxCoordinate max: vector_float2)
init · iOS 10.0+

init

TypeScript
static initBufferRadiusMinCoordinateMaxCoordinateNodeClass(bufferRadius: number, min: SDKHandle, max: SDKHandle, nodeClass: string): GKMeshGraph<GKGraphNode2D>
Swift declaration
init(bufferRadius: Float, minCoordinate min: vector_float2, maxCoordinate max: vector_float2, nodeClass: AnyClass)
method · iOS 10.0+

removeObstacles

TypeScript
removeObstacles(obstacles: Array<GKPolygonObstacle>): void
Swift declaration
func removeObstacles(_ obstacles: [GKPolygonObstacle])
method · iOS 10.0+

triangle

TypeScript
triangle(index: number): GKTriangle
Swift declaration
func triangle(at index: Int) -> GKTriangle
method · iOS 10.0+

triangulate

TypeScript
triangulate(): void
Swift declaration
func triangulate()
get · iOS 10.0+

bufferRadius

TypeScript
get bufferRadius(): number
Swift declaration
var bufferRadius: Float { get }
get · iOS 10.0+

obstacles

TypeScript
get obstacles(): Array<GKPolygonObstacle>
Swift declaration
var obstacles: [GKPolygonObstacle] { get }
get · iOS 10.0+

triangleCount

TypeScript
get triangleCount(): number
Swift declaration
var triangleCount: Int { get }
get · iOS 10.0+

triangulationMode

TypeScript
get triangulationMode(): GKMeshGraphTriangulationMode
Swift declaration
var triangulationMode: GKMeshGraphTriangulationMode { get set }
set · iOS 10.0+

triangulationMode

TypeScript
set triangulationMode(value: GKMeshGraphTriangulationMode)
Swift declaration
var triangulationMode: GKMeshGraphTriangulationMode { get set }
method · iOS 9.0+

addObstacles

TypeScript
addObstacles(obstacles: Array<GKPolygonObstacle>): void
Swift declaration
func addObstacles(_ obstacles: [GKPolygonObstacle])
method · iOS 9.0+

classForGenericArgument

TypeScript
classForGenericArgument(index: number): string
Swift declaration
func classForGenericArgument(at index: Int) -> AnyClass
method · iOS 9.0+

connectUsingObstacles

TypeScript
connectUsingObstaclesNode(node: GKGraphNode2D): void
Swift declaration
func connectUsingObstacles(node: NodeType)
method · iOS 9.0+

connectUsingObstacles

TypeScript
connectUsingObstaclesNodeIgnoringBufferRadiusOf(node: GKGraphNode2D, obstaclesBufferRadiusToIgnore: Array<GKPolygonObstacle>): void
Swift declaration
func connectUsingObstacles(node: NodeType, ignoringBufferRadiusOf obstaclesBufferRadiusToIgnore: [GKPolygonObstacle])
method · iOS 9.0+

connectUsingObstacles

TypeScript
connectUsingObstaclesNodeIgnoring(node: GKGraphNode2D, obstaclesToIgnore: Array<GKPolygonObstacle>): void
Swift declaration
func connectUsingObstacles(node: NodeType, ignoring obstaclesToIgnore: [GKPolygonObstacle])
init · iOS 9.0+

init

TypeScript
static initObstaclesBufferRadius(obstacles: Array<GKPolygonObstacle>, bufferRadius: number): GKObstacleGraph<GKGraphNode2D>
Swift declaration
init(obstacles: [GKPolygonObstacle], bufferRadius: Float)
init · iOS 9.0+

init

TypeScript
static initObstaclesBufferRadiusNodeClass(obstacles: Array<GKPolygonObstacle>, bufferRadius: number, nodeClass: string): GKObstacleGraph<GKGraphNode2D>
Swift declaration
init(obstacles: [GKPolygonObstacle], bufferRadius: Float, nodeClass: AnyClass)
method · iOS 9.0+

isConnectionLocked

TypeScript
isConnectionLocked(startNode: GKGraphNode2D, endNode: GKGraphNode2D): boolean
Swift declaration
func isConnectionLocked(from startNode: NodeType, to endNode: NodeType) -> Bool
method · iOS 9.0+

lockConnection

TypeScript
lockConnection(startNode: GKGraphNode2D, endNode: GKGraphNode2D): void
Swift declaration
func lockConnection(from startNode: NodeType, to endNode: NodeType)
method · iOS 9.0+

nodes

TypeScript
nodes(obstacle: GKPolygonObstacle): Array<GKGraphNode2D>
Swift declaration
func nodes(for obstacle: GKPolygonObstacle) -> [NodeType]
method · iOS 9.0+

removeAllObstacles

TypeScript
removeAllObstacles(): void
Swift declaration
func removeAllObstacles()
method · iOS 9.0+

removeObstacles

TypeScript
removeObstacles(obstacles: Array<GKPolygonObstacle>): void
Swift declaration
func removeObstacles(_ obstacles: [GKPolygonObstacle])
method · iOS 9.0+

unlockConnection

TypeScript
unlockConnection(startNode: GKGraphNode2D, endNode: GKGraphNode2D): void
Swift declaration
func unlockConnection(from startNode: NodeType, to endNode: NodeType)
get · iOS 9.0+

bufferRadius

TypeScript
get bufferRadius(): number
Swift declaration
var bufferRadius: Float { get }
get · iOS 9.0+

obstacles

TypeScript
get obstacles(): Array<GKPolygonObstacle>
Swift declaration
var obstacles: [GKPolygonObstacle] { get }
method · iOS 10.0+

add

TypeScript
addIn(element: _ObjectiveC_NSObject, box: GKBox): GKOctreeNode
Swift declaration
func add(_ element: ElementType, in box: GKBox) -> GKOctreeNode
method · iOS 10.0+

add

TypeScript
addAt(element: _ObjectiveC_NSObject, point: SDKHandle): GKOctreeNode
Swift declaration
func add(_ element: ElementType, at point: vector_float3) -> GKOctreeNode
method · iOS 10.0+

elements

TypeScript
elementsAt(point: SDKHandle): Array<_ObjectiveC_NSObject>
Swift declaration
func elements(at point: vector_float3) -> [ElementType]
method · iOS 10.0+

elements

TypeScript
elementsIn(box: GKBox): Array<_ObjectiveC_NSObject>
Swift declaration
func elements(in box: GKBox) -> [ElementType]
init · iOS 10.0+

init

TypeScript
static init(box: GKBox, minCellSize: number): GKOctree<_ObjectiveC_NSObject>
Swift declaration
init(boundingBox box: GKBox, minimumCellSize minCellSize: Float)
method · iOS 10.0+

remove

TypeScript
remove(element: _ObjectiveC_NSObject): boolean
Swift declaration
func remove(_ element: ElementType) -> Bool
method · iOS 10.0+

remove

TypeScript
removeUsing(element: _ObjectiveC_NSObject, node: GKOctreeNode): boolean
Swift declaration
func remove(_ element: ElementType, using node: GKOctreeNode) -> Bool
method · iOS 10.0+

add

TypeScript
addAt(element: _ObjectiveC_NSObject, point: SDKHandle): GKQuadtreeNode
Swift declaration
func add(_ element: ElementType, at point: vector_float2) -> GKQuadtreeNode
method · iOS 10.0+

add

TypeScript
addIn(element: _ObjectiveC_NSObject, quad: GKQuad): GKQuadtreeNode
Swift declaration
func add(_ element: ElementType, in quad: GKQuad) -> GKQuadtreeNode
method · iOS 10.0+

elements

TypeScript
elementsAt(point: SDKHandle): Array<_ObjectiveC_NSObject>
Swift declaration
func elements(at point: vector_float2) -> [ElementType]
method · iOS 10.0+

elements

TypeScript
elementsIn(quad: GKQuad): Array<_ObjectiveC_NSObject>
Swift declaration
func elements(in quad: GKQuad) -> [ElementType]
init · iOS 10.0+

init

TypeScript
static init(quad: GKQuad, minCellSize: number): GKQuadtree<_ObjectiveC_NSObject>
Swift declaration
init(boundingQuad quad: GKQuad, minimumCellSize minCellSize: Float)
method · iOS 10.0+

remove

TypeScript
remove(element: _ObjectiveC_NSObject): boolean
Swift declaration
func remove(_ element: ElementType) -> Bool
method · iOS 10.0+

remove

TypeScript
removeUsing(data: _ObjectiveC_NSObject, node: GKQuadtreeNode): boolean
Swift declaration
func remove(_ data: ElementType, using node: GKQuadtreeNode) -> Bool
method · iOS 10.0+

addElement

TypeScript
addElement(element: _ObjectiveC_NSObject, boundingRectMin: SDKHandle, boundingRectMax: SDKHandle, splitStrategy: GKRTreeSplitStrategy): void
Swift declaration
func addElement(_ element: ElementType, boundingRectMin: vector_float2, boundingRectMax: vector_float2, splitStrategy: GKRTreeSplitStrategy)
method · iOS 10.0+

elements

TypeScript
elements(rectMin: SDKHandle, rectMax: SDKHandle): Array<_ObjectiveC_NSObject>
Swift declaration
func elements(inBoundingRectMin rectMin: vector_float2, rectMax: vector_float2) -> [ElementType]
init · iOS 10.0+

init

TypeScript
static init(maxNumberOfChildren: number): GKRTree<_ObjectiveC_NSObject>
Swift declaration
init(maxNumberOfChildren: Int)
method · iOS 10.0+

removeElement

TypeScript
removeElement(element: _ObjectiveC_NSObject, boundingRectMin: SDKHandle, boundingRectMax: SDKHandle): void
Swift declaration
func removeElement(_ element: ElementType, boundingRectMin: vector_float2, boundingRectMax: vector_float2)
get · iOS 10.0+

queryReserve

TypeScript
get queryReserve(): number
Swift declaration
var queryReserve: Int { get set }
set · iOS 10.0+

queryReserve

TypeScript
set queryReserve(value: number)
Swift declaration
var queryReserve: Int { get set }
method

shuffled

TypeScript
shuffled(): Array<unknown>
Swift declaration
func shuffled() -> [Any]
method

shuffled

TypeScript
shuffledUsing(randomSource: GKRandomSource): Array<unknown>
Swift declaration
func shuffled(using randomSource: GKRandomSource) -> [Any]
get · iOS 11.0+

entity

TypeScript
get entity(): (GKEntity) | null
Swift declaration
weak var entity: GKEntity? { get set }
set · iOS 11.0+

entity

TypeScript
set entity(value: (GKEntity) | null)
Swift declaration
weak var entity: GKEntity? { get set }
static

obstacles

TypeScript
static obstaclesFromNodeBounds(nodes: Array<_SpriteKit_SKNode>): Promise<Array<GKPolygonObstacle>>
Swift declaration
class func obstacles(fromNodeBounds nodes: [SKNode]) -> [GKPolygonObstacle]
static

obstacles

TypeScript
static obstaclesFromNodePhysicsBodies(nodes: Array<_SpriteKit_SKNode>): Promise<Array<GKPolygonObstacle>>
Swift declaration
class func obstacles(fromNodePhysicsBodies nodes: [SKNode]) -> [GKPolygonObstacle]
static

obstacles

TypeScript
static obstaclesFromSpriteTexturesAccuracy(sprites: Array<_SpriteKit_SKNode>, accuracy: number): Promise<Array<GKPolygonObstacle>>
Swift declaration
class func obstacles(fromSpriteTextures sprites: [SKNode], accuracy: Float) -> [GKPolygonObstacle]
get · iOS 10.0+

entity

TypeScript
get entity(): Promise<(GKEntity) | null>
Swift declaration
weak var entity: GKEntity? { get set }
set · iOS 10.0+

entity

TypeScript
setEntity(value?: (GKEntity) | null): Promise<void>
Swift declaration
weak var entity: GKEntity? { get set }
init · iOS 10.0+

init

TypeScript
static init(noiseMap: GKNoiseMap): _SpriteKit_SKTexture
Swift declaration
convenience init(noiseMap: GKNoiseMap)
static

tileMapNodes

TypeScript
static tileMapNodes(tileSet: _SpriteKit_SKTileSet, columns: number, rows: number, tileSize: { width: number; height: number }, noiseMap: GKNoiseMap, thresholds: Array<_Foundation_NSNumber>): Promise<Array<_SpriteKit_SKTileMapNode>>
Swift declaration
class func tileMapNodes(tileSet: SKTileSet, columns: Int, rows: Int, tileSize: CGSize, from noiseMap: GKNoiseMap, tileTypeNoiseMapThresholds thresholds: [NSNumber]) -> [SKTileMapNode]

Skipped declarations

44 declarations were excluded from these bindings. Each reason comes from the generator or the iOS SDK compiler.

GKRule.init(blockPredicate:action:)

callback cannot propagate synchronous failure

GKOctree.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKBillowNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKCheckerboardNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKConstantNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKCylindersNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKPerlinNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKRidgedNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKSpheresNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKVoronoiNoiseSource.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKGoal.init()

inherited init: cannot prove legal (class declares 19 custom initializers)

GKRTree.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKGridGraph.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

GKBehavior.init()

inherited init: cannot prove legal (class declares 4 custom initializers)

GKScene.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

GKGraphNode2D.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKGraphNode3D.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKGridGraphNode.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKGraph.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

GKCompositeBehavior.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

GKComponentSystem.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKStateMachine.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKObstacleGraph.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

GKGaussianDistribution.init()

inherited init: cannot prove legal (class declares 2 custom initializers)

GKRandomDistribution.init()

inherited init: cannot prove legal (class declares 3 custom initializers)

GKSKNodeComponent.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKCircleObstacle.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKPolygonObstacle.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKSphereObstacle.init()

inherited init: cannot prove legal (class declares 1 custom initializer)

GKMeshGraph.init()

inherited init: cannot prove legal (class declares 3 custom initializers)