commit
475e7e8570
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "bokeh.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 8.8 KiB |
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "spark.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 5.1 KiB |
After Width: | Height: | Size: 751 KiB |
Before Width: | Height: | Size: 1.1 MiB |
@ -0,0 +1,38 @@
|
|||||||
|
//
|
||||||
|
// Actions.swift
|
||||||
|
// ArkitDoushiQi
|
||||||
|
//
|
||||||
|
// Created by Johan LACHENAL on 12/06/2024.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import SpriteKit
|
||||||
|
|
||||||
|
func actionRemove(size : CGSize, node : SpriteMoople, scene : SKScene) {
|
||||||
|
|
||||||
|
// Action d'étincelle
|
||||||
|
let spark = SKAction.run {
|
||||||
|
createSpark(at: node.position,on: scene)
|
||||||
|
}
|
||||||
|
|
||||||
|
// Séquence des actions
|
||||||
|
let sequence = SKAction.sequence([spark, SKAction.removeFromParent()])
|
||||||
|
|
||||||
|
node.run(sequence)
|
||||||
|
}
|
||||||
|
|
||||||
|
func createSpark(at position: CGPoint,on scene: SKScene) {
|
||||||
|
// Créer un effet de particule pour l'étincelle
|
||||||
|
if let sparkEmitter = SKEmitterNode(fileNamed: "Spark.sks") {
|
||||||
|
sparkEmitter.position = position
|
||||||
|
scene.addChild(sparkEmitter)
|
||||||
|
|
||||||
|
// Retirer l'étincelle après une courte durée
|
||||||
|
let wait = SKAction.wait(forDuration: 1.0)
|
||||||
|
let remove = SKAction.removeFromParent()
|
||||||
|
let sequence = SKAction.sequence([wait, remove])
|
||||||
|
sparkEmitter.run(sequence)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -0,0 +1,102 @@
|
|||||||
|
//
|
||||||
|
// actionEndGame.swift
|
||||||
|
// ArkitDoushiQi
|
||||||
|
//
|
||||||
|
// Created by Johan LACHENAL on 12/06/2024.
|
||||||
|
//
|
||||||
|
|
||||||
|
import Foundation
|
||||||
|
import SpriteKit
|
||||||
|
|
||||||
|
func actionEndGame(scene: SKScene, message: String) {
|
||||||
|
let size = scene.size
|
||||||
|
var delay: TimeInterval = 0.0
|
||||||
|
for _ in 0..<5 {
|
||||||
|
// Créer un effet de particule pour le lancement
|
||||||
|
if let launchEmitter = SKEmitterNode(fileNamed: "FireworkLaunch.sks") {
|
||||||
|
// Position de départ en bas de la scène
|
||||||
|
let startX: CGFloat = 0.0
|
||||||
|
let startY: CGFloat = (-size.height/2)
|
||||||
|
|
||||||
|
launchEmitter.position = CGPoint(x: startX, y: startY)
|
||||||
|
scene.addChild(launchEmitter)
|
||||||
|
|
||||||
|
// Action de montée
|
||||||
|
let moveUp = SKAction.moveBy(x: CGFloat.random(in: -(size.width/3)...(size.width/3)), y: CGFloat.random(in: (size.height/2)...(size.height/1.25)), duration: 2.0)
|
||||||
|
|
||||||
|
// Action de grossissement et de rapetissement
|
||||||
|
let scaleUp = SKAction.scale(to: 1.5, duration: 1.0)
|
||||||
|
let scaleDown = SKAction.scale(to: 1.0, duration: 1.0)
|
||||||
|
let scaleSequence = SKAction.sequence([scaleUp, scaleDown])
|
||||||
|
|
||||||
|
let moveAndScale = SKAction.group([moveUp, scaleSequence])
|
||||||
|
|
||||||
|
// Action pour déclencher l'explosion
|
||||||
|
let explode = SKAction.run {
|
||||||
|
createExplosion(at: launchEmitter.position, scene: scene)
|
||||||
|
launchEmitter.removeFromParent()
|
||||||
|
}
|
||||||
|
let wait = SKAction.wait(forDuration: delay)
|
||||||
|
// Séquence de montée puis explosion
|
||||||
|
let sequence = SKAction.sequence([wait,moveAndScale, explode])
|
||||||
|
launchEmitter.run(sequence)
|
||||||
|
delay += CGFloat.random(in: 0.3...0.6)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
showWinningMessage(scene: scene, message: message)
|
||||||
|
}
|
||||||
|
|
||||||
|
func createExplosion(at position: CGPoint, scene: SKScene) {
|
||||||
|
// Créer un effet de particule pour l'explosion
|
||||||
|
if let explosionEmitter = SKEmitterNode(fileNamed: "Fireworks.sks") {
|
||||||
|
explosionEmitter.position = position
|
||||||
|
|
||||||
|
// Changer la couleur des particules
|
||||||
|
explosionEmitter.particleColor = randomColor()
|
||||||
|
explosionEmitter.particleColorBlendFactor = 1.0
|
||||||
|
|
||||||
|
scene.addChild(explosionEmitter)
|
||||||
|
|
||||||
|
// Retirer l'explosion après une courte durée
|
||||||
|
let wait = SKAction.wait(forDuration: 2.0)
|
||||||
|
let remove = SKAction.removeFromParent()
|
||||||
|
let sequence = SKAction.sequence([wait, remove])
|
||||||
|
explosionEmitter.run(sequence)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func showWinningMessage(scene: SKScene, message: String) {
|
||||||
|
let size = scene.size
|
||||||
|
let letters = Array(message)
|
||||||
|
let letterSpacing: CGFloat = 40.0
|
||||||
|
let totalWidth = CGFloat(letters.count) * letterSpacing
|
||||||
|
let startX = (0.0 - totalWidth) / 2
|
||||||
|
let startY = 0.0
|
||||||
|
|
||||||
|
for (index, letter) in letters.enumerated() {
|
||||||
|
let letterNode = SKLabelNode(text: String(letter))
|
||||||
|
letterNode.fontName = "Helvetica-Bold"
|
||||||
|
letterNode.fontSize = 50
|
||||||
|
letterNode.fontColor = .white
|
||||||
|
letterNode.position = CGPoint(x: startX + CGFloat(index) * letterSpacing, y: startY)
|
||||||
|
letterNode.alpha = 0
|
||||||
|
scene.addChild(letterNode)
|
||||||
|
|
||||||
|
let delay = SKAction.wait(forDuration: Double(index) * 0.1)
|
||||||
|
let fadeIn = SKAction.fadeIn(withDuration: 0.5)
|
||||||
|
let scaleUp = SKAction.scale(to: 1.5, duration: 0.25)
|
||||||
|
let scaleDown = SKAction.scale(to: 1.0, duration: 0.25)
|
||||||
|
let scaleSequence = SKAction.sequence([scaleUp, scaleDown])
|
||||||
|
let group = SKAction.group([fadeIn, scaleSequence])
|
||||||
|
|
||||||
|
let sequence = SKAction.sequence([delay, group])
|
||||||
|
letterNode.run(sequence)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func randomColor() -> UIColor {
|
||||||
|
let red = CGFloat.random(in: 0...1)
|
||||||
|
let green = CGFloat.random(in: 0...1)
|
||||||
|
let blue = CGFloat.random(in: 0...1)
|
||||||
|
return UIColor(red: red, green: green, blue: blue, alpha: 1.0)
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,6 @@
|
|||||||
|
{
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "bokeh.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 8.8 KiB |
@ -0,0 +1,21 @@
|
|||||||
|
{
|
||||||
|
"images" : [
|
||||||
|
{
|
||||||
|
"filename" : "spark.png",
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "1x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "2x"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"idiom" : "universal",
|
||||||
|
"scale" : "3x"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"info" : {
|
||||||
|
"author" : "xcode",
|
||||||
|
"version" : 1
|
||||||
|
}
|
||||||
|
}
|
After Width: | Height: | Size: 5.1 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in new issue