翻牌动画(CocosCreator)

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

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

1.描述

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

2.UI搭建

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

3.代码

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

this.cards = [];//卡片数组
AI 代码解读

(2)存储卡片置数组中

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

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

findBtn("card" + i, obj4, function () 
{
     self.turnCard(i);
})
AI 代码解读

(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));
    },
AI 代码解读

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

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

修改纹理图片方法:

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

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

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

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

4.效果

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

相关文章
【QML进阶 进度条设计】打造动态弧形进度条特效
【QML进阶 进度条设计】打造动态弧形进度条特效
471 2
CocosCreator3.8研究笔记(二十二)CocosCreator 动画系统-动画剪辑和动画组件介绍
CocosCreator3.8研究笔记(二十二)CocosCreator 动画系统-动画剪辑和动画组件介绍
412 0
Unity UGUI实现鼠标拖动图片
在 Unity UGUI 中实现鼠标拖动图片功能,主要涉及事件检测、坐标转换和物体位置更新。根据鼠标移动量更新图片位置。代码示例展示了如何通过这些步骤实现拖动效果。
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
本文通过构建一个 3D 翻卡动画深入探讨了 CSS Houdini 的强大功能,展示了如何通过 Worklets、自定义属性、Paint API 等扩展 CSS 的能力,实现高度灵活的动画效果。文章首先介绍了 Houdini 的核心概念与 API,并通过构建一个动态星空背景、圆形进度条以及交互式 3D 翻卡动画的实际示例,展示了如何利用 CSS Houdini 赋予网页设计更多创造力。最后,还演示了如何将这种 3D 翻卡效果集成到公司网站中,提升用户体验。CSS Houdini 的创新能力为网页设计带来了前所未有的灵活性,推动了前端开发迈向新的高度。
74 0
探索 CSS Houdini:轻松构建酷炫的 3D 卡片翻转动画
|
9月前
|
Flutter 自定义实现时间轴、侧边进度条
Flutter 自定义实现时间轴、侧边进度条
251 0
|
10月前
|
Flutter笔记:光影动画按钮、滚动图标卡片组等
Flutter笔记:光影动画按钮、滚动图标卡片组等
108 0
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果(1)
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果
164 0
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果(2)
CocosCreator3.8研究笔记(二十四)CocosCreator 动画系统-动画编辑器实操-关键帧实现动态水印动画效果
160 0
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
原生app开发技巧——底部导航栏动画效果按钮制作方法之采用photoshop制作gif动画-过渡动画关键帧
212 0

热门文章

最新文章

AI助理

你好,我是AI助理

可以解答问题、推荐解决方案等