Cocos2d-x 响应按下事件

今天在Cocos2d-x中的HelloWorld例程中想试试一圈一圈的水波效果,打算实现鼠标按下后在相应的位置出现水波效果,于是我给HelloWorld添加了一个构造函数:

HelloWorld::HelloWorld()
{
	setTouchEnabled(true);
}

并在构造函数里启用了鼠标按下的 事件,然后重现实现了ccTouchesEnded函数:

void HelloWorld::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent)
{
	CCSetIterator it = pTouches->begin();
	CCTouch* touch = (CCTouch*)(*it);

	CCPoint location = touch->getLocation();

	CCNode* s = getChildByTag(1);
	CCActionInterval* effect =CCRipple3D::create(ccp(location.x, location.y), 128, 12, 120, ccg(128,128), 5);
	s->runAction(effect);
}

但是运行的时候无论我怎么点程序始终没有响应我的单击事件,调试发现isTouchEnabled()返回的是false,也就是我没有启用按下事件。百思不得其解。最后看了Cocos2d-x的其它例子,发现它们都是在CCLayer::init()之后再调用
setTouchEnabled(true)函数的,于是我在CC_BREAK_IF(! CCLayer::init());后面添加setTouchEnabled(true)函数,之后运行一切正常。所以以后还是得多多参考Cocos2d-x自带的例子。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值