Cocos2d触摸:单点触摸

  
  
  1.  /* 单点触摸事件 */
  2.    
  3.    // 创建一个怪物
  4.    auto guaiwu = Sprite::create("res/tk.png");
  5.    guaiwu->setPosition(Point(200,200));
  6.    this->addChild(guaiwu);
  7.    
  8.    
  9.    auto listener = EventListenerTouchOneByOne::create();
  10.    
  11.    // 触摸键开始,当手指按下,怪物移动到点击的坐标位置
  12.    listener->onTouchBegan = [](Touch* touch, Event* event){
  13.  
  14.        
  15.        // 获取单击坐标,基于3d
  16.        // touch->getLocation();
  17.        
  18.        // 获取单击坐标,基于2d
  19.        // touch->getLocationInView();
  20.        
  21.        // 获取单击坐标,基于Cocos2d-x
  22.        //Director::getInstance()->convertToGL(<#const cocos2d::Vec2 &point#>)
  23.        
  24.        
  25.        
  26.        // 将2d坐标转换成cocos2d-x坐标
  27.        Point point = Director::getInstance()->convertToGL( touch->getLocationInView() );
  28.        
  29.        // 创建移动对象,并将移动位置设置为当前点击的坐标
  30.        auto moveTo  = MoveTo::create(0.3f, Point(point.x,point.y));
  31.      
  32.        // 取出注册监听时间时所绑定的node对象
  33.        auto target = static_cast<Sprite*>(event->getCurrentTarget());
  34.      
  35.        // 开始移动
  36.        target->runAction(moveTo);
  37.        
  38.        return true;
  39.    };
  40.    
  41.    
  42.    // 触摸滑动事件,当手指在屏幕上滑动
  43.    listener->onTouchMoved = [](Touch * touch, Event * event){
  44.        

单点触摸用的是 EventListenerTouchOneByOne 对象。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值