SpriteKit, disponible sur iOS, tvOS et OS X, est un framework qui permet aux développeurs de créer des jeux 2D de haute qualité sans se soucier de la complexité des API graphiques, telles que OpenGL et Metal. En plus de gérer tous les graphiques pour les développeurs, SpriteKit offre également une vaste gamme de fonctionnalités supplémentaires, notamment la simulation physique, la lecture audio / vidéo et la sauvegarde / chargement de jeux..
Tout au long de cette série, vous apprenez tout sur SpriteKit et acquérez des compétences que vous pouvez ensuite appliquer à tout type de jeu en 2D créé avec cet excellent framework. Dans cette série, nous créons un jeu entièrement fonctionnel dans lequel le joueur contrôle une voiture qui doit éviter les obstacles qui se croisent.
Cette série nécessite que vous exécutiez Xcode 7.3 ou une version ultérieure, ce qui inclut la prise en charge de Swift 2.2 ainsi que les SDK pour iOS 9.3, tvOS 9.2 et OS X 10.11.5. Vous devez également télécharger le projet de démarrage depuis GitHub, qui contient les ressources visuelles à utiliser dans le jeu et quelques lignes de code pour nous aider à démarrer..
Les graphiques utilisés pour le jeu dans cette série sont disponibles sur GraphicRiver. GraphicRiver est une excellente source pour trouver des illustrations et des graphiques pour vos jeux..
Le premier cours que vous devez connaître lorsque vous travaillez avec SpriteKit est le SKScene
classe. Pour tout jeu 2D construit avec SpriteKit, vous divisez le contenu du jeu en plusieurs scènes, chacune avec leur propre SKScene
sous-classe.
Nous examinerons la fonctionnalité et le fonctionnement interne de la SKScene
classe plus tard dans cette série, ce que vous devez savoir pour le moment, c’est qu’une scène correspond à ce à quoi vous ajoutez le contenu du jeu et qu’elle joue le rôle de Noeud principal. Cela nous amène aux nœuds.
le SKNode
classe, qui SKScene
est une sous-classe de, est utilisé pour représenter tout type d’élément dans votre scène. Bien qu'il existe de nombreux types de nœuds disponibles dans SpriteKit, couramment appelés sprites, ils partagent les mêmes propriétés de clé, les plus importantes étant:
position
(CGPoint
)xScale
(CGFloat
): représentant l'échelle horizontale d'un nœudyScale
(CGFloat
): semblable à xScale
mais il agit à la place dans le sens verticalalpha
(CGFloat
): représentant la transparence du nœudcaché
(Bool
): valeur déterminant si le nœud doit être visible ou nonzRotation
(CGFloat
): représentant l'angle, en radians, de la rotation du nœudzPosition
(CGFloat
): utilisé pour déterminer quels nœuds doivent être affichés au-dessus des autres nœuds de la scèneComme vous pouvez le constater, les propriétés ci-dessus vous permettent de positionner, faire pivoter et modifier avec précision l'apparence de base de chaque nœud d'une scène..
Tout comme vous pouvez ajouter des sous-vues à tout UIView
objet dans UIKit, dans SpriteKit, vous pouvez ajouter un nombre quelconque de enfant nœuds à un nœud existant. Ceci est fait en utilisant le addChild (_ :)
méthode sur tout SKNode
objet.
Aussi semblable à UIView
Dans les objets, les propriétés de position et d’échelle de tout nœud enfant sont relatives au nœud parent auquel il est ajouté. Voici comment un SKScene
objet, étant une sous-classe de SKNode
, peut servir de nœud racine de votre scène. Pour tous les nœuds que vous souhaitez dans votre scène, vous devez les ajouter en tant qu’enfants de la scène elle-même à l’aide de la commande addChild (_ :)
méthode.
le SKNode
classe en elle-même n’est pas capable de produire un contenu visuel. Pour ce faire, vous devez utiliser l’une des nombreuses sous-classes disponibles dans SpriteKit. Certains importants SKNode
les sous-classes à connaître sont:
SKSpriteNode
: prend une image et crée un sprite texturé dans votre scèneSKCameraNode
: contrôle la vue depuis votre scèneSKLabelNode
: rend une chaîne de texteSKEmitterNode
: utilisé conjointement avec un système de particules pour rendre les effets de particulesSKLightNode
: crée des effets d'ombre et d'éclairage dans votre scèneTout au long de cette série, nous utilisons ces types de nœuds ainsi que d’autres types moins courants..
Pour afficher votre contenu SpriteKit dans une application en cours d'utilisation, vous devez utiliser le SKView
classe. Ceci est une sous-classe de UIView
(ou NSView
sur OS X), que vous pouvez facilement ajouter à n’importe quelle partie de votre application. Pour présenter une scène SpriteKit, vous devez appeler soit le presentScene (_ :)
ou presentScene (_: transition :)
méthode sur un SKView
exemple. La deuxième méthode est utilisée lorsque vous souhaitez une animation personnalisée ou une transition dans votre nouvelle scène..
En plus du rendu de votre contenu SpriteKit, le SKView
La classe offre également des fonctionnalités supplémentaires très utiles. Cela comprend un Bool
propriété appelée en pause
, qui peut facilement être utilisé pour mettre en pause ou reprendre une scène.
Plusieurs propriétés sont également utiles lors du débogage de votre jeu et peuvent afficher des informations, telles que le nombre d'images par seconde (FPS) actuel, le nombre de nœuds et les champs physiques de votre scène. Si vous souhaitez consulter toutes les propriétés disponibles, consultez la SKView
référence de classe.
Maintenant que nous avons examiné les classes de base utilisées dans les jeux SpriteKit, il est temps de créer notre toute première scène. Bien que les scènes puissent être créées entièrement par programme, Xcode fournit un excellent outil de modification de scène, qui vous permet de glisser-déposer facilement des nœuds dans votre scène tout en modifiant leur position, leur apparence et d’autres propriétés..
Ouvrez le projet de démarrage et créez un nouveau fichier en appuyant sur Commande + N ou en sélectionnant Nouveau> Fichier… de Xcode Fichier menu. Choisir la iOS> Ressources> Scène SpriteKit type de fichier et cliquez sur Suivant.
Nommez le fichier MainScene et enregistrez-le. Vous devriez maintenant voir votre nouveau fichier de scène dans Navigateur de projet.
Sélectionner MainScene.sks pour ouvrir l'éditeur de scène de Xcode. Pour le moment, votre scène est vide et sur fond gris. Il n'y a pas encore de nœuds dedans. Avant d'ajouter des sprites à votre scène, nous devons d'abord changer sa taille..
dans le Inspecteur d'attributs à droite, changez la taille de votre scène pour avoir une largeur (W) de 320 points et une hauteur (H) de 480 points.
Cette taille de scène correspond à la plus petite taille d'écran que nous ciblons (écran de 3,5 pouces sur l'iPhone 4s), de sorte que nous puissions dimensionner correctement nos nœuds. Nous modifierons la taille de la scène pour l'adapter à la taille d'écran actuelle du périphérique dans un didacticiel ultérieur..
Pour ajouter des noeuds à votre scène, ouvrez le Bibliothèque d'objets sur la droite. Vous devrez peut-être cliquer sur l’icône surlignée en bleu si le Bibliothèque d'objets n'est pas visible.
Du Bibliothèque d'objets, faites glisser un Sprite de couleur au milieu de ta scène.
Ouvrez le Inspecteur d'attributs à droite et changez le Texture, Position, et Taille attributs aux valeurs suivantes:
Votre scène devrait maintenant avoir une voiture au milieu, comme indiqué ci-dessous.
Notez que, contrairement au système de coordonnées UIKit, dans SpriteKit, le position
d'un nœud se rapporte toujours à son centre depuis le point d'origine du coin inférieur gauche de la scène (0, 0). C’est pourquoi il faut régler la position de la voiture sur (160, 120) place le centre de la voiture à 160 points de la gauche et à 120 points du haut.
Avec votre scène terminée pour l'instant, ouvrez ViewController.swift et ajoutez une instruction d'importation pour le framework SpriteKit en haut. Cela nous permet d’utiliser les classes et les API SpriteKit dans ViewController.swift.
importer UIKit importer SpriteKit
Ensuite, mettez à jour la mise en œuvre de la viewDidLoad ()
méthode du ViewController
classe comme suit:
remplacer func viewDidLoad () super.viewDidLoad () let skView = SKView (cadre: self.view.frame) let scene = SKScene (fichierNommé: "MainScene") skView.presentScene (scène) view.addSubview (skView)
Avec ce code, nous créons d’abord un SKView
instance, qui est la même taille que la vue du contrôleur de vue. Ensuite, nous chargeons notre scène à partir du fichier que nous avons créé en utilisant le SKScene (fileNamed :)
initialiseur. Nous faisons le SKView
par exemple présenter cette scène puis l'ajouter en tant que sous-vue à la vue principale.
Sélectionnez le iphone 4s simulateur (afin que notre scène soit correctement dimensionnée pour l'écran) et construisez et exécutez votre application. Vous devriez voir un écran semblable au suivant:
Dans ce premier didacticiel de SpriteKit From Scratch, vous avez appris les bases des vues, des scènes et des nœuds dans SpriteKit. Vous avez créé une scène de base avec une seule image-objet à l'aide de l'éditeur de scènes intégré à Xcode, ce qui facilite la création de scènes par rapport à une programmation complète..
Dans le prochain didacticiel, nous ajouterons davantage de fonctionnalités à notre jeu en utilisant des actions SpriteKit pour déplacer la voiture dans la scène. Vous serez également initié à la simulation physique dans SpriteKit en détectant le moment où la voiture entre en collision avec un autre nœud..
Comme toujours, laissez vos commentaires dans la section commentaires ci-dessous.