Ich bin mit einem xcode-Projekt rum und versuche, einen roten SKShapeNode-Ball zu bewegen, wenn ich ihn berühre. Mein eigener Quellcode in der Berührung begann Klasse tut nicht den Trick. Was ist der Fehler mit meinem Code und was muss ich tun, um es zu beheben?Swift Sprite Kit Beginne Touch-Funktion
import SpriteKit
class GameScene: SKScene {
//Rectangle Skeletions
var leftWallRect = CGRect(x: 0, y: 0, width: 40, height: 1000)
var ball = SKShapeNode(circleOfRadius: 25);
override func didMoveToView(view: SKView) {
// Declare the Sprites in your scene
var ball = SKShapeNode(circleOfRadius: 25);
let leftWall = SKShapeNode(rect: leftWallRect);
let rightWall = SKShapeNode(rect: leftWallRect);
let pin = SKSpriteNode(imageNamed: "pin");
// Ball Properties
ball.strokeColor = UIColor.blackColor()
ball.fillColor = UIColor.redColor()
ball.position = CGPointMake(self.frame.width/2 , self.frame.height/4 - 100)
self.addChild(ball)
// Left Wall Properties
leftWall.fillColor = UIColor.purpleColor()
leftWall.strokeColor = UIColor.blackColor()
leftWall.position = CGPointMake(self.frame.size.width/3 - 45, self.frame.size.height/2 - 400)
self.addChild(leftWall)
//Right Wall Properties
rightWall.fillColor = UIColor.purpleColor()
rightWall.strokeColor = UIColor.blackColor()
rightWall.position = CGPointMake(self.frame.size.width/2 + 175, self.frame.size.height/2 - 400)
self.addChild(rightWall)
}
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
/* Called when a touch begins */
let touch = touches.first as! UITouch
let touchLocation = touch.locationInNode(self)
if touchLocation == ball.position{
ball.position = touchLocation
println("Touches");
}
}
override func update(currentTime: CFTimeInterval) {
/* Called before each frame is rendered */
}
}
Ist '-touchesBegan: withevent:' gerufen werden? (Richten Sie einen Haltepunkt ein, um zu sehen, ob es ist) –
Ich überprüfte und es wird nicht aufgerufen. Wie repariere ich es? @NicolasMiari –
Normalerweise liegt das daran, dass die Eigenschaft 'userInteractionEnabled' (geerbt von' UIResponder') auf 'false' gesetzt ist. Der Standardwert ist jedoch 'true' (zumindest für' UIResponder'; nicht sicher für 'SKScene'). –