开发日志系列(十二)
环境: cocos2d-x 2.2.3 , win7
碰撞相信大家都不陌生了,无论在手游的游戏按钮对触摸事件的响应 还是页游时代游戏按钮对鼠标点击事件的侦听,都需要使用碰撞来判断.例如以下一个按钮,规格为:200X200,第二张图绿色部分原本为透明
按钮的原图
绿色为透明部分
坐标矩阵碰撞
类似这样一个按钮 如果是单纯使用坐标碰撞的话,只要坐标落在按钮图片内部,就会判断为点中,在cocos2d-x中坐标碰撞的一般做法是:
//pt 为鼠标 或者 触摸 击落时候的屏幕坐标 //cc 为按钮对象 继承CCNode CCPoint pos = cc->convertToNodeSpace(pt); CCRect rect = cc->boundingBox(); rect = CCRectApplyAffineTransform(rect, nodeToParentTransform()); if (rect.containsPoint( pos )) { printf("用户点击了cc"); }