spine版本4.0
引擎是cocos2dx-lua 3.17.2
论坛的大佬们提供的方案都是使用外部图片替换spine动画里的某个图片
有没有办法可以修改数字的???
比如有个 spine动画
动画里有个图片是 012345679 的数字
然后添加一个接口
比如 setString( 888 )
动画显示的出来的数字就是 888 这样
主要是用来实现一些奖励结算的
spine版本4.0
引擎是cocos2dx-lua 3.17.2
论坛的大佬们提供的方案都是使用外部图片替换spine动画里的某个图片
有没有办法可以修改数字的???
比如有个 spine动画
动画里有个图片是 012345679 的数字
然后添加一个接口
比如 setString( 888 )
动画显示的出来的数字就是 888 这样
主要是用来实现一些奖励结算的
可以把spine 中的数字做成挂点,然后在挂点上放一个 label,设置这个 label 的 string
好像不太行。。。
数字是有动画的
可以换肤,这个我在creator做过,但是打包到真机上会报错。。。
// 关卡提示
let node = ResManager.getInstance().createNode("missionTips")
if (node) {
node.parent = LayerManager.getInstance().getParent();
node.position = cc.v3(0, 100, 0);
let spine = node.getComponent(sp.Skeleton);
spine.setCompleteListener(() => {
node.destroy();
});
spine.setEventListener((trackEntry: any, event: any)=>{
if (event.data.name == "start") {
EventManager.getInstance().emit(EventType.CREATE_MONSTERS);
}
});
let skData: sp.spine.SkeletonData = spine.skeletonData.getRuntimeData();
let skin = skData.findSkin("default");
// 当前进度
cc.resources.load<cc.Texture2D>("atlas/num/" + level, cc.Texture2D, (err, texture: cc.Texture2D)=>{
let slotIndex = skData.findSlotIndex("images/1")
let attachment = skin.getAttachment(slotIndex, "images/1") as sp.spine.RegionAttachment;
let region = this.createRegion(texture);
attachment.region = region;
attachment.setRegion(region);
attachment.updateOffset();
});
// 总进度
cc.resources.load<cc.Texture2D>("atlas/num/" + cfgs.length, cc.Texture2D, (err, texture: cc.Texture2D)=>{
let slotIndex = skData.findSlotIndex("images/chap")
let attachment = skin.getAttachment(slotIndex, "images/1") as sp.spine.RegionAttachment;
let region = this.createRegion(texture);
attachment.region = region;
attachment.setRegion(region);
attachment.updateOffset();
});
spine.setAnimation(0, "animation", false);
}
}
private createRegion (texture: cc.Texture2D) {
let skeletonTexture = new sp["SkeletonTexture"]()
skeletonTexture.setRealTexture(texture)
let page = new sp.spine.TextureAtlasPage()
page.name = texture.name
page.uWrap = sp.spine.TextureWrap.ClampToEdge
page.vWrap = sp.spine.TextureWrap.ClampToEdge
page.texture = skeletonTexture
page.texture.setWraps(page.uWrap, page.vWrap)
page.width = texture.width
page.height = texture.height
let region = new sp.spine.TextureAtlasRegion()
region.page = page
region.width = texture.width
region.height = texture.height
region.originalWidth = texture.width
region.originalHeight = texture.height
region.rotate = false
region.u = 0
region.v = 0
region.u2 = 1
region.v2 = 1
region.texture = skeletonTexture
return region
}
这是以前的代码,lua中没实现过,但是creator的话真机报错无效,好像是TextureAtlasRegion不存在
替换外部图片参考论坛的教程 在cocos2dx-lua里 搞出来了
图片数字没有搞出来
我擦
还能这样。。。
creator可以这么搞
cocos2dx-lua 咋办。。。
目前项目是用 cocos2dx-lua开发的 
lua没用过,不清楚
图片和图片数字不一样么。。。?有区别?
应该是他没有 0-999共 1000 张图,这么多也不合适,只有 0-9 共 10 张图,数字的位数会导致需要生成位数个数字图片合起来或者放多个子节点,处理起来不是一一对应,比较麻烦吧