哎,记忆力下降的厉害,前一段时间本来想记录下来的,但又忘记了,本来要记录下来两个问题的解决,结果今天只记得这么一个问题,另外一个问题却断然无记忆
前段时间一直在模拟器上开发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为从地图中获取的坐标值