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

 

//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);
	//.....
}
posted @ 2012-04-28 20:07  fjut  Views(3086)  Comments(0Edit  收藏  举报
------------------->>>>      听首歌放松下 O(∩_∩)O~~