翻牌动画(CocosCreator)

简介: 翻牌动画(CocosCreator)
推荐阅读:

      在游戏中,有时候为了通过一种有意思的途径,让用户在一些物品中随机获取某种物品,除了前面我们提到的使用大转盘抽奖获得,还有一种可以实现类似功能的是抽取卡片。

1.描述

      抽卡界面打开时,向用户展示所有卡片的背面,待用户随机点一张卡片后,该卡片会播放一个翻开的动画,然后显示卡片的相关描述等信息。

2.UI搭建

(1)新建一个Button组件,图片设置为牌的背面图
(2)复制5份,排列好,并依次名命如下;
在这里插入图片描述
效果图如下:
在这里插入图片描述

3.代码

(1)声明一个存放卡片的数组

this.cards = [];//卡片数组

(2)存储卡片置数组中

for (let i = 0; i < 6; i++) 
{
    self.cards[i] = cc.find("card" + i, obj4);
}

(3)为卡片添加监听事件

findBtn("card" + i, obj4, function () 
{
     self.turnCard(i);
})

(4)翻牌操作(翻牌动画)

    ///翻牌操作
    turnCard(idx) {
        var self = this;

        var scale1 = cc.scaleTo(0.1, 0, 1);
        var call1 = app.callFunc(function (adt) {
            self.flipCard(idx);
        }, [self.cards[idx]]);
        var scale2 = cc.scaleTo(0.1, 1, 1)

        self.cards[idx].stopAllActions();
        self.cards[idx].runAction(cc.sequence(scale1, call1, scale2));
    },

5翻牌后显示牌正面:这里为了替换牌正面纹理的方便,我们将它保存在Resources/image/card/目录下,并依次命名为1,2,3,4,5,将背面纹理图片命名为0.

   //翻开某一张牌后显示牌正面相关信息
    flipCardShow(idx) {
        //--测试,根据需要赋值
        let cardIdx=3;
        self.updateCardTexture(this.cards[idx], cardIdx);//更换牌的纹理 
        //显示牌正面的其他信息
        //TODO
    },

修改纹理图片方法:

 updateCardTexture(img, textureName) {
        cc.loader.loadRes("image/card/" + textureName, cc.SpriteFrame, function (err, spriteFrame) {
            if (!err) { img.getComponent(cc.Sprite).spriteFrame = spriteFrame; }
        });
    },

6.当关闭该翻牌面板时,需要将翻牌结果重置未未翻牌状态

    //初始化牌
    initCard() {
        for (let i = 0; i < 6; i++) {
            gm.GameData.updateCardTexture(this.cards[i], "0");
        }
    },

至此,翻牌功能就实现了,写这篇文章的主要目的是分享一个翻牌的动画,即步骤(4)。

4.效果

在这里插入图片描述
注:以上效果为ps制作的帧动画输出的gif,并非实际效果。实际效果看上去会更协调一些,如果你想学ps,可以扫描下方二维码,关注我们的公众号哦~
在这里插入图片描述

相关文章
|
安全 网络安全 数据安全/隐私保护
CocosCreator 面试题(十四)Cocos Creator WebSocket 、Socket.IO分别是什么?
CocosCreator 面试题(十四)Cocos Creator WebSocket 、Socket.IO分别是什么?
1303 0
|
3月前
|
JavaScript Android开发 数据安全/隐私保护
以cocos3.8.8开发的游戏为例商业实战项目举例cocos打包ios苹果安装包ipa完整详细教程-优雅草卓伊凡
本教程基于Cocos Creator 3.8.8,详解iOS IPA打包全流程:含环境配置(Xcode、Apple开发者账号)、构建面板设置(包名、屏幕方向、签名等)、Xcode工程配置、Archive归档及IPA导出,并附常见报错解决方案,理论+实操结合,助力开发者高效上架。
434 8
以cocos3.8.8开发的游戏为例商业实战项目举例cocos打包ios苹果安装包ipa完整详细教程-优雅草卓伊凡
|
JavaScript
Vue自定义组件实现类似elementUI的append-to-body功能,将创建的元素插入、挂载到body上面(网页最外层),适用于父元素overflow: hidden、绝对定位fixed的场景
Vue自定义组件实现类似elementUI的append-to-body功能,将创建的元素插入、挂载到body上面(网页最外层),适用于父元素overflow: hidden、绝对定位fixed的场景
|
3月前
|
机器学习/深度学习 人工智能 运维
8 个提问技巧,让 AI 问答质量翻几倍
本文分享8个提升AI问答质量的实用技巧:让AI先提问、设定超具体角色、明确受众、展示思考过程、自己开头续写、提供背景信息、多角度求解、反问AI如何提问。核心在于减少AI猜测,用清晰约束换来精准输出——不是AI变聪明了,而是你问得更准了。(239字)
|
11月前
|
前端开发 JavaScript Linux
用 Go 写桌面应用?试试 Wails 吧!
Wails 是一个结合 Go 语言与前端技术(如 Vue、React)开发轻量级桌面应用的框架。相比 Electron,它更轻、更快,资源占用更低,支持跨平台打包,适合熟悉 Web 开发又追求原生性能的开发者。
2434 0
|
存储 机器学习/深度学习 数据可视化
MATLAB脚本与函数
【10月更文挑战第4天】本文介绍了MATLAB脚本与函数的基本概念及编写方法,涵盖脚本和函数的创建、运行及优缺点,通过示例帮助初学者快速上手。同时,文章还涉及数据类型、控制结构、数据可视化、文件操作、错误处理等内容,提供了丰富的示例和学习资源,助力初学者逐步掌握MATLAB编程。
|
Android开发 数据安全/隐私保护
Android Studio创建JKS签名遇到的坑
Android Studio创建JKS签名遇到的坑
1003 1
|
缓存
CocosCreator 面试题(十二)Cocos Creator Label 的原理以及如何减少Drawcall
CocosCreator 面试题(十二)Cocos Creator Label 的原理以及如何减少Drawcall
1276 0
|
存储 缓存 API
CocosCreator3.8研究笔记(十四)CocosCreator 资源管理Asset Manager
CocosCreator3.8研究笔记(十四)CocosCreator 资源管理Asset Manager
1726 0
|
内存技术
经验大分享:UBB语法介绍
经验大分享:UBB语法介绍
934 0

热门文章

最新文章