zoukankan      html  css  js  c++  java
  • cocos2d-x 触摸偏移

    转自:http://www.cnblogs.com/fjut/archive/2012/04/28/2475693.html

    //ccTouchBegan必须实现,否则会报错
    bool PicScan::ccTouchBegan(CCTouch* pTouch, CCEvent* event)
    {
        return true;
    }
     
    void PicScan::ccTouchMoved(CCTouch *touch, CCEvent *event)
    {
        //获得触摸点初始坐标
        CCPoint beginLoc = touch->locationInView(touch->view());
        beginLoc = CCDirector::sharedDirector()->convertToGL(beginLoc);
     
        //判断鼠标拖拉的区域是否在图片上
        if(CCRect::CCRectContainsPoint(lpSprite->boundingBox(), this->getParent()->convertTouchToNodeSpace(touch)) == true)
        {
            //固定图片在某个区域
            if(lpSprite->getPosition().y > s.height/2+50)
            {
                lpSprite->setPosition(ccp(lpSprite->getPosition().x, s.height/2+50));
            }
     
            if(lpSprite->getPosition().y < s.height/2-50)
            {
                lpSprite->setPosition(ccp(lpSprite->getPosition().x, s.height/2-50));
            }
            printf(" ccTouchMoved --------------
    ");
     
            //获得前一个触摸点坐标
            CCPoint endLoc = touch->previousLocationInView(touch->view());
            endLoc = CCDirector::sharedDirector()->convertToGL(endLoc);
     
            //计算偏移量
            CCPoint offSet = ccpSub(beginLoc, endLoc);
            Drag(offSet);
        }
     
    }
     
    void PicScan::Drag(CCPoint offSet)
    {
        //计算精灵坐标加上移动偏移量、并设置精灵位置
        CCPoint pos = ccpAdd(lpSprite->getPosition(), offSet);
        lpSprite->setPosition(pos);
        //.....<br>}
  • 相关阅读:
    CENTOS7下安装REDIS
    Linux 查看端口状态netstat
    Centos7启动zookeeper无法连接2181端口
    企业信息化之路---集成
    Linux启动/停止/重启Mysql数据库的方法
    详解线程池
    详细的RocketMQ说明
    2021面试题准备~~~
    Https原理详解
    es 常用DSL
  • 原文地址:https://www.cnblogs.com/sevenyuan/p/3191626.html
Copyright © 2011-2022 走看看