【Cocos2d-x 3.0学习笔记】触摸

前端之家收集整理的这篇文章主要介绍了【Cocos2d-x 3.0学习笔记】触摸前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

http://blog.csdn.net/lnb333666/article/details/16857637

  1. //触屏事件
  2. @H_403_11@ virtualboolccTouchBegan(Touch*touch,Event*event); @H_403_23@ virtualvoidccTouchMoved(Touch*touch,Event*event);
  3. virtualvoidccTouchEnded(Touch*touch,226); color:inherit; line-height:18px">
  4. //生命周期
  5. @H_403_23@ virtualvoidonEnter();
  6. virtualvoidonExit();
  7. voidTouchdemo::onEnter()
  8. @H_403_23@ {
  9. //开启触屏监听
  10. @H_403_23@ Director::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this,false);
  11. Layer::onEnter();//一定不要忘了
  12. @H_403_23@ }
  13. @H_403_23@ voidTouchdemo::onExit()
  14. {
  15. //关闭触屏监听
  16. Director::sharedDirector()->getTouchDispatcher()->removeDelegate(this);
  17. @H_403_23@ Layer::onExit();//一定不要忘了
  18. }
  19. @H_403_23@ ===========================================================================================
  20. 添加委托
  21. @H_403_23@ addStandardDelegate();
  22. 开启多点触控(不写没有效果哦)
  23. @H_403_23@ setTouchEnabled();
  24. 触屏事件:
  25. 1.注册多点触控
  26. @H_403_23@ virtualvoidregisterWithTouchDispatcher(void);
  27. 2.当用户第一次触碰手机屏幕时响应的回调函数
  28. virtualvoidccTouchesBegan(Set*touchs,85); line-height:18px"> 3.当用户手指在手机屏幕上滑动时响应的回调函数
  29. @H_403_23@ virtualvoidccTouchesMoved(Set*touchs,226); color:inherit; line-height:18px"> 4.当用户手指在离开手机屏幕上时响应的回调函数
  30. virtualvoidccTouchesEnded(Set*touchs,0); background-color:inherit">//写上多点触控的回调函数
  31. virtualvoidccTouchesBegan(Set*set,Event*e);
  32. @H_403_23@ virtualvoidccTouchesMoved(Set*set,Event*e);
  33. virtualvoidccTouchesEnded(Set*set,0); background-color:inherit">//写上生命周期函数
  34. 注册监听
  35. @H_403_23@ voidTouchsdemo::registerWithTouchDispatcher(void)
  36. //注册监听
  37. Director::sharedDirector()->getTouchDispatcher()->addStandardDelegate(this,0);
  38. voidTouchsdemo::ccTouchesBegan(Set*set,Event*e)
  39. SetIteratoriter=set->begin();
  40. //这里的iter相当于系统分配的数字,
  41. //set->begin()获取第一个数字
  42. //set->end()就是最后一位
  43. for(;iter!=set->end();iter++){
  44. //这里呢,就是单点处理了,可以理解为把多点拆成单点来做
  45. CTouch*mytouch=(Touch*)(*iter);
  46. @H_403_23@ Pointcp=mytouch->getLocation();
  47. //这里我们对5个触摸块进行处理
  48. @H_403_23@ if(mytouch->getID()==0){
  49. Sprite*sp=(Sprite*)this->getChildByTag(1);
  50. @H_403_23@ sp->setPosition(cp);
  51. if(mytouch->getID()==1){
  52. Sprite*sp=(Sprite*)this->getChildByTag(2);
  53. @H_403_23@ if(mytouch->getID()==2){
  54. Sprite*sp=(Sprite*)this->getChildByTag(3);
  55. @H_403_23@ if(mytouch->getID()==3){
  56. Sprite*sp=(CCSprite*)this->getChildByTag(4);
  57. @H_403_23@ if(mytouch->getID()==4){
  58. Sprite*sp=(Sprite*)this->getChildByTag(5);
  59. voidTouchsdemo::ccTouchesEnded(Set*set,CCEvent*e)
  60. CCSetIteratoriter=set->begin();
  61. @H_403_23@ inta[6]={0,0};//创建一个数组
  62. Touch*mytouch=(Touch*)(*iter);
  63. Pointcp=mytouch->getLocation();
  64. //这里我们对5个触摸块进行处理
  65. if(mytouch->getID()==0){
  66. @H_403_23@ a[1]=1;
  67. a[2]=1;
  68. if(mytouch->getID()==2){
  69. @H_403_23@ a[3]=1;
  70. a[4]=1;
  71. if(mytouch->getID()==4){
  72. @H_403_23@ a[5]=1;
  73. for(inti=1;i<=5;i++){<>
  74. @H_403_23@ if(a[i]==1){
  75. Sprite*sp=(Sprite*)this->getChildByTag(i);
  76. @H_403_23@ sp->runAction(MoveTo::create(5,ccp(30,30)));
  77. //实现生命周期函数
  78. @H_403_23@ voidTouchsdemo::onEnter()
  79. Layer::onEnter();
  80. voidTouchsdemo::onExit()
  81. @H_403_23@ Layer::onExit();
  82. }

猜你在找的Cocos2d-x相关文章