大佬教程收集整理的这篇文章主要介绍了cocos2d-x游戏实例(12)-实时拖动主角移动,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
小满(bill man)个人原创,欢迎转载,转载请注明地址,小满(bill man)的专栏地址http://blog.csdn.net/bill_man
上一篇讲解了记录拖动的路径并使主角按照此路径移动的cocos2d-x实现。这篇讲解另一个操作方式,这种方式在纵版射击游戏中有不少的实现,就是触屏拖动主角实时移动,也就是说没有上一节那个记录路径然后主角再移动的过程,主角是随你的手指移动的,之后的例子里我也将完整的实现一个简单的纵版射击游戏,就采用这种操作方式。
和上一篇一样,我们也要实现如下三个函数:
virtualvoidccTouchesBegan(CCSet*pTouches,CCEvent*pEvent);
virtualvoidccTouchesMoved(CCSet*pTouches,85); font-family:'microsoft yahei'; font-size:15px; line-height:35px"> virtualvoidccTouchesEnded(CCSet*pTouches,85); font-family:'microsoft yahei'; font-size:15px; line-height:35px"> 这个实现起来比上一篇的问题要简单,但是我们要实现一个小算法,就是,我们检测我们的触电在主角的矩形范围内的一个点,那我们的触点不一定在主角的锚点上,这样我们不能直接用触点直接设置主角的位置,我们需要处理一下,见下图
如图p点是我们的触点,a点是我们的锚点,我们只要满足一下公式:
Px-Ax=dx,Py-Ay=dy就可以了。
首先来看ccTouchesBegan的实现:
首先还是获得触点,然后我们就要获得主角位置,和上次的程序一样,主角还是绑定在地图上的,所以我们要获得主角的绝对坐标,然后判断触点是否在主角这个矩形范围内,如果在范围内,我们把索引值设置为-5,-5表示起始点有效,-1表示起始点无效,然后我们就通过刚才那个公式获得dx和dy(也就是xdelta,ydelta)。
再来看ccTouchesMoved的实现:
再来看ccTouchesEnded的实现:
如有错误之处,希望大家多多指正
下一篇继续游戏实例
以上是大佬教程为你收集整理的cocos2d-x游戏实例(12)-实时拖动主角移动全部内容,希望文章能够帮你解决cocos2d-x游戏实例(12)-实时拖动主角移动所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。