2017-01-07 3 views
0

Bisher hat meine App einen großen Ball in der Mitte und einen kleinen Ball in der Mitte auch. Ich würde gerne irgendwo auf dem Bildschirm tippen und der kleine Ball schießt in diese Richtung. Ich habe Leute über das Erstellen von Vektoren sagen hören, aber ich kann nicht scheinen, dass diese in swift 3 arbeiten. Ich bin ein Anfänger so leid über eine dumme Frage!Bullet Firing In Richtung des Hahns

Hier ist mein Code:

var mainBall = SKSpriteNode(imageNamed: "Ball") 

override func didMove(to view: SKView) { 


    mainBall.size = CGSize(width: 300, height: 300) 
    mainBall.position = CGPoint(x: frame.width/2, y: frame.height/2) 

    self.addChild(mainBall) 

} 

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 

    if let touch = touches.first { 
     let position = touch.location(in: self) 
     print(position.x) 
     print(position.y) 
    } 

    for touch in (touches) { 
     touch.location(in: self) 

     let smallBall = SKSpriteNode(imageNamed: "Ball") 
     smallBall.position = mainBall.position 
     smallBall.size = CGSize(width: 100, height: 100) 
     smallBall.physicsBody = SKPhysicsBody(circleOfRadius: smallBall.size.width/2) 
     smallBall.physicsBody?.affectedByGravity = false 

     self.addChild(smallBall) 

    } 
} 
+0

Sie könnten wollen [haben Sie einen Blick in ein Tutorial] (https: // www. raywendlich.com/145318/spritekit-swift-3-tutorial-beginners). – shallowThought

Antwort

0

Sie können Aktionen nutzen SKSprideNode s zu animieren:

override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) { 
    guard let touch = touches.first else { 
     return   
    } 

    let newPosition = touch.location(in: self) 
    ... 
    //assuming self.smallBall exists and is visible already: 
    [self.smallBall runAction:[SKAction moveTo:newPosition duration:1.0]]; 
} 
+0

Ich habe deinen Code hinzugefügt und er wollte nur 2, aber jetzt bekomme ich diesen Fehler ... [link] (http://prntscr.com/dspjq5). Es tut uns leid! Ich habe keine Ahnung was ich tue! –

+0

Entschuldigung. Ich wechselte versehentlich zur Obj-C-Syntax. Aktualisierte Antwort – shallowThought