本意是想在點擊文本標籤之後執行一個場景的切換或者說是一個動作,但是發現,在監聽器的閉包函數中,只用傳進label變量
auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [label](Touch *t, Event *e)
{
if(label->getBoundingBox().containsPoint((t->getLocation())))
{
label->runAction(MoveTo::create(1,Point(100,100)));
}
return false;
};
這樣來寫是不能夠獲取到判斷你的觸摸點是不是在空間範圍內的。
第一種解決方式,把空間或者TextFiledTTF,這樣就不會出現這個問題,好像也是3.1的一個bug。
第二種解決方式,要進行一下座標轉換,具體原理我還不清楚,但是暫時知道怎麼處理。
auto listener = EventListenerTouchOneByOne::create();
listener->onTouchBegan = [label](Touch *t, Event *e)
{
if(label->getBoundingBox().containsPoint(e->getCurrentTarget()->convertToNodeSpace(t->getLocation())))
{
label->runAction(MoveTo::create(1,Point(100,100)));
}
return false;
};