• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

[Swift] SpriteKit: Neustart des Games funktioniert nicht

Chrischu91

Golden Delicious
Registriert
23.11.13
Beiträge
8
Hallo zusammen

Ich kämpfe mich mit einem Problem herum, mit dem ich nicht einmal mit dem Game, welches schon existiert, wenn man ein neues Projekt macht. Ich initialisiere den Wert "Test" mit 0 unten frage ich mit der if abfrage ob der Wert bereits 10 erreicht hat und dann wenn er es erreicht hat, dann lade ich die class GameScene neu. Nur da passiert es: Das Game wird schwarz und man sieht nichts mehr, was mache ich falsch? Besten Dank.

PS: Ziel ist eigentlich, dass sich das Game neu Initialisiert und alles wieder so aussieht wie am anfang.



Code:
import SpriteKit

class GameScene: SKScene {
   
    var Test = 0
   
    override func didMoveToView(view: SKView) {
        /* Setup your scene here */
        let myLabel = SKLabelNode(fontNamed:"Chalkduster")
        myLabel.text = "Hello, World!"
        myLabel.fontSize = 45
        myLabel.position = CGPoint(x:CGRectGetMidX(self.frame), y:CGRectGetMidY(self.frame))
       
        self.addChild(myLabel)
    }
   
    override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) {
       /* Called when a touch begins */
       
        if(Test<10){
            for touch in touches {
                let location = touch.locationInNode(self)
           
                let sprite = SKSpriteNode(imageNamed:"Spaceship")
           
                sprite.xScale = 0.5
                sprite.yScale = 0.5
                sprite.position = location
           
                let action = SKAction.rotateByAngle(CGFloat(M_PI), duration:1)
           
                sprite.runAction(SKAction.repeatActionForever(action))
           
                self.addChild(sprite)
                Test++
            }
        }
        else{
           self.view?.presentScene(GameScene())
        }
       
       
    }
   
    override func update(currentTime: CFTimeInterval) {
        /* Called before each frame is rendered */
    }
}
 

ecco55

Tokyo Rose
Registriert
26.10.14
Beiträge
71
Versuchs mal anstatt mit
Code:
self.view?.presentScene()
mit
Code:
self.removeAllChildren()
Denke das sollte aufs schnelle die Scene neustarten.
 

Chrischu91

Golden Delicious
Registriert
23.11.13
Beiträge
8
perfekt hat in dem Fall hier geklappt.

Ich habe ein Programm, in dem ich in ein anderes SpriteKit Scene (GameOverScene.swift mit der Class GameOverScene) wechsle mit dem
Code:
self.view?.presentScene(GameOverScene())
das funktioniert soweit so gut, wenn ich nun aber wieder zurück zum Game wechseln will
Code:
self.view?.presentScene(GameScene())
kommt egal was ich mache ein Blackscreen. Es macht einen Restart das merke ich, denn sobald wieder eine Kollision stattfindet, wechselt er wieder aber ich sehe wie gesagt nichts auf dem Bildschirm...

Oder geht dies so nicht?