Io cocos2d 2.x如何吞下CCMenuItem的触感
我需要一个菜单项。该项作为子项添加到Io cocos2d 2.x如何吞下CCMenuItem的触感,io,cocos2d-iphone,cocos2d-x,Io,Cocos2d Iphone,Cocos2d X,我需要一个菜单项。该项作为子项添加到滑动菜单栅格上 (布兰登·雷诺兹(Brandon Reynolds)的教程网站现在不知何故不可用,但这里有一个类似的cocos2d-x版本) 多年来,我一直在使用老式手机。但在使用3D触摸屏的较新手机上,屏幕太“敏感”。当用户点击一个项目,移动一点,点击事件将被取消,屏幕开始滚动 如何使其不那么敏感,或者当用户touchStart项目时,我可以吞下触摸(这样项目范围内的TouchedMoved不会传播到网格) 我曾尝试在CCMenuItem中添加一个空的cct
滑动菜单栅格上
(布兰登·雷诺兹(Brandon Reynolds)的教程网站现在不知何故不可用,但这里有一个类似的cocos2d-x版本)
多年来,我一直在使用老式手机。但在使用3D触摸屏的较新手机上,屏幕太“敏感”。当用户点击一个项目,移动一点,点击事件将被取消,屏幕开始滚动
如何使其不那么敏感,或者当用户touchStart
项目时,我可以吞下触摸(这样项目范围内的TouchedMoved
不会传播到网格)
我曾尝试在CCMenuItem
中添加一个空的cctouchbeagin
函数,但没有成功
-(void)touchBegan:(UITouch *)touch withEvent:(UIEvent *)event
{
// empty implementation to swallow touch
}
可以在init函数中将侦听器添加到场景中,并将其燕子触摸属性设置为true
auto listener = EventListenerTouchOneByOne::create();
listener->setSwallowTouches(true);
listener->onTouchBegan = CC_CALLBACK_2(YourScene::onTouchBegan, this);
listener->onTouchEnded = CC_CALLBACK_2(YourScene::onTouchEnded, this);
_eventDispatcher->addEventListenerWithSceneGraphPriority(listener, this);
并在以下功能中处理触摸事件
bool YourScene::onTouchEnded(cocos2d::Touch *touch, cocos2d::Event *event)
{
//on touch ended code
return false;
}
bool YourScene::onTouchBegan(cocos2d::Touch *touch, cocos2d::Event *event)
{
//on touch began code
return true;
}
正常情况下,
CCMenuItem
如果使用正确,会吞下触摸
包含它的CCLayer
不应取消触摸。您可能直接将CCMenuItem
作为CCLayer
的子项。您能否尝试在两者之间添加CCMenu
?差不多
CCMenu *menu = [CCMenu menuWithItem: item];
menu.position = ccp(0, 0);
[self addChild: menu];