cocos2dx 自学知识点之四 不同的分辨率适配问题

来源:互联网 发布:js json对象转url参数 编辑:程序博客网 时间:2024/06/05 06:36


   不同的分辨率适配问题一直是移动应用开发领域的难题之一。在cocos2dx中,适配问题的解决办法如下:

   最新的资源加载策略是使用CCFileUtils的setResourceDirectory设置的目录去寻找,如果找不到则会在Resources/目录下去查找。

   例如:CCFileUtils()->setResourceDirectory("abc");  

   当创建一个精灵时:

   CCSprite * spr = CCSprite::create("test.png");

   Cocos2dx 首先会到Resource/abc下面去寻找图片test。png。如果找到了,就使用这张图片。如果没有找到就回到resouces目录下寻找它。


  主要过程如下:

  首先: 获取当前设备的类型,

  然后:设置资源的路径名称。

 

  代码如下:

   TargetPlatform   target = getTargetPlatform();

   if(target == kTargetIpad)

     CCFileUtils()->setResourceDirectory("xxx");  

  }else  {

     CCFileUtils()->setResourceDirectory("yyy"); 


 

TargetPlatform取值为:

    kTargetWindows,
    kTargetLinux,
    kTargetMacOS,
    kTargetAndroid,
    kTargetIphone,
    kTargetIpad,
    kTargetBlackBerry,


注意:CCDirector::sharedDirector()->getWinSize();的方式根据其width判断是否为iphone5的话,那么千万注意(横屏距离):

你千万不要判断当前屏幕尺寸的  if(size.width==1136){/*是iphone5*/}    (这种是错误的)

在iphone上只有480*320的尺寸,现在iphone5 则是 568*320 !!!

因此正确应该是:

if(size.width==568){/*是iphone5*/}

 

if(target == kTargetIphone)

       Size size =  CCDirector::sharedDirector()->getWinSize();

          if(size.width==568){


         CCFileUtils()->setResourceDirectory("iphone5directory"); 

        }  else{


        CCFileUtils()->setResourceDirectory("iphonedirectory"); 

      }


其他的方法见文章:

http://www.2cto.com/kf/201212/175527.html

或许会有更好的答案。



   

    


 





 

原创粉丝点击