TiledEventHandler
@objc
public protocol TiledEventHandler
The TiledEventHandler protocol delegates optional handlers for mouse (macOS) and touch (iOS) events.
Instance Methods
mouseOverTileHandler: Custom tile mouse over event handler. macOSmouseOverObjectHandler: Custom object mouse over event handler. macOStileClickedHandler: Custom tile mouse click event handler. macOSobjectClickedHandler: Custom object mouse click event handler. macOStileTouchedHandler: Custom tile touch event handler. iOSobjectTouchedHandler: Custom object touch event handler. iOS
Usage
Mouse & Touch Handlers
The optional delegate method mouseOverTileHandler allows mouse and touch event handlers to be added to tiles and vector objects:
@objc public func mouseOverTileHandler(globalID: UInt32, ofType: String?) -> ((SKTile) -> ())? {
guard let tileType = ofType else {
return nil
}
switch tileType {
case "floors":
return { (tile) in tile.tileData.setValue(for: "color", "#308CC6") }
case "walls":
return { (tile) in tile.tileData.setValue(for: "color", "#8E6214") }
default:
return nil
}
}
The tileClickedHandler allows you to set a custom click handler for tiles & objects:
@objc func tileClickedHandler(globalID: UInt32, ofType: String?, button: UInt8) -> ((SKTile) -> ())? {
switch globalID {
case 24, 25:
return { (tile) in
tile.tileData.setValue(for: "wasVisited", "true")
}
default:
return nil
}
}
-
Custom handler for tiles at creation time.
Declaration
Swift
@objc optional func onCreate(globalID: UInt32, ofType: String?) -> ((SKTile) -> ())?Parameters
globalIDtile global id.
ofTypeoptional tile type.
-
Custom mouse over handler for objects matching the given type (macOS only).
Declaration
Swift
@objc optional func onCreate(ofType: String?) -> ((SKTileObject) -> ())?Parameters
ofTypeoptional object type.
-
Custom mouse over handler for tiles matching the given properties (macOS only).
Declaration
Swift
@objc optional func mouseOverTileHandler(globalID: UInt32, ofType: String?) -> ((SKTile) -> ())?Parameters
globalIDtile global id.
ofTypeoptional tile type.
-
Custom mouse click handler for tiles matching the given properties (macOS only).
Declaration
Swift
@objc optional func tileClickedHandler(globalID: UInt32, ofType: String?, button: UInt8) -> ((SKTile) -> ())?Parameters
clicksnumber of mouse clicks required.
globalIDtile global id.
ofTypeoptional tile type.
buttonmouse button.
-
Custom mouse over handler for objects matching the given properties (macOS only).
Declaration
Swift
@objc optional func mouseOverObjectHandler(withID: UInt32, ofType: String?) -> ((SKTileObject) -> ())?Parameters
withIDobject id.
ofTypeoptional object type.
-
Custom mouse click handler for objects matching the given properties (macOS only).
Declaration
Swift
@objc optional func objectClickedHandler(withID: UInt32, ofType: String?, button: UInt8) -> ((SKTileObject) -> ())?Parameters
withIDobject id.
ofTypeoptional object type.
buttonmouse button.
-
Custom touch handler for tiles matching the given properties (iOS only).
-
Custom touch handler for objects matching the given properties (iOS only).
-
Custom handler for when the
SKTilemap.currentCoordinatevalue changes. The resulting closure contains a tuple of values:- old: old coordinate.
- new: new coordinate.
- isValid: coordinate is a valid map coordinate.
Declaration
Swift
@objc optional var coordinateChangeHandler: ((simd_int2, simd_int2, Bool) -> ())? { get set }Return Value
coordinate change handler.
View on GitHub
Install in Dash
TiledEventHandler Protocol Reference