Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial

Le classi Coin e Block

Come implementare due oggetti interattivi nella realizzazione di un gioco mobile di tipo infinite runner per iOS tramite il linguaggio Swift e SpriteKit.
Come implementare due oggetti interattivi nella realizzazione di un gioco mobile di tipo infinite runner per iOS tramite il linguaggio Swift e SpriteKit.
Link copiato negli appunti

In questa lezione vedremo brevemente come implementare le classi che rappresentano i due principali elementi con cui Mouse interagirà durante il gioco: le monete ed i blocchi, rispettivamente rappresentati dalle classi Coin e Block.

La classe Coin

Questa classe rappresenta lo sprite della moneta che appare dal lato destro dello schermo e scorre verso sinistra, fino a uscire dallo schermo.

Dovremo far sì che, ogni volta che Mouse intercetterà una moneta, questa scompaia, e che il punteggio venga incrementato di un punto.

Creiamo il file Coin.swift e sovrascriviamolo con il seguente sorgente:

import SpriteKit
class Coin: SKSpriteNode {
    init() {
        let texture = SKTexture(imageNamed: "object_coin")
        super.init(texture: texture, color: .clear, size: texture.size())
        let physicsBody = SKPhysicsBody(texture: texture, size: texture.size())
        physicsBody.contactTestBitMask = 1
        self.physicsBody = physicsBody
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Si tratta di una classe piuttosto semplice. Tutta la logica è nell’inizializzatore, che ha il compito di caricare l’immagine della moneta, creare la texture ed applicarla allo sprite corrente.

Inoltre, viene anche definito un corpo fisico per questo sprite che useremo per rilevare la collisione.

La classe Block

Questa classe è simile alla precedente, ma rappresenta un blocco che Mouse dovrà evitare.

Creaiamo quindi il file Block.swift e sovrascriviamolo con il seguente codice:

import SpriteKit
class Block: SKSpriteNode {
    init() {
        let texture = SKTexture(imageNamed: "block_stone")
        super.init(texture: texture, color: .clear, size: texture.size())
        let physicsBody = SKPhysicsBody(texture: texture, size: texture.size())
        physicsBody.contactTestBitMask = 1
        self.physicsBody = physicsBody
    }
    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }
}

Ti consigliamo anche