我試圖搜索,但找不到所需的答案,任何人都可以告訴我什麼CCNode的CCTouch事件?正如我們爲CCLayer提供的CCTouchBegan,CCTouchMoved和CCTouchEndedCCNode CCTouch事件cocos2d-X
0
A
回答
-2
CCNode無法檢測到觸摸事件。觸摸事件只能由CCLayer檢測到,CCLayer從CCNode繼承,因此它具有CCNode的所有屬性和額外的功能來檢測觸摸事件。
你可以查看我的博客http://www.touchscreenstudio.com/,它是新開始的博客,我將通過帖子發佈所有cocos2d-x東西。
1
CCLayer是CCNode的子類,因此您可以使用所有相同的功能;
像這樣
HelloWorldScene.h
virtual bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
virtual void ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
virtual void ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
virtual void ccTouchCancelled(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
HelloWorldScene.cpp
bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){
printf("ccTouchBegan");
return true;
}
void HelloWorld::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){
printf("ccTouchMoved");
}
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){
printf("ccTouchEnded");
}
void HelloWorld::ccTouchCancelled(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent){
printf("ccTouchCancelled");
}
0
你必須繼承CCTouchDeligate類CCNode 看CCLayer :: registerWithTouchDispatcher()在CCLayer.cpp 功能,您可以添加你一起到CCNode的CCTouchDispatcher
CCTouchDispatcher* pDispatcher = CCDirector::sharedDirector()->getTouchDispatcher();
pDispatcher->addStandardDelegate(this, 0);
一旦你做到了這一點,你會獲得回調
void ccTouchesBegan(...), ccTouchesMoved(...), ccTouchesEnded(...)
1
CCNode的子類也可以接收觸摸事件。
說你的孩子的班級名稱是MyNode。 它具有implement--
CCTouchOneByOneDelegate方法來接收單點觸摸事件。
CCTouchAllAtOnceDelegate以接收多點觸摸事件
注意:您要添加CCNode的這個觸摸功能子層,而該登記層用觸摸調度程序應該不會吞下觸摸。
類接口:
#import <Foundation/Foundation.h>
#import "cocos2d.h"
#import "CCProtocols.h"
@interface MyNode : CCNode <CCTouchOneByOneDelegate,CCTouchDelegate>//Implementing only for single touch events
{
@private CGSize winSize;
}
+(MyNode*) addMyNodeToParentClass:(CCNode*)parent;
類實現:
如果MYNODE需要實現多點觸控事件實現CCTouchAllAtOnceDelegate的委託方法---
////////////////////////////////////////////////////////////////
-(void)ccTouchesBegan:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void)ccTouchesMoved:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void)ccTouchesEnded:(NSSet *)touches withEvent:(UIEvent *)event
{
}
-(void)ccTouchesCancelled:(NSSet *)touches withEvent:(UIEvent *)event
{
}
相關問題
- 1. Cocos2dx繼承CCNode類不圍繞其中心旋轉?
- 2. ccTouch事件在所有相同的精靈(精靈陣列)
- 3. 未創建CCTouch邊界框
- 4. 在ccTouchMoved上吞食ccTouch
- 5. cocos2dx未定義參考
- 6. CCNode與兒童Cocos2d-iphone v3觸摸事件檢測
- 7. 如何將觸控事件添加到CocosSharp中的CCNode?
- 8. CCNode遞歸getChildByTag
- 9. CCNode的位置
- 10. userData的CCNode的
- 11. 一舉數CCNode
- 12. 如何在Cocos2dx 3.1中添加觸摸事件偵聽器?
- 13. 如何停止cocos2d中模態圖層下的所有CCTouch?
- 14. Cocos2dx sublayers
- 15. Cocos2dx RegisterTouchDispatcher
- 16. cocos2dX setBlendFunc
- 17. Cocos2dx Revmob
- 18. 在cocos2dx
- 19. CCNode刪除不工作Cocos2d
- 20. Swift - 從現場獲取CCNode
- 21. Cocos2dx undefined參考
- 22. Android Cocos2dX JNI Bridge
- 23. Cocos2dx Android with AirPush
- 24. 使用Cocos2dx
- 25. Cocos2dx,box2d坦克
- 26. cocos2dx Sprite setPosition error
- 27. 設置cocos2dx
- 28. Cocos2dx CCTableView問題
- 29. ccTouchesMoved在cocos2dx
- 30. 動畫在Cocos2dx
可有人推薦我的任何人都知道cocos2d-x的網站博客? – Zubair