Cocos2d实现图标拖动和定位。

本文介绍了一种在游戏中实现技能图标拖放到技能栏的方法。通过为技能图标添加触摸功能,并在拖动过程中判断图标与技能栏的位置关系,实现技能图标的自动放置。如果图标与技能栏发生碰撞,则将图标放入技能栏;否则,还原图标位置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

这个在游戏里常见的就是技能图标的拖动和自动放入技能栏拉。


大概思路是这样,首先为被拖动的ICON添加触摸,然后 在拖动的过程中判断ICON和BOX的boundingBox,如果发生了碰撞,就会将该ICON放入到BOX中,并中断下面的逻辑,如果没有,就将图标位置,进行还原。


void dragPs::ontTouchEnded(Touch* touch, Event* event)
{
	Point touchPoint = touch->getLocation();
	MoveTo *move = NULL;
	Object *obj = NULL;
	for (size_t i = 0; i < m_box.size(); i++)
	{
		Sprite *box = (Sprite*)m_box.at(i);
		if (box->boundingBox().containsPoint(m_sp->getPosition()))
		{
			move = MoveTo::create(0.5f, box->getPosition());
			break;
		}
		else
		{
			move = MoveTo::create(0.5f, m_basePoint);
		}
	}
	m_sp->runAction(move);
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值