2017-02-28 17 views
0

SKSceneでユーザーが画面の左または右のいずれかにタッチしているかどうかを検出しようとしています。画面の半分がタッチされていることを認識しないスウィフトタッチ認識

私は次のコードをまとめましたが、どこに触れても「左」を出力するだけです。

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



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

    if(location.x < self.frame.size.width/2){ 
     print("Left") 
    } 

    else if(location.x > self.frame.size.width/2){ 
     print("Right") 
    } 
} 
} 

答えて

1

あなたはSpriteKitベースのプロジェクトのデフォルトのシーンを使用している場合は、アンカーポイントは、中央にシーンの起源を置く(0.5、0.5)です。あなたは、タッチ位置をテストしたい場合は、左または右にされて、あなたは(これは関係なく、アンカーポイントの動作します)にチェック条件を変更する必要があります。で

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

    if(location.x < frame.midX){ 
     print("Left") 
    } 

    else if(location.x > frame.midX){ 
     print("Right") 
    } 
} 

詳細:SKScene

+0

ありがとうございました!!これで私の髪を引っ張ってきた。 –

+0

frame.midXを使用すると、アンカーポイントに関係なく、これを少しきれいにすることができます。 "location.x crashoverride777

関連する問題