[英]UISwipeGestureRecognizer with SpriteKit using Swift
我正在迅速創建一個游戲,其中涉及用字母制作單詞。 這些字母是單獨的SKSpriteNodes,位於作為SKSpriteNode的“架子”上。 為了刪除“架子”中的字母,我嘗試引入滑動。 不幸的是,我遇到了字母被刷卡的問題。 架子似乎正在吸收它,有時甚至是SKScene。 我已禁用了架子節點上的用戶交互。
這是我的設置:
swipeRecognizer = UISwipeGestureRecognizer(target: self, action: Selector("move:"))
swipeRecognizer.direction = UISwipeGestureRecognizerDirection.Up
self.view.addGestureRecognizer(swipeRecognizer)
我將swipeRecognizer添加到視圖中,然后在move方法中具有以下內容:
func move(swipe:UISwipeGestureRecognizer){
if(swipe.state == UIGestureRecognizerState.Ended && swipe.numberOfTouches() == 1){
var touchLocation = swipe.locationInView(swipe.view)
touchLocation = self.convertPointFromView(touchLocation)
var sprite = self.nodeAtPoint(touchLocation)
if sprite is Letter{
let letter = sprite as Letter
if(gameManager.letterOnShelf(letter)){
gameManager.letterFlicked(letter)
}
}
}
}
只是有時它會把精靈識別為字母,80%的時間精靈都是架子,而我無法弄清楚它是什么正確的工作方式.....
任何幫助是極大的贊賞。
歡呼!
我建議:
UILongPressGestureRecognizer
設置為0的minimumPressDuration
。 UIGestureRecognizerStateBegan
狀態時,查看觸摸結束的精靈是否為Letter
然后保存對該圖塊的引用。 UIGestureRecognizerStateEnded
狀態下,您應該能夠查看手勢結束的位置(或軌跡等),然后從較早位置移動存儲了引用的圖塊。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.