2017-02-28 111 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