工具自适应屏幕问题!!

Cocos Studio 1.1版本支持屏幕自适应,很好的功能。但是在使用过程中,不尽人意。

UIPanel panel = dynamic_cast<UIPanel>(m_pWidget->getChildByName(“Panel_20”));
CCSize winsize = CCDirector:: sharedDirector()->getWinSize();
panel->setSize(winsize);
这样才能起到真正的自适应作用。

问题来了

如果我设计时的分辨率是1024*768,在此分辨率以上的屏幕,都能正常显示。
但是如果运行的屏幕小于设计时的屏幕,就会出现很多元素显示不下,重叠起来了。

有人会想到
CCEGLView::sharedOpenGLView()->setDesignResolutionSize(designSize.width, designSize.height, kResolutionShowAll);
这样,自适应。确实可以,因为缩放了,代价是上面工具设置的自适应就失效了,会有黑边框等现象。

我自作聪明的想了个办法

// float ScaleX = (float)winsize.width/1024;
// float ScaleY = (float)winsize.height/768;
// float Scale = MIN(ScaleX,ScaleY);
// CCArray *pChildrenArray = panel->getChildren();
// UIWidget *child = NULL;
// CCObject *pObject = NULL;
// CCARRAY_FOREACH(pChildrenArray,pObject){
// child = (UIWidget *)pObject;
// if(!child)
// break;
//
// child->setScale(Scale);
// }

虽然是都能显示了,但是工具的坐标是在json里写死的。所以缩放完以后,还是有些坐标不能对应上。特别是非常小的分辨率,非常明显。
不知道要怎么弄了,问问大家平时是怎么做的屏幕适配的。

你用坐标百分比适配就好了

能不能请版主给出一个关于屏幕适配的具体过程的例子,应该很多同学,包括我在内,都遇到类似的问题,求示例啊!谢谢

你没有用比例系统么?用比例的话就应该不会你说的重叠,坐标用百分比,大小也用百分比。
当然这个也是相对的东西,只能说在一定的范围效果可以。

http://www.cocoachina.com/bbs/read.php?tid=177531

先看下这个,可能还不能深入的帮助大家理解,后面还会针对这个继续出教程的,留意教程导航