重新写了地图双指缩放和单指拖动,适合所有机型屏幕配置

博客介绍了如何在Cocos2d-x中实现地图的双指缩放和单指拖动功能。通过计算双指间的距离比例来实现平滑缩放,并提供了详细的.cpp代码实现,注释清晰,适用于不同机型和屏幕配置。

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

前面已经写过一篇了,在这里就不具体解释细节了,大体原理都是一样的,双指缩放还是根据双指间占原距离的比例进行缩放。下面直接上代码了:

.h

#ifndef __MAPLAYER_H
#define __MAPLAYER_H
#include "cocos2d.h"
using namespace cocos2d;
class MapLayer:public Layer
{
public:
	Vec2 mpOrigin;
	virtual bool init();
	CREATE_FUNC(MapLayer);
private:

};
#endif // !__MAPLAYER_H

下面是   .cpp  注释写的很详细不明白的话可以细看

auto dis = Director::getInstance()->getEventDispatcher();
	auto listen = EventListenerTouchAllAtOnce::create();

	listen->onTouchesMoved = [=](const std::vector<Touch*>& touches, Event  *event){

		if(touches.size() > 1)        // 多点进行缩放
		{
			// 得到当前两触摸点
			auto point1 = touches[0]->getLocation();
			auto point2 = touches[1]->getLocation();
			// 计算两点之间得距离
			auto currDistance = point1.distance(point2);
			// 计算两触摸点上一时刻之间得距离
			auto prevDistance =
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值