2016-02-19 3 views
0

В моем игровом приложении есть случайный движущийся объект. Я хочу остановить это и напечатать несколько слов на экране, когда я касаюсь/поймаю это. Но я не знаю, что я могу сделать это на странице gamescene.swift. Что я должен писать в touchBegan? Вот мой код:Как я могу остановить перемещение объекта при касании объекта?

import SpriteKit 

let BallCategoryName = "ball" 

class GameScene: SKScene { 
    override func didMoveToView(view: SKView) { 
     super.didMoveToView(view) 

     let borderBody = SKPhysicsBody(edgeLoopFromRect: self.frame) 


     borderBody.friction = 0 


     self.physicsBody = borderBody 


     physicsWorld.gravity = CGVectorMake(15, 15) 

     let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode 
     ball.physicsBody!.applyImpulse(CGVectorMake(10, -10)) 

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

     let touch = touches.first as! UITouch 


     } 

} 

ответ

0

Прежде всего, необходимо поместить переменный мяч за пределами didMoveToView:

class GameScene: SKScene { 

    let ball = childNodeWithName(BallCategoryName) as! SKSpriteNode 

    override func didMoveToView(view: SKView) { 
     [...] 
    } 
} 

touchesBegan:

override func touchesBegan(touches: Set<UITouch>, withEvent event: UIEvent?) { 
    for touch:AnyObject in touches{ 
     let location = (touch as! UITouch).locationInNode(self) 
     let nodeTouched = nodeAtPoint(location) 

     //Detect if the ball is touched 
     if(nodeTouched == ball){ 
      //Do something 
     } 
    } 
} 
+0

Когда я ставлю переменный мяч за пределами didMoveToView, есть вопрос. Проблема говорит: «Невозможно преобразовать значение типа« String »в ожидаемый тип аргумента« SKNode ». «» – uzaylibeyb

Смежные вопросы