• cocos2dx实现浏览图片的功能,拖动精灵实现精灵的左右移动,主要实现代码:


    //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 --------------\n");
    
    		//获得前一个触摸点坐标
    		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);
    	//.....
    }
  • 相关阅读:
    CSS笔记(十)position属性与定位
    CSS笔记(九)轮廓
    前端需要学习算法吗 算法面的意义 职业规划
    Web前端笔试整理10
    Web前端笔试整理9
    Web前端笔试整理8
    Web前端笔试整理7
    Web前端笔试整理6
    JS 图片延迟加载/懒加载
    JS 同步与异步编程
  • 原文地址:https://www.cnblogs.com/fjut/p/2475693.html
Copyright © 2020-2023  润新知