1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > cocos2d-x 3.17.2 调用cocos studio发布的csb文件 遇到按钮图片显示不正常问题

cocos2d-x 3.17.2 调用cocos studio发布的csb文件 遇到按钮图片显示不正常问题

时间:2018-09-27 02:19:03

相关推荐

cocos2d-x 3.17.2 调用cocos studio发布的csb文件 遇到按钮图片显示不正常问题

由于代码开发UI效率较低,有时候需要用cocos studio来制作场景,再在C++中调用

遇到一个问题被忽略了,添加一个Button按钮,在游戏中动态的修改按钮的图片

经过测试,发现很多问题

环境说明:

cocos2d-x版本:Cocos2d-x 3.17.2

Android编译器:Android studio 3.5.3用的是cmake方式编译

C++编译器:Visual studio 社区版

Java版本:jdk1.8.0_91

SDK API版本:API 28

NDK版本:android-ndk-r19c

问题一:

Button按钮图片在运行时使用loadTextures动态读取本地png文件时会显示不正常,如:

button->loadTextures("res/1.png","res/2.png","res/3.png",ui::Widget::TextureResType::LOCAL);

这时候图片在Windows下不显示,在Android下显示都是黑色的,有时候又能显示一两张,其他的不会显示

解决方法:

使用精灵框架SpriteFrameCache

先用 TexturePacker 将图片1.png、2.png、3.png等等打包成一个.ccz + .plist 或 .png + .plist文件

比如我打包的文件为:image.png、image.plist,放在res文件夹下

不懂TexturePacker可以百度一下教程,我的是TexturePacker_3.0.9 破解版

在场景init初始化位置加入:

mSpriteFrame = SpriteFrameCache::getInstance();mSpriteFrame->addSpriteFramesWithFile("res/image.plist");

在析构位置加入:

mSpriteFrame->destroyInstance();

在要使用图片的位置加入:

ui::Widget::TextureResType::PLIST 表示从精灵框架中根据文件名读取

button->loadTextures("1.png", "2.png", "3.png", ui::Widget::TextureResType::PLIST);

这样操作就能正常的动态显示图片了

问题二:

在动态的修改Button按钮后你会发现按钮随便大小没有改变,但是图像却变得扭曲、变形、显示不正常

如果动态的图片比原来的大,按钮也变大了可以在设置图片之后代码处重新设置一下大小

这个问题找了好久,最后发现原来是cocos studio在作怪,需要把九宫格取消,问题就解决了

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。