リモコンのイベント取得その2 タッチサーフェスの端のタッチを検知する
GameController.framework
その1で触れた端のタッチ取得、正解はGameController.frameworkを使用するでした!
import GameController
...
private func observeGCController(force: Bool) {
if let gc = GCController.controllers().first?.microGamepad {
gc.reportsAbsoluteDpadValues = true
gc.dpad.valueChangedHandler = { [weak self] (dpad, _, _) in
// dpad.xAxis.value / dpad.yAxis.value で座標を取得できる
}
} else {
if force {
return
}
NotificationCenter.default.addObserver(forName: Notification.Name.GCControllerDidConnect, object: nil, queue: nil, using: { [weak self] _ in
self?.observeGCController(force: true)
})
}
}
dpad.xAxis.value
もしくは dpad.yAxis.value
は -1.0から1.0の範囲なので、この値の絶対値が例えば0.8以上なら端っこに指があるということになります。
Game CenterのCapability
なお上の実装でApp Storeに申請するにはGame CenterのCapabilityをONにする必要がありますのでご注意ください。ONにしないとたしかバイナリのアップロードのタイミングでエラーになったと思います。
別にゲームではないアプリでも、問題なく申請は通りました👌
参考
Author And Source
この問題について(リモコンのイベント取得その2 タッチサーフェスの端のタッチを検知する), 我々は、より多くの情報をここで見つけました https://qiita.com/toshi0383/items/76bedc46f7a478f952e6著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .