您的位置:首页 > 移动开发 > Cocos引擎

cocos2dx中用触摸机制实现在一个方向上拖动精灵。

2014-07-29 20:01 459 查看
bool
AwardDailyLayer::onTouchBegan(Touch* touch,Event* event)
{
   
pointBegin = touch->getLocation();

    

    Sprite * sprite = (Sprite*)m_RegisterBox;
   
Rect rect = sprite->boundingBox();

    
   
if(rect.containsPoint(pointBegin))
    {
       
return true;
    }

    return
false;
}

void
AwardDailyLayer::onTouchMoved(Touch* touch,Event* event)
{

   
Point point = touch->getLocation();
   
Point pointPre = touch->getPreviousLocation();

    
   
Point direction =
ccpSub(point,pointPre);

    Sprite * sprite = (Sprite*)m_RegisterBox;

    
   
Point spritePoint = sprite->getPosition();
   
Point spriteDirection =
ccpAdd(spritePoint,direction);

    CCLOG("spriteDirection.X is %f",spriteDirection.x);

    //限制在一定的范围之类
   
if(spriteDirection.x <= -610)
    {
        spriteDirection.x = -610;
    }
   
else if(spriteDirection.x >=
0)
    {
        spriteDirection.x =
0;
    }

    
    sprite->setPosition(Point(spriteDirection.x,sprite->getPosition().y));

}

void
AwardDailyLayer::onTouchEnded(Touch* touch,Event* event)
{

    

    
}
此段代码很清晰,就不做过多的解释了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: