Imaginez dans votre
class NattyScene: SKScene {
vous avez peut-être un champ personnalisé pour les nœuds, ou quelque chose d'autre qui se produit à chaque image. Imaginez maintenant que vous ayez un calcul à faire, par exemple le centre de gravité...
var globalCOG: CGPoint
func updateCOG() {
.. say, get all the .position of all Spaceship ..
globalCOG = .. some point
}
Il serait tout à fait judicieux d'en parler dans un autre fil, en supposant que des questions comme celles qui suivent soient abordées.
- la lecture des .positions est rapide et sans risque pour les threads
- cet autre thread putatif sur un autre noyau, connaît les frames SpriteKit (de sorte que vous pouvez calculer jusqu'au temps d'abandon de la manière habituelle, etc, peut-être préférez-vous sauter une frame ou autre - la panoplie habituelle de la programmation de jeux threadés)
- vous pouvez écrire en threadsafe/blahblah le global COG vers le reste de SpriteKit
Qu'en est-il ?
- Quel est l'idiome moderne pour cela dans Swift4 / SpriteKit ?
- Comment l'obliger à passer à un autre noyau physique entier ?
Des idées ?
override func update(_ currentTime: TimeInterval) {
let x = safely get info from a thread on another physical core on the device
print("now that's cool")
}
sur l'autre noyau ...
func loopy() {
let x = safely look at info on NattyScene
let globalCOG = calculation
}
Note : Le KOD a indiqué DispatchQueue
Ce qui est très bien, mais y a-t-il un moyen de s'assurer qu'il s'agit bien d'un autre cœur ?