当前位置: > > > Swift - 获取屏幕点击坐标下所有对象(SpriteKit游戏开发)

Swift - 获取屏幕点击坐标下所有对象(SpriteKit游戏开发)

对于场景内对象元件的点击响应,我们可以在场景的touchesBegan()方法中内统一处理。
SKScene中touchesBegan()是响应屏幕点击的方法,在这里面我们可以先获取点击位置下所有的对象,然后筛选出需要的对象再调用该对象的方法。
import SpriteKit

class GameScene: SKScene {
    
    //当切换到这个场景视图后
    override func didMoveToView(view: SKView) {

    }
	
    //响应屏幕点击的方法
    override func touchesBegan(touches: NSSet, withEvent event: UIEvent) {        
        for touch:AnyObject in touches{
            //获取点击的坐标
            let location = touch.locationInNode(self)
            //该坐标下所有的对象
            var arrObject = self.nodesAtPoint(location)
            //找出为HanggePoint类型的对象
            for p in arrObject {
                let point = p as? HanggePoint
                //如果该对象不为nil,就调用该对象方法
                if point != nil {
                    point.onTouch()
                }
            }            
        }
    }
}
评论0