swift-version swift-package-manager platform ci-status license

GCOverseer 🎮

围绕 Apple Game Controller FrameworkAsyncSequence 包装器。

已测试平台

使用示例

处理控制器连接/断开连接事件

import SpriteKit
import GCOverseer

class GameScene: SKScene {

    let gcOverseer = GCOverseer()

    override init(size: CGSize) {
        super.init(size: size)

        // 🎮 Handle game controller connection/disconnection asynchronously
        Task {
            for await controllerEvent in gcOverseer.connectionStream {
                switch controllerEvent {
                case .connected:
                    print("A game controller connected.")
                case .disconnected:
                    print("A game controller disconnected.")
                }
            }
        }
    }
}

可用属性

属性 描述
var connectionStream: AsyncStream<GameControllerEvent> 提供一个 AsyncSequence 用于观察游戏控制器的连接/断开连接事件。
var controllers: [GCController] 返回连接到设备的所有控制器。 例如,DualShockXboxSiri Remote 控制器等。

可用 API

API 描述
extendedGamepadControllers() 返回所有支持连接到设备的 extendedGamepad 配置文件的控制器。 例如,DualShockXbox 控制器等。
dualShockControllers() 返回所有连接到设备的 DualShock 控制器。
dualSenseControllers() 返回所有连接到设备的 DualSense 控制器。
xboxControllers() 返回所有连接到设备的 Xbox 控制器。
microGamepadControllers() 返回所有支持连接到设备的 microGamepad 配置文件的控制器。 例如,Apple 的 Siri Remote
motionControllers() 返回所有支持连接到设备的 motion 配置文件的控制器。
controllerFor(playerIndex:) 返回玩家 1、玩家 2 等的控制器。
enableLogging() / disableLogging() 启用/禁用日志输出。

集成

Xcode

使用 Xcode 的 内置 SPM 支持

或者...

Package.swift

在您的 Package.swift 中,添加 GCOverseer 作为依赖项

dependencies: [
    .package(
        url: "https://github.com/backslash-f/gcoverseer",
        .upToNextMajor(from: "2.0.0")
    )
]

将依赖项与您的目标关联

targets: [
    .target(
        name: "YourTargetName",
        dependencies: [
            .product(
                name: "GCOverseer",
                package: "gcoverseer"
            )
        ]
    )
]

运行: swift build