私のアプリをプロファイリングしている間はちょっと混乱しています。私はそれがCPU使用量が増えるにつれてそれが気づいたが、私はなぜそれがわからない。プレイヤーがアイドル状態であっても、72%のCPU使用率があると思われます。[SKScene _update:]
私のゲームはターンベースであるため、私の更新機能は空白なので、ここで何が起こっているのでしょうか?空白のままにしておくと、更新機能が85%の時間を要するのはなぜですか?
ヒントをいただければ幸いです。
これは私の更新方法である、とする必要がある場合:
override func update(_ currentTime: TimeInterval) {
// Called before each frame is rendered
}
追加情報:
メインゲームマップがUIと六角ベースSKTileMapNode
ですSKCameraNode
を使用して描かれる。 UIは約30個のノードで構成されています。SKLabelNode
とSKSpriteNode
ユーザがターンを終了するたびに別のスレッドで実行されるAIがあります。 AIが実行されると、メインスレッドのCPU使用率が上記の画像のように即座に低下します。これは、AIがGKMinMaxStrategist
bestMoveForPlayer()
機能しか実行していないために、奇妙です。
私はほとんど間違いなく、更新を上書きして空白のままにしています。また、SKSceneDelegateはこれと正確に何をしなければなりませんか? – Aleksandr
すべてのシーン処理メソッドは、関連するコードなしで 'SKSceneDelegate'を使って委譲することができます。私は、あなたがサブクラス化して独自のデリゲートを実装しているとは言えません。プレイヤーのターンが終了した時点でビューを一時停止し、開始する前に更新してみてください。 – RLoniello
私は明示的にSKSceneDelegateで何もしません。私はそれにアクセスせず、その機能のいずれかで動作します。手動で 'update'を呼び出すことはどこにもなく、ビューを一時停止することは、ユーザが動かすことができないので目的を破ります。 – Aleksandr