Cocos2dx3.2从零开始【四】继续。

本文介绍了在Cocos2d-x中解决多分辨率适配问题的方法,并提供了使用setDesignResolutionSize函数的具体示例。此外,还讨论了如何正确处理.plist文件的加载,避免因文件名重复导致的问题,以及如何实现图片资源的异步加载。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、VS编译没错,移植到Eclipse时,遇到“Unable to execute dex: Multiple dex files define

二、多分辨率适应。

参考:

http://www.erlangsir.com/2013/08/21/cocos2d-x%E5%A4%9A%E5%88%86%E8%BE%A8%E7%8E%87%E9%80%82%E9%85%8D%E6%96%B9%E6%A1%88%EF%BC%9Asetdesignresolutionsize%E4%BD%BF%E7%94%A8/

Cocos2dx官方默认:

glview->setDesignResolutionSize(435, 640, ResolutionPolicy::SHOW_ALL);
目前只加了官方默认的这句,先这么用着,等界面完备时再调整
三、关于.plist文件。

       加载plist文件时,可以同时加载,但是.plist文件里拆分图片时,不同.plist名字不能一样,不然你就杯具去吧。

       下面异步加载示例【单个文件】:

void LoadingScene::onEnter(){
	auto size=Director::getInstance()->getVisibleSize();
	//添加背景
	auto splash=Sprite::create("load.png");
	splash->setPosition(Point(size.width/2,size.height/2));
	this->addChild(splash);

	//图片资源的异步加载
	TextureCache::getInstance()->addImageAsync("ui/colorball.png",CC_CALLBACK_1(LoadingScene::loadComplete,this));
}

//图片加载完成后的回调函数
void LoadingScene::loadComplete(Texture2D *texture){
	//texture是加载完的图片资源
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ui/colorball.plist",texture);
	log("load complete");

	//界面切换
	/*auto gameLayer=GameScene::create();
	Director::getInstance()->replaceScene(TransitionRotoZoom::create(3.0f,gameLayer));*/
	auto scene = MainScene::createScene();
	Director::getInstance()->replaceScene(TransitionFade::create(3.0f, scene));

}
然后在.h里声明函数:
	void onEnter() override;
	void loadComplete(Texture2D *texture);

        加载多个:

	//png加入全局cache中	
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ui/colorball.plist", "ui/colorball.png");
	SpriteFrameCache::getInstance()->addSpriteFramesWithFile("ui/colorballPress.plist", "ui/colorballPress.png");
	auto cache = SpriteFrameCache::getInstance();//共享的帧序列
        使用时,按设定名字使用即可。由于加载到一个cache里,所以重名就乱套了。















评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值