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文件时会显示不正常,如:
这时候图片在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->destroyInstance();在要使用图片的位置加入:
ui::Widget::TextureResType::PLIST 表示从精灵框架中根据文件名读取
这样操作就能正常的动态显示图片了
问题二:
在动态的修改Button按钮后你会发现按钮随便大小没有改变,但是图像却变得扭曲、变形、显示不正常
如果动态的图片比原来的大,按钮也变大了可以在设置图片之后代码处重新设置一下大小
这个问题找了好久,最后发现原来是cocos studio在作怪,需要把九宫格取消,问题就解决了
总结
以上是生活随笔为你收集整理的cocos2d-x 3.17.2 调用cocos studio发布的csb文件,遇到按钮图片显示不正常问题的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇: 11万多职场文章技巧ACCESS数据库
- 下一篇: 光栅渲染器(二)画线