2015-06-11 8 views
5
import SpriteKit 

class GameScene: SKScene { 
    var movingGround: JTMovingGround! 
    var hero: JTHero 

    override func didMoveToView(view: SKView) { 
     backgroundColor = UIColor(red: 159.0/255.0, green: 281.0/255.0, blue: 244.0/255.0, alpha: 1.0) 
     movingGround = JTMovingGround(size: CGSizeMake(view.frame.width, 20)) 
     movingGround.position = CGPointMake(0, view.frame.size.height/2) 
     addChild(movingGround) 

     hero = JTHero() 
     hero.position = CGPointMake(70, movingGround.position.y + movingGround.frame.size.height/2 + hero.frame.height/2) 
     addChild(hero) 
    } 

    override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) { 
     movingGround.start() 
    } 

    override func update(currentTime: CFTimeInterval) { 
     /* Called before each frame is rendered */ 
    } 
} 

qualcuno potrebbe dirmi cosa è andato storto ?? grazieContinua a dirmi "Class 'GameScene' non ha inizializzatori"

+0

È necessario accettare una risposta se ha risolto il problema – Fogmeister

risposta

8

È perché si dispone di una proprietà non facoltativa che non ha un valore predefinito.

var hero: JTHero 

È non opzionale ma non ha alcun valore.

Quindi, è possibile rendere facoltativa facendo

var hero: JTHero? 

In alternativa è possibile creare un metodo init e impostare il valore in là.

O creare un valore predefinito ...

var hero = JTHero() 

Ci sono molti modi per fare il secondo.

1

classi e strutture mosto impostate tutte le loro proprietà memorizzate su un valore iniziale appropriata dal momento un'istanza di tale classe o viene creato struttura. Le proprietà memorizzate non possono essere lasciate in uno stato indeterminato.

È possibile impostare un valore iniziale per una proprietà memorizzata all'interno di un inizializzatore o assegnando un valore di proprietà predefinito come parte della definizione della proprietà.

Estratto da: Apple Inc. La Swift Programming Language (Swift 2 Prerelease) iBook. https://itun.es/us/k5SW7.l

La classe GameScene non imposta alcun inizializzatori per le sue proprietà memorizzate e non definisce un metodo init(), e questo sta causando l'errore che stai ricevendo.

+0

Grazie mille. È ora riparato –

Problemi correlati