最新版本cocos2d­2.0­x­2.0.2使用新资源加载策略!不再沿用-hd、-



前段时间cocos2dx更新了最新版本cocos2d-2.0-x-2.0.2,也从这个版本开始对于资源加载与管理都改变了策略。

在之前的加载方式都是通过沿用与cocos2d-iphone一样的加载资源方式,对于图片名后添加-hd,-ipad,-ipadhd方式,当用户开启项目的高清视网膜后就可以默认寻找对应的资源。但是从cocos2d-2.0-x-2.0.2版本开始,资源加载策略不在如此了。对跨平台整合不清楚的请看cocos2dx最新2.x版本跨平台整合NDK+Xcode

最新资源加载策略的机制如下:

首先从CCFileUtils的setResourceDirectory设置的目录中去寻找,如果找不到则会Resources/目录下找。

例如:

1)  设置目录:

CCFileUtils::sharedFileUtils()->setResourceDirectory(“abc”);

当创建一个精灵时:

CCSprite * spr = CCSprite::create(“himi.png”);

Cocos2dx首先会到Resources/abc目录下寻找“himi.png”,如果找不到将回到Resources目录下寻找“himi.png”。

因此我们一般在AppDelegate.cpp的applicationDidFinishLaunching函数中打开高清视网膜后,添加如下代码:

TargetPlatform target = getTargetPlatform();//获取当前设备类型

if (target == kTargetIpad){//如果是Ipad

if (pDirector->enableRetinaDisplay(true)){ //如果开启高清视网膜

CCFileUtils::sharedFileUtils()->setResourceDirectory("../ipadhd");

}else {

CCFileUtils::sharedFileUtils()->setResourceDirectory("../ipad");

}

}else if (target == kTargetIphone) {//如果是iphone

if (pDirector->enableRetinaDisplay(true))

{

CCFileUtils::sharedFileUtils()->setResourceDirectory("../hd");

}

项目默认目录为Resources,这里创建的hd、ipadhd、ipad的文件夹与Resources同一级,所以这里设置目录为”../hd” ,”../ipad”,”../ipadhd”

附:

设备枚举变量如下:

kTargetWindows:   window系统

kTargetLinux:  linux系统

kTargetMacOS:  mac os系统

kTargetAndroid:   Android系统

kTargetIphone: iOS系统-iphone&itouch

kTargetIpad:      iOS系统-Ipad

kTargetBlackBerry:   黑莓系统

项目目录如下图3.14.3.1所示:

时间: 2024-12-18 08:07:08

最新版本cocos2d­2.0­x­2.0.2使用新资源加载策略!不再沿用-hd、-的相关文章

最新版本号cocos2d­2.0­x­2.0.2使用新资源载入策略!不再沿用-hd、-

?? 前段时间cocos2dx更新了最新版本号cocos2d-2.0-x-2.0.2.也从这个版本号開始对于资源载入与管理都改变了策略. 在之前的载入方式都是通过沿用与cocos2d-iphone一样的载入资源方式,对于图片名后加入-hd,-ipad,-ipadhd方式,当用户开启项目的高清视网膜后就能够默认寻找相应的资源.可是从cocos2d-2.0-x-2.0.2版本号開始,资源载入策略不在如此了.对跨平台整合不清楚的请看cocos2dx最新2.x版本号跨平台整合NDK+Xcode 最新资源

Cocos2d-x 3.0多线程异步资源加载

Cocos2d-x从2.x版本到上周刚刚才发布的Cocos2d-x 3.0 Final版,其引擎驱动核心依旧是一个单线程的"死循环",一旦某一帧遇到了"大活儿",比如Size很大的纹理资源加载或网络IO或大量计算,画面将 不可避免出现卡顿以及响应迟缓的现象.从古老的Win32 GUI编程那时起,Guru们就告诉我们:别阻塞主线程(UI线程),让Worker线程去做那些"大活儿"吧. 手机游戏,即便是休闲类的小游戏,往往也涉及大量纹理资源.音视频资

Android 资源加载Resources源码分析(8.0)

我们熟悉的资源加载代码: 1.Activity.getResources(); 2.Context.getResources(); 这2种方式获取的都是Resources对象 先看第一种获取Resources对象源码分析: 说明:(AppcompatActivity中getResource()方法与Activity.getResources()是有区别的.AppcompatActivity是new Resources(...)对象) 一:Activity.getResources()源码分析:

0.11之路(二):加载setup

BIOS将bootsect这个引导程序载入内存后,接下来就要靠bootsect来加载第二批和第三批程序. bootsect首先要做的工作就是规划内存. 实模式下,寻址最大范围是1MB(0xFFFFF).关于setup程序,在bootsect.s中要指定setup程序的扇区数和被加载到的位置(0x90200),此外还要指定启动扇区(也就是bootsect.s)被BIOS加载的位置(0x07c00)和将要移动到的新位置(0x90000),内核被加载的位置(0x10000)和内核的末尾位置,根文件系统

libvirt最新版本未deploy到maven中央仓库

libvirt是虚拟化API. org.libvirt:libvirt:jar是其java实现. 官网:http://libvirt.org/ 在中央仓库搜索,其最高版本为0.4.7,可是现实情况这个不是最新版本(发现有人在用0.4.9版本) 通过查看其官网,在http://libvirt.org/java.html页面获得相关信息: MavenUp until version 0.4.7 the Java bindings were available from the central mav

使用springboot最新版本mysql-Connector连接数据库时提示Loading class `com.mysql.jdbc.Driver'. This is deprecated.

在连接数据库时,使用了最新版本的mysql-Connector,即6.0以上版本 1.报错如下: Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class

Assetbundle 打包加载及服务器加载等(采用unity3d5.0后的新版)

Assetbundle为资源包不是资源 打包1:通过脚本指定打包 AssetBundleBuild ab = new AssetBundleBuild { assetBundleName = PlayerSettings.bundleVersion + "@" + "zhao",//资源包assets的名字 assetNames = new string[1],  //包里的每个资源的名字 }; string outputPath = Path.Combine(Ut

HBase-1.0.1 协处理器(一)之加载

HBase-1.0.1的协处理器部分的API已经改变,所以它的协处理器代码部分和0.94有很大改变外,加载协处理的配置也有改变,下面列出和0.94的区别 0.94 <property> <name>hbase.coprocessor.region.classes</name> <value>org.sigsit.dbproxy.hbase.coprocessor.SigsitEndpointImpl</value> </property&g

JDBC4.0自动加载驱动器类

1 JDBC4.0自动加载驱动器类 2 从JDK1.6开始,Oracle就将修改了添加了新的加载JDBC驱动的方式.即JDBC4.0.在启动项目或是服务时,会判断当前classspath中的所的jar包,并检查META-INF目录下,是否包含services文件夹,如果包含,就会将里面的配置加载成相应的服务. 3 如Oracle11g的ojdbc6.jar包: 4 5 META-INF/services/jdbc.sql.Driver文件内容只有一行,即实现java.sql.Driver的类: