欢迎访问 生活随笔!

生活随笔

当前位置: 首页 >

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

发布时间:2023/12/18 45 豆豆
生活随笔 收集整理的这篇文章主要介绍了 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 2019 社区版
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在作怪,需要把九宫格取消,问题就解决了

总结

以上是生活随笔为你收集整理的cocos2d-x 3.17.2 调用cocos studio发布的csb文件,遇到按钮图片显示不正常问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。