溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Cocos2d-x 單點觸摸

發(fā)布時間:2020-09-22 14:55:47 來源:網(wǎng)絡(luò) 閱讀:1085 作者:杜甲同學(xué) 欄目:游戲開發(fā)

Cocos2d-x 單點觸摸





首先,要在.h文件中注冊觸摸事件的回調(diào)方法:


bool ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
void ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);
void ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent);


.cpp文件實現(xiàn)如下:

bool HelloWorld::init()
{
    //////////////////////////////
    // 1. super init first
    if ( !CCLayer::init() )
    {
        return false;
    }
    //在實現(xiàn)單點觸摸之前,需要為我們的觸摸事件進(jìn)行注冊:
    //這里的三個參數(shù),第一個:是哪個對象進(jìn)行觸摸注冊,第二個:觸摸優(yōu)先級   第三個是否吞噬掉本次觸摸事件
    CCDirector::sharedDirector()->getTouchDispatcher()->addTargetedDelegate(this, 0, true);
                            
    //所謂觸摸事件的優(yōu)先級,就是如果我們在一個場景中注冊了多個觸摸事件,誰會先接受到這次觸摸事件,優(yōu)先級數(shù)值越小,優(yōu)先級越高,也就會優(yōu)先得到這次觸摸事件,它可以選擇是否處理這次觸摸,以及是否將這次觸摸傳遞下去.值得一提的是,CCMenu的優(yōu)先級是-128。
    //所謂吞噬事件,就是說如果我們選擇true,并且處理這個事件,那么觸摸事件就不會發(fā)送給其他代理。
       return true;
}



//開始觸摸的回調(diào)方法
bool HelloWorld::ccTouchBegan(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
    //獲取openGL坐標(biāo)
    CCPoint openglPoint = pTouch->getLocation();
    CCLog("openGL = %f,%f",openglPoint.x,openglPoint.y);
    //獲取屏幕坐標(biāo),原點在左上角
    CCPoint screenPoint = pTouch->getLocationInView();
    CCLog("屏幕坐標(biāo) = %f,%f",screenPoint.x,screenPoint.y);
                        
    return true;
}



//觸摸移動時的回調(diào)方法
void HelloWorld::ccTouchMoved(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
    //獲得前一個點的坐標(biāo)
    CCPoint startPoint = pTouch->getPreviousLocation();
                    
                    
    //獲得當(dāng)前點的坐標(biāo)  是按屏幕的坐標(biāo)獲取的就是說以左上角為原點。
    CCPoint endPoint = pTouch->getLocation();
                    
                  
    CCLog("startPointX = %f,startPointY = %f",startPoint.x,startPoint.y);
    CCLog("endPointX = %f,endPointY = %f",endPoint.x,endPoint.y);
}



//觸摸結(jié)束時的回調(diào)方法
void HelloWorld::ccTouchEnded(cocos2d::CCTouch *pTouch, cocos2d::CCEvent *pEvent)
{
              
}


代碼下載 http://pan.baidu.com/share/link?shareid=2820307714&uk=3189484501


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI