SpriteKit est le moteur de jeu 2D d'Apple, un moteur de rendu basé sur OpenGL. Il a été introduit avec iOS 7 et chaque nouvelle version a apporté d’importants ajouts au framework. Avec l'utilisation d'images-objets texturées, d'un moteur physique intégré et du très puissant SKAction
classe, vous pouvez très rapidement créer des jeux 2D fonctionnels.
SpriteKit intègre des éditeurs intégrés pour les scènes et les particules, un nœud de caméra depuis la sortie d'iOS9 et une prise en charge intégrée des jeux de tuiles depuis la sortie d'iOS 10. Grâce à ces nouveaux ajouts, SpriteKit devient rapidement un moteur pour la création de jeux en 2D..
Ci-dessous, une image de l'éditeur de scène intégré, avec une étiquette, un sprite coloré et un sprite texturé..
SpriteKit, comme la plupart des moteurs de jeu, utilise une boucle de rendu pour restituer et mettre à jour l'écran. La boucle de rendu passe par les étapes suivantes pour rendre chaque scène:
Chacune de ces étapes a une méthode correspondante à laquelle vous pouvez vous connecter pour appliquer une logique supplémentaire. Les méthodes de la boucle de rendu sont les suivantes:
mettre à jour
didEvaluateActions
didSimulatePhysics
didApplyConstraints
didFinishUpdate
Par exemple, si vous souhaitez déplacer manuellement des objets dans votre scène, le mettre à jour
méthode serait ce que vous utiliseriez. Ou, si certains objets étaient affectés par des actions ou par la physique, vous pouvez vous associer aux méthodes correspondantes pour vous assurer que ces actions et la simulation physique sont appliquées avant les modifications que vous apportez..
SKNode
le SKNode
class est la pierre angulaire de SpriteKit. Tous vos éléments à l'écran constitueront un SKNode
ou sous-classe de celui-ci.
le SKNode
La classe ne tire aucun atout visuel. Son rôle principal est de fournir un comportement de base que d'autres classes implémentent. Par exemple, le SKScene
la classe est le nœud racine dans un arbre de SKNode
instances et est utilisé pour contenir des sprites et autre contenu qui doit être rendu.
Le rendu et l'animation sont réalisés par un SKView
exemple. La vue est placée à l'intérieur d'une fenêtre et d'un SKScene
une instance s’y ajoute, et cette scène sera rendue et animée tant que la vue est active. Vous pouvez utiliser un seul SKView
par exemple dans votre fenêtre et basculer entre les différentes scènes à tout moment.
Le cadre définit un certain nombre d’autres SKNode
sous-classes. Le plus commun utilisé dans une scène est le SKSpriteNode
classe. le SKSpriteNode
classe peut être dessinée soit comme un rectangle avec une image mappée sur elle avec SKTexture
, pour créer un sprite ou un rectangle coloré non texturé. Vous utiliserez le plus souvent des sprites texturés, car c'est ainsi que vous allez donner vie aux illustrations de votre jeu..
Les autres types de nœuds importants incluent:
SKShapeNode
, qui restitue une forme définie par un chemin Core GraphicsSKVideo
, qui affiche le contenu vidéoSKLabel
, qui affiche une étiquette de texteNous allons examiner plusieurs de ces sous-classes de SKNode
plus tard dans cette série.
SKAction
le SKAction
la classe est une classe très puissante qui est utilisée pour donner vie à vos nœuds. SKAction
Vous pouvez modifier les propriétés de votre nœud au fil du temps, par exemple en les déplaçant, en les redimensionnant ou en les faisant pivoter. Vous pouvez enchaîner des actions dans une séquence, exécuter plusieurs actions en tant que groupe et les répéter en boucle. Vous pouvez aussi utiliser SKAction
exécuter un bloc de code personnalisé. Par exemple, supposons que vous souhaitiez imprimer les coordonnées d'un nœud après son déplacement. Vous pouvez exécuter un bloc de code personnalisé dans le SKAction
faire juste ça.
SpriteKit possède un moteur de physique intégré qui facilite le traitement de scénarios de physique complexes. Construit sur le cadre très populaire de Box2D, il vous permet de réagir aux collisions et aux événements de contact, d'appliquer des forces et de la gravité et de créer des simulations physiques très complexes à l'aide de joints, tels que des goupilles et des ressorts. Vous pouvez utiliser l'éditeur de scène pour ajouter visuellement de la physique aux nœuds ou ajouter de la physique par programme..
Dans SpriteKit, la coordonnée (0,0)
est situé en bas à gauche de l'écran au lieu de celui en haut à gauche, auquel vous serez peut-être habitué si vous avez utilisé Flash, Corona, HTML5 Canvas et de nombreux autres frameworks de jeu. L'origine en bas à gauche est une convention OpenGL, que SpriteKit suit car SpriteKit utilise OpenGL sous le capot..
SpriteKit possède un moteur de particules très puissant qui peut être utilisé pour simuler des systèmes de particules tels que le feu et la fumée. Il existe également un éditeur de particules intégré dans lequel vous pouvez disposer visuellement des systèmes de particules. Si vous préférez vous en tenir à du code, vous pouvez programmer ces systèmes à partir de rien en utilisant du code..
Ci-dessous, une image de l'éditeur de particules avec un système de particules semblable à un feu..
SpriteKit propose plusieurs classes dédiées à la création de dispositions en mosaïque. L'utilisation de tilemaps offre une meilleure utilisation de la mémoire que l'utilisation d'une très grande image unique. Les carreaux peuvent être disposés en grilles rectangulaires, hexagonales ou isométriques.
Ci-dessous, une image d'un nœud de la carte de tuiles utilisant une grille rectangulaire.
Voici quelques-uns des points forts du moteur SpriteKit. Je suggérerais de lire l'aperçu de SpriteKit pour en savoir plus sur ce qu'il a à offrir. Pour en savoir plus sur la façon de démarrer avec SpriteKit, vous devriez également consulter le post de Davis Allie ici sur Envato Tuts+.
Découvrez également nos cours SpriteKit! Cela vous guidera à travers toutes les étapes de la construction de votre premier jeu SpriteKit pour iOS, même si vous n'avez jamais codé avec SpriteKit auparavant..