Que fait spritekit ?
Créez des jeux et animations 2D avec SpriteKit. À utiliser pour créer des scènes de jeu avec SKScene et SKView, ajouter des sprites avec SKSpriteNode, animer avec des séquences SKAction, simuler la physique avec SKPhysicsBody et la détection de contacts, créer des effets de particules avec SKEmitterNode, construire des cartes de tuiles, utiliser SKCameraNode, ou intégrer des scènes SpriteKit dans SwiftUI avec SpriteView.
Fonctionnalités principales
- SKScene : Création et gestion des scènes de jeu
- SKView : Affichage et rendu des scènes
- SKSpriteNode : Ajout de sprites (images, textures, formes)
- SKAction : Animations et séquences d'actions (déplacement, rotation, mise à l'échelle, etc.)
- SKPhysicsBody : Simulation physique (gravité, collisions, contacts)
- SKEmitterNode : Effets de particules (feu, fumée, étincelles)
- SKTileMapNode : Cartes de tuiles pour les niveaux
- SKCameraNode : Suivi de caméra et défilement de niveau
- SpriteView : Intégration de SpriteKit dans SwiftUI
Exemple de code
import SpriteKit
class GameScene: SKScene {
override func didMove(to view: SKView) {
// Créer un sprite
let player = SKSpriteNode(imageNamed: "player")
player.position = CGPoint(x: size.width/2, y: size.height/2)
addChild(player)
// Animer avec SKAction
let moveAction = SKAction.moveBy(x: 100, y: 0, duration: 2.0)
let rotateAction = SKAction.rotate(byAngle: .pi, duration: 1.0)
let sequence = SKAction.sequence([moveAction, rotateAction])
player.run(SKAction.repeatForever(sequence))
}
}
// Intégration dans SwiftUI
struct GameView: View {
var scene: SKScene {
let scene = GameScene()
scene.size = CGSize(width: 300, height: 400)
scene.scaleMode = .fill
return scene
}
var body: some View {
SpriteView(scene: scene)
.frame(width: 300, height: 400)
}
}
Ressources
- Documentation officielle : SpriteKit | Apple Developer
- SKAction Reference
- SKPhysicsBody Reference
- SpriteView pour SwiftUI