ContentScaleFactor内容缩放因子 个人感觉用途不大,麻烦进来看看

ContentScaleFactor内容缩放因子 影响图片在设计分辨率中的显示问题,如果不设置就是不缩放,原图大小;
这样有个好处就是,图片都是自己做的,自己能决定做多大,不需要缩放来显示;
另外即使变了设备(设备分辨率发生了变化)也有setDesignResolutionSize这个来控制 在设备上的显示问题
不知道我这种想法对吗?请教大侠们了,谢谢啦

我们游戏出了高清版本,所有资源的大小都是正常大小的2倍,比如背景图正常大小设计是1136768,那高清版本大小就是22721536,这个时候就需要setContentScaleFactor(2) 了

1楼终结此贴

其实setDesignResolutionSize就能满足所有需要吧。
比如你做一套i6+两倍大的图用setDesignResolutionSize(12422,22082),再根据需要选择是用高度适配策略还是宽度适配策略,即便是用再大的图也依然是不用缩放吧,而且同样高清。

恩,说的都有理

不用内容缩放因子ContentScaleFactor,把DesignResolutionSize做大,然后使用不同的图片(把图片也做成相应的大小放于不同目录)
不过这样 内存 会 消耗多些了

这也是一种策略的的问题吧
欢迎各位大侠继续 讨论啊:11::11::11::11::11:

为什么,我不喜欢ContentScaleFactor呢?是因为设置了这个之后,所有的图片的都要缩放
我的想法对吗?:11::11::11::11:

及时我要设置ContentScaleFactor,我都把它设置成整数倍,比如,2,3,4倍等,这样有个好处 就是方便美工做图

cocos new创建的项目代码里有这么一段:

 frameSize = glview->getFrameSize();
    if (frameSize.height > mediumResolutionSize.height) // mediumResolutionSize = cocos2d::Size(1024, 768);
    {    
        director->setContentScaleFactor(MIN(largeResolutionSize.height/designResolutionSize.height, largeResolutionSize.width/designResolutionSize.width));
    }
    else if (frameSize.height > smallResolutionSize.height) // smallResolutionSize = cocos2d::Size(480, 320);
    {   
        director->setContentScaleFactor(MIN(mediumResolutionSize.height/designResolutionSize.height, mediumResolutionSize.width/designResolutionSize.width));
    }
    else
    {    
        director->setContentScaleFactor(MIN(smallResolutionSize.height/designResolutionSize.height, smallResolutionSize.width/designResolutionSize.width));
    }


```

这种缩放因子计算出 可能有小数,  这样显示的精灵 因为缩放问题,可能就会导致显示不是自己所想要的,比如说显示不完全等
引擎作者,这么设置ContentScaleFactor是出于什么考虑呢?
在实际手游开发中,又是如何设置ContentScaleFactor的呢?

请各位大侠赐教啊,不胜感激。。。。。。。。。。。。。。。

其实也不用做多套大小不一的图片,直接一套高清图就可以了。

— Begin quote from ____

引用第7楼一笑倾宇宙于2015-09-04 15:59发表的 回 4楼(savem) 的帖子 :
其实也不用做多套大小不一的图片,直接一套高清图就可以了。 http://www.cocoachina.com/bbs/job.php?action=topost&tid=322221&pid=1383239

— End quote

这样会占多内存吧,还有 如果运行在pad上,一套图应该不够
个人草见啊,抛砖引玉

:11::11::11::11:

算了我来回答一下吧,为何要用ContentScaleFactor
DesignResolutionSize是设计分辨率,做逻辑时用到的所有屏幕相关数据都是基于它的,比如你写了条语句moveBy,移动50个像素,不管你设备什么分辨率,屏幕上看到的移动距离是一致的,这50像素是设计分辨率下的像素,和设备无关,cocos用设计分辨率来解决这种逻辑上的一致性。
ContentScaleFactor的作用是为了在设计分辨率不变的情况下给不同设备提供不同清晰度的图片。比如你设备分辨率是1136640,那你放一张1136640的图片到屏幕上就是刚好充满屏幕,你设备分辨率是2278*1280的话,这图片一样是充满屏幕。为什么会这样,因为cocos屏蔽了设备分辨率,用DesignResolutionSize来确保了屏幕显示的一致性,那这时候这张图片就会变的模糊。为了不让它变的模糊就需要用一张2倍大小的图片替换之。但在设计分辨率不变的情况下,这张2倍的图片会显得非常大。为了让它能和之前的图片显示一致,就需要告诉cocos你现在用的是2倍图片,ContentScaleFactor就是起这个作用,告诉cocos当前素材和设计分辨率之间的比值,让cocos显示图片时做缩放处理。而这种缩放处理对于逻辑来说是透明的,这样就使得cocos在设计分辨率不变的情况下能够支持各种不同清晰度的素材

可能是给cocosstudio用的,cocosstudio1.6版本导出时,选择“导出使用大图”,此时可以设置“数据缩放”
程序里设置再个ContentScaleFactor,就能根据需求,很方便的调整图片清晰度

我没用过,我猜的:877: