COCOS2DX中關於labelTTF控件獲取不到觸摸點的解決辦法

本意是想在點擊文本標籤之後執行一個場景的切換或者說是一個動作,但是發現,在監聽器的閉包函數中,只用傳進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;
	};


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章