您好,登錄后才能下訂單哦!
在cocos2d-x3.2中關于觸摸事件的處理
第一種用法 ,首先我們需要在.H文件里面定義觸摸的回調,這里我們就先拿到單點觸摸的3個狀態把
1:bool onTouchBegan(Touch * touch,Event *unused_event);//開始狀態
2: void onTouchMoved(Touch *touch,Event *unused_event);//移動狀態
3:void onTouchEnded(Touch*touch,Event *unused_event);//結束狀態
然后我們去.CPP里面的init()里面定義我們的觸摸監聽
auto listener=EventlistenerTouchOneByone::create();
listener->onTouchBegan=CC_CALLBACK_2(gamescene::onTouchBegan,this);
listener->onTouchMoved=CC_CALLBACK_2(gamescene::onTouchMoved,this);
listener->onTouchEnded=CC_CALLBACK_2(gamescene::onTouchEnded,this);
Director::getInstance()->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);
然后我們實現在.h里面定義的3個回調方法
void gamescene::onTouchBegan(Touch * touch,Event *unused_event)
{
log("實現觸摸開始")
}
void gamescene::onTouchMoved(Touch*touch,Event*unused_event)
{
log("實現觸摸移動要處理的事件")
}
void gamescene::onTouchEnded(Touch *touch,Event*unused_event)
{
log("實現觸摸結束后的操作")
}
這是第一種辦法,然后我們來說第2種比較簡單的辦法
我們直接在 。cpp里面直接寫觸摸事件寫在init()方法里面
auto listener=EventListenerTouchOneByone::create();
listener->onTouchBegan=[&](Touch *touch,Event*event)->bool{
log("這里就可以寫你需要觸摸時的事件了")
}
listener->onTouchEnded=[&](Touch *touch,Event*event)
{
log("觸摸移動")
}
listener->onTouchEnded=[&](Touch *touch,Event*event){
log("觸摸結束")
}
//加載觸摸
this->getEventDispatcher()->addEventListenerWithSceneGraphPriority(listener,this);
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。