2014-09-25 41 views
0

我使用Xcode和Cocos2d版本3.0。用TouchMoved拖動精靈

我想拖動屏幕上的精靈。我已經成功地使用了以下代碼:

(void) touchMoved:(UITouch *)touch withEvent:(UIEvent *)event 

{ 

CGPoint touchLocation = [touch locationInNode:self]; 

sprite1.position=touchLocation; 

sprite2.position=touchLocation; 

sprite3.position=touchLocation; 

sprite4.position=touchLocation; 

} 

但是,有時候精靈會在一秒鐘後停止移動。這不是一個滯後,因爲他們從來沒有跟上我的運動。他們停止!如果我放開並再次開始移動我的觸摸,精靈再次開始移動正常/有時再次執行「凍結」。

這是內存問題嗎?

好吧,我確定它一定是記憶。我將這些代碼複製到了一個幾乎沒有任何精靈的簡單遊戲中,並且完美運行。

+0

也許觸摸離開[self boundingBox],在這種情況下,您將停止接收touchmoved事件。 – YvesLeBorg 2014-09-25 17:03:59

+0

感謝您的回覆伊夫。我認爲'自我'是指整個屏幕。當然,我的手指不會離開屏幕。也許我應該改變'自我'到別的東西? – SunnyDay1203 2014-09-25 17:15:24

+0

我不玩飛鏢:)如果你「知道」自己的邊框是全屏,那麼你是對的,我沒有進一步的解釋提供。運氣 – YvesLeBorg 2014-09-25 17:24:16

回答

0

好吧,我已經知道了!我在移動精靈時不得不啓用UISwipeGestureRecognizers。

遊戲註冊我的touchesMoved移動作爲滑動,並取消touchesMoved命令。