![](/img/trans.png)
[英]How do I make my app display another screen for landscape left and landscape right, iPhone X iOS
[英]How do I detect if there is a tap on right or left side of the iPhone screen?
我是iOS領域的新手,如果我遺漏了一些細節或不夠清楚,請原諒我。 我在底部的屏幕上放了一個球,想知道如何在用戶輕按iPhone左半部時使其向左移動,以及在用戶輕擊iPhone右半部時向右移動。
我要使工作的代碼是這樣的:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
for touch: AnyObject in touches {
let location = touch.locationOfTouch(<#touchIndex: Int#>, inView: <#UIView?#>)
}
ball!.physicsBody!.applyImpulse(CGVectorMake(25.0, 40.0))
}
我知道缺少代碼,但是我似乎無法理解如何處理它。 我這樣做對嗎? 非常感謝您的幫助。
所以我確實弄清楚了代碼。 這是我所做的:
override func touchesBegan(touches: Set<NSObject>, withEvent event: UIEvent) {
var touch = touches.first as! UITouch
var point = touch.locationInView(self.view)
if point.x < size.width / 2 {
ball!.physicsBody!.applyImpulse(CGVectorMake(-5.0, 10.0))
}
else {
ball!.physicsBody!.applyImpulse(CGVectorMake(5.0, 10.0))
}
}
現在,我遇到了另一個問題,它可能沒有我想解決的那么復雜。 因此,最初,當應用啟動時,球是靜止的,如果向左輕擊則為(-5,10)方向,向右輕擊則為(5,10)。 問題是,當我向右點擊時,當應用啟動時,它朝(5,10)方向運行,但朝左方向卻不相同。 如果我在應用程序啟動時先輕按右側,並且球開始朝(5,10)方向移動,我希望它向前移動時與開始時完全相同的方向向左移動,幾乎像之字形格式。 類似於/ V格式的東西,如果要以縱向視圖查看,則線條將是左右移動。 我希望這是有道理的:)
我會繼續嘗試弄清楚,希望您閱讀時能弄清楚。
我也很新,所以我不知道更高級的解決方案。
我要做的是在屏幕中央繪制/添加一條線。 例如,我將使用SKSpriteNode並將其放置在屏幕的中央。
var middleLine = SKSpriteNode(imageNamed: "CenterLine")
middleLine.alpha = 0 //you don't want the line to show
middleLine.position = CGPoint(x: CGRectGetMidX(self.frame), y: CGRectGetMidY(self.frame))
這會將線精靈放置在屏幕的中央。 然后,在touchesBegan內,我將做一個if語句,說明抽頭是否小於中心線的y坐標或更大。 如果小於,則分接頭將在左側,如果大於y坐標,則分接頭將在右側。
您需要使其返回用戶點擊的觸摸位置才能進行比較。
編輯:為了更容易,您甚至不必添加精靈,只需將觸摸x和y與CGRectGetMidX(self.frame)和CGRectGetMidY(self.frame)比較
我在判斷是否有物體離開屏幕時在游戲中使用了它。 我比較了它的x,y坐標是否大於框架內的坐標(或小於)。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.