cocos2d x开启高清模式时地图坐标错误问题解决

哎,记忆力下降的厉害,前一段时间本来想记录下来的,但又忘记了,本来要记录下来两个问题的解决,结果今天只记得这么一个问题,另外一个问题却断然无记忆惊恐


前段时间一直在模拟器上开发COCOS2DX游戏,后来移植到真机ITOUCH上,当开启高清模式时,地图坐标完全错乱,点击需要的地方无反应

通过分析发现,地图只是图片被压缩(姑且用这个词语)显示在960*640的屏幕上,其看来的大小就是480*320,而之前用工具用的960*640的地图的坐标位置是当前大小的2倍,换句话说

就是地图坐标没有随着图片的压缩而同步改变

我发现了这个东西CCDirector::sharedDirector()->getContentScaleFactor(),这个是获取当前伸缩比,当无高清模式时,其值为1,当有高清模式时,其值为2

好吧,问题得到解决

在所有调用地图坐标的地方我都除以伸缩比,这样无论是普清还是高清,都能应对自如

比如:

float scale = CCDirector::sharedDirector()->getContentScaleFactor();

XXX->setPosition(x/scale,y/scale);


注:XXX是任意对象名称,x,y为从地图中获取的坐标值


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值