《初学cocos2d-x》- 简单的触摸事件实现(5)

coco2d-x触摸事件简单实现

我是在CCLayer里面实现触摸的

要声明几个方法


 //添加触屏委托,重新此方法
    virtual void onEnter();
    //触屏响应重写这三个方法
    virtual bool ccTouchBegan(CCTouch* touch, CCEvent* event);//按下
    virtual void ccTouchMoved(CCTouch* touch, CCEvent* event);//拖动
    virtual void ccTouchEnded(CCTouch* touch, CCEvent* event);//松开


然后实现

void GameLayer::onEnter(void){
    CCDirector* pDirector = CCDirector::sharedDirector();
    pDirector->getTouchDispatcher()->addTargetedDelegate(this, 0, false);
    cocos2d::CCLayer::onEnter();
    
}


bool GameLayer::ccTouchBegan(cocos2d::CCTouch *touch, cocos2d::CCEvent *event){
    
    CCPoint touchPoint=touch->getStartLocationInView();
    touchPoint = CCDirector::sharedDirector()->convertToGL( touchPoint );
    point_x=touchPoint.x;
    point_y=touchPoint.y;
    return  true;
}

void GameLayer::ccTouchMoved(cocos2d::CCTouch *touch, cocos2d::CCEvent *event){
 
    CCPoint touchPoint=touch->getLocationInView();
    touchPoint = CCDirector::sharedDirector()->convertToGL( touchPoint );
    point_x=touchPoint.x;
    point_y=touchPoint.y;    
}

void GameLayer::ccTouchEnded(cocos2d::CCTouch *touch, cocos2d::CCEvent *event){
    CCPoint touchPoint=touch->getLocationInView();
    touchPoint = CCDirector::sharedDirector()->convertToGL( touchPoint );
    point_x=touchPoint.x;
    point_y=touchPoint.y;

}


其中坐标需要转换一下

还有就是还一个getLocation



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值