2017-01-28 1 views
1

In meiner Sprite-kit Spielszene versuche ich eine pinkelnde/pulsierende Aktion hinzuzufügen. Ich weiß nicht, wie ich den Game View Controller aufrufen soll. In einer einfachen UIViewController kann ich einfach starten:So rufen Sie eine Aktion aus der Spielszene auf

viewController.addPulse  

jedoch in einer Sprite-kit Spielszene nicht sicher, ob ich bin, wie man es nennen. Hier Unten ist der Code, den ich versucht, und es ist mir ein Fehler in der Leitung von:

let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(GameViewController.addPulse))  



if defaults1.integer(forKey: "Sphere") == 13 { 
     Ghost = SKSpriteNode(imageNamed: "moon") 
     Ghost.size = CGSize(width: 50, height: 50) 
     Ghost.position = CGPoint(x: self.frame.width/2 - Ghost.frame.width, y: self.frame.height/2) 
     Ghost.physicsBody = SKPhysicsBody(circleOfRadius: Ghost.frame.height/1.4) 
     Ghost.physicsBody?.categoryBitMask = PhysicsCatagory.Ghost 
     Ghost.physicsBody?.collisionBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall 
     Ghost.physicsBody?.contactTestBitMask = PhysicsCatagory.Ground | PhysicsCatagory.Wall | PhysicsCatagory.Score 
     Ghost.physicsBody?.affectedByGravity = false 
     Ghost.physicsBody?.isDynamic = true 
     Ghost.zPosition = 2 
     self.addChild(Ghost) 
     Ghost.isUserInteractionEnabled = true 
     let tapGestureRecognizer = UITapGestureRecognizer(target: self, action: #selector(GameViewController.addPulse)) 
     tapGestureRecognizer.numberOfTapsRequired = 1 
     Ghost.addGestureRecognizer(tapGestureRecognizer) 
+0

Passt AddPulse nur den Knoten nach oben und unten wiederholt? Wenn ja, können Sie SKActions verwenden – Nik

Antwort

4

Ich fürchte, Sie UIKit Elemente mit Sprite-kit Elemente mischen, können Sie den Behälter zu verwirren, die mit der Szene Gastgeber Szene selbst.

Die SKView ist eine UIView Unterklasse. Es umschließt Sprite-kit Inhalt in einer Ansicht, die wie jede andere UIView verwendet werden kann, in der Tat hat es normalerweise einen zugeordneten View-Controller. Die Szene ist eine SKScene Klasse. Es bietet Callbacks (Physik, SKNode Unterklasse Elemente, Aktionen, Update ..) benötigt, um ein Spiel zu implementieren.

Normalerweise bleibt die Ansicht unverändert, während Sie Szenen zum Austauschen von Spielinhalt präsentieren.

Also ich habe ernsthafte Zweifel darüber, was Sie mit Ihrem Code erreichen möchten, wenn Sie eine Aktion machen möchten, die einen Puls zeigt, sollten Sie diese Methode in Ihrer Szene erstellen und aufrufen, nicht in der UIViewController, die Ihr hostet Spiel ..

Verwandte Themen