日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發(fā)布時間:2023/12/18 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 cocos2d-x 3.17.2 调用cocos studio发布的csb文件,遇到按钮图片显示不正常问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

由于代碼開發(fā)UI效率較低,有時候需要用cocos studio來制作場景,再在C++中調用
遇到一個問題被忽略了,添加一個Button按鈕,在游戲中動態(tài)的修改按鈕的圖片
經(jīng)過測試,發(fā)現(xiàn)很多問題

環(huán)境說明:
cocos2d-x版本: ????Cocos2d-x 3.17.2
Android編譯器: ?????Android studio 3.5.3 用的是cmake方式編譯
C++編譯器:???????????Visual studio 2019 社區(qū)版
Java版本:????????????? jdk1.8.0_91
SDK API版本:?????? API 28
NDK版本:?????????????android-ndk-r19c

問題一:
Button按鈕圖片在運行時使用loadTextures動態(tài)讀取本地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 表示從精靈框架中根據(jù)文件名讀取

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

這樣操作就能正常的動態(tài)顯示圖片了


問題二:
在動態(tài)的修改Button按鈕后你會發(fā)現(xiàn)按鈕隨便大小沒有改變,但是圖像卻變得扭曲、變形、顯示不正常
如果動態(tài)的圖片比原來的大,按鈕也變大了可以在設置圖片之后代碼處重新設置一下大小
這個問題找了好久,最后發(fā)現(xiàn)原來是cocos studio在作怪,需要把九宮格取消,問題就解決了

總結

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

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。