2014-04-04 36 views
0

我想在我的遊戲中檢測到長按觸摸,但問題是CCTargetedTouchDelegateCocos2d 3.0不存在以執行其delegates。我怎樣才能做到這一點?在Cocos2d 3.0中檢測長按

+0

@ LearnCocos2D,可能值得避免使用3.0標記,以阻止它的使用[這裏](http://meta.stackexchange.com/a/85744/171964) –

+0

我同意2.x標籤,但是不是3.0,這與2.x和更早的版本差別太大了。例如,大多數類名已經改變,即使是短的cocos2d 2.x代碼示例的回答很可能不適用於3.x,反之亦然。此外,這個問題顯然是要求關於這個特定的事情如何與V3.0協同工作的建議,所以即使按照Jeff的定義,這個標籤也是有效的。 ;) – LearnCocos2D

+0

@JamesWebster哦,我看到你從至少20+個問題中移除了v3標籤。你能否撤銷標籤清除?我特意將這個標籤添加到cocos2d問題中,因爲v3與早期版本非常不同。與cocos2d-3.x一樣。儘管您可以刪除2.x標籤,但不會丟失。 – LearnCocos2D

回答

2

CCTargetedTouchDelegate仍然存在,但它已被重命名爲 CCTouchOneByOneDelegate(這隻適用於2.1+)

看來觸摸控制已被移動到CCResponder。取而代之的代表,它似乎希望你能繼承它並覆蓋觸摸方法:

– touchBegan:withEvent: 
– touchMoved:withEvent: 
– touchEnded:withEvent: 
– touchCancelled:withEvent: 

然而,對於長按,我可能還在使用UILongPressGestureRecognizer

0

http://www.cocos2d-x.org/attachments/1782/XTLayer.zip下載該文件。它實現不同的手勢

void xtTapGesture(CCPoint position) {} 
virtual void xtDoubleTapGesture(CCPoint position) {} 
virtual void xtLongTapGesture(CCPoint position) {} 
virtual void xtSwipeGesture(XTTouchDirection direction, float distance, float speed) {} 

你在你的頭文件擴展cclayer。與XTLayer更換,更換與XT,而不是CC所有的觸摸事件。

你可以得到http://www.cocos2d-x.org/forums/6/topics/23011

希望這可以幫助更多的細節。