2017-01-20 4 views

Répondre

5

Vous pouvez faire quelque chose comme ça aussi (comme un ajout à la réponse de crashoverride777) en ralentissant les nœuds ou la physique:

Pour faire des nœuds d'entrer dans slow-mo (vous pouvez faire par noeud):

self.speed = 0.2 //where self is a scene 

ou à faire de même avec la physique:

self.physicsWorld.speed = 0.2 //where self is a scene 
+0

Cette solution n'est pas robuste. Surtout si vous avez des particules dans le jeu et quand vous avez beaucoup de sprites (la boucle à travers les sprites pourrait poser des problèmes de performance). Mais merci pour votre réponse. – GeneCode

+0

Pourquoi devriez-vous parcourir les sprites dans tous les cas pour les ralentir? Vous changez la vitesse de leur parent ou changez la vitesse d'une scène. @GeneCode – Whirlwind

+0

Aussi cette méthode vous donne la possibilité de ralentir séparément un monde physique, un arbre de nœuds complet, ou un seul nœud par exemple ... – Whirlwind

3

Vous pouvez modifier la valeur FPS de votre SKView lorsque vous chargez la première scène de votre GameViewController.

Quelque chose comme:

if #available(iOS 10.0, *) { 
    skView.preferredFramesPerSecond = 30 // 30 FPS 
} else { 
    skView.frameInterval = 2 // Deprecated (1 default = 60FPS so 2 would = 30 FPS) 
    skView.preferredFrameRate = ... // Deprecated 
} 

Comme Whirlwind si gentiment fait remarquer dans sa réponse.

« De plus, ce ne sera pas quelque chose de ralentissement, vous sautez des cadres que vous voyez, par exemple si vous avez un noeud qui se déplace du point A au point B en 5 secondes, et vous changez preferredFrameRate à 30fps, le noeud passera de A à B toujours dans 5 secondes, plutôt que 10. Le seul changement que vous verrez, c'est que certaines images sont sauté. "

SKView référence API here

+0

Bonne réponse. Aussi 'frameInterval' est obsolète comme expliqué par la classe' SKView' actuelle: '/ * Déconseillé, veuillez utiliser preferredFramesPerSecond. Nombre d'images à ignorer entre les rendus, par défaut à 1 (rendu à chaque image) Le taux de transfert demandé sera preferredFramesPerSecond/frameInterval. */ @available (iOS, introduit: 7.0, obsolète: 10.0) open var frameInterval: Int' –

+0

Salutations pour l'édition. – crashoverride777

+1

@GeneCode Comme on peut le voir dans le commentaire d'Alessandro, cette propriété est disponible uniquement pour iOS 10 et supérieur, donc vous devrez utiliser quelque chose comme ceci: 'si #available (iOS 10.0, *) {...}' si votre cible de déploiement est <10. En outre, cela ne ralentira rien, vous passez simplement les images que vous voyez, par exemple. nœud qui se déplace du point A au point B en 5 secondes, et vous changez preferredFrameRate à 30fps, le nœud passera de A à B toujours dans 5 secondes, au lieu de 10. Le seul changement que vous verrez, c'est que certaines images sont ignorées . – Whirlwind