由于代码开发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文件,遇到按钮图片显示不正常问题相关推荐

  1. 在 Lua 里 使用 Cocos Studio 导出的 .csb 文件

    1. 加载 节点到场景 第一种方法 local scene = cc.CSLoader:createNode("scene.csb")  self:addChild(scene) ...

  2. cocos studio 制作csd动画文件 并 加载使用嵌套动画

    直接使用cocos studio 制作动画,动画过程细腻,可以根据自己的想法方便调节.并且可以随意取用. 本次记录是我需要一个头像动画,放在不同的头像上,而且头像的大小各不相同. 解决方案就是: 1. ...

  3. Cocos2d-x 3.8.1+Cocos Studio 2.3.2捉虫记之控制场景文件中的骨骼动画

    Cocos2d-x 3.8.1+Cocos Studio 2.3.2捉虫记之控制场景文件中的骨骼动画 引子 这段时间一直努力在把早期版本的拇指接龙游戏(Cocos2d-x 2.2.3+CocoStud ...

  4. Cocos Studio学习笔记第一篇--界面

    大前天也就是周二被人问道:"对Cocos Studio2.0以后版本用法的了解."当时我一时之间没法回答,因为Cocos Studio1.6我以前用过很长时间,2.0改版以后我知道 ...

  5. 植物大战僵尸破产版--cocos studio

    采用Cocos引擎cocos studio开发 平台为Android,开发语言为C++: 时间: 2020.4.29-5.14 游戏说明 这是一款具有策略性的游戏.背景是僵尸入侵你的家,你需要用具有攻 ...

  6. Cocos Studio的动画系统介绍

    Cocos Studio介绍Cocos Studio是一套基于Cocos2D-x的免费游戏开发工具集,它能帮助开发者快速创建游戏资源,将大部分繁琐的游戏开发工作使用编辑器来快速制作,进一步帮助游戏开发 ...

  7. 用Cocos Studio 2.3.2制作UI界面中控件不再支持运行3d动作特效

    用Cocos Studio 2.3.2制作UI界面中控件不再支持运行3d动作特效  cocos2d-x + cocos studio无疑是当下二维手游开发的利器,但是在从旧版本向新版本的升级过程中,坑 ...

  8. cocos studio和cocos creator关系

    Cocos Studio即以前的CocoStudio,功能上进一步增强:CocosCreator则是一个立足于跨平台javascript手游开发的全新平台.使用js开发的同学可能还记得CocosIDE ...

  9. VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件

    VB:使用Visual Studio 2010中的VB语言工具箱DataGridView调用SQL数据库Database的表格文件 目录 问题探究 图文教程 问题探究 使用Visual Studio ...

  10. 我所理解cocos2d-x 3.6 lua --使用Cocos Studio

    Cocos是触控科技推出的游戏开发一站式解决方式,包括了从新建立项.游戏制作.到打包上线的全套流程. 开发人员能够通过cocos高速生成代码.编辑资源和动画,终于输出适合于多个平台的游戏产品. Coc ...

最新文章

  1. Smarty vs Twig: 性能对比
  2. php中退出怎么写,php中退出登录怎么写
  3. oracle 提示i386,新手请教:RAC安装时检测i386软件包未安装,这个怎么处理?
  4. 用MATLAB编程正弦稳态相量图,matlab课程设计--利用MATLAB对线性电路正弦稳态特性分析...
  5. cf1523A. Game of Life
  6. 不重启docker容器修改 容器中的时区
  7. 没有代码天赋的我,先退出了
  8. windows定时自动运行R脚本的正确姿势
  9. SIM-MICRO-SIM- NANO SIM 区别
  10. 华为光猫 HN8346X6 超级管理员密码获取方法,超简单
  11. 视频教程-Linux C语言编程基础视频精讲-C/C++
  12. python Pystaller 将python文件打包成exe
  13. 练习绕口令快速提高语言表达能力(收藏)
  14. Matlab 中 residuez函数的使用
  15. Eric6中使用PYQT5在窗口显示图片
  16. 探索汇率变动与股票价格的关系
  17. 中国微量营养素市场趋势报告、技术动态创新及市场预测
  18. python 图像格式转换文件夹下 jpg 转 bmp | 目录遍历
  19. 狄克斯特拉算法 - 学习整理
  20. 【SpringBoot项目实战+思维导图】瑞吉外卖①(项目介绍、开发环境搭建、后台登陆/退出功能开发)

热门文章

  1. 一碗泡面背后的努力,康师傅连续十次斩获“食安管理十强企业”
  2. html页面调用高德地图,html前端使用高德地图入门教程
  3. Linux性能调优,从优化思路说起
  4. java程序读取文件_java,编写一个程序,可以读取文件数据
  5. 股票涨跌速率对应操作策略和后市走势分析
  6. control reaches end of non-void function
  7. 消息传输协议-MQTT篇-QoS
  8. win10复制粘贴不能用解决方法汇总
  9. csapp lab环境搭建及lab1wp
  10. www.etiger.vip DEVC++练习(入门)