cocos2d x开启高清模式时地图坐标错误问题解决
2013-05-31 16:12
302 查看
哎,记忆力下降的厉害,前一段时间本来想记录下来的,但又忘记了,本来要记录下来两个问题的解决,结果今天只记得这么一个问题,另外一个问题却断然无记忆
前段时间一直在模拟器上开发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为从地图中获取的坐标值
前段时间一直在模拟器上开发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为从地图中获取的坐标值
相关文章推荐
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏 推荐
- 解决编译内核模块helloworld.c:1: 错误:代码模式‘kernel’在 32 位模式下不受支持问题,未编译对64位的支持
- 解决Unicode模式读写文件错误问题
- 解决ThinkPHP中开启调试模式无法加载模块的问题。
- 解决键盘模式(布局)的错误导致的部分键位失灵或异常(姑且这样描述问题吧)
- 解决mysql开启GTID主从同步出现1236错误问题 推荐
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- Cocos2D瓦块地图高清屏(retina)显示比例问题的解决
- Cocos2D瓦块地图高清屏(retina)显示比例问题的解决
- 解决Windows vista 开启ACHI模式的问题
- Cocos2D瓦块地图高清屏(retina)显示比例问题的解决
- 解决ThinkPHP中开启调试模式无法加载模块的问题。
- 解决Android使用百度定位坐标显示到地图上偏移过大问题
- 解决mysql开启GTID主从同步出现1236错误问题
- GPS经纬度及谷歌地图坐标转换为百度地图坐标,解决地图显示经纬度的偏移问题
- 解决mysql开启GTID主从同步出现1236错误问题
- 解决ThinkPHP中开启调试模式无法加载模块的问题。
- 黑莓9000(DM6.0+ROM5.0)解决媒体文件管理问题――工程模式开启大容量存储模式
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏
- 【iOS-Cocos2d游戏开发之八】开启高清(960*640)模式问题与解答、图片适配以及设置iphone横竖屏