[英]How to register if finger touches (NOT pressing down as mouse button) the Apple trackpad (e.g. MacBook Pro) when using Cocos2d-X for Mac game?
Cocos2d X具有用戶輸入的EventListner。 您可以檢查用戶是否觸摸了屏幕,用戶是否正在觸摸屏幕並將其拖動以及用戶是否已結束觸摸(將手指從屏幕上移開)
簡單的方法是使用事件列表器。
在.H文件中定義
cocos2d::EventListenerTouchOneByOne *_touchListener;
bool onTouchBegan(cocos2d::Touch*, cocos2d::Event*);
void onTouchEnded(cocos2d::Touch*, cocos2d::Event*);
void onTouchMoved(cocos2d::Touch*, cocos2d::Event*);
現在,在您的.cpp文件中,使用Init方法之后
_touchListener = EventListenerTouchOneByOne::create();
_touchListener->onTouchBegan = CC_CALLBACK_2(GamePlayScene::onTouchBegan, this);
_touchListener->onTouchEnded = CC_CALLBACK_2(GamePlayScene::onTouchEnded, this);
_touchListener->onTouchMoved = CC_CALLBACK_2(GamePlayScene::onTouchMoved, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(_touchListener, this);
在代碼中定義這3個方法
// trigger when you push down
bool GamePlayScene::onTouchBegan(Touch* touch, Event* event)
{
return true;
}
// trigger when moving touch
void GamePlayScene::onTouchMoved(Touch* touch, Event* event)
{
}
// trigger when you let up
void GamePlayScene::onTouchEnded(Touch* touch, Event* event)
{
//Code to Get Touch Location where user have ended touch
Point location = touch->getLocationInView();
location = Director::getInstance()->convertToGL(location);
CCLOG("Position x -> %f , y -> %f",location.x,location.y);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.