2016-11-14 4 views
-5

Ich erstelle meine zweite App, aber das erste iOS-Spiel. Ich bin mit Codierung und Levels fertig.Korrekte Art, Schaltflächen in SpriteKit zu verwenden

Aber am Ende habe ich Schwierigkeiten, die Tasten im Sprite-Kit zu verwenden, damit ich Freigabe erstellen kann, wie, oder Einstellungsmenü darin implementieren, die eine Art, die ich verwende, beweist unten.

Button = UIButton(type: UIButtonType.custom) 
    Button.frame = CGRect(x: 0, y: 0, width: 50, height: 50) 
    Button.center = CGPoint(x: (self.view?.frame.width)! - 30, y: 60) 
    Button.setImage(UIImage(named: "Pause"), for: UIControlState.normal) 
    Button.addTarget(self, action: #selector(PauseGame), for: UIControlEvents.touchUpInside) 
    self.view?.addSubview(Button) 

Nun ist das Problem mit diesem Knopf ist, dass es immer aktiviert und angezeigt wird, egal in welchem ​​Bildschirm oder Szene, die ich bin in.

Gibt es von mit den Tasten eine andere Möglichkeit ist?

Oder vielleicht muss ich Storyboard in SpriteKit Projekt für alle Einstellungen, Menüscreen und zusätzliche Tasten verwenden (z. B. Like, teilen)?

Antwort

1

Sie versuchen, UIKit in SpriteKit zu verwenden. Aus diesem Grund wird die Schaltfläche nicht entfernt, wenn die Szene geändert wird. Die Linie:

self.view?.addSubview(Button) 

Fügt die Schaltfläche, um die Ansicht, nicht Szene. Dies ist wichtig, da der Ansichts-Controller die Szenen in der Ansicht anzeigt, sodass Sie in der Regel eine Ansicht haben, in der Szenen angezeigt werden. Wenn Sie die Schaltfläche der Ansicht hinzufügen, wird sie tatsächlich an die Ansicht angehängt, nicht an die Szene. Um eine Schaltfläche Knoten zu einer Szene hinzufügen, versuchen Sie dies:

let button = SKSpriteNode(imageNamed: "Paused") 
button.size = CGSize(width: 50, height: 50) 
button.position = CGPoint(x: (self.view?.frame.width)! - 30, y: 60) 
// Whatever else you want to do when setting up the button node 
addChild(button) 

Die wichtige Linie ist hier:

addChild(button) 

Weil es die SKSpriteNode zum Szene hinzufügt. Dies bedeutet, dass beim Übergang von Szene zu Szene die Taste nicht länger in einer festen Position bleibt und mit der Szene übergeht.

Verwandte Themen