在线体验地址
https://la-vie-est-belle.github.io/DressUp/
Cocos Store 购买地址:
https://store.cocos.com/app/detail/6752
运行效果
开发环境
编辑器版本:3.8.3
开发语言:TypeScript
实现思路
重点来看下层级管理器
中的Player
节点。
Player及其各个子节点都是Sprite
类型的节点,每个节点的Size Mode
都是Custom
,且大小和图片大小一样。不能设置为TRIMMED
,否则各个图片被剪切了的话那换装就会错位了。
Player节点上的图片是这样的,保持不变。
如果要变换武器的话就先将各个武器图片放在resources
文件夹中。
然后添加按钮,并给每个按钮添加上事件。
事件函数编写如下,主要就是根据自定义传入的数据,加载对应的图片。如果是默认按钮,把图片清空就行了。
dress(e: EventTouch, data:string) {
let part = data.split('-')[0] // 部位
let style = data.split('-')[1] // 样式
// 眼睛默认的话应该是用默认的图片,而不是空
if (part != 'eye' && style == 'mo_ren') {
this.player.getChildByName(part).getComponent(Sprite).spriteFrame = null
}
// 加载对应的图片即可
else {
var self = this
resources.load(`${part}/${style}/spriteFrame`, SpriteFrame, (err, spriteFrame) => {
self.player.getChildByName(part).getComponent(Sprite).spriteFrame = spriteFrame
})
}
this.audioSource.playOneShot(this.clickAudio)
}