簡體   English   中英

如何檢測iPhone屏幕右側或左側是否有水龍頭?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM