Cocos2dx学习之-----关于拖动缓冲,点击屏幕获取方向

本文介绍了在Cocos2d-x中实现拖动缓冲的思路和方法,通过计算触摸开始和结束点来确定精灵的移动方向,并创建moveTo动作实现缓冲效果。同时,文章讨论了如何判断点击精灵周围点的方向,通过计算触摸点相对于精灵位置的角度,设置四个象限来触发不同方向的移动。
摘要由CSDN通过智能技术生成

写在前面::因为还不是很熟练,这些方法只是自己想到的而已,或许有更好的方法,现在只是写下来,备用。

1、关于拖动缓冲

我的思路是根据拖动方向,在触摸结束后,创建一个动作moveTo,目标点是精灵当前坐标加上根据拖动方向设置的一个点。因此这里涉及到点的计算;

首先,在ccTouchBegin里面获取开始触摸的点 beginPos,在ccTouchEnded里面获取结束的触摸点 endPos;

接着,根据这两个点就可以获得移动/拖动的方向,也可以说endPos相对于beginPos的坐标;

最后,获得了方向之后,在精灵被拖动后的位置的基础上加上这个方向,创建一个动作,让这个精灵运行这个动作就有简单的缓冲效果。直接上代码:

 

//touch开始,获得开始点的坐标
void TestLayer::ccTouchesBegan(CCSet *pTouches, CCEvent *pEvent){
    CCSetIterator ite=pTouches->begin();
    CCTouch* pTouch=(CCTouch*)(*ite);
    beginPos=pTouch->getLocation();
}


//touch结束,获得结束点的坐标
void TestLayer::ccTouchesEnded(CCSet *pTouches, CCEvent *pEvent){
    CCSetIterator ite=pTouches->begin();
    CCTouch* pTouch&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值